1. 17 8月, 2013 3 次提交
  2. 16 8月, 2013 4 次提交
  3. 15 8月, 2013 5 次提交
    • P
      Treat timeline IDs as unsigned in replication parser · 229fb58d
      Peter Eisentraut 提交于
      Timeline IDs are unsigned ints everywhere, except the replication parser
      treated them as signed ints.
      229fb58d
    • P
      Improve error message when view is not updatable · 32f7c0ae
      Peter Eisentraut 提交于
      Avoid using the term "updatable" in confusing ways.  Suggest a trigger
      first, before a rule.
      32f7c0ae
    • T
      Remove ph_may_need from PlaceHolderInfo, with attendant simplifications. · 1b1d3d92
      Tom Lane 提交于
      The planner logic that attempted to make a preliminary estimate of the
      ph_needed levels for PlaceHolderVars seems to be completely broken by
      lateral references.  Fortunately, the potential join order optimization
      that this code supported seems to be of relatively little value in
      practice; so let's just get rid of it rather than trying to fix it.
      
      Getting rid of this allows fairly substantial simplifications in
      placeholder.c, too, so planning in such cases should be a bit faster.
      
      Issue noted while pursuing bugs reported by Jeremy Evans and Antonin
      Houska, though this doesn't in itself fix either of their reported cases.
      What this does do is prevent an Assert crash in the kind of query
      illustrated by the added regression test.  (I'm not sure that the plan for
      that query is stable enough across platforms to be usable as a regression
      test output ... but we'll soon find out from the buildfarm.)
      
      Back-patch to 9.3.  The problem case can't arise without LATERAL, so
      no need to touch older branches.
      1b1d3d92
    • B
      docs: document TRIM "comma" syntax · 5368a23e
      Bruce Momjian 提交于
      This syntax is supported by the parser, but is non-standard.
      
      _Not_ backpatched to 9.3 in case we change our minds.
      5368a23e
    • K
      Remove Assert that matview is not in system schema from REFRESH. · e2cd3686
      Kevin Grittner 提交于
      We don't want to prevent an extension which creates a matview from
      being installed in pg_catalog.
      
      Issue was raised by Hitoshi Harada.
      Backpatched to 9.3.
      e2cd3686
  4. 14 8月, 2013 3 次提交
    • P
      Update Emacs configuration · 5e3e8e4d
      Peter Eisentraut 提交于
      Update emacs.samples with new configuration snippets that match pgindent
      et al. formatting more accurately and follow Emacs Lisp best practices
      better.
      
      Add .dir-locals.el with a subset of that configuration for casual
      editing and viewing.
      Reviewed-by: NDimitri Fontaine <dimitri@2ndQuadrant.fr>
      Reviewed-by: NNoah Misch <noah@leadboat.com>
      5e3e8e4d
    • T
      Emit a log message if output is about to be redirected away from stderr. · 3d5282c6
      Tom Lane 提交于
      We've seen multiple cases of people looking at the postmaster's original
      stderr output to try to diagnose problems, not realizing/remembering that
      their logging configuration is set up to send log messages somewhere else.
      This seems particularly likely to happen in prepackaged distributions,
      since many packagers patch the code to change the factory-standard logging
      configuration to something more in line with their platform conventions.
      
      In hopes of reducing confusion, emit a LOG message about this at the point
      in startup where we are about to switch log output away from the original
      stderr, providing a pointer to where to look instead.  This message will
      appear as the last thing in the original stderr output.  (We might later
      also try to emit such link messages when logging parameters are changed
      on-the-fly; but that case seems to be both noticeably harder to do nicely,
      and much less frequently a problem in practice.)
      
      Per discussion, back-patch to 9.3 but not further.
      3d5282c6
    • B
      9.3 release notes: move foreign table item · b52cd9d0
      Bruce Momjian 提交于
      Move item about foreign data wrappers supporting inserts/updates/deletes
      to object manipulation.
      
      From Etsuro Fujita
      b52cd9d0
  5. 13 8月, 2013 1 次提交
  6. 11 8月, 2013 1 次提交
  7. 10 8月, 2013 2 次提交
  8. 09 8月, 2013 2 次提交
  9. 08 8月, 2013 2 次提交
    • P
      Message style improvements · 9d775d88
      Peter Eisentraut 提交于
      9d775d88
    • F
      Fix assertion failure by an immediate shutdown. · 91c3613d
      Fujii Masao 提交于
      In PM_WAIT_DEAD_END state, checkpointer process must be dead already.
      But an immediate shutdown could make postmaster's state machine
      transition to PM_WAIT_DEAD_END state even if checkpointer process is
      still running,  and which caused assertion failure. This bug was introduced
      in commit 457d6cf0.
      
      This patch ensures that postmaster's state machine doesn't transition to
      PM_WAIT_DEAD_END state in an immediate shutdown while checkpointer
      process is running.
      91c3613d
  10. 06 8月, 2013 2 次提交
    • B
      pgtest: allow passing parameters, e.g. -s/--silent · f347f268
      Bruce Momjian 提交于
      Previously only -n was recognized.
      f347f268
    • T
      Simplify query_planner's API by having it return the top-level RelOptInfo. · 3ced8837
      Tom Lane 提交于
      Formerly, query_planner returned one or possibly two Paths for the topmost
      join relation, so that grouping_planner didn't see the join RelOptInfo
      (at least not directly; it didn't have any hesitation about examining
      cheapest_path->parent, though).  However, correct selection of the Paths
      involved a significant amount of coupling between query_planner and
      grouping_planner, a problem which has gotten worse over time.  It seems
      best to give up on this API choice and instead return the topmost
      RelOptInfo explicitly.  Then grouping_planner can pull out the Paths it
      wants from the rel's path list.  In this way we can remove all knowledge
      of grouping behaviors from query_planner.
      
      The only real benefit of the old way is that in the case of an empty
      FROM clause, we never made any RelOptInfos at all, just a Path.  Now
      we have to gin up a dummy RelOptInfo to represent the empty FROM clause.
      That's not a very big deal though.
      
      While at it, simplify query_planner's API a bit more by having the caller
      set up root->tuple_fraction and root->limit_tuples, rather than passing
      those values as separate parameters.  Since query_planner no longer does
      anything with either value, requiring it to fill the PlannerInfo fields
      seemed pretty arbitrary.
      
      This patch just rearranges code; it doesn't (intentionally) change any
      behaviors.  Followup patches will do more interesting things.
      3ced8837
  11. 05 8月, 2013 1 次提交
    • K
      Various cleanups for REFRESH MATERIALIZED VIEW CONCURRENTLY. · 841c29c8
      Kevin Grittner 提交于
      Open and lock each index before checking definition in RMVC.  The
      ExclusiveLock on the related table is not viewed as sufficient to
      ensure that no changes are made to the index definition, and
      invalidation messages from other backends might have been missed.
      Additionally, use RelationGetIndexExpressions() and check for NIL
      rather than doing our own loop.
      
      Protect against redefinition of tid and rowvar operators in RMVC.
      While working on this, noticed that the fixes for bugs found during
      the CF made the UPDATE statement useless, since no rows could
      qualify for that treatment any more.  Ripping out code to support
      the UPDATE statement simplified the operator cleanups.
      
      Change slightly confusing local field name.
      
      Use meaningful alias names on queries in refresh_by_match_merge().
      
      Per concerns of raised by Andres Freund and comments and
      suggestions from Noah Misch.  Some additional issues remain, which
      will be addressed separately.
      841c29c8
  12. 04 8月, 2013 1 次提交
    • T
      Make sure float4in/float8in accept all standard spellings of "infinity". · 221e92f6
      Tom Lane 提交于
      The C99 and POSIX standards require strtod() to accept all these spellings
      (case-insensitively): "inf", "+inf", "-inf", "infinity", "+infinity",
      "-infinity".  However, pre-C99 systems might accept only some or none of
      these, and apparently Windows still doesn't accept "inf".  To avoid
      surprising cross-platform behavioral differences, manually check for each
      of these spellings if strtod() fails.  We were previously handling just
      "infinity" and "-infinity" that way, but since C99 is most of the world
      now, it seems likely that applications are expecting all these spellings
      to work.
      
      Per bug #8355 from Basil Peace.  It turns out this fix won't actually
      resolve his problem, because Python isn't being this careful; but that
      doesn't mean we shouldn't be.
      221e92f6
  13. 03 8月, 2013 2 次提交
    • A
      Fix old visibility bug in HeapTupleSatisfiesDirty · 706f9dd9
      Alvaro Herrera 提交于
      If a tuple is locked but not updated by a concurrent transaction,
      HeapTupleSatisfiesDirty would return that transaction's Xid in xmax,
      causing callers to wait on it, when it is not necessary (in fact, if the
      other transaction had used a multixact instead of a plain Xid to mark
      the tuple, HeapTupleSatisfiesDirty would have behave differently and
      *not* returned the Xmax).
      
      This bug was introduced in commit 3f7fbf85, dated December 1998,
      so it's almost 15 years old now.  However, it's hard to see this
      misbehave, because before we had NOWAIT the only consequence of this is
      that transactions would wait for slightly more time than necessary; so
      it's not surprising that this hasn't been reported yet.
      
      Craig Ringer and Andres Freund
      706f9dd9
    • A
      Fix crash in error report of invalid tuple lock · 88c55668
      Alvaro Herrera 提交于
      My tweak of these error messages in commit c359a1b0 contained the
      thinko that a query would always have rowMarks set for a query
      containing a locking clause.  Not so: when declaring a cursor, for
      instance, rowMarks isn't set at the point we're checking, so we'd be
      dereferencing a NULL pointer.
      
      The fix is to pass the lock strength to the function raising the error,
      instead of trying to reverse-engineer it.  The result not only is more
      robust, but it also seems cleaner overall.
      
      Per report from Robert Haas.
      88c55668
  14. 02 8月, 2013 5 次提交
  15. 01 8月, 2013 5 次提交
    • R
      Remove SnapshotNow and HeapTupleSatisfiesNow. · 813fb031
      Robert Haas 提交于
      We now use MVCC catalog scans, and, per discussion, have eliminated
      all other remaining uses of SnapshotNow, so that we can now get rid of
      it.  This will break third-party code which is still using it, which
      is intentional, as we want such code to be updated to do things the
      new way.
      813fb031
    • S
      Add locking around SSL_context usage in libpq · aad2a630
      Stephen Frost 提交于
      I've been working with Nick Phillips on an issue he ran into when
      trying to use threads with SSL client certificates.  As it turns out,
      the call in initialize_SSL() to SSL_CTX_use_certificate_chain_file()
      will modify our SSL_context without any protection from other threads
      also calling that function or being at some other point and trying to
      read from SSL_context.
      
      To protect against this, I've written up the attached (based on an
      initial patch from Nick and much subsequent discussion) which puts
      locks around SSL_CTX_use_certificate_chain_file() and all of the other
      users of SSL_context which weren't already protected.
      
      Nick Phillips, much reworked by Stephen Frost
      
      Back-patch to 9.0 where we started loading the cert directly instead of
      using a callback.
      aad2a630
    • S
      Allow a context to be passed in for error handling · ddef1a39
      Stephen Frost 提交于
      As pointed out by Tom Lane, we can allow other users of the error
      handler callbacks to provide their own memory context by adding
      the context to use to ErrorData and using that instead of explicitly
      using ErrorContext.
      
      This then allows GetErrorContextStack() to be called from inside
      exception handlers, so modify plpgsql to take advantage of that and
      add an associated regression test for it.
      ddef1a39
    • A
      Fix mis-indented lines · a59516b6
      Alvaro Herrera 提交于
      Per Coverity
      a59516b6
    • A
      3142cf6d
  16. 31 7月, 2013 1 次提交