1. 13 1月, 2008 1 次提交
    • T
      It turns out the LIBXML_TEST_VERSION macro calls xmlInitParser(). · 1bbf8706
      Tom Lane 提交于
      Therefore we must xmlCleanupParser(), or we risk leaving behind
      dangling pointers to whatever memory context is current when xml_init()
      is called.  This seems to fix bug #3860, though we might still want
      the more invasive solution being worked on by Alvaro.
      1bbf8706
  2. 12 1月, 2008 6 次提交
    • N
      Fix two places in xml.c that neglected to check the return values of · 52176633
      Neil Conway 提交于
      SPI_prepare() and SPI_cursor_open(), to silence a Coverity warning.
      52176633
    • N
      Minor perf tweak for _SPI_strdup(): if we're going to call strlen() · 25b7583f
      Neil Conway 提交于
      anyway, it is faster to memcpy() than to strcpy().
      25b7583f
    • T
      Fix logical errors in constraint exclusion: we cannot assume that a CHECK · 208d0a23
      Tom Lane 提交于
      constraint yields TRUE for every row of its table, only that it does not
      yield FALSE (a NULL result isn't disallowed).  This breaks a couple of
      implications that would be true in two-valued logic.  I had put in one such
      mistake in an 8.2.5 patch: foo IS NULL doesn't refute a strict operator
      on foo.  But there was another in the original 8.2 release: NOT foo doesn't
      refute an expression whose truth would imply the truth of foo.
      Per report from Rajesh Kumar Mallah.
      
      To preserve the ability to do constraint exclusion with one partition
      holding NULL values, extend relation_excluded_by_constraints() to check
      for attnotnull flags, and add col IS NOT NULL expressions to the set of
      constraints we hope to refute.
      208d0a23
    • T
      The original implementation of polymorphic aggregates didn't really get the · 89c0a87f
      Tom Lane 提交于
      checking of argument compatibility right; although the problem is only exposed
      with multiple-input aggregates in which some arguments are polymorphic and
      some are not.  Per bug #3852 from Sokolov Yura.
      89c0a87f
    • T
      Fix an old error in clause_selectivity: the default selectivity estimate · df62977d
      Tom Lane 提交于
      for unhandled clause types ought to be 0.5, not 1.0.  I fear I introduced
      this silliness due to misreading the intent of the very-poorly-structured
      code that was there when we inherited the file from Berkeley.  The lack
      of sanity in this behavior was exposed by an example from Sim Zacks.
      (Arguably this is a bug fix and should be back-patched, but I'm a bit
      hesitant to introduce a possible planner behavior change in the back
      branches; it might detune queries that worked acceptably in the past.)
      
      While at it, make estimation for DistinctExpr do something marginally
      realistic, rather than just defaulting.
      df62977d
    • B
      Add: · f3e3f2e1
      Bruce Momjian 提交于
      > * Add ability to trigger on TRUNCATE
      >
      >   http://archives.postgresql.org/pgsql-sql/2008-01/msg00050.php
      f3e3f2e1
  3. 11 1月, 2008 4 次提交
    • M
      Fixed lexer to correctly parse C quotes. · da758c26
      Michael Meskes 提交于
      da758c26
    • T
      Fix a conceptual error in my patch of 2007-10-26 that avoided considering · 59fc64ac
      Tom Lane 提交于
      clauseless joins of relations that have unexploited join clauses.  Rather
      than looking at every other base relation in the query, the correct thing is
      to examine the other relations in the "initial_rels" list of the current
      make_rel_from_joinlist() invocation, because those are what we actually have
      the ability to join against.  This might be a subset of the whole query in
      cases where join_collapse_limit or from_collapse_limit or full joins have
      prevented merging the whole query into a single join problem.  This is a bit
      untidy because we have to pass those rels down through a new PlannerInfo
      field, but it's necessary.  Per bug #3865 from Oleg Kharin.
      59fc64ac
    • T
      Restructure the shutdown procedure for the archiver process to allow it to · e6a442c7
      Tom Lane 提交于
      finish archiving everything (when there's no error), and to eliminate various
      hazards as best we can.  This fixes a previous 8.3 patch that caused the
      postmaster to kill and then restart the archiver during shutdown (!?).
      
      The new behavior is that the archiver is allowed to run unmolested until
      the bgwriter has exited; then it is sent SIGUSR2 to tell it to do a final
      archiving cycle and quit.  We only SIGQUIT the archiver if we want a panic
      stop; this is important since SIGQUIT will also be sent to any active
      archive_command.  The postmaster also now doesn't SIGQUIT the stats collector
      until the bgwriter is done, since the bgwriter can send stats messages in 8.3.
      The postmaster will not exit until both the archiver and stats collector are
      gone; this provides some defense (not too bulletproof) against conflicting
      archiver or stats collector processes being started by a new postmaster
      instance.  We continue the prior practice that the archiver will check
      for postmaster death immediately before issuing any archive_command; that
      gives some additional protection against conflicting archivers.
      
      Also, modify the archiver process to notice SIGTERM and refuse to issue any
      more archive commands if it gets it.  The postmaster doesn't ever send it
      SIGTERM; we assume that any such signal came from init and is a notice of
      impending whole-system shutdown.  In this situation it seems imprudent to try
      to start new archive commands --- if they aren't extremely quick they're
      likely to get SIGKILL'd by init.
      
      All per discussion.
      e6a442c7
    • M
      Generate and include manifest in standalone libpq build on Windows. · 21a00dc6
      Magnus Hagander 提交于
      Hiroshi Saito
      21a00dc6
  4. 10 1月, 2008 4 次提交
    • B
      vacuum_cost_limit has a minimum value of 1, not zero; update · 77015b59
      Bruce Momjian 提交于
      postgresql.conf comment to match.
      77015b59
    • T
      Remove incorrect (and ill-advised anyway) pfree's in pg_convert_from and · a9742f12
      Tom Lane 提交于
      pg_convert_to.  Per bug #3866 from Andrew Gilligan.
      a9742f12
    • T
      Fix CREATE INDEX CONCURRENTLY to not deadlock against an automatic or manual · ceb93600
      Tom Lane 提交于
      VACUUM that is blocked waiting to get lock on the table being indexed.
      Per report and fix suggestion from Greg Stark.
      ceb93600
    • T
      Fix some planner issues found while investigating Kevin Grittner's report · 6a652252
      Tom Lane 提交于
      of poorer planning in 8.3 than 8.2:
      
      1. After pushing a constant across an outer join --- ie, given
      "a LEFT JOIN b ON (a.x = b.y) WHERE a.x = 42", we can deduce that b.y is
      sort of equal to 42, in the sense that we needn't fetch any b rows where
      it isn't 42 --- loop to see if any additional deductions can be made.
      Previous releases did that by recursing, but I had mistakenly thought that
      this was no longer necessary given the EquivalenceClass machinery.
      
      2. Allow pushing constants across outer join conditions even if the
      condition is outerjoin_delayed due to a lower outer join.  This is safe
      as long as the condition is strict and we re-test it at the upper join.
      
      3. Keep the outer-join clause even if we successfully push a constant
      across it.  This is *necessary* in the outerjoin_delayed case, but
      even in the simple case, it seems better to do this to ensure that the
      join search order heuristics will consider the join as reasonable to
      make.  Mark such a clause as having selectivity 1.0, though, since it's
      not going to eliminate very many rows after application of the constant
      condition.
      
      4. Tweak have_relevant_eclass_joinclause to report that two relations
      are joinable when they have vars that are equated to the same constant.
      We won't actually generate any joinclause from such an EquivalenceClass,
      but again it seems that in such a case it's a good idea to consider
      the join as worth costing out.
      
      5. Fix a bug in select_mergejoin_clauses that was exposed by these
      changes: we have to reject candidate mergejoin clauses if either side was
      equated to a constant, because we can't construct a canonical pathkey list
      for such a clause.  This is an implementation restriction that might be
      worth fixing someday, but it doesn't seem critical to get it done for 8.3.
      6a652252
  5. 09 1月, 2008 6 次提交
  6. 08 1月, 2008 4 次提交
  7. 06 1月, 2008 1 次提交
  8. 05 1月, 2008 1 次提交
  9. 04 1月, 2008 7 次提交
    • B
      Add URL for: · 88a79c1d
      Bruce Momjian 提交于
      * Allow AS in "SELECT col AS label" to be optional (not wanted)
      
      >   http://archives.postgresql.org/pgsql-hackers/2003-04/msg00436.php
      88a79c1d
    • T
      Stamp release 8.3RC1. · 2bf121e4
      Tom Lane 提交于
      Security: CVE-2007-4769, CVE-2007-4772, CVE-2007-6067, CVE-2007-6600, CVE-2007-6601
      2bf121e4
    • T
      Update release notes for security releases. · 019fac77
      Tom Lane 提交于
      Security: CVE-2007-4769, CVE-2007-4772, CVE-2007-6067, CVE-2007-6600, CVE-2007-6601
      019fac77
    • T
      The original patch to disallow non-passworded connections to non-superusers · 919c9f6c
      Tom Lane 提交于
      failed to cover all the ways in which a connection can be initiated in dblink.
      Plug the remaining holes.  Also, disallow transient connections in functions
      for which that feature makes no sense (because they are only sensible as
      part of a sequence of operations on the same connection).  Joe Conway
      
      Security: CVE-2007-6601
      919c9f6c
    • T
      Make standard maintenance operations (including VACUUM, ANALYZE, REINDEX, · eedb068c
      Tom Lane 提交于
      and CLUSTER) execute as the table owner rather than the calling user, using
      the same privilege-switching mechanism already used for SECURITY DEFINER
      functions.  The purpose of this change is to ensure that user-defined
      functions used in index definitions cannot acquire the privileges of a
      superuser account that is performing routine maintenance.  While a function
      used in an index is supposed to be IMMUTABLE and thus not able to do anything
      very interesting, there are several easy ways around that restriction; and
      even if we could plug them all, there would remain a risk of reading sensitive
      information and broadcasting it through a covert channel such as CPU usage.
      
      To prevent bypassing this security measure, execution of SET SESSION
      AUTHORIZATION and SET ROLE is now forbidden within a SECURITY DEFINER context.
      
      Thanks to Itagaki Takahiro for reporting this vulnerability.
      
      Security: CVE-2007-6600
      eedb068c
    • T
      Fix assorted security-grade bugs in the regex engine. All of these problems · 98f27aae
      Tom Lane 提交于
      are shared with Tcl, since it's their code to begin with, and the patches
      have been copied from Tcl 8.5.0.  Problems:
      
      CVE-2007-4769: Inadequate check on the range of backref numbers allows
      crash due to out-of-bounds read.
      CVE-2007-4772: Infinite loop in regex optimizer for pattern '($|^)*'.
      CVE-2007-6067: Very slow optimizer cleanup for regex with a large NFA
      representation, as well as crash if we encounter an out-of-memory condition
      during NFA construction.
      
      Part of the response to CVE-2007-6067 is to put a limit on the number of
      states in the NFA representation of a regex.  This seems needed even though
      the within-the-code problems have been corrected, since otherwise the code
      could try to use very large amounts of memory for a suitably-crafted regex,
      leading to potential DOS by driving the system into swap, activating a kernel
      OOM killer, etc.
      
      Although there are certainly plenty of ways to drive the system into effective
      DOS with poorly-written SQL queries, these problems seem worth treating as
      security issues because many applications might accept regex search patterns
      from untrustworthy sources.
      
      Thanks to Will Drewry of Google for reporting these problems.  Patches by Will
      Drewry and Tom Lane.
      
      Security: CVE-2007-4769, CVE-2007-4772, CVE-2007-6067
      98f27aae
    • B
      Add: · 8af31d56
      Bruce Momjian 提交于
      > * Allow multiple identical NOTIFY events to always be communicated to the
      >   client, rather than sent as a single notification to the listener
      8af31d56
  10. 03 1月, 2008 3 次提交
  11. 02 1月, 2008 3 次提交