1. 30 Dec, 2009 5 commits
  2. 29 Dec, 2009 3 commits
    • 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
  3. 28 Dec, 2009 4 commits
  4. 27 Dec, 2009 5 commits
  5. 26 Dec, 2009 1 commit
    • Bruce Momjian's avatar
      Zero-label enums: · 1fd9883f
      Bruce Momjian authored
      Allow enums to be created with zero labels, for use during binary upgrade.
      1fd9883f
  6. 25 Dec, 2009 3 commits
  7. 24 Dec, 2009 4 commits
  8. 23 Dec, 2009 8 commits
    • Peter Eisentraut's avatar
      Revert brainfart: Of course the wildcard only works in GNU make itself. · 98e8a419
      Peter Eisentraut authored
      Instead, add a few targets that were missing.
      98e8a419
    • Peter Eisentraut's avatar
      Replace target list by a wildcard, so that this workaround makefile · ada3c65e
      Peter Eisentraut authored
      also works transparently for lesser used targets.
      ada3c65e
    • 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
  9. 22 Dec, 2009 2 commits
  10. 21 Dec, 2009 1 commit
  11. 20 Dec, 2009 2 commits
  12. 19 Dec, 2009 2 commits