Skip to content
Snippets Groups Projects
  1. Apr 19, 2011
  2. Apr 18, 2011
    • Tom Lane's avatar
      Fix handling of collations in multi-row VALUES constructs. · 918854cc
      Tom Lane authored
      Per spec we ought to apply select_common_collation() across the expressions
      in each column of the VALUES table.  The original coding was just taking
      the first row and assuming it was representative.
      
      This patch adds a field to struct RangeTblEntry to carry the resolved
      collations, so initdb is forced for changes in stored rule representation.
      918854cc
    • Robert Haas's avatar
      Only allow typed tables to hang off composite types, not e.g. tables. · 04db0fdb
      Robert Haas authored
      This also ensures that we take a relation lock on the composite type when
      creating a typed table, which is necessary to prevent the composite type
      and the typed table from getting out of step in the face of concurrent
      DDL.
      
      Noah Misch, with some changes.
      04db0fdb
    • Andrew Dunstan's avatar
    • Robert Haas's avatar
      recoveryStopsHere() must check the resource manager ID. · aea1f24c
      Robert Haas authored
      Before commit c016ce72, this wasn't
      needed, but now that multiple resource manager IDs can percolate down
      through here, we have to make sure we know which one we've got.
      Otherwise, we can confuse (for example) an XLOG_XACT_COMMIT record
      with an XLOG_CHECKPOINT_SHUTDOWN record.
      
      Review by Jaime Casanova
      aea1f24c
    • Tom Lane's avatar
      Fix assorted infelicities in collation handling in psql's describe.c. · c29abc8b
      Tom Lane authored
      In \d, be more careful to print collation only if it's not the default for
      the column's data type.  Avoid assuming that the name "default" is magic.
      
      Fix \d on a composite type so that it will print per-column collations.
      It's no longer the case that a composite type cannot have modifiers.
      (In consequence, the expected outputs for composite-type regression tests
      change.)
      
      Fix \dD so that it will print collation for a domain, again only if it's
      not the same as the base type's collation.
      c29abc8b
  3. Apr 17, 2011
  4. Apr 16, 2011
    • Tom Lane's avatar
      Simplify reindex_relation's API. · 2d3320d3
      Tom Lane authored
      For what seem entirely historical reasons, a bitmask "flags" argument was
      recently added to reindex_relation without subsuming its existing boolean
      argument into that bitmask.  This seems a bit bizarre, so fold them
      together.
      2d3320d3
    • Tom Lane's avatar
      Clean up collation processing in prepunion.c. · 121f49a0
      Tom Lane authored
      This area was a few bricks shy of a load, and badly under-commented too.
      We have to ensure that the generated targetlist entries for a set-operation
      node expose the correct collation for each entry, since higher-level
      processing expects the tlist to reflect the true ordering of the plan's
      output.
      
      This hackery wouldn't be necessary if SortGroupClause carried collation
      info ... but making it do so would inject more pain in the parser than
      would be saved here.  Still, we might want to rethink that sometime.
      121f49a0
    • Peter Eisentraut's avatar
      Set client encoding explicitly in plpython_unicode test · 5809a645
      Peter Eisentraut authored
      This will (hopefully) eliminate the need for the
      plpython_unicode_0.out expected file.
      5809a645
    • Tom Lane's avatar
      Prevent incorrect updates of pg_index while reindexing pg_index itself. · 4b6106cc
      Tom Lane authored
      The places that attempt to change pg_index.indcheckxmin during a reindexing
      operation cannot be executed safely if pg_index itself is the subject of
      the operation.  This is the explanation for a couple of recent reports of
      VACUUM FULL failing with
      	ERROR:  duplicate key value violates unique constraint "pg_index_indexrelid_index"
      	DETAIL:  Key (indexrelid)=(2678) already exists.
      
      However, there isn't any real need to update indcheckxmin in such a
      situation, if we assume that pg_index can never contain a truly broken HOT
      chain.  This assumption holds if new indexes are never created on it during
      concurrent operations, which is something we don't consider safe for any
      system catalog, not just pg_index.  Accordingly, modify the code to not
      manipulate indcheckxmin when reindexing any system catalog.
      
      Back-patch to 8.3, where HOT was introduced.  The known failure scenarios
      involve 9.0-style VACUUM FULL, so there might not be any real risk before
      9.0, but let's not assume that.
      4b6106cc
    • Tom Lane's avatar
      ff5565f0
  5. Apr 15, 2011
  6. Apr 14, 2011
    • Tom Lane's avatar
    • Robert Haas's avatar
      Advise Debian/Ubuntu users to use openjade1.3. · 07e58cbe
      Robert Haas authored
      The latest openjade packages for Ubuntu 10.10 seg fault when building
      our documentation.
      
      Josh Berkus
      07e58cbe
    • Robert Haas's avatar
      Remove obsolete comment. · 0c80b57d
      Robert Haas authored
      The lock level for adding a parent table is now ShareUpdateExclusiveLock;
      see commit fbcf4b92.  This comment didn't
      get updated to match, but it doesn't seem important to mention this detail
      here, so rather than updating it now, just take it out.
      0c80b57d
    • Robert Haas's avatar
      Fix toast table creation. · 39a68e5c
      Robert Haas authored
      Instead of using slightly-too-clever heuristics to decide when we must
      create a TOAST table, just check whether one is needed every time the
      table is altered.  Checking whether a toast table is needed is cheap
      enough that we needn't worry about doing it on every ALTER TABLE command,
      and the previous coding is apparently prone to accidental breakage:
      commit 04e17bae broken ALTER TABLE ..
      SET STORAGE, which moved some actions from AT_PASS_COL_ATTRS to
      AT_PASS_MISC, and commit 6c572399 broke
      ALTER TABLE .. ADD COLUMN by changing the way that adding columns
      recurses into child tables.
      
      Noah Misch, with one comment change by me
      39a68e5c
    • Tom Lane's avatar
      Ensure mark_dummy_rel doesn't create dangling pointers in RelOptInfos. · eca75a12
      Tom Lane authored
      When we are doing GEQO join planning, the current memory context is a
      short-lived context that will be reset at the end of geqo_eval().  However,
      the RelOptInfos for base relations are set up before that and then re-used
      across many GEQO cycles.  Hence, any code that modifies a baserel during
      join planning has to be careful not to put pointers to the short-lived
      context into the baserel struct.  mark_dummy_rel got this wrong, leading to
      easy-to-reproduce-once-you-know-how crashes in 8.4, as reported off-list by
      Leo Carson of SDSC.  Some improvements made in 9.0 make it difficult to
      demonstrate the crash in 9.0 or HEAD; but there's no doubt that there's
      still a risk factor here, so patch all branches that have the function.
      (Note: 8.3 has a similar function, but it's only applied to joinrels and
      thus is not a hazard.)
      eca75a12
    • Tom Lane's avatar
      Update time zone data files to tzdata release 2011f. · 170aeb54
      Tom Lane authored
      DST law changes in Chile, Cuba, Falkland Islands, Morocco, Samoa, Turkey.
      Historical corrections for South Australia, Alaska, Hawaii.
      170aeb54
  7. Apr 13, 2011
Loading