1. 29 Mar, 2014 3 commits
    • Noah Misch's avatar
      Secure Unix-domain sockets of "make check" temporary clusters. · 31c6e54e
      Noah Misch authored
      Any OS user able to access the socket can connect as the bootstrap
      superuser and in turn execute arbitrary code as the OS user running the
      test.  Protect against that by placing the socket in the temporary data
      directory, which has mode 0700 thanks to initdb.  Back-patch to 8.4 (all
      supported versions).  The hazard remains wherever the temporary cluster
      accepts TCP connections, notably on Windows.
      
      Attempts to run "make check" from a directory with a long name will now
      fail.  An alternative not sharing that problem was to place the socket
      in a subdirectory of /tmp, but that is only secure if /tmp is sticky.
      The PG_REGRESS_SOCK_DIR environment variable is available as a
      workaround when testing from long directory paths.
      
      As a convenient side effect, this lets testing proceed smoothly in
      builds that override DEFAULT_PGSOCKET_DIR.  Popular non-default values
      like /var/run/postgresql are often unwritable to the build user.
      
      Security: CVE-2014-0067
      31c6e54e
    • Noah Misch's avatar
      Document platform-specificity of unix_socket_permissions. · fbd32b0c
      Noah Misch authored
      Back-patch to 8.4 (all supported versions).
      fbd32b0c
    • Noah Misch's avatar
  2. 28 Mar, 2014 4 commits
    • Tom Lane's avatar
      Improve regression test for pg_filenode_relation(). · 9613a1d9
      Tom Lane authored
      Make it print the details in case there's a failure.
      
      Andres Freund, slightly modified by me
      9613a1d9
    • Bruce Momjian's avatar
      Adjust getpwuid() fix commit to display errno string on failure · e1827012
      Bruce Momjian authored
      This adjusts patch 613c6d26.
      e1827012
    • Tom Lane's avatar
      Fix EquivalenceClass processing for nested append relations. · a87c7291
      Tom Lane authored
      The original coding of EquivalenceClasses didn't foresee that appendrel
      child relations might themselves be appendrels; but this is possible for
      example when a UNION ALL subquery scans a table with inheritance children.
      The oversight led to failure to optimize ordering-related issues very well
      for the grandchild tables.  After some false starts involving explicitly
      flattening the appendrel representation, we found that this could be fixed
      easily by removing a few implicit assumptions about appendrel parent rels
      not being children themselves.
      
      Kyotaro Horiguchi and Tom Lane, reviewed by Noah Misch
      a87c7291
    • Tom Lane's avatar
      Un-break peer authentication. · b777be0d
      Tom Lane authored
      Commit 613c6d26 sloppily replaced a
      lookup of the UID obtained from getpeereid() with a lookup of the
      server's own user name, thus totally destroying peer authentication.
      Revert.  Per report from Christoph Berg.
      
      In passing, make sure get_user_name() zeroes *errstr on success on
      Windows as well as non-Windows.  I don't think any callers actually
      depend on this ATM, but we should be consistent across platforms.
      b777be0d
  3. 27 Mar, 2014 4 commits
  4. 26 Mar, 2014 10 commits
  5. 25 Mar, 2014 3 commits
  6. 24 Mar, 2014 8 commits
  7. 23 Mar, 2014 6 commits
    • Andrew Dunstan's avatar
      Fix mis-spelling in jsonb docs. · ca07cd59
      Andrew Dunstan authored
      Per Thom Brown.
      ca07cd59
    • Andrew Dunstan's avatar
      Introduce jsonb, a structured format for storing json. · d9134d0a
      Andrew Dunstan authored
      The new format accepts exactly the same data as the json type. However, it is
      stored in a format that does not require reparsing the orgiginal text in order
      to process it, making it much more suitable for indexing and other operations.
      Insignificant whitespace is discarded, and the order of object keys is not
      preserved. Neither are duplicate object keys kept - the later value for a given
      key is the only one stored.
      
      The new type has all the functions and operators that the json type has,
      with the exception of the json generation functions (to_json, json_agg etc.)
      and with identical semantics. In addition, there are operator classes for
      hash and btree indexing, and two classes for GIN indexing, that have no
      equivalent in the json type.
      
      This feature grew out of previous work by Oleg Bartunov and Teodor Sigaev, which
      was intended to provide similar facilities to a nested hstore type, but which
      in the end proved to have some significant compatibility issues.
      
      Authors: Oleg Bartunov,  Teodor Sigaev, Peter Geoghegan and Andrew Dunstan.
      Review: Andres Freund
      d9134d0a
    • Noah Misch's avatar
      Don't test xmin/xmax columns of a postgres_fdw foreign table. · b2b2491b
      Noah Misch authored
      Their values are unspecified and system-dependent.
      
      Per buildfarm member kouprey.
      b2b2491b
    • Noah Misch's avatar
      Offer triggers on foreign tables. · 7cbe57c3
      Noah Misch authored
      This covers all the SQL-standard trigger types supported for regular
      tables; it does not cover constraint triggers.  The approach for
      acquiring the old row mirrors that for view INSTEAD OF triggers.  For
      AFTER ROW triggers, we spool the foreign tuples to a tuplestore.
      
      This changes the FDW API contract; when deciding which columns to
      populate in the slot returned from data modification callbacks, writable
      FDWs will need to check for AFTER ROW triggers in addition to checking
      for a RETURNING clause.
      
      In support of the feature addition, refactor the TriggerFlags bits and
      the assembly of old tuples in ModifyTable.
      
      Ronan Dunklau, reviewed by KaiGai Kohei; some additional hacking by me.
      7cbe57c3
    • Noah Misch's avatar
    • Noah Misch's avatar
      Address ccvalid/ccnoinherit in TupleDesc support functions. · c31305de
      Noah Misch authored
      equalTupleDescs() neglected both of these ConstrCheck fields, and
      CreateTupleDescCopyConstr() neglected ccnoinherit.  At this time, the
      only known behavior defect resulting from these omissions is constraint
      exclusion disregarding a CHECK constraint validated by an ALTER TABLE
      VALIDATE CONSTRAINT statement issued earlier in the same transaction.
      Back-patch to 9.2, where these fields were introduced.
      c31305de
  8. 21 Mar, 2014 2 commits
    • Heikki Linnakangas's avatar
      Fix thinkos in GinLogicValue enum. · 4c0e97c2
      Heikki Linnakangas authored
      It was incorrectly declared as global variable, not an enum type, and
      the comments for GIN_FALSE and GIN_TRUE were backwards.
      4c0e97c2
    • Heikki Linnakangas's avatar
      Fix build with LWLOCK_STATS or dtrace. · dea6ed2c
      Heikki Linnakangas authored
      Also fix the name of the dtrace probe for LWLockAcquireOrWait(). The
      function was renamed from LWLockWaitUntilFree to LWLockAqcuireOrWait, but
      the dtrace probe was neglected.
      
      Pointed out by Andres Freund and the buildfarm.
      dea6ed2c