1. 15 Feb, 2017 11 commits
  2. 14 Feb, 2017 7 commits
  3. 13 Feb, 2017 3 commits
  4. 12 Feb, 2017 1 commit
    • Noah Misch's avatar
      Ignore tablespace ACLs when ignoring schema ACLs. · f30f34e5
      Noah Misch authored
      The ALTER TABLE ALTER TYPE implementation can issue DROP INDEX and
      CREATE INDEX to refit existing indexes for the new column type.  Since
      this CREATE INDEX is an implementation detail of an index alteration,
      the ensuing DefineIndex() should skip ACL checks specific to index
      creation.  It already skips the namespace ACL check.  Make it skip the
      tablespace ACL check, too.  Back-patch to 9.2 (all supported versions).
      
      Reviewed by Tom Lane.
      f30f34e5
  5. 10 Feb, 2017 4 commits
    • Peter Eisentraut's avatar
      Add CREATE SEQUENCE AS <data type> clause · 2ea5b06c
      Peter Eisentraut authored
      This stores a data type, required to be an integer type, with the
      sequence.  The sequences min and max values default to the range
      supported by the type, and they cannot be set to values exceeding that
      range.  The internal implementation of the sequence is not affected.
      
      Change the serial types to create sequences of the appropriate type.
      This makes sure that the min and max values of the sequence for a serial
      column match the range of values supported by the table column.  So the
      sequence can no longer overflow the table column.
      
      This also makes monitoring for sequence exhaustion/wraparound easier,
      which currently requires various contortions to cross-reference the
      sequences with the table columns they are used with.
      
      This commit also effectively reverts the pg_sequence column reordering
      in f3b421da, because the new seqtypid
      column allows us to fill the hole in the struct and create a more
      natural overall column ordering.
      Reviewed-by: default avatarSteve Singer <steve@ssinger.info>
      Reviewed-by: default avatarMichael Paquier <michael.paquier@gmail.com>
      2ea5b06c
    • Simon Riggs's avatar
      Update ddl.sgml for declarative partitioning syntax · 9401883a
      Simon Riggs authored
      Add a section titled "Partitioned Tables" to describe what are
      partitioned tables, partition, their similarities with inheritance.
      The existing section on inheritance is retained for clarity.
      
      Then add examples to the partitioning chapter that show syntax for
      partitioned tables.  In fact they implement the same partitioning
      scheme that is currently shown using inheritance.
      
      Amit Langote, with additional details and explanatory text by me
      9401883a
    • Simon Riggs's avatar
      Add keywords for partitioning · 61c9a9da
      Simon Riggs authored
      Amit Langote
      61c9a9da
    • Simon Riggs's avatar
      Improve CREATE TABLE documentation of partitioning · c1369fe2
      Simon Riggs authored
      Amit Langote, with corrections by me
      c1369fe2
  6. 09 Feb, 2017 10 commits
    • Robert Haas's avatar
      Rename command line options for ongoing xlog -> wal conversion. · 62e8b387
      Robert Haas authored
      initdb and pg_basebackup now have a --waldir option rather --xlogdir,
      and pg_basebackup now has --wal-method rather than --xlog-method.
      62e8b387
    • Robert Haas's avatar
      Rename dtrace probes for ongoing xlog -> wal conversion. · 3f01fd4c
      Robert Haas authored
      xlog-switch becomes wal-switch, and xlog-insert becomes wal-insert.
      3f01fd4c
    • Robert Haas's avatar
      Rename user-facing tools with "xlog" in the name to say "wal". · 85c11324
      Robert Haas authored
      This means pg_receivexlog because pg_receivewal, pg_resetxlog
      becomes pg_resetwal, and pg_xlogdump becomes pg_waldump.
      85c11324
    • Tom Lane's avatar
      Blind try to fix portability issue in commit 8f93bd85 et al. · 5d2adf0f
      Tom Lane authored
      The S/390 members of the buildfarm are showing failures indicating
      that they're having trouble with the rint() calls I added yesterday.
      There's no good reason for that, and I wonder if it is a compiler bug
      similar to the one we worked around in d9476b83.  Try to fix it using
      the same method as before, namely to store the result of rint() back
      into a "double" variable rather than immediately converting to int64.
      (This isn't entirely waving a dead chicken, since on machines with
      wider-than-double float registers, the extra store forces a width
      conversion.  I don't know if S/390 is like that, but it seems worth
      trying.)
      
      In passing, merge duplicate ereport() calls in float8_timestamptz().
      
      Per buildfarm.
      5d2adf0f
    • Robert Haas's avatar
      Remove all references to "xlog" from SQL-callable functions in pg_proc. · 806091c9
      Robert Haas authored
      Commit f82ec32a renamed the pg_xlog
      directory to pg_wal.  To make things consistent, and because "xlog" is
      terrible terminology for either "transaction log" or "write-ahead log"
      rename all SQL-callable functions that contain "xlog" in the name to
      instead contain "wal".  (Note that this may pose an upgrade hazard for
      some users.)
      
      Similarly, rename the xlog_position argument of the functions that
      create slots to be called wal_position.
      
      Discussion: https://www.postgresql.org/message-id/CA+Tgmob=YmA=H3DbW1YuOXnFVgBheRmyDkWcD9M8f=5bGWYEoQ@mail.gmail.com
      806091c9
    • Robert Haas's avatar
      simplehash: Additional tweaks to make specifying an allocator work. · 72257f95
      Robert Haas authored
      Even if we don't emit definitions for SH_ALLOCATE and SH_FREE, we
      still need prototypes.  The user can't define them before including
      simplehash.h because SH_TYPE isn't available yet.
      
      For the allocator to be able to access private_data, it needs to
      become an argument to SH_CREATE.  Previously we relied on callers
      to set that after returning from SH_CREATE, but SH_CREATE calls
      SH_ALLOCATE before returning.
      
      Dilip Kumar, reviewed by me.
      72257f95
    • Robert Haas's avatar
      Fix race condition in ConditionVariablePrepareToSleep. · 3f3d60d3
      Robert Haas authored
      Thomas Munro
      3f3d60d3
    • Robert Haas's avatar
      pageinspect: Fix hash_bitmap_info not to read the underlying page. · fc8219dc
      Robert Haas authored
      It did that to verify that the page was an overflow page rather than
      anything else, but that means that checking the status of all the
      overflow bits requires reading the entire index.  So don't do that.
      The new code validates that the page is not a primary bucket page
      or bitmap page by looking at the metapage, so that using this on
      large numbers of pages can be reasonably efficient.
      
      Ashutosh Sharma, per a complaint from me, and with further
      modifications by me.
      fc8219dc
    • Tom Lane's avatar
      Allow index AMs to cache data across aminsert calls within a SQL command. · 86d911ec
      Tom Lane authored
      It's always been possible for index AMs to cache data across successive
      amgettuple calls within a single SQL command: the IndexScanDesc.opaque
      field is meant for precisely that.  However, no comparable facility
      exists for amortizing setup work across successive aminsert calls.
      This patch adds such a feature and teaches GIN, GIST, and BRIN to use it
      to amortize catalog lookups they'd previously been doing on every call.
      (The other standard index AMs keep everything they need in the relcache,
      so there's little to improve there.)
      
      For GIN, the overall improvement in a statement that inserts many rows
      can be as much as 10%, though it seems a bit less for the other two.
      In addition, this makes a really significant difference in runtime
      for CLOBBER_CACHE_ALWAYS tests, since in those builds the repeated
      catalog lookups are vastly more expensive.
      
      The reason this has been hard up to now is that the aminsert function is
      not passed any useful place to cache per-statement data.  What I chose to
      do is to add suitable fields to struct IndexInfo and pass that to aminsert.
      That's not widening the index AM API very much because IndexInfo is already
      within the ken of ambuild; in fact, by passing the same info to aminsert
      as to ambuild, this is really removing an inconsistency in the AM API.
      
      Discussion: https://postgr.es/m/27568.1486508680@sss.pgh.pa.us
      86d911ec
    • Andres Freund's avatar
      Add explicit ORDER BY to a few tests that exercise hash-join code. · 7c5d8c16
      Andres Freund authored
      A proposed patch, also by Thomas and in the same thread, would change
      the output order of these.  Independent of the follow-up patches
      getting committed, nailing down the order in these specific tests at
      worst seems harmless.
      
      Author: Thomas Munro
      Discussion: https://postgr.es/m/CAEepm=1D4-tP7j7UAgT_j4ZX2j4Ehe1qgZQWFKBMb8F76UW5Rg@mail.gmail.com
      7c5d8c16
  7. 08 Feb, 2017 4 commits
    • Tom Lane's avatar
      Fix roundoff problems in float8_timestamptz() and make_interval(). · 8f93bd85
      Tom Lane authored
      When converting a float value to integer microseconds, we should be careful
      to round the value to the nearest integer, typically with rint(); simply
      assigning to an int64 variable will truncate, causing apparently off-by-one
      values in cases that should work.  Most places in the datetime code got
      this right, but not these two.
      
      float8_timestamptz() is new as of commit e511d878 (9.6).  Previous
      versions effectively depended on interval_mul() to do roundoff correctly,
      which it does, so this fixes an accuracy regression in 9.6.
      
      The problem in make_interval() dates to its introduction in 9.4.  Aside
      from being careful to round not truncate, let's incorporate the hours and
      minutes inputs into the result with exact integer arithmetic, rather than
      risk introducing roundoff error where there need not have been any.
      
      float8_timestamptz() problem reported by Erik Nordström, though this is
      not his proposed patch.  make_interval() problem found by me.
      
      Discussion: https://postgr.es/m/CAHuQZDS76jTYk3LydPbKpNfw9KbACmD=49dC4BrzHcfPv6yA1A@mail.gmail.com
      8f93bd85
    • Robert Haas's avatar
      Add WAL consistency checking facility. · a507b869
      Robert Haas authored
      When the new GUC wal_consistency_checking is set to a non-empty value,
      it triggers recording of additional full-page images, which are
      compared on the standby against the results of applying the WAL record
      (without regard to those full-page images).  Allowable differences
      such as hints are masked out, and the resulting pages are compared;
      any difference results in a FATAL error on the standby.
      
      Kuntal Ghosh, based on earlier patches by Michael Paquier and Heikki
      Linnakangas.  Extensively reviewed and revised by Michael Paquier and
      by me, with additional reviews and comments from Amit Kapila, Álvaro
      Herrera, Simon Riggs, and Peter Eisentraut.
      a507b869
    • Peter Eisentraut's avatar
    • Peter Eisentraut's avatar
      doc: Some improvements in CREATE SUBSCRIPTION ref page · e35bbea7
      Peter Eisentraut authored
      Add link to description of libpq connection strings.  Add link to
      explanation of replication access control.  This currently points to the
      description of streaming replication access control, which is currently
      the same as for logical replication, but that might be refined later.
      Also remove plain-text passwords from the examples, to not encourage
      that dubious practice.
      
      based on suggestions from Simon Riggs
      e35bbea7