1. 16 Apr, 2014 16 commits
    • Bruce Momjian's avatar
      libpq: use pgsocket for socket values, for portability · 5d305d86
      Bruce Momjian authored
      Previously, 'int' was used for socket values in libpq, but socket values
      are unsigned on Windows.  This is a style correction.
      
      Initial patch and previous PGINVALID_SOCKET initial patch by Joel
      Jacobson, modified by me
      
      Report from PVS-Studio
      5d305d86
    • Bruce Momjian's avatar
      doc: move min_recovery_apply_delay into the right section · be5f7fff
      Bruce Momjian authored
      Patch by Fujii Masao
      be5f7fff
    • Bruce Momjian's avatar
      psql: update --help output for unaligned mode params · 8c349ba5
      Bruce Momjian authored
      Previously it wasn't clear from --help that -F, -R, -z, -0 only
      controlled psql unaligned output.
      
      Initial patch from Jov <amutu@amutu.com>, adjustments by me
      8c349ba5
    • Alvaro Herrera's avatar
      Fix object identities for text search objects · 83ab8e32
      Alvaro Herrera authored
      We were neglecting to schema-qualify them.
      
      Backpatch to 9.3, where object identities were introduced as a concept
      by commit f8348ea3.
      83ab8e32
    • Tom Lane's avatar
      Fix contrib/postgres_fdw's remote-estimate representation of array Params. · 5b68d816
      Tom Lane authored
      We were emitting "(SELECT null::typename)", which is usually interpreted
      as a scalar subselect, but not so much in the context "x = ANY(...)".
      This led to remote-side parsing failures when remote_estimate is enabled.
      A quick and ugly fix is to stick in an extra cast step,
      "((SELECT null::typename)::typename)".  The cast will be thrown away as
      redundant by parse analysis, but not before it's done its job of making
      sure the grammar sees the ANY argument as an a_expr rather than a
      select_with_parens.  Per an example from Hannu Krosing.
      5b68d816
    • Bruce Momjian's avatar
      docs: make max_wal_senders higher to handle disconnects · 9c533465
      Bruce Momjian authored
      Document abrupt streaming client disconnection might leave slots in use,
      so max_wal_senders should be slightly higher than needed to allow for
      immediate reconnection.
      
      Per mention by Magnus
      9c533465
    • Tom Lane's avatar
      Update oidjoins regression test for 9.4. · cbb5e23b
      Tom Lane authored
      Now that we're pretty much feature-frozen, it's time to update the checks
      on system catalog foreign-key references.
      
      (It looks like we missed doing this altogether for 9.3.  Sigh.)
      cbb5e23b
    • Andrew Dunstan's avatar
      Attempt to get plpython regression tests working again for MSVC builds. · ef158312
      Andrew Dunstan authored
      This has probably been broken for quite a long time. Buildfarm member
      currawong's current results suggest that it's been broken since 9.1, so
      backpatch this to that branch.
      
      This only supports Python 2 - I will handle Python 3 separately, but
      this is a fairly simple fix.
      ef158312
    • Bruce Momjian's avatar
      pg_upgrade: remove redundant include files · 95cb9172
      Bruce Momjian authored
      The files were already included by pg_upgrade.h.
      95cb9172
    • Tom Lane's avatar
      Use AF_UNSPEC not PF_UNSPEC in getaddrinfo calls. · cad4fe64
      Tom Lane authored
      According to the Single Unix Spec and assorted man pages, you're supposed
      to use the constants named AF_xxx when setting ai_family for a getaddrinfo
      call.  In a few places we were using PF_xxx instead.  Use of PF_xxx
      appears to be an ancient BSD convention that was not adopted by later
      standardization.  On BSD and most later Unixen, it doesn't matter much
      because those constants have equivalent values anyway; but nonetheless
      this code is not per spec.
      
      In the same vein, replace PF_INET by AF_INET in one socket() call, which
      wasn't even consistent with the other socket() call in the same function
      let alone the remainder of our code.
      
      Per investigation of a Cygwin trouble report from Marco Atzeri.  It's
      probably a long shot that this will fix his issue, but it's wrong in
      any case.
      cad4fe64
    • Magnus Hagander's avatar
      Fix timeout in LDAP lookup of libpq connection parameters · 585bca39
      Magnus Hagander authored
      Bind attempts to an LDAP server should time out after two seconds,
      allowing additional lines in the service control file to be parsed
      (which provide a fall back to a secondary LDAP server or default options).
      The existing code failed to enforce that timeout during TCP connect,
      resulting in a hang far longer than two seconds if the LDAP server
      does not respond.
      
      Laurenz Albe
      585bca39
    • Robert Haas's avatar
      Add to_regprocedure() and to_regoperator(). · dfc0219f
      Robert Haas authored
      These are natural complements to the functions added by commit
      0886fc6a, but they weren't included
      in the original patch for some reason.  Add them.
      
      Patch by me, per a complaint by Tom Lane.  Review by Tatsuo
      Ishii.
      dfc0219f
    • Robert Haas's avatar
      Try to fix spurious DSM failures on Windows. · 1a81daab
      Robert Haas authored
      Apparently, Windows can sometimes return an error code even when the
      operation actually worked just fine.  Rearrange the order of checks
      according to what appear to be the best practices in this area.
      
      Amit Kapila
      1a81daab
    • Bruce Momjian's avatar
      doc: fix json_extract_path_text() typo by adding jsonb · ed4a2626
      Bruce Momjian authored
      Report from rudolf <stu3.1@eq.cz>
      ed4a2626
    • Bruce Momjian's avatar
      check socket creation errors against PGINVALID_SOCKET · 41809346
      Bruce Momjian authored
      Previously, in some places, socket creation errors were checked for
      negative values, which is not true for Windows because sockets are
      unsigned.  This masked socket creation errors on Windows.
      
      Backpatch through 9.0.  8.4 doesn't have the infrastructure to fix this.
      41809346
    • Heikki Linnakangas's avatar
      Use correctly-sized buffer when zero-filling a WAL file. · 848b9f05
      Heikki Linnakangas authored
      I mixed up BLCKSZ and XLOG_BLCKSZ when I changed the way the buffer is
      allocated a couple of weeks ago. With the default settings, they are both
      8k, but they can be changed at compile-time.
      848b9f05
  2. 15 Apr, 2014 6 commits
  3. 14 Apr, 2014 10 commits
  4. 13 Apr, 2014 7 commits
    • Tom Lane's avatar
      Improve some O(N^2) behavior in window function evaluation. · e0c91a7f
      Tom Lane authored
      Repositioning the tuplestore seek pointer in window_gettupleslot() turns
      out to be a very significant expense when the window frame is sizable and
      the frame end can move.  To fix, introduce a tuplestore function for
      skipping an arbitrary number of tuples in one call, parallel to the one we
      introduced for tuplesort objects in commit 8d65da1f.  This reduces the cost
      of window_gettupleslot() to O(1) if the tuplestore has not spilled to disk.
      As in the previous commit, I didn't try to do any real optimization of
      tuplestore_skiptuples for the case where the tuplestore has spilled to
      disk.  There is probably no practical way to get the cost to less than O(N)
      anyway, but perhaps someone can think of something later.
      
      Also fix PersistHoldablePortal() to make use of this API now that we have
      it.
      
      Based on a suggestion by Dean Rasheed, though this turns out not to look
      much like his patch.
      e0c91a7f
    • Tom Lane's avatar
      Suppress compiler warning in new contrib/pg_trgm code. · 46a60abf
      Tom Lane authored
      MSVC doesn't seem to like it when a constant initializer loses
      precision upon being assigned.
      
      David Rowley
      46a60abf
    • Stephen Frost's avatar
      Make a dedicated AlterTblSpcStmt production · 5f508b6d
      Stephen Frost authored
      Given that ALTER TABLESPACE has moved on from just existing for
      general purpose rename/owner changes, it deserves its own top-level
      production in the grammar.  This also cleans up the RenameStmt to
      only ever be used for actual RENAMEs again- it really wasn't
      appropriate to hide non-RENAME productions under there.
      
      Noted by Alvaro.
      5f508b6d
    • Stephen Frost's avatar
      Add ANALYZE into regression tests · b3e65937
      Stephen Frost authored
      Looks like we can end up with different plans happening on the
      buildfarm, which breaks the regression tests when we include
      EXPLAIN output (which is done in the regression tests for
      updatable security views, to ensure that the user-defined
      function isn't pushed down to a level where it could view the
      rows before the security quals are applied).
      
      This adds in ANALYZE to hopefully make the plans consistent.
      The ANALYZE ends up changing the original plan too, so the
      update looks bigger than it really is.  The new plan looks
      perfectly valid, of course.
      b3e65937
    • Tom Lane's avatar
      Provide moving-aggregate support for boolean aggregates. · d95425c8
      Tom Lane authored
      David Rowley and Florian Pflug, reviewed by Dean Rasheed
      d95425c8
    • Stephen Frost's avatar
      Make security barrier views automatically updatable · 842faa71
      Stephen Frost authored
      Views which are marked as security_barrier must have their quals
      applied before any user-defined quals are called, to prevent
      user-defined functions from being able to see rows which the
      security barrier view is intended to prevent them from seeing.
      
      Remove the restriction on security barrier views being automatically
      updatable by adding a new securityQuals list to the RTE structure
      which keeps track of the quals from security barrier views at each
      level, independently of the user-supplied quals.  When RTEs are
      later discovered which have securityQuals populated, they are turned
      into subquery RTEs which are marked as security_barrier to prevent
      any user-supplied quals being pushed down (modulo LEAKPROOF quals).
      
      Dean Rasheed, reviewed by Craig Ringer, Simon Riggs, KaiGai Kohei
      842faa71
    • Tom Lane's avatar
      Provide moving-aggregate support for a bunch of numerical aggregates. · 9d229f39
      Tom Lane authored
      First installment of the promised moving-aggregate support in built-in
      aggregates: count(), sum(), avg(), stddev() and variance() for
      assorted datatypes, though not for float4/float8.
      
      In passing, remove a 2001-vintage kluge in interval_accum(): interval
      array elements have been properly aligned since around 2003, but
      nobody remembered to take out this workaround.  Also, fix a thinko
      in the opr_sanity tests for moving-aggregate catalog entries.
      
      David Rowley and Florian Pflug, reviewed by Dean Rasheed
      9d229f39
  5. 12 Apr, 2014 1 commit
    • Tom Lane's avatar
      Create infrastructure for moving-aggregate optimization. · a9d9acbf
      Tom Lane authored
      Until now, when executing an aggregate function as a window function
      within a window with moving frame start (that is, any frame start mode
      except UNBOUNDED PRECEDING), we had to recalculate the aggregate from
      scratch each time the frame head moved.  This patch allows an aggregate
      definition to include an alternate "moving aggregate" implementation
      that includes an inverse transition function for removing rows from
      the aggregate's running state.  As long as this can be done successfully,
      runtime is proportional to the total number of input rows, rather than
      to the number of input rows times the average frame length.
      
      This commit includes the core infrastructure, documentation, and regression
      tests using user-defined aggregates.  Follow-on commits will update some
      of the built-in aggregates to use this feature.
      
      David Rowley and Florian Pflug, reviewed by Dean Rasheed; additional
      hacking by me
      a9d9acbf