1. 25 Feb, 2010 1 commit
  2. 16 Feb, 2010 1 commit
  3. 01 Feb, 2010 1 commit
  4. 29 Jan, 2010 1 commit
    • Simon Riggs's avatar
      Augment WAL records for btree delete with GetOldestXmin() to reduce · 6d2bc0a6
      Simon Riggs authored
      false positives during Hot Standby conflict processing. Simple
      patch to enhance conflict processing, following previous discussions.
      Controlled by parameter minimize_standby_conflicts = on | off, with
      default off allows measurement of performance impact to see whether
      it should be set on all the time.
      6d2bc0a6
  5. 26 Jan, 2010 1 commit
    • Tom Lane's avatar
      Remove the default_do_language parameter, instead making DO use a hardwired · d879697c
      Tom Lane authored
      default of "plpgsql".  This is more reasonable than it was when the DO patch
      was written, because we have since decided that plpgsql should be installed
      by default.  Per discussion, having a parameter for this doesn't seem useful
      enough to justify the risk of application breakage if the value is changed
      unexpectedly.
      d879697c
  6. 15 Jan, 2010 1 commit
    • Heikki Linnakangas's avatar
      Introduce Streaming Replication. · 40f908bd
      Heikki Linnakangas authored
      This includes two new kinds of postmaster processes, walsenders and
      walreceiver. Walreceiver is responsible for connecting to the primary server
      and streaming WAL to disk, while walsender runs in the primary server and
      streams WAL from disk to the client.
      
      Documentation still needs work, but the basics are there. We will probably
      pull the replication section to a new chapter later on, as well as the
      sections describing file-based replication. But let's do that as a separate
      patch, so that it's easier to see what has been added/changed. This patch
      also adds a new section to the chapter about FE/BE protocol, documenting the
      protocol used by walsender/walreceivxer.
      
      Bump catalog version because of two new functions,
      pg_last_xlog_receive_location() and pg_last_xlog_replay_location(), for
      monitoring the progress of replication.
      
      Fujii Masao, with additional hacking by me
      40f908bd
  7. 19 Dec, 2009 1 commit
    • Simon Riggs's avatar
      Allow read only connections during recovery, known as Hot Standby. · efc16ea5
      Simon Riggs authored
      Enabled by recovery_connections = on (default) and forcing archive recovery using a recovery.conf. Recovery processing now emulates the original transactions as they are replayed, providing full locking and MVCC behaviour for read only queries. Recovery must enter consistent state before connections are allowed, so there is a delay, typically short, before connections succeed. Replay of recovering transactions can conflict and in some cases deadlock with queries during recovery; these result in query cancellation after max_standby_delay seconds have expired. Infrastructure changes have minor effects on normal running, though introduce four new types of WAL record.
      
      New test mode "make standbycheck" allows regression tests of static command behaviour on a standby server while in recovery. Typical and extreme dynamic behaviours have been checked via code inspection and manual testing. Few port specific behaviours have been utilised, though primary testing has been on Linux only so far.
      
      This commit is the basic patch. Additional changes will follow in this release to enhance some aspects of behaviour, notably improved handling of conflicts, deadlock detection and query cancellation. Changes to VACUUM FULL are also required.
      
      Simon Riggs, with significant and lengthy review by Heikki Linnakangas, including streamlined redesign of snapshot creation and two-phase commit.
      
      Important contributions from Florian Pflug, Mark Kirkwood, Merlin Moncure, Greg Stark, Gianni Ciolli, Gabriele Bartolini, Hannu Krosing, Robert Haas, Tatsuo Ishii, Hiroyuki Yamada plus support and feedback from many other community members.
      efc16ea5
  8. 11 Dec, 2009 1 commit
  9. 28 Nov, 2009 1 commit
  10. 21 Oct, 2009 2 commits
    • Tom Lane's avatar
      Remove regex_flavor GUC, so that regular expressions are always "advanced" · ab61df9e
      Tom Lane authored
      style by default.  Per discussion, there seems to be hardly anything that
      really relies on being able to change the regex flavor, so the ability to
      select it via embedded options ought to be enough for any stragglers.
      Also, if we didn't remove the GUC, we'd really be morally obligated to
      mark the regex functions non-immutable, which'd possibly create performance
      issues.
      ab61df9e
    • Tom Lane's avatar
      Remove add_missing_from GUC and associated parser support for "implicit RTEs". · 289e2905
      Tom Lane authored
      Per recent discussion, add_missing_from has been deprecated for long enough to
      consider removing, and it's getting in the way of planned parser refactoring.
      The system now always behaves as though add_missing_from were OFF.
      289e2905
  11. 22 Sep, 2009 1 commit
    • Tom Lane's avatar
      Implement the DO statement to support execution of PL code without having · 9048b731
      Tom Lane authored
      to create a function for it.
      
      Procedural languages now have an additional entry point, namely a function
      to execute an inline code block.  This seemed a better design than trying
      to hide the transient-ness of the code from the PL.  As of this patch, only
      plpgsql has an inline handler, but probably people will soon write handlers
      for the other standard PLs.
      
      In passing, remove the long-dead LANCOMPILER option of CREATE LANGUAGE.
      
      Petr Jelinek
      9048b731
  12. 11 Sep, 2009 1 commit
  13. 08 Sep, 2009 1 commit
    • Tom Lane's avatar
      Add a boolean GUC parameter "bonjour" to control whether a Bonjour-enabled · eeb6cb14
      Tom Lane authored
      build actually attempts to advertise itself via Bonjour.  Formerly it always
      did so, which meant that packagers had to decide for their users whether
      this behavior was wanted or not.  The default is "off" to be on the safe
      side, though this represents a change in the default behavior of a
      Bonjour-enabled build.  Per discussion.
      eeb6cb14
  14. 24 Aug, 2009 1 commit
    • Tom Lane's avatar
      Try to make silent_mode behave somewhat reasonably. · 8bed238c
      Tom Lane authored
      Instead of sending stdout/stderr to /dev/null after forking away from the
      terminal, send them to postmaster.log within the data directory.  Since
      this opens the door to indefinite logfile bloat, recommend even more
      strongly that log output be redirected when using silent_mode.
      
      Move the postmaster's initial calls of load_hba() and load_ident() down
      to after we have started the log collector, if we are going to.  This
      is so that errors reported by them will appear in the "usual" place.
      
      Reclassify silent_mode as a LOGGING_WHERE, not LOGGING_WHEN, parameter,
      since it's got absolutely nothing to do with the latter category.
      
      In passing, fix some obsolete references to -S ... this option hasn't
      had that switch letter for a long time.
      
      Back-patch to 8.4, since as of 8.4 load_hba() and load_ident() are more
      picky (and thus more likely to fail) than they used to be.  This entire
      change was driven by a complaint about those errors disappearing into
      the bit bucket.
      8bed238c
  15. 04 Aug, 2009 1 commit
    • Tom Lane's avatar
      Support hex-string input and output for type BYTEA. · a2a8c7a6
      Tom Lane authored
      Both hex format and the traditional "escape" format are automatically
      handled on input.  The output format is selected by the new GUC variable
      bytea_output.
      
      As committed, bytea_output defaults to HEX, which is an *incompatible
      change*.  We will keep it this way for awhile for testing purposes, but
      should consider whether to switch to the more backwards-compatible
      default of ESCAPE before 8.5 is released.
      
      Peter Eisentraut
      a2a8c7a6
  16. 16 Jul, 2009 1 commit
    • Tom Lane's avatar
      Make GEQO's planning deterministic by having it start from a predictable · f5bc7419
      Tom Lane authored
      random number seed each time.  This is how it used to work years ago, but
      we got rid of the seed reset because it was resetting the main random()
      sequence and thus having undesirable effects on the rest of the system.
      To fix, establish a private random number state for each execution of
      geqo(), and initialize the state using the new GUC variable geqo_seed.
      People who want to experiment with different random searches can do so
      by changing geqo_seed, but you'll always get the same plan for the same
      value of geqo_seed (if holding all other planner inputs constant, of course).
      
      The new state is kept in PlannerInfo by adding a "void *" field reserved
      for use by join_search hooks.  Most of the rather bulky code changes in
      this commit are just arranging to pass PlannerInfo around to all the GEQO
      functions (many of which formerly didn't receive it).
      
      Andres Freund, with some editorialization by Tom
      f5bc7419
  17. 03 Jul, 2009 1 commit
  18. 23 Apr, 2009 1 commit
    • Tom Lane's avatar
      Change the default value of max_prepared_transactions to zero, and add · 8d4f2ecd
      Tom Lane authored
      documentation warnings against setting it nonzero unless active use of
      prepared transactions is intended and a suitable transaction manager has been
      installed.  This should help to prevent the type of scenario we've seen
      several times now where a prepared transaction is forgotten and eventually
      causes severe maintenance problems (or even anti-wraparound shutdown).
      
      The only real reason we had the default be nonzero in the first place was to
      support regression testing of the feature.  To still be able to do that,
      tweak pg_regress to force a nonzero value during "make check".  Since we
      cannot force a nonzero value in "make installcheck", add a variant regression
      test "expected" file that shows the results that will be obtained when
      max_prepared_transactions is zero.
      
      Also, extend the HINT messages for transaction wraparound warnings to mention
      the possibility that old prepared transactions are causing the problem.
      
      All per today's discussion.
      8d4f2ecd
  19. 07 Apr, 2009 1 commit
  20. 06 Apr, 2009 4 commits
  21. 28 Feb, 2009 1 commit
  22. 16 Jan, 2009 1 commit
  23. 12 Jan, 2009 1 commit
  24. 09 Jan, 2009 1 commit
  25. 07 Jan, 2009 1 commit
    • Tom Lane's avatar
      Create a third option named "partition" for constraint_exclusion, and make it · 445ce157
      Tom Lane authored
      the default.  This setting enables constraint exclusion checks only for
      appendrel members (ie, inheritance children and UNION ALL arms), which are
      the cases in which constraint exclusion is most likely to be useful.  Avoiding
      the overhead for simple queries that are unlikely to benefit should bring
      the cost down to the point where this is a reasonable default setting.
      Per today's discussion.
      445ce157
  26. 02 Jan, 2009 1 commit
  27. 13 Dec, 2008 1 commit
  28. 09 Nov, 2008 1 commit
    • Tom Lane's avatar
      Add a new GUC variable called "IntervalStyle" that decouples interval output · df7641e2
      Tom Lane authored
      from DateStyle, and create a new interval style that produces output matching
      the SQL standard (at least for interval values that fall within the standard's
      restrictions).  IntervalStyle is also used to resolve the conflict between the
      standard and traditional Postgres rules for interpreting negative interval
      input.
      
      Ron Mayer
      df7641e2
  29. 30 Sep, 2008 1 commit
    • Heikki Linnakangas's avatar
      Rewrite the FSM. Instead of relying on a fixed-size shared memory segment, the · 15c121b3
      Heikki Linnakangas authored
      free space information is stored in a dedicated FSM relation fork, with each
      relation (except for hash indexes; they don't use FSM).
      
      This eliminates the max_fsm_relations and max_fsm_pages GUC options; remove any
      trace of them from the backend, initdb, and documentation.
      
      Rewrite contrib/pg_freespacemap to match the new FSM implementation. Also
      introduce a new variant of the get_raw_page(regclass, int4, int4) function in
      contrib/pageinspect that let's you to return pages from any relation fork, and
      a new fsm_page_contents() function to inspect the new FSM pages.
      15c121b3
  30. 19 Aug, 2008 1 commit
    • Tom Lane's avatar
      Cause the output from debug_print_parse, debug_print_rewritten, and · 9650830b
      Tom Lane authored
      debug_print_plan to appear at LOG message level, not DEBUG1 as historically.
      Make debug_pretty_print default to on.  Also, cause plans generated via
      EXPLAIN to be subject to debug_print_plan.  This is all to make
      debug_print_plan a reasonably comfortable substitute for the former behavior
      of EXPLAIN VERBOSE.
      9650830b
  31. 15 Aug, 2008 1 commit
  32. 30 Jun, 2008 1 commit
    • Heikki Linnakangas's avatar
      Turn PGBE_ACTIVITY_SIZE into a GUC variable, track_activity_query_size. · 995fb742
      Heikki Linnakangas authored
      As the buffer could now be a lot larger than before, and copying it could
      thus be a lot more expensive than before, use strcpy instead of memcpy to
      copy the query string, as was already suggested in comments. Also, only copy
      the PgBackendStatus struct and string if the slot is in use.
      
      Patch by Thomas Lee, with some changes by me.
      995fb742
  33. 11 Jun, 2008 1 commit
  34. 15 May, 2008 1 commit
  35. 02 May, 2008 1 commit
  36. 18 Apr, 2008 1 commit
    • Tom Lane's avatar
      Cause EXPLAIN's VERBOSE option to print the target list (output column list) · 87a2f050
      Tom Lane authored
      of each plan node, instead of its former behavior of dumping the internal
      representation of the plan tree.  The latter display is still available for
      those who really want it (see debug_print_plan), but uses for it are certainly
      few and and far between.  Per discussion.
      
      This patch also removes the explain_pretty_print GUC, which is obsoleted
      by the change.
      87a2f050