1. 29 Nov, 2011 11 commits
  2. 28 Nov, 2011 7 commits
    • Bruce Momjian's avatar
      Pgindent clauses.c, per request from Tom. · 269755ef
      Bruce Momjian authored
      269755ef
    • Tom Lane's avatar
      Convert eval_const_expressions's long series of IsA tests into a switch. · a04161f2
      Tom Lane authored
      This function has now grown enough cases that a switch seems appropriate.
      This results in a measurable speed improvement on some platforms, and
      should certainly not hurt.  The code's in need of a pgindent run now,
      though.
      
      Andres Freund
      a04161f2
    • Tom Lane's avatar
      Remove erroneous claim about use of pg_locks.objid for advisory locks. · 5943d401
      Tom Lane authored
      The correct information appears in the text, so just remove the statement
      in the table, where it did not fit nicely anyway.  (Curiously, the correct
      info has been there much longer than the erroneous table entry.)
      Resolves problem noted by Daniele Varrazzo.
      
      In HEAD and 9.1, also do a bit of wordsmithing on other text on the page.
      5943d401
    • Tom Lane's avatar
      Fix some bogosities in pg_dump's foreign-table support. · 9761ad67
      Tom Lane authored
      The server name for a foreign table was not quoted at need, as per report
      from Ronan Dunklau.  Also, queries related to FDW options were inadequately
      schema-qualified in places where the search path isn't just pg_catalog, and
      were inconsistently formatted everywhere, and we didn't always check that
      we got the expected number of rows from them.
      9761ad67
    • Magnus Hagander's avatar
      Add libpq connection option to disable SSL compression · 64aea1eb
      Magnus Hagander authored
      This can be used to remove the overhead of SSL compression on
      fast networks.
      
      Laurenz Albe
      64aea1eb
    • Tom Lane's avatar
      Ensure that whole-row junk Vars are always of composite type. · dd3bab5f
      Tom Lane authored
      The EvalPlanQual machinery assumes that whole-row Vars generated for the
      outputs of non-table RTEs will be of composite types.  However, for the
      case where the RTE is a function call returning a scalar type, we were
      doing the wrong thing, as a result of sharing code with a parser case
      where the function's scalar output is wanted.  (Or at least, that's what
      that case has done historically; it does seem a bit inconsistent.)
      
      To fix, extend makeWholeRowVar's API so that it can support both use-cases.
      This fixes Belinda Cussen's report of crashes during concurrent execution
      of UPDATEs involving joins to the result of UNNEST() --- in READ COMMITTED
      mode, we'd run the EvalPlanQual machinery after a conflicting row update
      commits, and it was expecting to get a HeapTuple not a scalar datum from
      the "wholerowN" variable referencing the function RTE.
      
      Back-patch to 9.0 where the current EvalPlanQual implementation appeared.
      
      In 9.1 and up, this patch also fixes failure to attach the correct
      collation to the Var generated for a scalar-result case.  An example:
      regression=# select upper(x.*) from textcat('ab', 'cd') x;
      ERROR:  could not determine which collation to use for upper() function
      dd3bab5f
    • Andrew Dunstan's avatar
      Make pg_dumpall build with the right object files under MSVC. · 91572ee0
      Andrew Dunstan authored
      This fixes a longstanding but up to now benign bug in the way pg_dumpall
      was built. The bug was exposed by recent code adjustments. The Makefile
      does not use $(OBJS) to build pg_dumpall, so this fix removes their source
      files from the pg_dumpall object and adds in the one source file it
      consequently needs.
      91572ee0
  3. 27 Nov, 2011 6 commits
    • Tom Lane's avatar
      Use IEEE infinity, not 1e10, for null-and-not-null case in gistpenalty(). · 9f4563f7
      Tom Lane authored
      Use of a randomly chosen large value was never exactly graceful, and
      now that there are penalty functions that are intentionally using infinity,
      it doesn't seem like a good idea for null-vs-not-null to be using something
      less.
      9f4563f7
    • Tom Lane's avatar
      Improve GiST range-contained-by searches by adding a flag for empty ranges. · c66e4f13
      Tom Lane authored
      In the original implementation, a range-contained-by search had to scan
      the entire index because an empty range could be lurking anywhere.
      Improve that by adding a flag to upper GiST entries that says whether the
      represented subtree contains any empty ranges.
      
      Also, make a simple mod to the penalty function to discourage empty ranges
      from getting pushed into subtrees without any.  This needs more work, and
      the picksplit function should be taught about it too, but that code can be
      improved without causing an on-disk compatibility break; so we'll leave it
      for another day.
      
      Since we're breaking on-disk compatibility of range values anyway, I took
      the opportunity to reorganize the range flags bits; the unused
      RANGE_xB_NULL bits are now adjacent, which might open the door for using
      them in some other way later.
      
      In passing, remove the GiST range opclass entry for <>, which doesn't seem
      like it can really be indexed usefully.
      
      Alexander Korotkov, with some editorializing by Tom
      c66e4f13
    • Peter Eisentraut's avatar
      Add pg_upgrade test suite · 08da2d28
      Peter Eisentraut authored
      It runs the regression tests, runs pg_upgrade on the populated
      database, and compares the before and after dumps.  While not actually
      a cross-version upgrade, this does detect omissions and bugs in the
      involved tools from time to time.  It's also possible to do a
      cross-version upgrade by manually supplying parameters.
      08da2d28
    • Tom Lane's avatar
      Use the proper macro to convert a bool to a Datum. · 8722a1a0
      Tom Lane authored
      The original coding was
      	var->value = (Datum) state;
      which is bogus, and then in commit 2f0f7b4b
      it was "corrected" to
      	var->value = PointerGetDatum(state);
      which is a faithful translation but still wrong.
      
      This seems purely cosmetic, though, so no need for a back-patch.
      
      Pavel Stehule
      8722a1a0
    • Andrew Dunstan's avatar
      Fix MSVC builds broken by xsubpp change · 4a901813
      Andrew Dunstan authored
      4a901813
    • Bruce Momjian's avatar
      Move pg_dump memory routines into pg_dumpmem.c/h and restore common.c · 9a7d49d1
      Bruce Momjian authored
      with its original functions.  The previous function migration would
      cause too many difficulties in back-patching.
      9a7d49d1
  4. 26 Nov, 2011 8 commits
  5. 25 Nov, 2011 7 commits
    • Alvaro Herrera's avatar
      Fix unvalidated check constraints on domains, too · f717f4bc
      Alvaro Herrera authored
      Same bug as reported by Thom Brown for check constraints on tables: the
      constraint must be dumped separately from the domain, otherwise it is
      restored before the data and thus prevents potentially-violating data
      from being loaded in the first place.
      
      Per Dean Rasheed
      f717f4bc
    • Bruce Momjian's avatar
      Modify pg_dump to use error-free memory allocation macros. This avoids · 3c0afde1
      Bruce Momjian authored
      ignoring errors and call-site error checking.
      3c0afde1
    • Bruce Momjian's avatar
      Allow pg_upgrade to upgrade clusters that use exclusion contraints by · 35e27226
      Bruce Momjian authored
      fixing pg_dump to properly preserve such indexes.
      
      Backpatch to 9.1 and 9.0 (where the bug was introduced).
      35e27226
    • Alvaro Herrera's avatar
      Improve logging of autovacuum I/O activity · 9d3b5024
      Alvaro Herrera authored
      This adds some I/O stats to the logging of autovacuum (when the
      operation takes long enough that log_autovacuum_min_duration causes it
      to be logged), so that it is easier to tune.  Notably, it adds buffer
      I/O counts (hits, misses, dirtied) and read and write rate.
      
      Authors: Greg Smith and Noah Misch
      9d3b5024
    • Tom Lane's avatar
      Fix erroneous replay of GIN_UPDATE_META_PAGE WAL records. · 877b67c3
      Tom Lane authored
      A simple thinko in ginRedoUpdateMetapage, namely failing to increment a
      loop counter, led to inserting records into the last pending-list page in
      the wrong order (the opposite of that intended).  So far as I can tell,
      this would not upset the code that eventually flushes pending items into
      the main part of the GIN index.  But it did break the code that searched
      the pending list for matches, resulting in transient failure to find
      matching entries during index lookups, as illustrated in bug #6307 from
      Maksym Boguk.
      
      Back-patch to 8.4 where the incorrect code was introduced.
      877b67c3
    • Robert Haas's avatar
      Move "hot" members of PGPROC into a separate PGXACT array. · ed0b409d
      Robert Haas authored
      This speeds up snapshot-taking and reduces ProcArrayLock contention.
      Also, the PGPROC (and PGXACT) structures used by two-phase commit are
      now allocated as part of the main array, rather than in a separate
      array, and we keep ProcArray sorted in pointer order.  These changes
      are intended to minimize the number of cache lines that must be pulled
      in to take a snapshot, and testing shows a substantial increase in
      performance on both read and write workloads at high concurrencies.
      
      Pavan Deolasee, Heikki Linnakangas, Robert Haas
      ed0b409d
    • Tom Lane's avatar
      Fix unsupported options in CREATE TABLE ... AS EXECUTE. · 9ed439a9
      Tom Lane authored
      The WITH [NO] DATA option was not supported, nor the ability to specify
      replacement column names; the former limitation wasn't even documented, as
      per recent complaint from Naoya Anzai.  Fix by moving the responsibility
      for supporting these options into the executor.  It actually takes less
      code this way ...
      
      catversion bump due to change in representation of IntoClause, which might
      affect stored rules.
      9ed439a9
  6. 24 Nov, 2011 1 commit