1. 23 Apr, 2009 4 commits
    • Heikki Linnakangas's avatar
    • Heikki Linnakangas's avatar
      Improve the documentation on 8.4 visibility map related VACUUM changes. · 335904b4
      Heikki Linnakangas authored
      Explain how vacuum_freeze_table_age should be tuned, and how it relates
      to the other settings. Mention that vacuum_freeze_table_age also affects
      when autovacuum scans the whole table.
      335904b4
    • Heikki Linnakangas's avatar
      varstr_cmp and any comparison function that piggybacks on it can return · 283939a3
      Heikki Linnakangas authored
      any negative or positive number, not just -1 or 1. Fix comment on
      varstr_cmp and citext test case accordingly.
      
      As pointed out by Zdenek Kotala, and buildfarm member gothic moth.
      283939a3
    • 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
  2. 22 Apr, 2009 2 commits
  3. 21 Apr, 2009 5 commits
  4. 20 Apr, 2009 1 commit
  5. 19 Apr, 2009 7 commits
    • Tom Lane's avatar
      ce53791b
    • Tom Lane's avatar
      Rethink the idea of having plpgsql depend on parser/gram.h. Aside from the · 85128e5d
      Tom Lane authored
      fact that this is breaking the MSVC build, it's probably not really a good
      idea to expand the dependencies of gram.h any further than the core parser;
      for instance the value of SCONST might depend on which bison version you'd
      built with.  Better to expose an additional call point in parser.c, so
      move what I had put into pl_funcs.c into parser.c.  Also PGDLLIMPORT'ify
      the reference to standard_conforming_strings, per buildfarm results.
      85128e5d
    • Tom Lane's avatar
      Fix de-escaping checks so that we will reject \000 as well as other invalidly · 22c92226
      Tom Lane authored
      encoded sequences.  Per discussion of a couple of days ago.
      22c92226
    • Tom Lane's avatar
      Fix textsearch documentation examples to not recommend concatenating separate · c1c40e58
      Tom Lane authored
      fields without putting a space between.  Per gripe from Rick Schumeyer.
      c1c40e58
    • Tom Lane's avatar
      Fix estimate_num_groups() to not fail on PlaceHolderVars, per report from · 1d97c19a
      Tom Lane authored
      Stefan Kaltenbrunner.  The most reasonable behavior (at least for the near
      term) seems to be to ignore the PlaceHolderVar and examine its argument
      instead.  In support of this, change the API of pull_var_clause() to allow
      callers to request recursion into PlaceHolderVars.  Currently
      estimate_num_groups() is the only customer for that behavior, but where
      there's one there may be others.
      1d97c19a
    • Tom Lane's avatar
      Revise plpgsql's scanner to process comments and string literals in a way · 3a624e92
      Tom Lane authored
      more nearly matching the core SQL scanner.  The user-visible effects are:
      
      * Block comments (slash-star comments) now nest, as per SQL spec.
      
      * In standard_conforming_strings mode, backslash as the last character of a
        non-E string literal is now correctly taken as an ordinary character;
        formerly it was misinterpreted as escaping the ending quote.  (Since the
        string also had to pass through the core scanner, this invariably led
        to syntax errors.)
      
      * Formerly, backslashes in the format string of RAISE were always treated as
        quoting the next character, regardless of mode.  Now, they are ordinary
        characters with standard_conforming_strings on, while with it off, they
        introduce the same set of escapes as in the core SQL scanner.  Also,
        escape_string_warning is now effective for RAISE format strings.  These
        changes make RAISE format strings work just like any other string literal.
      
      This is implemented by copying and pasting a lot of logic from the core
      scanner.  It would be a good idea to look into getting rid of plpgsql's
      scanner entirely in favor of using the core scanner.  However, that involves
      more change than I can justify making during beta --- in particular, the core
      scanner would have to become re-entrant.
      
      In passing, remove the kluge that made the plpgsql scanner emit T_FUNCTION or
      T_TRIGGER as a made-up first token.  That presumably had some value once upon
      a time, but now it's just useless complication for both the scanner and the
      grammar.
      3a624e92
    • Tom Lane's avatar
      Mention as a potential incompatibility the fact that SELECT DISTINCT, UNION, · 7f2f798b
      Tom Lane authored
      etc are no longer guaranteed to produce sorted output; per gripe from Ian
      Barwick.  Also improve the release note entries about to_timestamp(), per
      Brendan Jurd.
      7f2f798b
  6. 18 Apr, 2009 1 commit
  7. 17 Apr, 2009 1 commit
  8. 16 Apr, 2009 2 commits
    • Tom Lane's avatar
      Fix planner to restore its previous level of intelligence about pushing · d7a6a04d
      Tom Lane authored
      constants through full joins, as in
      
      	select * from tenk1 a full join tenk1 b using (unique1)
      	where unique1 = 42;
      
      which should generate a fairly cheap plan where we apply the constraint
      unique1 = 42 in each relation scan.  This had been broken by my patch of
      2008-06-27, which is now reverted in favor of a more invasive but hopefully
      less incorrect approach.  That patch was meant to prevent incorrect extraction
      of OR'd indexclauses from OR conditions above an outer join.  To do that
      correctly we need more information than the outerjoin_delay flag can provide,
      so add a nullable_relids field to RestrictInfo that records exactly which
      relations are nulled by outer joins that are underneath a particular qual
      clause.  A side benefit is that we can make the test in create_or_index_quals
      more specific: it is now smart enough to extract an OR'd indexclause into the
      outer side of an outer join, even though it must not do so in the inner side.
      The old coding couldn't distinguish these cases so it could not do either.
      d7a6a04d
    • Alvaro Herrera's avatar
      Fix the regression test error message for array_fill, too. · c5593d54
      Alvaro Herrera authored
      Per note from Andrew Dunstan.
      c5593d54
  9. 15 Apr, 2009 6 commits
  10. 14 Apr, 2009 5 commits
  11. 13 Apr, 2009 2 commits
  12. 12 Apr, 2009 1 commit
  13. 11 Apr, 2009 3 commits