1. 09 Jul, 2013 1 commit
    • Peter Eisentraut's avatar
      Fix bool abuse · 7888c612
      Peter Eisentraut authored
      path_encode's "closed" argument used to take three values: TRUE, FALSE,
      or -1, while being of type bool.  Replace that with a three-valued enum
      for more clarity.
      7888c612
  2. 08 Jul, 2013 5 commits
    • Alvaro Herrera's avatar
      Fix mention of htup.h in pageinspect docs · 12fbe2b3
      Alvaro Herrera authored
      It's htup_details.h now.
      
      Jeff Janes
      12fbe2b3
    • Heikki Linnakangas's avatar
      Fix Windows build. · f489470f
      Heikki Linnakangas authored
      Was broken by my xloginsert scaling patch. XLogCtl global variable needs
      to be initialized in each process, as it's not inherited by fork() on
      Windows.
      f489470f
    • Heikki Linnakangas's avatar
      Fix pg_test_fsync, broken by xloginsert scaling patch. · b5ed2199
      Heikki Linnakangas authored
      I didn't realize that ALIGNOF_XLOG_BUFFER was used in pg_test_fsync.
      b5ed2199
    • Heikki Linnakangas's avatar
      Improve scalability of WAL insertions. · 9a20a9b2
      Heikki Linnakangas authored
      This patch replaces WALInsertLock with a number of WAL insertion slots,
      allowing multiple backends to insert WAL records to the WAL buffers
      concurrently. This is particularly useful for parallel loading large amounts
      of data on a system with many CPUs.
      
      This has one user-visible change: switching to a new WAL segment with
      pg_switch_xlog() now fills the remaining unused portion of the segment with
      zeros. This potentially adds some overhead, but it has been a very common
      practice by DBA's to clear the "tail" of the segment with an external
      pg_clearxlogtail utility anyway, to make the WAL files compress better.
      With this patch, it's no longer necessary to do that.
      
      This patch adds a new GUC, xloginsert_slots, to tune the number of WAL
      insertion slots. Performance testing suggests that the default, 8, works
      pretty well for all kinds of worklods, but I left the GUC in place to allow
      others with different hardware to test that easily. We might want to remove
      that before release.
      
      Reviewed by Andres Freund.
      9a20a9b2
    • Tom Lane's avatar
      Fix planning of parameterized appendrel paths with expensive join quals. · 5372275b
      Tom Lane authored
      The code in set_append_rel_pathlist() for building parameterized paths
      for append relations (inheritance and UNION ALL combinations) supposed
      that the cheapest regular path for a child relation would still be cheapest
      when reparameterized.  Which might not be the case, particularly if the
      added join conditions are expensive to compute, as in a recent example from
      Jeff Janes.  Fix it to compare child path costs *after* reparameterizing.
      We can short-circuit that if the cheapest pre-existing path is already
      parameterized correctly, which seems likely to be true often enough to be
      worth checking for.
      
      Back-patch to 9.2 where parameterized paths were introduced.
      5372275b
  3. 07 Jul, 2013 6 commits
  4. 06 Jul, 2013 4 commits
    • Jeff Davis's avatar
      Handle posix_fallocate() errors. · 5b571bb8
      Jeff Davis authored
      On some platforms, posix_fallocate() is available but may still return
      EINVAL if the underlying filesystem does not support it.  So, in case
      of an error, fall through to the alternate implementation that just
      writes zeros.
      
      Per buildfarm failure and analysis by Tom Lane.
      5b571bb8
    • Michael Meskes's avatar
      43c3aab1
    • Tom Lane's avatar
      Rename a function to avoid naming conflict in parallel regression tests. · 0cd78780
      Tom Lane authored
      Commit 31a89185 added some tests in
      plpgsql.sql that used a function rather unthinkingly named "foo()".
      However, rangefuncs.sql has some much older tests that create a function
      of that name, and since these test scripts run in parallel, there is a
      chance of failures if the timing is just right.  Use another name to
      avoid that.  Per buildfarm (failure seen today on "hamerkop", but
      probably it's happened before and not been noticed).
      0cd78780
    • Peter Eisentraut's avatar
      PL/Python: Convert numeric to Decimal · 7919398b
      Peter Eisentraut authored
      The old implementation converted PostgreSQL numeric to Python float,
      which was always considered a shortcoming.  Now numeric is converted to
      the Python Decimal object.  Either the external cdecimal module or the
      standard library decimal module are supported.
      
      From: Szymon Guz <mabewlun@gmail.com>
      From: Ronan Dunklau <rdunklau@gmail.com>
      Reviewed-by: default avatarSteve Singer <steve@ssinger.info>
      7919398b
  5. 05 Jul, 2013 7 commits
  6. 04 Jul, 2013 7 commits
  7. 03 Jul, 2013 10 commits
    • Andrew Dunstan's avatar
      Install all a Makefile's extension controls, not just the first. · 82b01026
      Andrew Dunstan authored
      Bug introduced by commit 6697aa2b and
      reported by Robert Haas.
      82b01026
    • Fujii Masao's avatar
      Get rid of pg_class.reltoastidxid. · 2ef085d0
      Fujii Masao authored
      Treat TOAST index just the same as normal one and get the OID
      of TOAST index from pg_index but not pg_class.reltoastidxid.
      This change allows us to handle multiple TOAST indexes, and
      which is required infrastructure for upcoming
      REINDEX CONCURRENTLY feature.
      
      Patch by Michael Paquier, reviewed by Andres Freund and me.
      2ef085d0
    • Bruce Momjian's avatar
      pg_buffercache: document column meanings · f71939cd
      Bruce Momjian authored
      Improve documentation for usagecount and relforknumber.
      Backpatch to 9.3.
      Suggestion from Satoshi Nagayasu
      f71939cd
    • Robert Haas's avatar
      Revert "Hopefully-portable regression tests for CREATE/ALTER/DROP COLLATION." · f33c53ec
      Robert Haas authored
      This reverts commit 26364530.
      
      The buildfarm is sad.
      f33c53ec
    • Robert Haas's avatar
      Hopefully-portable regression tests for CREATE/ALTER/DROP COLLATION. · 26364530
      Robert Haas authored
      The collate.linux.utf8 test covers some of the same territory, but
      isn't portable and so probably does not get run often, or on
      non-Linux platforms.  If this approach turns out to be sufficiently
      portable, we may want to look at trimming the redundant tests out
      of that file to avoid duplication.
      
      Robins Tharakan, reviewed by Michael Paquier and Fabien Coelho,
      with further changes and cleanup by me.
      26364530
    • Tom Lane's avatar
      Fix handling of auto-updatable views on inherited tables. · 5530a826
      Tom Lane authored
      An INSERT into such a view should work just like an INSERT into its base
      table, ie the insertion should go directly into that table ... not be
      duplicated into each child table, as was happening before, per bug #8275
      from Rushabh Lathia.  On the other hand, the current behavior for
      UPDATE/DELETE seems reasonable: the update/delete traverses the child
      tables, or not, depending on whether the view specifies ONLY or not.
      Add some regression tests covering this area.
      
      Dean Rasheed
      5530a826
    • Alvaro Herrera's avatar
      Unbreak postmaster restart-after-crash sequence · 620935ad
      Alvaro Herrera authored
      In patch 82233ce7, AbortStartTime wasn't being reset appropriately
      after the restart sequence, causing subsequent iterations through
      ServerLoop to malfunction.
      620935ad
    • Robert Haas's avatar
      Regression tests for LISTEN/NOTIFY/UNLISTEN/pg_notify. · 00a7767f
      Robert Haas authored
      Robins Tharakan, reviewed by Szymon Guz
      00a7767f
    • Robert Haas's avatar
      Additional regression tests for CREATE OPERATOR. · ada3e776
      Robert Haas authored
      Robins Tharakan, reviewed by Szymon Guz
      ada3e776
    • Noah Misch's avatar
      Expose object name error fields in PL/pgSQL. · 7cd9b137
      Noah Misch authored
      Specifically, permit attaching them to the error in RAISE and retrieving
      them from a caught error in GET STACKED DIAGNOSTICS.  RAISE enforces
      nothing about the content of the fields; for its purposes, they are just
      additional string fields.  Consequently, clarify in the protocol and
      libpq documentation that the usual relationships between error fields,
      like a schema name appearing wherever a table name appears, are not
      universal.  This freedom has other applications; consider a FDW
      propagating an error from an RDBMS having no schema support.
      
      Back-patch to 9.3, where core support for the error fields was
      introduced.  This prevents the confusion of having a release where libpq
      exposes the fields and PL/pgSQL does not.
      
      Pavel Stehule, lexical revisions by Noah Misch.
      7cd9b137