1. 02 1月, 2010 3 次提交
  2. 01 1月, 2010 4 次提交
  3. 31 12月, 2009 6 次提交
    • P
      8abb0110
    • P
      Add information_schema.triggered_update_columns · c584d11b
      Peter Eisentraut 提交于
      This reflects the recently added support for triggers on columns.
      c584d11b
    • P
      3c505ef5
    • T
      Dept of second thoughts: recursive case in ANALYZE shouldn't emit a · e6df063c
      Tom Lane 提交于
      pgstats message.  This might need to be done differently later, but
      with the current logic that's what should happen.
      e6df063c
    • T
      Revise pgstat's tracking of tuple changes to improve the reliability of · 48c192c1
      Tom Lane 提交于
      decisions about when to auto-analyze.
      
      The previous code depended on n_live_tuples + n_dead_tuples - last_anl_tuples,
      where all three of these numbers could be bad estimates from ANALYZE itself.
      Even worse, in the presence of a steady flow of HOT updates and matching
      HOT-tuple reclamations, auto-analyze might never trigger at all, even if all
      three numbers are exactly right, because n_dead_tuples could hold steady.
      
      To fix, replace last_anl_tuples with an accurately tracked count of the total
      number of committed tuple inserts + updates + deletes since the last ANALYZE
      on the table.  This can still be compared to the same threshold as before, but
      it's much more trustworthy than the old computation.  Tracking this requires
      one more intra-transaction counter per modified table within backends, but no
      additional memory space in the stats collector.  There probably isn't any
      measurable speed difference; if anything it might be a bit faster than before,
      since I was able to eliminate some per-tuple arithmetic operations in favor of
      adding sums once per (sub)transaction.
      
      Also, simplify the logic around pgstat vacuum and analyze reporting messages
      by not trying to fold VACUUM ANALYZE into a single pgstat message.
      
      The original thought behind this patch was to allow scheduling of analyzes
      on parent tables by artificially inflating their changes_since_analyze count.
      I've left that for a separate patch since this change seems to stand on its
      own merit.
      48c192c1
    • P
  4. 30 12月, 2009 6 次提交
    • H
      Reset minRecoveryPoint at checkpoints, so that we don't uselessly update · ff1e1e45
      Heikki Linnakangas 提交于
      it in the control file at crash recovery following an archive recovery.
      
      Per Fujii Masao and subsequent discussion.
      ff1e1e45
    • T
      Set errno to zero before invoking SSL_read or SSL_write. It appears that · 4847d595
      Tom Lane 提交于
      at least in some Windows versions, these functions are capable of returning
      a failure indication without setting errno.  That puts us into an infinite
      loop if the previous value happened to be EINTR.  Per report from Brendan
      Hill.
      
      Back-patch to 8.2.  We could take it further back, but since this is only
      known to be an issue on Windows and we don't support Windows before 8.2,
      it does not seem worth the trouble.
      4847d595
    • R
      Reject invalid input in int2vectorin. · 3d4b0ab2
      Robert Haas 提交于
      Since the int2vector type is intended only for internal use, this patch doesn't
      worry about prettifying the error messages, which has the fringe benefit of
      avoiding creating additional translatable strings.  For a type intended to be
      used by end-users, we would want to do better, but the approach taken here
      seems like the correct trade-off for this case.
      
      Caleb Welton
      3d4b0ab2
    • T
      Add an index on pg_inherits.inhparent, and use it to avoid seqscans in · 540e69a0
      Tom Lane 提交于
      find_inheritance_children().  This is a complete no-op in databases without
      any inheritance.  In databases where there are just a few entries in
      pg_inherits, it could conceivably be a small loss.  However, in databases with
      many inheritance parents, it can be a big win.
      540e69a0
    • T
      Add the ability to store inheritance-tree statistics in pg_statistic, · 649b5ec7
      Tom Lane 提交于
      and teach ANALYZE to compute such stats for tables that have subclasses.
      Per my proposal of yesterday.
      
      autovacuum still needs to be taught about running ANALYZE on parent tables
      when their subclasses change, but the feature is useful even without that.
      649b5ec7
    • H
      Previous fix for temporary file management broke returning a set from · 84d723b6
      Heikki Linnakangas 提交于
      PL/pgSQL function within an exception handler. Make sure we use the right
      resource owner when we create the tuplestore to hold returned tuples.
      
      Simplify tuplestore API so that the caller doesn't need to be in the right
      memory context when calling tuplestore_put* functions. tuplestore.c
      automatically switches to the memory context used when the tuplestore was
      created. Tuplesort was already modified like this earlier. This patch also
      removes the now useless MemoryContextSwitch calls from callers.
      
      Report by Aleksei on pgsql-bugs on Dec 22 2009. Backpatch to 8.1, like
      the previous patch that broke this.
      84d723b6
  5. 29 12月, 2009 3 次提交
  6. 28 12月, 2009 2 次提交
    • T
      Avoid memory leak if pgstat_vacuum_stat is interrupted partway through. · 0b392314
      Tom Lane 提交于
      The temporary hash tables made by pgstat_collect_oids should be allocated
      in a short-term memory context, which is not the default behavior of
      hash_create.  Noted while looking through hash_create calls in connection
      with Robert Haas' recent complaint.
      
      This is a pre-existing bug, but it doesn't seem important enough to
      back-patch.  The hash table is not so large that it would matter unless this
      happened many times within a session, which seems quite unlikely.
      0b392314
    • T
      Remove a couple of unnecessary calls of CreateCacheMemoryContext. These · d4d1885e
      Tom Lane 提交于
      probably got there via blind copy-and-paste from one of the legitimate
      callers, so rearrange and comment that code a bit to make it clearer that
      this isn't a necessary prerequisite to hash_create.  Per observation
      from Robert Haas.
      d4d1885e
  7. 27 12月, 2009 2 次提交
  8. 26 12月, 2009 1 次提交
  9. 25 12月, 2009 3 次提交
  10. 24 12月, 2009 2 次提交
    • T
      Allow the index name to be omitted in CREATE INDEX, causing the system to · d68e08d1
      Tom Lane 提交于
      choose an index name the same as it would do for an unnamed index constraint.
      (My recent changes to the index naming logic have helped to ensure that this
      will be a reasonable choice.)  Per a suggestion from Peter.
      
      A necessary side-effect is to promote CONCURRENTLY to type_func_name_keyword
      status, ie, it can't be a table/column/index name anymore unless quoted.
      This is not all bad, since we have heard more than once of people typing
      CREATE INDEX CONCURRENTLY ON foo (...) and getting a normal index build of
      an index named "concurrently", which was not what they wanted.  Now this
      syntax will result in a concurrent build of an index with system-chosen
      name; which they can rename afterwards if they want something else.
      d68e08d1
    • T
      Remove code that attempted to rename index columns to keep them in sync with · c176e122
      Tom Lane 提交于
      their underlying table columns.  That code was not bright enough to cope with
      collision situations (ie, new name conflicts with some other column of the
      index).  Since there is no functional reason to do this at all, trying to
      upgrade the logic to be bulletproof doesn't seem worth the trouble.
      
      This change means that both the index name and the column names of an index
      are set when it's created, and won't be automatically changed when the
      underlying table columns are renamed.  Neatnik DBAs are still free to rename
      them manually, of course.
      c176e122
  11. 23 12月, 2009 3 次提交
    • H
      Always pass catalog id to the options validator function specified in · 4e766f2d
      Heikki Linnakangas 提交于
      CREATE FOREIGN DATA WRAPPER. Arguably it wasn't a bug because the
      documentation said that it's passed the catalog ID or zero, but surely
      we should provide it when it's known. And there isn't currently any
      scenario where it's not known, and I can't imagine having one in the
      future either, so better remove the "or zero" escape hatch and always
      pass a valid catalog ID. Backpatch to 8.4.
      
      Martin Pihlak
      4e766f2d
    • T
      Adjust naming of indexes and their columns per recent discussion. · cfc5008a
      Tom Lane 提交于
      Index expression columns are now named after the FigureColname result for
      their expressions, rather than always being "pg_expression_N".  Digits are
      appended to this name if needed to make the column name unique within the
      index.  (That happens for regular columns too, thus fixing the old problem
      that CREATE INDEX fooi ON foo (f1, f1) fails.  Before exclusion indexes
      there was no real reason to do such a thing, but now maybe there is.)
      
      Default names for indexes and associated constraints now include the column
      names of all their columns, not only the first one as in previous practice.
      (Of course, this will be truncated as needed to fit in NAMEDATALEN.  Also,
      pkey indexes retain the historical behavior of not naming specific columns
      at all.)
      
      An example of the results:
      
      regression=# create table foo (f1 int, f2 text,
      regression(# exclude (f1 with =, lower(f2) with =));
      NOTICE:  CREATE TABLE / EXCLUDE will create implicit index "foo_f1_lower_exclusion" for table "foo"
      CREATE TABLE
      regression=# \d foo_f1_lower_exclusion
      Index "public.foo_f1_lower_exclusion"
       Column |  Type   | Definition
      --------+---------+------------
       f1     | integer | f1
       lower  | text    | lower(f2)
      btree, for table "public.foo"
      cfc5008a
    • T
      Disallow comments on columns of relation types other than tables, views, · b7d67954
      Tom Lane 提交于
      and composite types, which are the only relkinds for which pg_dump support
      exists for dumping column comments.  There is no obvious usefulness for
      comments on columns of sequences or toast tables; and while comments on
      index columns might have some value, it's not worth the risk of compatibility
      problems due to possible changes in the algorithm for assigning names to
      index columns.  Per discussion.
      
      In consequence, remove now-dead code for copying such comments in CREATE TABLE
      LIKE.
      b7d67954
  12. 21 12月, 2009 2 次提交
  13. 20 12月, 2009 1 次提交
  14. 19 12月, 2009 2 次提交
    • S
      Allow read only connections during recovery, known as Hot Standby. · efc16ea5
      Simon Riggs 提交于
      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
    • B
      binary migration: pg_migrator · 78a09145
      Bruce Momjian 提交于
      Add comments about places where system oids have to be preserved for
      binary migration.
      78a09145