1. 20 4月, 2011 11 次提交
    • H
      Quotes in strings injected into bki file need to escaped. In particular, · 2b919118
      Heikki Linnakangas 提交于
      "People's Republic of China" locale on Windows was causing initdb to fail.
      
      This fixes bug #5818 reported by yulei. On master, this makes the mapping
      of "People's Republic of China" to just "China" obsolete. In 9.0 and 8.4,
      just fix the escaping. Earlier versions didn't have locale names in bki
      file.
      2b919118
    • B
      Throw error for mismatched pg_upgrade clusters · 7228d029
      Bruce Momjian 提交于
      If someone removes the 'postgres' database from the old cluster and the
      new cluster has a 'postgres' database, the number of databases will not
      match.  We actually could upgrade such a setup, but it would violate the
      1-to-1 mapping of database counts, so we throw an error instead.
      
      Previously they got an error during the upgrade, and not at the check
      stage; PG 9.0.4 does the same.
      7228d029
    • B
      Add C comment · 03419447
      Bruce Momjian 提交于
      Add C comment about why we throw an error if the pg_upgrade old/new
      database counts don't match.
      03419447
    • T
      Avoid changing an index's indcheckxmin horizon during REINDEX. · 8c19977e
      Tom Lane 提交于
      There can never be a need to push the indcheckxmin horizon forward, since
      any HOT chains that are actually broken with respect to the index must
      pre-date its original creation.  So we can just avoid changing pg_index
      altogether during a REINDEX operation.
      
      This offers a cleaner solution than my previous patch for the problem
      found a few days ago that we mustn't try to update pg_index while we are
      reindexing it.  System catalog indexes will always be created with
      indcheckxmin = false during initdb, and with this modified code we should
      never try to change their pg_index entries.  This avoids special-casing
      system catalogs as the former patch did, and should provide a performance
      benefit for many cases where REINDEX formerly caused an index to be
      considered unusable for a short time.
      
      Back-patch to 8.3 to cover all versions containing HOT.  Note that this
      patch changes the API for index_build(), but I believe it is unlikely that
      any add-on code is calling that directly.
      8c19977e
    • T
      Revert "Prevent incorrect updates of pg_index while reindexing pg_index itself." · c096d19b
      Tom Lane 提交于
      This reverts commit 4b6106cc of 2011-04-15.
      There's a better way to do it, which will follow shortly.
      c096d19b
    • P
      Refix the unaccent regression test on MSVC properly · 385942f4
      Peter Eisentraut 提交于
      ... for some value of "properly".  Instead of overriding REGRESS_OPTS,
      set the variables ENCODING and NO_LOCALE, which is more expressive and
      allows overriding by the user.  Fix vcregress.pl to handle that.
      385942f4
    • P
      Treat config.pl as optional in vcregress.pl · 2e8d9544
      Peter Eisentraut 提交于
      This is how build.pl treats it and how it's documented.
      2e8d9544
    • P
      Fix typo · 908eb1f9
      Peter Eisentraut 提交于
      908eb1f9
    • P
      Add gitignore entries for Windows MSVC builds · 63e9c5b7
      Peter Eisentraut 提交于
      63e9c5b7
    • P
      001cbb14
    • T
      Refrain from canonicalizing a client_encoding setting of "UNICODE". · 390cf320
      Tom Lane 提交于
      While "UTF8" is the correct name for this encoding, existing JDBC drivers
      expect that if they send "UNICODE" it will read back the same way; they
      fail with an opaque "Protocol error" complaint if not.  This will be fixed
      in the 9.1 drivers, but until older drivers are no longer in use in the
      wild, we'd better leave "UNICODE" alone.  Continue to canonicalize all
      other inputs.  Per report from Steve Singer and subsequent discussion.
      390cf320
  2. 19 4月, 2011 3 次提交
  3. 18 4月, 2011 9 次提交
  4. 17 4月, 2011 4 次提交
    • T
      Add an Assert that indexam.c isn't used on an index awaiting reindexing. · d2f60a3a
      Tom Lane 提交于
      This might have caught the recent embarrassment over trying to modify
      pg_index while its indexes were being rebuilt.
      
      Noah Misch
      d2f60a3a
    • T
      Simplify reindex_relation's API. · 2d3320d3
      Tom Lane 提交于
      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
    • T
      Clean up collation processing in prepunion.c. · 121f49a0
      Tom Lane 提交于
      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
    • P
      Set client encoding explicitly in plpython_unicode test · 5809a645
      Peter Eisentraut 提交于
      This will (hopefully) eliminate the need for the
      plpython_unicode_0.out expected file.
      5809a645
  5. 16 4月, 2011 5 次提交
    • T
      Prevent incorrect updates of pg_index while reindexing pg_index itself. · 4b6106cc
      Tom Lane 提交于
      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
    • T
      Suppress unused-function warning on non-WIN32 builds. · ff5565f0
      Tom Lane 提交于
      ff5565f0
    • T
      Guard against incoming rowcount estimate of NaN in cost_mergejoin(). · 72826fb3
      Tom Lane 提交于
      Although rowcount estimates really ought not be NaN, a bug elsewhere
      could perhaps result in that, and that would cause Assert failure in
      cost_mergejoin, which I believe to be the explanation for bug #5977 from
      Anton Kuznetsov.  Seems like a good idea to expend a couple more cycles
      to prevent that, even though the real bug is elsewhere.  Not back-patching,
      though, because we don't encourage running production systems with
      Asserts on.
      72826fb3
    • H
      setlocale() on Windows doesn't work correctly if the locale name contains · d5a7bf8c
      Heikki Linnakangas 提交于
      apostrophes or dots. There isn't much hope of Microsoft fixing it any time
      soon, it's been like that for ages, so we better work around it. So, map a
      few common Windows locale names known to cause problems to aliases that work.
      d5a7bf8c
    • H
      On Windows, if the encoding implied by locale is not allowed as a · 1f943dc8
      Heikki Linnakangas 提交于
      server-encoding, fall back to UTF-8. It happens at least with the Chinese
      locale, which implies BIG5. This is safe, because on Windows all locales
      are compatible with UTF-8.
      1f943dc8
  6. 15 4月, 2011 6 次提交
  7. 14 4月, 2011 2 次提交
    • R
      Remove obsolete comment. · 0c80b57d
      Robert Haas 提交于
      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
    • R
      Fix toast table creation. · 39a68e5c
      Robert Haas 提交于
      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