Skip to content
Snippets Groups Projects
  1. Dec 29, 2009
    • Tom Lane's avatar
      Add an index on pg_inherits.inhparent, and use it to avoid seqscans in · 540e69a0
      Tom Lane authored
      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
    • Tom Lane's avatar
      Add the ability to store inheritance-tree statistics in pg_statistic, · 649b5ec7
      Tom Lane authored
      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
    • Heikki Linnakangas's avatar
      Previous fix for temporary file management broke returning a set from · 84d723b6
      Heikki Linnakangas authored
      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
  2. Dec 28, 2009
  3. Dec 27, 2009
  4. Dec 26, 2009
  5. Dec 25, 2009
  6. Dec 24, 2009
  7. Dec 23, 2009
    • Tom Lane's avatar
      Allow the index name to be omitted in CREATE INDEX, causing the system to · d68e08d1
      Tom Lane authored
      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
    • Tom Lane's avatar
      Remove code that attempted to rename index columns to keep them in sync with · c176e122
      Tom Lane authored
      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
    • Magnus Hagander's avatar
      Add basic build support for Visual Studio 2008, without resorting to · df0cdd53
      Magnus Hagander authored
      generating the build files for 2005 and then converting them.
      df0cdd53
    • Heikki Linnakangas's avatar
      Always pass catalog id to the options validator function specified in · 4e766f2d
      Heikki Linnakangas authored
      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
    • Bruce Momjian's avatar
    • Tom Lane's avatar
      Adjust naming of indexes and their columns per recent discussion. · cfc5008a
      Tom Lane authored
      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
    • Tom Lane's avatar
      Disallow comments on columns of relation types other than tables, views, · b7d67954
      Tom Lane authored
      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
    • Peter Eisentraut's avatar
  8. Dec 21, 2009
  9. Dec 20, 2009
  10. Dec 19, 2009
    • Peter Eisentraut's avatar
      Translation updates · baab7a04
      Peter Eisentraut authored
      baab7a04
    • Itagaki Takahiro's avatar
      Add a whitespace to fix the query to dump large objects. · ce1489fa
      Itagaki Takahiro authored
      PL/pgSQL-by-default patch broke the code for 8.3 <= server_version < 8.5.
      ce1489fa
    • Tom Lane's avatar
      Bump catversion to reflect the fact that HS patch changed pg_proc · 4fca795d
      Tom Lane authored
      contents, and PG_CONTROL_VERSION to reflect the fact that it changed
      pg_control contents.  (I see we did at least remember to change
      XLOG_PAGE_MAGIC for the WAL contents changes.)
      4fca795d
    • Tom Lane's avatar
      plpgsql patch broke the MSVC build, too. · d37cda2c
      Tom Lane authored
      d37cda2c
    • Alvaro Herrera's avatar
    • 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
    • Bruce Momjian's avatar
      binary migration: pg_migrator · 78a09145
      Bruce Momjian authored
      Add comments about places where system oids have to be preserved for
      binary migration.
      78a09145
  11. Dec 18, 2009
  12. Dec 17, 2009
  13. Dec 16, 2009
    • Peter Eisentraut's avatar
      If there is no sigdelset(), define it as a macro. · b63b967a
      Peter Eisentraut authored
      This removes some duplicate code that recreated the identical workaround
      when the newer signal API is missing.
      b63b967a
    • Tom Lane's avatar
      Avoid a premature coercion failure in transformSetOperationTree() when · 52fc0075
      Tom Lane authored
      presented with an UNKNOWN-type Var, which can happen in cases where an
      unknown literal appeared in a subquery.  While many such cases will fail
      later on anyway in the planner, there are some cases where the planner is
      able to flatten the query and replace the Var by the constant before it has
      to coerce the union column to the final type.  I had added this check in 8.4
      to provide earlier/better error detection, but it causes a regression for
      some cases that worked OK before.  Fix by not making the check if the input
      node is UNKNOWN type and not a Const or Param.  If it isn't going to work,
      it will fail anyway at plan time, with the only real loss being inability to
      provide an error cursor.  Per gripe from Britt Piehler.
      
      In passing, rename a couple of variables to remove confusion from an
      inner scope masking the same variable names in an outer scope.
      52fc0075
Loading