1. 18 2月, 2012 2 次提交
  2. 17 2月, 2012 6 次提交
    • T
      Fix longstanding error in contrib/intarray's int[] & int[] operator. · 06d9afa6
      Tom Lane 提交于
      The array intersection code would give wrong results if the first entry of
      the correct output array would be "1".  (I think only this value could be
      at risk, since the previous word would always be a lower-bound entry with
      that fixed value.)
      
      Problem spotted by Julien Rouhaud, initial patch by Guillaume Lelarge,
      cosmetic improvements by me.
      06d9afa6
    • T
      Improve statistics estimation to make some use of DISTINCT in sub-queries. · 4767bc8f
      Tom Lane 提交于
      Formerly, we just punted when trying to estimate stats for variables coming
      out of sub-queries using DISTINCT, on the grounds that whatever stats we
      might have for underlying table columns would be inapplicable.  But if the
      sub-query has only one DISTINCT column, we can consider its output variable
      as being unique, which is useful information all by itself.  The scope of
      this improvement is pretty narrow, but it costs nearly nothing, so we might
      as well do it.  Per discussion with Andres Freund.
      
      This patch differs from the draft I submitted yesterday in updating various
      comments about vardata.isunique (to reflect its extended meaning) and in
      tweaking the interaction with security_barrier views.  There does not seem
      to be a reason why we can't use this sort of knowledge even when the
      sub-query is such a view.
      4767bc8f
    • R
      pg_dump: Miscellaneous tightening based on recent refactorings. · 1cc1b91d
      Robert Haas 提交于
      Use exit_horribly() and ExecuteSqlQueryForSingleRow() in various
      places where it's equivalent, or nearly equivalent, to the prior
      coding. Apart from being more compact, this also makes the error
      messages for the wrong-number-of-tuples case more consistent.
      1cc1b91d
    • R
      pg_dump: Remove global connection pointer. · 689d0eb7
      Robert Haas 提交于
      Parallel pg_dump wants to have multiple ArchiveHandle objects, and
      therefore multiple PGconns, in play at the same time.  This should
      be just about the end of the refactoring that we need in order to
      make that workable.
      689d0eb7
    • R
      Refactor pg_dump.c to avoid duplicating returns-one-row check. · 549e93c9
      Robert Haas 提交于
      Any patches apt to get broken have probably already been broken by the
      error-handling cleanups I just did, so we might as well clean this up
      at the same time.
      549e93c9
    • R
      Invent on_exit_nicely for pg_dump. · e9a22259
      Robert Haas 提交于
      Per recent discussions on pgsql-hackers regarding parallel pg_dump.
      e9a22259
  3. 16 2月, 2012 5 次提交
    • T
      Run a portal's cleanup hook immediately when pushing it to FAILED state. · 4bfe68df
      Tom Lane 提交于
      This extends the changes of commit 6252c4f9
      so that we run the cleanup hook earlier for failure cases as well as
      success cases.  As before, the point is to avoid an assertion failure from
      an Assert I added in commit a874fe7b, which
      was meant to check that no user-written code can be called during portal
      cleanup.  This fixes a case reported by Pavan Deolasee in which the Assert
      could be triggered during backend exit (see the new regression test case),
      and also prevents the possibility that the cleanup hook is run after
      portions of the portal's state have already been recycled.  That doesn't
      really matter in current usage, but it foreseeably could matter in the
      future.
      
      Back-patch to 9.1 where the Assert in question was added.
      4bfe68df
    • R
      Fix VPATH builds, broken by my recent commit to speed up tuplesorting. · edec8c8e
      Robert Haas 提交于
      The relevant commit is 337b6f5e.
      edec8c8e
    • B
      Have pg_upgrade output 'link' or 'copy' when reporting its status. · 7f951474
      Bruce Momjian 提交于
      Idea from Peter.
      7f951474
    • R
      sepgsql: Move some code from hooks.c to label.c · d44a3fb5
      Robert Haas 提交于
      This is some preliminary refactoring related to a pending patch
      to allow sepgsql-enable sessions to make dynamic label transitions.
      But this commit doesn't involve any functional change: it just puts
      some bits of code in more logical places.
      
      KaiGai Kohei
      d44a3fb5
    • R
      Speed up in-memory tuplesorting. · 337b6f5e
      Robert Haas 提交于
      Per recent work by Peter Geoghegan, it's significantly faster to
      tuplesort on a single sortkey if ApplySortComparator is inlined into
      quicksort rather reached via a function pointer.  It's also faster
      in general to have a version of quicksort which is specialized for
      sorting SortTuple objects rather than objects of arbitrary size and
      type.  This requires a couple of additional copies of the quicksort
      logic, which in this patch are generate using a Perl script.  There
      might be some benefit in adding further specializations here too,
      but thus far it's not clear that those gains are worth their weight
      in code footprint.
      337b6f5e
  4. 15 2月, 2012 10 次提交
  5. 14 2月, 2012 4 次提交
  6. 13 2月, 2012 4 次提交
  7. 12 2月, 2012 1 次提交
    • T
      Fix I/O-conversion-related memory leaks in plpgsql. · 58a9596e
      Tom Lane 提交于
      Datatype I/O functions are allowed to leak memory in CurrentMemoryContext,
      since they are generally called in short-lived contexts.  However, plpgsql
      calls such functions for purposes of type conversion, and was calling them
      in its procedure context.  Therefore, any leaked memory would not be
      recovered until the end of the plpgsql function.  If such a conversion
      was done within a loop, quite a bit of memory could get consumed.  Fix by
      calling such functions in the transient "eval_econtext", and adjust other
      logic to match.  Back-patch to all supported versions.
      
      Andres Freund, Jan Urbański, Tom Lane
      58a9596e
  8. 11 2月, 2012 3 次提交
    • T
      Fix oversight in pg_dump's handling of extension configuration tables. · 59de132f
      Tom Lane 提交于
      If an extension has not been selected to be dumped (perhaps because of
      a --schema or --table switch), the contents of its configuration tables
      surely should not get dumped either.  Per gripe from
      Hubert Depesz Lubaczewski.
      59de132f
    • T
      Fix brain fade in previous pg_dump patch. · 97dc3c8a
      Tom Lane 提交于
      In pre-7.3 databases, pg_attribute.attislocal doesn't exist.  The easiest
      way to make sure the new inheritance logic behaves sanely is to assume it's
      TRUE, not FALSE.  This will result in printing child columns even when
      they're not really needed.  We could work harder at trying to reconstruct a
      value for attislocal, but there is little evidence that anyone still cares
      about dumping from such old versions, so just do the minimum necessary to
      have a valid dump.
      
      I had this correct in the original draft of the patch, but for some
      unaccountable reason decided it wasn't necessary to change the value.
      Testing against an old server shows otherwise...
      97dc3c8a
    • T
      Fix pg_dump for better handling of inherited columns. · 00bc96bd
      Tom Lane 提交于
      Revise pg_dump's handling of inherited columns, which was last looked at
      seriously in 2001, to eliminate several misbehaviors associated with
      inherited default expressions and NOT NULL flags.  In particular make sure
      that a column is printed in a child table's CREATE TABLE command if and
      only if it has attislocal = true; the former behavior would sometimes cause
      a column to become marked attislocal when it was not so marked in the
      source database.  Also, stop relying on textual comparison of default
      expressions to decide if they're inherited; instead, don't use
      default-expression inheritance at all, but just install the default
      explicitly at each level of the hierarchy.  This fixes the
      search-path-related misbehavior recently exhibited by Chester Young, and
      also removes some dubious assumptions about the order in which ALTER TABLE
      SET DEFAULT commands would be executed.
      
      Back-patch to all supported branches.
      00bc96bd
  9. 10 2月, 2012 5 次提交