1. 04 Feb, 2016 1 commit
    • Tom Lane's avatar
      In pg_dump, ensure that view triggers are processed after view rules. · 0ed707e9
      Tom Lane authored
      If a view is split into CREATE TABLE + CREATE RULE to break a circular
      dependency, then any triggers on the view must be dumped/reloaded after
      the CREATE RULE; else the backend may reject the CREATE TRIGGER because
      it's the wrong type of trigger for a plain table.  This works all right
      in plain dump/restore because of pg_dump's sorting heuristic that places
      triggers after rules.  However, when using parallel restore, the ordering
      must be enforced by a dependency --- and we didn't have one.
      
      Fixing this is a mere matter of adding an addObjectDependency() call,
      except that we need to be able to find all the triggers belonging to the
      view relation, and there was no easy way to do that.  Add fields to
      pg_dump's TableInfo struct to remember where the associated TriggerInfo
      struct(s) are.
      
      Per bug report from Dennis Kögel.  The failure can be exhibited at least
      as far back as 9.1, so back-patch to all supported branches.
      0ed707e9
  2. 03 Feb, 2016 11 commits
    • Robert Haas's avatar
      Extend sortsupport for text to more opclasses. · b47b4dbf
      Robert Haas authored
      Have varlena.c expose an interface that allows the char(n), bytea, and
      bpchar types to piggyback on a now-generalized SortSupport for text.
      This pushes a little more knowledge of the bpchar/char(n) type into
      varlena.c than might be preferred, but that seems like the approach
      that creates least friction.  Also speed things up for index builds
      that use text_pattern_ops or varchar_pattern_ops.
      
      This patch does quite a bit of renaming, but it seems likely to be
      worth it, so as to avoid future confusion about the fact that this code
      is now more generally used than the old names might have suggested.
      
      Peter Geoghegan, reviewed by Álvaro Herrera and Andreas Karlsson,
      with small tweaks by me.
      b47b4dbf
    • Tom Lane's avatar
      Add hstore_to_jsonb() and hstore_to_jsonb_loose() to hstore documentation. · 24a26c9f
      Tom Lane authored
      These were never documented anywhere user-visible.  Tut tut.
      24a26c9f
    • Robert Haas's avatar
      Allow parallel custom and foreign scans. · 69d34408
      Robert Haas authored
      This patch doesn't put the new infrastructure to use anywhere, and
      indeed it's not clear how it could ever be used for something like
      postgres_fdw which has to send an SQL query and wait for a reply,
      but there might be FDWs or custom scan providers that are CPU-bound,
      so let's give them a way to join club parallel.
      
      KaiGai Kohei, reviewed by me.
      69d34408
    • Peter Eisentraut's avatar
      doc: Fix stand-alone INSTALL file build · 25e44518
      Peter Eisentraut authored
      Commit 7d17e683 introduced an external
      link.
      25e44518
    • Tom Lane's avatar
      Make hstore_to_jsonb_loose match hstore_to_json_loose on what's a number. · 41d2c081
      Tom Lane authored
      Commit e09996ff removed some ad-hoc code in hstore_to_json_loose
      that determined whether an hstore value string looked like a number,
      in favor of calling the JSON parser's is-it-a-number code.  However,
      it neglected the fact that the exact same code appeared in
      hstore_to_jsonb_loose.
      
      This is not a bug, exactly, because the requirements on the two functions
      are not the same: hstore_to_json_loose must accept only syntactically legal
      JSON numbers as numbers, or it will produce invalid JSON output, as per bug
      #12070 which spawned the prior commit.  But hstore_to_jsonb_loose could
      accept anything that numeric_in will eat, other than Inf and NaN.
      
      Nonetheless it seems surprising and arbitrary that the two functions don't
      use the same rules for what is a number versus what is a string; especially
      since they did use the same rules before the aforesaid commit.  For one
      thing, that means that doing hstore_to_json_loose and then casting to jsonb
      can produce results different from doing just hstore_to_jsonb_loose.
      
      Hence, change hstore_to_jsonb_loose's logic to match hstore_to_json_loose,
      ie, hstore values are treated as numbers when they match the JSON syntax
      for numbers.
      
      No back-patch, since this is more in the nature of a definitional change
      than a bug fix.
      41d2c081
    • Robert Haas's avatar
      Code review for commit dc203dc3. · 52b63649
      Robert Haas authored
      Remove duplicate assignment.  This part by Ashutosh Bapat.
      
      Remove now-obsolete comment.  This part by me, although the pending
      join pushdown patch does something similar, and for the same reason:
      there's no reason to keep two lists of the things in the fdw_private
      structure that have to be kept in sync with each other.
      52b63649
    • Robert Haas's avatar
      Remove CustomPath's TextOutCustomPath method. · f2305d40
      Robert Haas authored
      You can't really do anything useful with this in the form it currently
      exists; among other problems, there's no way to reread whatever
      information might be produced when the path is output.  Work is
      underway to replace this with a more useful and more general system of
      extensible nodes, but let's start by getting rid of this bit.
      
      Extracted from a larger patch by KaiGai Kohei.
      f2305d40
    • Robert Haas's avatar
      postgres_fdw: Allow fetch_size to be set per-table or per-server. · dc203dc3
      Robert Haas authored
      The default fetch size of 100 rows might not be right in every
      environment, so allow users to configure it.
      
      Corey Huinker, reviewed by Kyotaro Horiguchi, Andres Freund, and me.
      dc203dc3
    • Tom Lane's avatar
      Fix IsValidJsonNumber() to notice trailing non-alphanumeric garbage. · e6ecc93a
      Tom Lane authored
      Commit e09996ff was one brick shy of a load: it didn't insist
      that the detected JSON number be the whole of the supplied string.
      This allowed inputs such as "2016-01-01" to be misdetected as valid JSON
      numbers.  Per bug #13906 from Dmitry Ryabov.
      
      In passing, be more wary of zero-length input (I'm not sure this can
      happen given current callers, but better safe than sorry), and do some
      minor cosmetic cleanup.
      e6ecc93a
    • Peter Eisentraut's avatar
      Add support for systemd service notifications · 7d17e683
      Peter Eisentraut authored
      Insert sd_notify() calls at server start and stop for integration with
      systemd.  This allows the use of systemd service units of type "notify",
      which greatly simplifies the systemd configuration.
      Reviewed-by: default avatarPavel Stěhule <pavel.stehule@gmail.com>
      7d17e683
    • Peter Eisentraut's avatar
      Improve error reporting when location specified by postgres -D does not exist · ac7238dc
      Peter Eisentraut authored
      Previously, the first error seen would be that postgresql.conf does not
      exist.  But for the case where the whole directory does not exist, give
      an error message about that, together with a hint for how to create one.
      ac7238dc
  3. 02 Feb, 2016 7 commits
    • Tom Lane's avatar
      Remove printQueryOpt.quote field. · 2808a2e0
      Tom Lane authored
      This field was included in the original definition of the printQueryOpt
      struct in commit a45195a1, but it was not used anywhere in that
      commit, nor since then.  Spotted by Dickson S. Guedes.
      2808a2e0
    • Alvaro Herrera's avatar
      Don't test for system columns on join relations · 3cb5867b
      Alvaro Herrera authored
      create_foreignscan_plan needs to know whether any system columns are
      requested from a relation (this flag is needed by ForeignNext during
      execution).  However, for join relations this is a pointless test,
      because it's not possible to request system columns from them, so
      remove the check.
      
      Author: Etsuro Fujita
      Discussion: http://www.postgresql.org/message-id/56AA0FC5.9000207@lab.ntt.co.jp
      Reviewed-by: David Rowley, Robert Haas
      3cb5867b
    • Tom Lane's avatar
      Remove unnecessary "implementation of FOO operator" DESCR() entries. · 2ad83fff
      Tom Lane authored
      Apparently at least one committer hasn't gotten the word that these do not
      need to be maintained by hand, since initdb will create them automatically.
      Noted while fixing bug #13905.
      
      No catversion bump since the post-initdb state is exactly the same either
      way.  I don't see a need for back-patch, either.
      2ad83fff
    • Tom Lane's avatar
      Fix pg_description entries for jsonb_to_record() and jsonb_to_recordset(). · a4627e8f
      Tom Lane authored
      All the other jsonb function descriptions refer to the arguments as being
      "jsonb", but these two said "json".  Make it consistent.  Per bug #13905
      from Petru Florin Mihancea.
      
      No catversion bump --- we can't force one in the back branches, and this
      isn't very critical anyway.
      a4627e8f
    • Magnus Hagander's avatar
      Fix typo in comment · 23f3cc36
      Magnus Hagander authored
      23f3cc36
    • Teodor Sigaev's avatar
      Fix lossy KNN GiST when ordering operator returns non-float8 value. · f25d07d9
      Teodor Sigaev authored
      KNN GiST with recheck flag should return to executor the same type as ordering
      operator, GiST detects this type by looking to return type of function which
      implements ordering operator. But occasionally detecting code works after
      replacing ordering operator function to distance support function.
      Distance support function always returns float8, so, detecting code get float8
      instead of actual return type of ordering operator.
      
      Built-in opclasses don't have ordering operator which doesn't return
      non-float8 value, so, tests are impossible here, at least now.
      
      Backpatch to 9.5 where lozzy KNN was introduced.
      
      Author: Alexander Korotkov
      Report by: Artur Zakirov
      f25d07d9
    • Robert Haas's avatar
      Make all built-in lwlock tranche IDs fixed. · 7191ce8b
      Robert Haas authored
      This makes the values more stable, which seems like a good thing for
      anybody who needs to look at at them.
      
      Alexander Korotkov and Amit Kapila
      7191ce8b
  4. 01 Feb, 2016 6 commits
  5. 31 Jan, 2016 1 commit
  6. 30 Jan, 2016 2 commits
    • Peter Eisentraut's avatar
      Fix whitespace · 9217bf39
      Peter Eisentraut authored
      9217bf39
    • Robert Haas's avatar
      postgres_fdw: More preliminary refactoring for upcoming join pushdown. · cc592c48
      Robert Haas authored
      The code that generates a complete SQL query for a given foreign relation
      was repeated in two places, and they didn't quite agree: the EXPLAIN case
      left out the locking clause.  Centralize the code so we get the same
      behavior everywhere, and adjust calling conventions and which functions
      are static vs. extern accordingly .  Centralize the code so we get the same
      behavior everywhere, and adjust calling conventions and which functions
      are static vs. extern accordingly.
      
      Ashutosh Bapat, reviewed and slightly adjusted by me.
      cc592c48
  7. 29 Jan, 2016 5 commits
    • Robert Haas's avatar
      Migrate replication slot I/O locks into a separate tranche. · 2251179e
      Robert Haas authored
      This is following in a long train of similar changes and for the same
      reasons - see b319356f and
      fe702a7b inter alia.
      
      Author: Amit Kapila
      Reviewed-by: Alexander Korotkov, Robert Haas
      2251179e
    • Robert Haas's avatar
      Migrate PGPROC's backendLock into PGPROC itself, using a new tranche. · b319356f
      Robert Haas authored
      Previously, each PGPROC's backendLock was part of the main tranche,
      and the PGPROC just contained a pointer.  Now, the actual LWLock is
      part of the PGPROC.
      
      As with previous, similar patches, this makes it significantly easier
      to identify these lwlocks in LWLOCK_STATS or Trace_lwlocks output
      and improves modularity.
      
      Author: Ildus Kurbangaliev
      Reviewed-by: Amit Kapila, Robert Haas
      b319356f
    • Alvaro Herrera's avatar
      pgbench: refactor handling of stats tracking · b6037664
      Alvaro Herrera authored
      This doesn't add any functionality but just shuffles things around so
      that it can be reused and improved later.
      
      Author: Fabien Coelho
      Reviewed-by: Michael Paquier, Álvaro Herrera
      b6037664
    • Tom Lane's avatar
      Fix incorrect pattern-match processing in psql's \det command. · 7e224704
      Tom Lane authored
      listForeignTables' invocation of processSQLNamePattern did not match up
      with the other ones that handle potentially-schema-qualified names; it
      failed to make use of pg_table_is_visible() and also passed the name
      arguments in the wrong order.  Bug seems to have been aboriginal in commit
      0d692a0d.  It accidentally sort of worked as long as you didn't
      inquire too closely into the behavior, although the silliness was later
      exposed by inconsistencies in the test queries added by 59efda3e
      (which I probably should have questioned at the time, but didn't).
      
      Per bug #13899 from Reece Hart.  Patch by Reece Hart and Tom Lane.
      Back-patch to all affected branches.
      7e224704
    • Fujii Masao's avatar
      Fix syntax descriptions for replication commands in logicaldecoding.sgml · c35c4ec4
      Fujii Masao authored
      Patch-by: Oleksandr Shulgin
      Reviewed-by: Craig Ringer and Fujii Masao
      Backpatch-through: 9.4 where logical decoding was introduced
      c35c4ec4
  8. 28 Jan, 2016 7 commits
    • Robert Haas's avatar
      postgres_fdw: Refactor deparsing code for locking clauses. · b88ef201
      Robert Haas authored
      The upcoming patch to allow join pushdown in postgres_fdw needs to use
      this code multiple times, which requires moving it to deparse.c.  That
      seems like a good idea anyway, so do that now both on general principle
      and to simplify the future patch.
      
      Inspired by a patch by Shigeru Hanada and Ashutosh Bapat, but I did
      it a little differently than what that patch did.
      b88ef201
    • Robert Haas's avatar
      Only try to push down foreign joins if the user mapping OIDs match. · fbe5a3fb
      Robert Haas authored
      Previously, the foreign join pushdown infrastructure left the question
      of security entirely up to individual FDWs, but it would be easy for
      a foreign data wrapper to inadvertently open up subtle security holes
      that way.  So, make it the core code's job to determine which user
      mapping OID is relevant, and don't attempt join pushdown unless it's
      the same for all relevant relations.
      
      Per a suggestion from Tom Lane.  Shigeru Hanada and Ashutosh Bapat,
      reviewed by Etsuro Fujita and KaiGai Kohei, with some further
      changes by me.
      fbe5a3fb
    • Robert Haas's avatar
      Add missing quotation mark. · 2f6b041f
      Robert Haas authored
      This fix accidentally got left out of the previous commit.
      2f6b041f
    • Robert Haas's avatar
      Avoid multiple foreign server connections when all use same user mapping. · 96198d94
      Robert Haas authored
      Previously, postgres_fdw's connection cache was keyed by user OID and
      server OID, but this can lead to multiple connections when it's not
      really necessary.  In particular, if all relevant users are mapped to
      the public user mapping, then their connection options are certainly
      the same, so one connection can be used for all of them.
      
      While we're cleaning things up here, drop the "server" argument to
      GetConnection(), which isn't really needed.  This saves a few cycles
      because callers no longer have to look this up; the function itself
      does, but only when establishing a new connection, not when reusing
      an existing one.
      
      Ashutosh Bapat, with a few small changes by me.
      96198d94
    • Robert Haas's avatar
      Add [NO]BYPASSRLS options to CREATE USER and ALTER USER docs. · 80db1ca2
      Robert Haas authored
      Patch-by: Filip Rembiałkowski
      Reviewed-by: Robert Haas
      Backpatch-through: 9.5
      80db1ca2
    • Alvaro Herrera's avatar
      Fix spi_worker mention in bgworker documentation · e3748385
      Alvaro Herrera authored
      The documentation mentioned contrib/ but the module was moved to
      src/test/modules/ by commit 22dfd116 of 9.5 era.
      
      Problem pointed out by Dickson Guedes in bug #13896
      Backpatch-to: 9.5.
      e3748385
    • Fujii Masao's avatar
      Fix typos in comments and doc · 62e2ddd4
      Fujii Masao authored
      overriden -> overridden
      
      The misspelling in create_extension.sgml was introduced in b67aaf21,
      so no need to backpatch.
      62e2ddd4