1. 09 Apr, 2015 7 commits
  2. 08 Apr, 2015 8 commits
  3. 07 Apr, 2015 5 commits
    • Tom Lane's avatar
      Fix assorted inconsistent function declarations. · 393de3a0
      Tom Lane authored
      While gcc doesn't complain if you declare a function "static" and then
      define it not-static, other compilers do; and in any case the code is
      highly misleading this way.  Add the missing "static" keywords to a
      couple of recent patches.  Per buildfarm member pademelon.
      393de3a0
    • Heikki Linnakangas's avatar
      Fix reporting of missing or invalid command line arguments in pg_rewind. · ee075fcb
      Heikki Linnakangas authored
      pg_fatal never returns, so a multi-line message cannot be printed by
      calling it twice.
      
      Michael Paquier and Fujii Masao
      ee075fcb
    • Alvaro Herrera's avatar
      Remove variable shadowing · 4e17e32f
      Alvaro Herrera authored
      Commit a2e35b53 should have removed the variable declaration in the
      inner block, but didn't.  As a result, the returned address might end up
      not being what was intended.
      4e17e32f
    • Heikki Linnakangas's avatar
      Fix process startup in pg_rewind. · 8a06c36a
      Heikki Linnakangas authored
      Don't allow pg_rewind to run as root on Unix platforms, as any new or
      replaced files in the data directory would become owned by root. On Windows,
      it can run under a user that has Administrator rights, but a restricted
      token needs to be used. This is the same we do e.g. in pg_resetxlog.
      
      Also, add missing set_pglocale_pgservice() call, to fix localization.
      
      Michael Paquier and Fujii Masao
      8a06c36a
    • Simon Riggs's avatar
      Fix spelling of author's name · 1cdf4d0b
      Simon Riggs authored
      1cdf4d0b
  4. 06 Apr, 2015 3 commits
    • Alvaro Herrera's avatar
      pg_event_trigger_dropped_objects: add is_temp column · e9a077ca
      Alvaro Herrera authored
      It now also reports temporary objects dropped that are local to the
      backend.  Previously we weren't reporting any temp objects because it
      was deemed unnecessary; but as it turns out, it is necessary if we want
      to keep close track of DDL command execution inside one session.  Temp
      objects are reported as living in schema pg_temp, which works because
      such a schema-qualification always refers to the temp objects of the
      current session.
      e9a077ca
    • Alvaro Herrera's avatar
      Fix object identities for pg_conversion objects · 70dc2db7
      Alvaro Herrera authored
      This was already fixed in 0d906798, but I failed to update the
      array-formatted case.  This is not backpatched, since this only affects
      the code path introduced by commit a6762014.
      70dc2db7
    • Fujii Masao's avatar
      Fix typo in libpq.sgml. · 5f6a9d05
      Fujii Masao authored
      Back-patch to all supported versions.
      
      Michael Paquier
      5f6a9d05
  5. 05 Apr, 2015 5 commits
    • Tom Lane's avatar
      Suppress clang's unhelpful gripes about -pthread switch being unused. · 73b416b2
      Tom Lane authored
      Considering the number of cases in which "unused" command line arguments
      are silently ignored by compilers, it's fairly astonishing that anybody
      thought this warning was useful; it's certainly nothing but an annoyance
      when building Postgres.  One such case is that neither gcc nor clang
      complain about unrecognized -Wno-foo switches, making it more difficult
      to figure out whether the switch does anything than one could wish.
      
      Back-patch to 9.3, which is as far back as the patch applies conveniently
      (we'd have to back-patch PGAC_PROG_CC_VAR_OPT to go further, and it doesn't
      seem worth that).
      73b416b2
    • Simon Riggs's avatar
      Remove extraneous > · e8fde1f6
      Simon Riggs authored
      e8fde1f6
    • Simon Riggs's avatar
      Add new test files for lock level patch · 35ecc244
      Simon Riggs authored
      35ecc244
    • Andrew Dunstan's avatar
      Enable float8-byval as the default for 64 bit MSVC builds · cf376a4a
      Andrew Dunstan authored
      This is a long-standing inconsistency that was probably just missed when
      we got 64 bit MSVC builds. This brings the platform into line with all
      other systems.
      cf376a4a
    • Simon Riggs's avatar
      Reduce lock levels of some trigger DDL and add FKs · 0ef0396a
      Simon Riggs authored
      Reduce lock levels to ShareRowExclusive for the following SQL
       CREATE TRIGGER (but not DROP or ALTER)
       ALTER TABLE ENABLE TRIGGER
       ALTER TABLE DISABLE TRIGGER
       ALTER TABLE … ADD CONSTRAINT FOREIGN KEY
      
      Original work by Simon Riggs, extracted and refreshed by Andreas Karlsson
      New test cases added by Andreas Karlsson
      Reviewed by Noah Misch, Andres Freund, Michael Paquier and Simon Riggs
      0ef0396a
  6. 04 Apr, 2015 3 commits
    • Tom Lane's avatar
      Fix incorrect matching of subexpressions in outer-join plan nodes. · ca680533
      Tom Lane authored
      Previously we would re-use input subexpressions in all expression trees
      attached to a Join plan node.  However, if it's an outer join and the
      subexpression appears in the nullable-side input, this is potentially
      incorrect for apparently-matching subexpressions that came from above
      the outer join (ie, targetlist and qpqual expressions), because the
      executor will treat the subexpression value as NULL when maybe it should
      not be.
      
      The case is fairly hard to hit because (a) you need a non-strict
      subexpression (else NULL is correct), and (b) we don't usually compute
      expressions in the outputs of non-toplevel plan nodes.  But we might do
      so if the expressions are sort keys for a mergejoin, for example.
      
      Probably in the long run we should make a more explicit distinction between
      Vars appearing above and below an outer join, but that will be a major
      planner redesign and not at all back-patchable.  For the moment, just hack
      set_join_references so that it will not match any non-Var expressions
      coming from nullable inputs to expressions that came from above the join.
      (This is somewhat overkill, in that a strict expression could still be
      matched, but it doesn't seem worth the effort to check that.)
      
      Per report from Qingqing Zhou.  The added regression test case is based
      on his example.
      
      This has been broken for a very long time, so back-patch to all active
      branches.
      ca680533
    • Tom Lane's avatar
      Fix TAP tests to use only standard command-line argument ordering. · c67a86f7
      Tom Lane authored
      Some of the TAP tests were supposing that PG programs would accept switches
      after non-switch arguments on their command lines.  While GNU getopt_long()
      does allow that, our own implementation does not, and it's nowhere
      suggested in our documentation that such cases should work.  Adjust the
      tests to use only the documented syntax.
      
      Back-patch to 9.4, since without this the TAP tests fail when run with
      src/port's getopt_long() implementation.
      
      Michael Paquier
      c67a86f7
    • Robert Haas's avatar
      Fix numeric abbreviation for --disable-float8-byval. · 368b7c60
      Robert Haas authored
      When committing abd94bca, I tried to make
      it decide what kind of abbreviation to use based only on SIZEOF_DATUM,
      without regard to USE_FLOAT8_BYVAL.  That attempt was a few bricks short
      of a load, so try to fix it, and add a comment explaining what we're
      about.
      
      Patch by me; review (but not a full endorsement) by Andrew Gierth.
      368b7c60
  7. 03 Apr, 2015 9 commits
    • Tom Lane's avatar
      Remove unnecessary variables in _hash_splitbucket(). · b7e1652d
      Tom Lane authored
      Commit ed9cc2b5 made it unnecessary to pass
      start_nblkno to _hash_splitbucket(), and for that matter unnecessary to
      have the internal nblkno variable either.  My compiler didn't complain
      about that, but some did.  I also rearranged the use of oblkno a bit to
      make that case more parallel.
      
      Report and initial patch by Petr Jelinek, rearranged a bit by me.
      Back-patch to all branches, like the previous patch.
      b7e1652d
    • Alvaro Herrera's avatar
      Transform ALTER TABLE/SET TYPE/USING expr during parse analysis · 9550e834
      Alvaro Herrera authored
      This lets later stages have access to the transformed expression; in
      particular it allows DDL-deparsing code during event triggers to pass
      the transformed expression to ruleutils.c, so that the complete command
      can be deparsed.
      
      This shuffles the timing of the transform calls a bit: previously,
      nothing was transformed during parse analysis, and only the
      RELKIND_RELATION case was being handled during execution.  After this
      patch, all expressions are transformed during parse analysis (including
      those for relkinds other than RELATION), and the error for other
      relation kinds is thrown only during execution.  So we do more work than
      before to reject some bogus cases.  That seems acceptable.
      9550e834
    • Alvaro Herrera's avatar
      Add log_min_autovacuum_duration per-table option · 4ff695b1
      Alvaro Herrera authored
      This is useful to control autovacuum log volume, for situations where
      monitoring only a set of tables is necessary.
      
      Author: Michael Paquier
      Reviewed by: A team led by Naoya Anzai (also including Akira Kurosawa,
      Taiki Kondo, Huong Dangminh), Fujii Masao.
      4ff695b1
    • Alvaro Herrera's avatar
      Have autovacuum workers listen to SIGHUP, too · a75fb9b3
      Alvaro Herrera authored
      They have historically ignored it, but it's been said to be useful at
      times to change their settings mid-flight.
      
      Author: Michael Paquier
      a75fb9b3
    • Fujii Masao's avatar
      Fix error handling of XLogReaderAllocate in case of OOM · 6e4bf4ec
      Fujii Masao authored
      Similarly to previous fix 9b8d4782, commit 2c03216d has switched
      XLogReaderAllocate() to use a set of palloc calls instead of malloc,
      causing any callers of this function to fail with an error instead of
      receiving a NULL pointer in case of out-of-memory error. Fix this by
      using palloc_extended with MCXT_ALLOC_NO_OOM that will safely return
      NULL in case of an OOM.
      
      Michael Paquier, slightly modified by me.
      6e4bf4ec
    • Robert Haas's avatar
      Change the way we decide whether to give up on abbreviated text keys. · f85155e1
      Robert Haas authored
      Be more aggressive about aborting early on if it looks like it's not
      helping, but be less aggressive about aborting later on, since it's
      more expensive at that point, and also since we're currently aborting
      in some cases where abbreviation can still deliver a substantial win.
      
      Peter Geoghegan. Extensive testing by Tomas Vondra.
      f85155e1
    • Fujii Masao's avatar
      Rework handling of OOM when allocating record buffer in XLOG reader. · 9b8d4782
      Fujii Masao authored
      Commit 2c03216d changed allocate_recordbuf() so that it uses a palloc to
      allocate the read buffer and fails immediately when an out-of-memory error
      shows up, even though its callers still expect that NULL is returned in that
      case. This bug is fixed making allocate_recordbuf() use a palloc_extended
      with MCXT_ALLOC_NO_OOM flag and return NULL in OOM case.
      
      Michael Paquier
      9b8d4782
    • Fujii Masao's avatar
      Add palloc_extended for frontend and backend. · 8c8a8862
      Fujii Masao authored
      This commit also adds pg_malloc_extended for frontend. These interfaces
      can be used to control at a lower level memory allocation using an interface
      similar to MemoryContextAllocExtended. For example, the callers can specify
      MCXT_ALLOC_NO_OOM if they want to suppress the "out of memory" error while
      allocating the memory and handle a NULL return value.
      
      Michael Paquier, reviewed by me.
      8c8a8862
    • Tom Lane's avatar
      Fix rare startup failure induced by MVCC-catalog-scans patch. · bc49d932
      Tom Lane authored
      While a new backend nominally participates in sinval signaling starting
      from the SharedInvalBackendInit call near the top of InitPostgres, it
      cannot recognize sinval messages for unshared catalogs of its database
      until it has set up MyDatabaseId.  This is not problematic for the catcache
      or relcache, which by definition won't have loaded any data from or about
      such catalogs before that point.  However, commit 568d4138
      introduced a mechanism for re-using MVCC snapshots for catalog scans, and
      made invalidation of those depend on recognizing relevant sinval messages.
      So it's possible to establish a catalog snapshot to read pg_authid and
      pg_database, then before we set MyDatabaseId, receive sinval messages that
      should result in invalidating that snapshot --- but do not, because we
      don't realize they are for our database.  This mechanism explains the
      intermittent buildfarm failures we've seen since commit 31eae602.
      That commit was not itself at fault, but it introduced a new regression
      test that does reconnections concurrently with the "vacuum full pg_am"
      command in vacuum.sql.  This allowed the pre-existing error to be exposed,
      given just the right timing, because we'd fail to update our information
      about how to access pg_am.  In principle any VACUUM FULL on a system
      catalog could have created a similar hazard for concurrent incoming
      connections.  Perhaps there are more subtle failure cases as well.
      
      To fix, force invalidation of the catalog snapshot as soon as we've
      set MyDatabaseId.
      
      Back-patch to 9.4 where the error was introduced.
      bc49d932