1. 12 Jan, 2006 4 commits
    • Neil Conway's avatar
      mbutils was previously doing some allocations, including invoking · d3a4d633
      Neil Conway authored
      fmgr_info(), in the TopMemoryContext. I couldn't see that the code
      actually leaked, but in general I think it's fragile to assume that
      pfree'ing an FmgrInfo along with its fn_extra field is enough to
      reclaim all the resources allocated by fmgr_info().  I changed the
      code to do its allocations in a new child context of
      TopMemoryContext, MbProcContext. When we want to release the
      allocations we can just reset the context, which is cleaner.
      d3a4d633
    • Tom Lane's avatar
      Repair "Halloween problem" in EvalPlanQual: a tuple that's been inserted by · 25b9b1b0
      Tom Lane authored
      our own command (or more generally, xmin = our xact and cmin >= current
      command ID) should not be seen as good.  Else we may try to update rows
      we already updated.  This error was inserted last August while fixing the
      even bigger problem that the old coding wouldn't see *any* tuples inserted
      by our own transaction as good.  Per report from Euler Taveira de Oliveira.
      25b9b1b0
    • Tom Lane's avatar
      Use a more bulletproof test for whether finite() and isinf() are present. · db0558c1
      Tom Lane authored
      It seems that recent gcc versions can optimize away calls to these functions
      even when the functions do not exist on the platform, resulting in a bogus
      positive result.  Avoid this by using a non-constant argument and ensuring
      that the function result is not simply discarded.  Per report from
      François Laupretre.
      db0558c1
    • Tom Lane's avatar
      Remove extraneous backslash from 'fixseq.sql' example --- mea culpa · 9484e14c
      Tom Lane authored
      certainly.  Per report from George Woodring.
      9484e14c
  2. 11 Jan, 2006 7 commits
  3. 10 Jan, 2006 5 commits
    • Tom Lane's avatar
    • Neil Conway's avatar
      Minor code clarity improvement: AFAICS, estate.eval_econtext must be · 8ea91ba1
      Neil Conway authored
      non-NULL during the guts of plpgsql_exec_trigger() and
      plpgsql_exec_function(). Therefore, we can remove the NULL check,
      per discussion on -patches.
      8ea91ba1
    • Tom Lane's avatar
      Improve patternsel() by applying the operator itself to each value · ce8fd39e
      Tom Lane authored
      listed in the column's most-common-values statistics entry.  This gives
      us an exact selectivity result for the portion of the column population
      represented by the MCV list, which can be a big leg up in accuracy if
      that's a large fraction of the population.  The heuristics involving
      pattern contents and prefix are applied only to the part of the population
      not included in the MCV list.
      ce8fd39e
    • Andrew Dunstan's avatar
      · ad24b8e6
      Andrew Dunstan authored
      remove unneeded defines for uid_t and gid_t, which conflict with perl's typedefs.
      ad24b8e6
    • Neil Conway's avatar
      In PLy_function_build_args(), the code loops repeatedly, constructing · c08c8529
      Neil Conway authored
      one argument at a time and then inserting the argument into a Python
      list via PyList_SetItem(). This "steals" the reference to the argument:
      that is, the reference to the new list member is now held by the Python
      list itself. This works fine, except if an elog occurs. This causes the
      function's PG_CATCH() block to be invoked, which decrements the
      reference counts on both the current argument and the list of arguments.
      If the elog happens to occur during the second or subsequent iteration
      of the loop, the reference count on the current argument will be
      decremented twice.
      
      The fix is simple: set the local pointer to the current argument to NULL
      immediately after adding it to the argument list. This ensures that the
      Py_XDECREF() in the PG_CATCH() block doesn't double-decrement.
      c08c8529
  4. 09 Jan, 2006 4 commits
  5. 08 Jan, 2006 5 commits
    • Andrew Dunstan's avatar
      · 9bb76d0b
      Andrew Dunstan authored
      Rationalise perl header inclusions via a common include file, which also
      declares routines in plperl.c and spi_internal.c used in other files.
      
      Along the way, also stop perl from hijacking stdio and other stuff on Windows.
      9bb76d0b
    • Tom Lane's avatar
      Fix the assert_enabled issue properly. This eliminates the former ABI · 2645cb54
      Tom Lane authored
      difference between USE_ASSERT_CHECKING and not: the assert_enabled
      variable is always there.
      2645cb54
    • Tom Lane's avatar
      Recent patch broke guc.c for non-USE_ASSERT_CHECKING case. Per · cbf39930
      Tom Lane authored
      Stefan Kaltenbrunner.
      cbf39930
    • Tom Lane's avatar
      Avoid leaking memory while reading toasted entries from pg_rewrite, · edfbd074
      Tom Lane authored
      and nail a couple more system indexes into cache.  This doesn't make
      any difference in normal system operation, but when forcing constant
      cache resets it's difficult to get through the rules regression test
      without these changes.
      edfbd074
    • Neil Conway's avatar
      Add a new system view, pg_prepared_statements, that can be used to · 44b928e8
      Neil Conway authored
      access information about the prepared statements that are available
      in the current session. Original patch from Joachim Wieland, various
      improvements by Neil Conway.
      
      The "statement" column of the view contains the literal query string
      sent by the client, without any rewriting or pretty printing. This
      means that prepared statements created via SQL will be prefixed with
      "PREPARE ... AS ", whereas those prepared via the FE/BE protocol will
      not. That is unfortunate, but discussion on -patches did not yield an
      efficient way to improve this, and there is some merit in returning
      exactly what the client sent to the backend.
      
      Catalog version bumped, regression tests updated.
      44b928e8
  6. 07 Jan, 2006 3 commits
  7. 06 Jan, 2006 7 commits
  8. 05 Jan, 2006 5 commits
    • Bruce Momjian's avatar
      Add: · 6d41b144
      Bruce Momjian authored
      >
      > 	* Allow SERIAL sequences to inherit permissions from the base table?
      6d41b144
    • Bruce Momjian's avatar
      Add logging control TODO.detail. · 9a47ad1d
      Bruce Momjian authored
      9a47ad1d
    • Bruce Momjian's avatar
      Update: · db6cb1a9
      Bruce Momjian authored
      <   stable logging probably can not have indexes.  [wallog]
      >   stable logging probably can not have indexes.  [walcontrol]
      db6cb1a9
    • Bruce Momjian's avatar
      Update wording: · ac9e14d0
      Bruce Momjian authored
      <   STABLE | DEFAULT ].  [wallog]
      >   STABLE | DEFAULT ].  Tables using non-default logging should not use
      >   referential integrity with default-logging tables, and tables using
      >   stable logging probably can not have indexes.  [wallog]
      ac9e14d0
    • Bruce Momjian's avatar
      Update wording: · e7893db5
      Bruce Momjian authored
      <   the table. Another option is to avoid transaction logging entirely
      <   and truncate or drop the table on crash recovery.  These should be
      <   implemented using ALTER TABLE, e.g. ALTER TABLE PERSISTENCE [ DROP |
      <   TRUNCATE | STABLE | DEFAULT ].  [wallog]
      >   the table.  This would affect COPY, and perhaps INSERT/UPDATE too.
      >   Another option is to avoid transaction logging entirely and truncate
      >   or drop the table on crash recovery.  These should be implemented
      >   using ALTER TABLE, e.g. ALTER TABLE PERSISTENCE [ DROP | TRUNCATE |
      >   STABLE | DEFAULT ].  [wallog]
      e7893db5