1. 14 5月, 2013 4 次提交
  2. 13 5月, 2013 1 次提交
    • T
      Fix handling of strict non-set functions with NULLs in set-valued inputs. · 904af8db
      Tom Lane 提交于
      In a construct like "select plain_function(set_returning_function(...))",
      the plain function is applied to each output row of the SRF successively.
      If some of the SRF outputs are NULL, and the plain function is strict,
      you'd expect to get NULL results for such rows ... but what actually
      happened was that such rows were omitted entirely from the result set.
      This was due to confusion of this case with what should happen for nested
      set-returning functions; a strict SRF is indeed supposed to yield an empty
      set for null input.  Per bug #8150 from Erwin Brandstetter.
      
      Although this has been broken forever, we're not back-patching because
      of the possibility that some apps out there expect the incorrect behavior.
      This change should be listed as a possible incompatibility in the 9.3
      release notes.
      904af8db
  3. 12 5月, 2013 6 次提交
    • P
      pgbench: Fix order of options in --help output · f0ed3a8a
      Peter Eisentraut 提交于
      f0ed3a8a
    • P
      pg_xlogdump: Improve --help output · a4fd3366
      Peter Eisentraut 提交于
      a4fd3366
    • T
      Fix to_number() to correctly ignore thousands separator when it's '.'. · 35d50b52
      Tom Lane 提交于
      The existing code in NUM_numpart_from_char has hard-wired logic to treat
      '.' as decimal point, even when we're using a locale-aware format string
      and the locale says that '.' is the thousands separator.  This results in
      clearly wrong answers in FM mode (where we must be able to identify the
      decimal point location), as per bug report from Patryk Kordylewski.
      
      Since the initialization code in NUM_prepare_locale already sets up
      Np->decimal as either the locale decimal-point string or "." depending
      on which decimal-point format code was used, there's really no need to
      have any extra logic at all in NUM_numpart_from_char: we only need to
      test for a match to Np->decimal.
      
      (Note: AFAICS there's nothing in here that explicitly checks for thousands
      separators --- rather, any unmatched character is silently skipped over.
      That's pretty bogus IMO but it's not the issue being complained of.)
      
      This is a longstanding bug, but it's possible that some existing apps
      are depending on '.' being recognized as decimal point even when using
      a D format code.  Hence, no back-patch.  We should probably list this
      as a potential incompatibility in the 9.3 release notes.
      35d50b52
    • T
      Fix buildfarm incompatibility in updated pg_upgrade test script. · 8cade04c
      Tom Lane 提交于
      Looks like some versions of the buildfarm script try to set the port via
      --port in $EXTRA_REGRESS_OPTS.  Override that ...
      8cade04c
    • T
      Make pg_upgrade's test script attempt to select a non-conflicting port. · 7e2b1c03
      Tom Lane 提交于
      Previously, the port number used in this test script was hard-wired at
      pg_upgrade's default of 50432; which is not so great because parallel build
      runs might conflict.  Commit 3d53173e
      removed this setting for the postmasters started by the script proper
      (not by pg_upgrade), which didn't do anything to fix that problem and also
      guaranteed a failure if there was a live postmaster at the build's default
      port number.  Instead, select a non-conflicting temporary port number in
      the same way that pg_regress.c does.  (Its method isn't entirely
      bulletproof, but given the lack of complaints I'm not going to worry
      about that today.)
      
      In passing, unset MAKEFLAGS and MAKELEVEL to avoid problems with the
      script's internal invocations of make, for the same reason pg_regress.c
      does: it could cause problems in a parallel make.
      7e2b1c03
    • T
      Update CREATE FUNCTION documentation about argument names. · c263f16a
      Tom Lane 提交于
      The 9.2 patch that added argument name support in SQL-language functions
      missed updating a parenthetical comment about that in the CREATE FUNCTION
      reference page.  Noted by Erwin Brandstetter.
      c263f16a
  4. 11 5月, 2013 2 次提交
    • T
      Guard against input_rows == 0 in estimate_num_groups(). · 69cc60dc
      Tom Lane 提交于
      This case doesn't normally happen, because the planner usually clamps
      all row estimates to at least one row; but I found that it can arise
      when dealing with relations excluded by constraints.  Without a defense,
      estimate_num_groups() can return zero, which leads to divisions by zero
      inside the planner as well as assertion failures in the executor.
      
      An alternative fix would be to change set_dummy_rel_pathlist() to make
      the size estimate for a dummy relation 1 row instead of 0, but that seemed
      pretty ugly; and probably someday we'll want to drop the convention that
      the minimum rowcount estimate is 1 row.
      
      Back-patch to 8.4, as the problem can be demonstrated that far back.
      69cc60dc
    • T
      Fix pgp_pub_decrypt() so it works for secret keys with passwords. · 477b5a0e
      Tom Lane 提交于
      Per report from Keith Fiske.
      
      Marko Kreen
      477b5a0e
  5. 10 5月, 2013 5 次提交
    • T
      Fix management of fn_extra caching during repeated GiST index scans. · 91715e82
      Tom Lane 提交于
      Commit d22a09dc introduced official support
      for GiST consistentFns that want to cache data using the FmgrInfo fn_extra
      pointer: the idea was to preserve the cached values across gistrescan(),
      whereas formerly they'd been leaked.  However, there was an oversight in
      that, namely that multiple scan keys might reference the same column's
      consistentFn; the code would result in propagating the same cache value
      into multiple scan keys, resulting in crashes or wrong answers.  Use a
      separate array instead to ensure that each scan key keeps its own state.
      
      Per bug #8143 from Joel Roller.  Back-patch to 9.2 where the bug was
      introduced.
      91715e82
    • P
      Update key words table for 9.3 · cda7acee
      Peter Eisentraut 提交于
      cda7acee
    • P
      Remove make_keywords · bd98852c
      Peter Eisentraut 提交于
      It is not used anymore.
      bd98852c
    • T
      Use pg_dump's --quote-all-identifiers option in pg_upgrade. · 1c36700e
      Tom Lane 提交于
      This helps guard against changes in the set of reserved keywords from
      one version to another.  In theory it should only be an issue if we
      de-reserve a keyword in a newer release, since that can create the type
      of problem shown in bug #8128.
      
      Back-patch to 9.1 where the --quote-all-identifiers option was added.
      1c36700e
    • B
      pg_upgrade docs: give tips on automation · df9d7641
      Bruce Momjian 提交于
      Document that post-upgrade steps are likely to be the same for all
      clusters with the same DDL/schemas;  this should help automated
      upgrades.
      df9d7641
  6. 09 5月, 2013 4 次提交
    • T
      Update collate.linux.utf8.out for ruleutils.c line-wrapping changes. · 284e28f2
      Tom Lane 提交于
      Missed in commit 62e66640.
      284e28f2
    • T
      Better fix for permissions tests in excluded subqueries. · a7b96538
      Tom Lane 提交于
      This reverts the code changes in 50c13748,
      which turned out to induce crashes and not completely fix the problem
      anyway.  That commit only considered single subqueries that were excluded
      by constraint-exclusion logic, but actually the problem also exists for
      subqueries that are appendrel members (ie part of a UNION ALL list).  In
      such cases we can't add a dummy subpath to the appendrel's AppendPath list
      without defeating the logic that recognizes when an appendrel is completely
      excluded.  Instead, fix the problem by having setrefs.c scan the rangetable
      an extra time looking for subqueries that didn't get into the plan tree.
      (This approach depends on the 9.2 change that made set_subquery_pathlist
      generate dummy paths for excluded single subqueries, so that the exclusion
      behavior is the same for single subqueries and appendrel members.)
      
      Note: it turns out that the appendrel form of the missed-permissions-checks
      bug exists as far back as 8.4.  However, since the practical effect of that
      bug seems pretty minimal, consensus is to not attempt to fix it in the back
      branches, at least not yet.  Possibly we could back-port this patch once
      it's gotten a reasonable amount of testing in HEAD.  For the moment I'm
      just going to revert the previous patch in 9.2.
      a7b96538
    • H
      The data structure used in unaccent is a trie, not suffix tree. · 4b06c182
      Heikki Linnakangas 提交于
      Fix the term used in variable and struct names, and comments.
      
      Alexander Korotkov
      4b06c182
    • H
      Fix walsender failure at promotion. · 2ffa66f4
      Heikki Linnakangas 提交于
      If a standby server has a cascading standby server connected to it, it's
      possible that WAL has already been sent up to the next WAL page boundary,
      splitting a WAL record in the middle, when the first standby server is
      promoted. Don't throw an assertion failure or error in walsender if that
      happens.
      
      Also, fix a variant of the same bug in pg_receivexlog: if it had already
      received WAL on previous timeline up to a segment boundary, when the
      upstream standby server is promoted so that the timeline switch record falls
      on the previous segment, pg_receivexlog would miss the segment containing
      the timeline switch. To fix that, have walsender send the position of the
      timeline switch at end-of-streaming, in addition to the next timeline's ID.
      It was previously assumed that the switch happened exactly where the
      streaming stopped.
      
      Note: this is an incompatible change in the streaming protocol. You might
      get an error if you try to stream over timeline switches, if the client is
      running 9.3beta1 and the server is more recent. It should be fine after a
      reconnect, however.
      
      Reported by Fujii Masao.
      2ffa66f4
  7. 08 5月, 2013 2 次提交
  8. 07 5月, 2013 6 次提交
    • H
      Stress that backup_label file is critical in the docs. · 7f03a791
      Heikki Linnakangas 提交于
      It is surprisingly common mistake to leave out backup_label file from a base
      backup. Say more explicitly that it must be included.
      
      Jeff Janes, with minor rewording by me.
      7f03a791
    • T
      Stamp 9.3beta1. · 817a8942
      Tom Lane 提交于
      817a8942
    • T
      Desultory copy-editing of the 9.3 release notes. · f1ff90cf
      Tom Lane 提交于
      I had time for a quick review of the notes, so here are some fixes.
      f1ff90cf
    • T
      Move materialized views' is-populated status into their pg_class entries. · 1d6c72a5
      Tom Lane 提交于
      Previously this state was represented by whether the view's disk file had
      zero or nonzero size, which is problematic for numerous reasons, since it's
      breaking a fundamental assumption about heap storage.  This was done to
      allow unlogged matviews to revert to unpopulated status after a crash
      despite our lack of any ability to update catalog entries post-crash.
      However, this poses enough risk of future problems that it seems better to
      not support unlogged matviews until we can find another way.  Accordingly,
      revert that choice as well as a number of existing kluges forced by it
      in favor of creating a pg_class.relispopulated flag column.
      1d6c72a5
    • T
      Back out some recent translation updates. · 5da57980
      Tom Lane 提交于
      Very old versions of msgfmt choke on these specific messages, for reasons
      that are unclear at the moment.  Remove them so that we can ship a beta
      release and not get complaints from testers (these messages will just go
      untranslated, instead, and we're hardly at 100% coverage anyway).
      Peter Eisentraut will look for a better fix later.
      5da57980
    • T
      Disallow unlogged materialized views. · 3223b25f
      Tom Lane 提交于
      The initial implementation of this feature was really unsupportable,
      because it's relying on the physical size of an on-disk file to carry the
      relation's populated/unpopulated state, which is at least a modularity
      violation and could have serious long-term consequences.  We could say that
      an unlogged matview goes to empty on crash, but not everybody likes that
      definition, so let's just remove the feature for 9.3.  We can add it back
      when we have a less klugy implementation.
      
      I left the grammar and tab-completion support for CREATE UNLOGGED
      MATERIALIZED VIEW in place, since it's harmless and allows delivering a
      more specific error message about the unsupported feature.
      
      I'm committing this separately to ease identification of what should be
      reverted when/if we are able to re-enable the feature.
      3223b25f
  9. 06 5月, 2013 6 次提交
  10. 05 5月, 2013 3 次提交
  11. 04 5月, 2013 1 次提交