1. 22 3月, 2007 1 次提交
  2. 21 3月, 2007 6 次提交
  3. 20 3月, 2007 6 次提交
    • N
      Add three new regexp functions: regexp_matches, regexp_split_to_array, · 9eb78bee
      Neil Conway 提交于
      and regexp_split_to_table. These functions provide access to the
      capture groups resulting from a POSIX regular expression match,
      and provide the ability to split a string on a POSIX regular
      expression, respectively. Patch from Jeremy Drake; code review by
      Neil Conway, additional comments and suggestions from Tom and
      Peter E.
      
      This patch bumps the catversion, adds some regression tests,
      and updates the docs.
      9eb78bee
    • J
      Bumping catversion due to changes to pg_trigger and pg_rewrite. · 5e96b04a
      Jan Wieck 提交于
      BTW, the comment in this file says that we hope we never have more than
      10 catversion changes per day, but to even make this possible we should
      start counting at zero, shouldn't we?
      
      
      Jan
      5e96b04a
    • J
      Changes pg_trigger and extend pg_rewrite in order to allow triggers and · 0fe16500
      Jan Wieck 提交于
      rules to be defined with different, per session controllable, behaviors
      for replication purposes.
      
      This will allow replication systems like Slony-I and, as has been stated
      on pgsql-hackers, other products to control the firing mechanism of
      triggers and rewrite rules without modifying the system catalog directly.
      
      The firing mechanisms are controlled by a new superuser-only GUC
      variable, session_replication_role, together with a change to
      pg_trigger.tgenabled and a new column pg_rewrite.ev_enabled. Both
      columns are a single char data type now (tgenabled was a bool before).
      The possible values in these attributes are:
      
           'O' - Trigger/Rule fires when session_replication_role is "origin"
                 (default) or "local". This is the default behavior.
      
           'D' - Trigger/Rule is disabled and fires never
      
           'A' - Trigger/Rule fires always regardless of the setting of
                 session_replication_role
      
           'R' - Trigger/Rule fires when session_replication_role is "replica"
      
      The GUC variable can only be changed as long as the system does not have
      any cached query plans. This will prevent changing the session role and
      accidentally executing stored procedures or functions that have plans
      cached that expand to the wrong query set due to differences in the rule
      firing semantics.
      
      The SQL syntax for changing a triggers/rules firing semantics is
      
           ALTER TABLE <tabname> <when> TRIGGER|RULE <name>;
      
           <when> ::= ENABLE | ENABLE ALWAYS | ENABLE REPLICA | DISABLE
      
      psql's \d command as well as pg_dump are extended in a backward
      compatible fashion.
      
      Jan
      0fe16500
    • B
      Remove last line of patch license, per Zeugswetter Andreas: · e927f8f1
      Bruce Momjian 提交于
      "If the patch is not BSD-licensed, it will be rejected."
      e927f8f1
    • T
      Further buildfarm experience shows that actually we can't run the plancache · e28e318c
      Tom Lane 提交于
      test in parallel with the rules test at all, because the former wants to
      create a couple of temp views, which can sometimes show up in the latter's
      output.  Let's try it in the next parallel group instead.
      e28e318c
    • T
      Fix 8.2 breakage of domains over array types, and add a regression test case · 9bc933b2
      Tom Lane 提交于
      to cover it.  Per report from Anton Pikhteryev.
      9bc933b2
  4. 19 3月, 2007 5 次提交
  5. 18 3月, 2007 4 次提交
  6. 17 3月, 2007 9 次提交
  7. 16 3月, 2007 4 次提交
    • A
      Fix uninitialized value in pgstatindex leading to invalid values being · c9d3b8f5
      Alvaro Herrera 提交于
      reported in some cases.  Report and patch from Tatsuhito Kasahara.
      
      Also fix a couple of other bugs I noticed in skimming the surrounding code.
      c9d3b8f5
    • A
      · f6e3313f
      Andrew Dunstan 提交于
      Remove undocumented support for copy syntax from before 7.3. Update comments to
      reflect syntax actually supported, e.g. by including CSV params.
      f6e3313f
    • M
      Show aggregate return types in psql \da output. · 348b6218
      Magnus Hagander 提交于
      Greg Sabino Mullane
      348b6218
    • T
      Make use of plancache module for SPI plans. In particular, since plpgsql · 95f6d2d2
      Tom Lane 提交于
      uses SPI plans, this finally fixes the ancient gotcha that you can't
      drop and recreate a temp table used by a plpgsql function.
      
      Along the way, clean up SPI's API a little bit by declaring SPI plan
      pointers as "SPIPlanPtr" instead of "void *".  This is cosmetic but
      helps to forestall simple programming mistakes.  (I have changed some
      but not all of the callers to match; there are still some "void *"'s
      in contrib and the PL's.  This is intentional so that we can see if
      anyone's compiler complains about it.)
      95f6d2d2
  8. 15 3月, 2007 2 次提交
    • T
      Fix a longstanding bug in VACUUM FULL's handling of update chains. The code · d3ff1801
      Tom Lane 提交于
      did not expect that a DEAD tuple could follow a RECENTLY_DEAD tuple in an
      update chain, but because the OldestXmin rule for determining deadness is a
      simplification of reality, it is possible for this situation to occur
      (implying that the RECENTLY_DEAD tuple is in fact dead to all observers,
      but this patch does not attempt to exploit that).  The code would follow a
      chain forward all the way, but then stop before a DEAD tuple when backing
      up, meaning that not all of the chain got moved.  This could lead to copying
      the chain multiple times (resulting in duplicate copies of the live tuple at
      its end), or leaving dangling index entries behind (which, aside from
      generating warnings from later vacuums, creates a risk of wrong query
      results or bogus duplicate-key errors once the heap slot the index entry
      points to is repopulated).
      
      The fix is to recheck HeapTupleSatisfiesVacuum while following a chain
      forward, and to stop if a DEAD tuple is reached.  Each contiguous group
      of RECENTLY_DEAD tuples will therefore be copied as a separate chain.
      The patch also adds a couple of extra sanity checks to verify correct
      behavior.
      
      Per report and test case from Pavan Deolasee.
      d3ff1801
    • T
      Arrange to install a "posixrules" entry in our timezone database, so that · 0169c354
      Tom Lane 提交于
      POSIX-style timezone specs that don't exactly match any database entry will
      be treated as having correct USA DST rules.  Also, document that this can
      be changed if you want to use some other DST rules with a POSIX zone spec.
      
      We could consider changing localtime.c's TZDEFRULESTRING, but since that
      facility can only deal with one DST transition rule, it seems fairly useless
      now; might as well just plan to override it using a "posixrules" entry.
      
      Backpatch as far as 8.0.  There isn't much we can do in 7.x ... either your
      libc gets it right, or it doesn't.
      0169c354
  9. 14 3月, 2007 3 次提交