1. 12 7月, 2008 1 次提交
  2. 11 7月, 2008 4 次提交
  3. 10 7月, 2008 2 次提交
    • T
      Tighten up SS_finalize_plan's computation of valid_params to exclude Params of · eaf1b5d3
      Tom Lane 提交于
      the current query level that aren't in fact output parameters of the current
      initPlans.  (This means, for example, output parameters of regular subplans.)
      To make this work correctly for output parameters coming from sibling
      initplans requires rejiggering the API of SS_finalize_plan just a bit:
      we need the siblings to be visible to it, rather than hidden as
      SS_make_initplan_from_plan had been doing.  This is really part of my response
      to bug #4290, but I concluded this part probably shouldn't be back-patched,
      since all that it's doing is to make a debugging cross-check tighter.
      eaf1b5d3
    • T
      Fix mis-calculation of extParam/allParam sets for plan nodes, as seen in · 772a6d45
      Tom Lane 提交于
      bug #4290.  The fundamental bug is that masking extParam by outer_params,
      as finalize_plan had been doing, caused us to lose the information that
      an initPlan depended on the output of a sibling initPlan.  On reflection
      the best thing to do seemed to be not to try to adjust outer_params for
      this case but get rid of it entirely.  The only thing it was really doing
      for us was to filter out param IDs associated with SubPlan nodes, and that
      can be done (with greater accuracy) while processing individual SubPlan
      nodes in finalize_primnode.  This approach was vindicated by the discovery
      that the masking method was hiding a second bug: SS_finalize_plan failed to
      remove extParam bits for initPlan output params that were referenced in the
      main plan tree (it only got rid of those referenced by other initPlans).
      It's not clear that this caused any real problems, given the limited use
      of extParam by the executor, but it's certainly not what was intended.
      
      I originally thought that there was also a problem with needing to include
      indirect dependencies on external params in initPlans' param sets, but it
      turns out that the executor handles this correctly so long as the depended-on
      initPlan is earlier in the initPlans list than the one using its output.
      That seems a bit of a fragile assumption, but it is true at the moment,
      so I just documented it in some code comments rather than making what would
      be rather invasive changes to remove the assumption.
      
      Back-patch to 8.1.  Previous versions don't have the case of initPlans
      referring to other initPlans' outputs, so while the existing logic is still
      questionable for them, there are not any known bugs to be fixed.  So I'll
      refrain from changing them for now.
      772a6d45
  4. 09 7月, 2008 2 次提交
    • T
      Increase PG_SYSLOG_LIMIT (the max line length sent to syslog()) from 128 to · 6b7eebc0
      Tom Lane 提交于
      1024 to improve performance when sending large elog messages.  Also add a
      comment about why we use that number.
      
      Since this represents an externally visible behavior change, and might
      possibly result in portability issues, it seems best not to back-patch it.
      6b7eebc0
    • T
      Fix performance bug in write_syslog(): the code to preferentially break the · 37933102
      Tom Lane 提交于
      log message at newlines cost O(N^2) for very long messages with few or no
      newlines.  For messages in the megabyte range this became the dominant cost.
      Per gripe from Achilleas Mantzios.
      
      Patch all the way back, since this is a safe change with no portability
      risks.  I am also thinking of increasing PG_SYSLOG_LIMIT, but that should
      be done separately.
      37933102
  5. 08 7月, 2008 4 次提交
    • N
      Minor improvements to the Gin internal documentation. · 68af3752
      Neil Conway 提交于
      68af3752
    • B
      Add comment for deadlock_timeout: · 70d15a51
      Bruce Momjian 提交于
              /* This is PGC_SIGHUP so all backends have the same value. */
      70d15a51
    • T
      Fix estimate_num_groups() to assume that GROUP BY expressions yielding boolean · 170063cd
      Tom Lane 提交于
      results always contribute two groups, regardless of the expression contents.
      This is very substantially more accurate than the regular heuristic for
      certain boolean tests like "col IS NULL".  Per gripe from Sam Mason.
      
      Back-patch to all supported releases, since the behavior of
      estimate_num_groups() hasn't changed all that much since 7.4.
      170063cd
    • T
      Fix AT TIME ZONE (in all three variants) so that we first try to interpret · c5083853
      Tom Lane 提交于
      the timezone argument as a timezone abbreviation, and only try it as a full
      timezone name if that fails.  The zic database has four zones (CET, EET, MET,
      WET) that are full daylight-savings zones and yet have names that are the
      same as their abbreviations for standard time, resulting in ambiguity.
      In the timestamp input functions we resolve the ambiguity by preferring the
      abbreviation, and AT TIME ZONE should work the same way.  (No functionality
      is lost because the zic database also has other names for these zones, eg
      Europe/Zurich.)  Per gripe from Jaromir Talir.
      
      Backpatch to 8.1.  Older releases did not have the issue because AT TIME ZONE
      only accepted abbreviations not zone names.  (Thus, this patch also arguably
      fixes a compatibility botch introduced at 8.1: in ambiguous cases we now
      behave the same as 8.0 did.)
      c5083853
  6. 07 7月, 2008 1 次提交
    • T
      Prevent integer overflows during units conversion when displaying a GUC · fbcc69c1
      Tom Lane 提交于
      variable that has units.  Per report from Stefan Kaltenbrunner.
      
      Backport to 8.2.  I also backported my patch of 2007-06-21 that prevented
      comparable overflows on the input side, since that now seems to have enough
      field track record to be back-patched safely.  That patch included addition
      of hints listing the available unit names, which I did not bother to strip
      out of it --- this will make a little more work for the translators, but
      they can copy the translation from 8.3, and anyway an untranslated hint
      is better than no hint.
      fbcc69c1
  7. 04 7月, 2008 4 次提交
  8. 03 7月, 2008 5 次提交
  9. 02 7月, 2008 1 次提交
  10. 01 7月, 2008 8 次提交
  11. 30 6月, 2008 2 次提交
  12. 29 6月, 2008 1 次提交
  13. 28 6月, 2008 2 次提交
    • T
      Consider a clause to be outerjoin_delayed if it references the nullable side · dcc23347
      Tom Lane 提交于
      of any lower outer join, even if it also references the non-nullable side and
      so could not get pushed below the outer join anyway.  We need this in case
      the clause is an OR clause: if it doesn't get marked outerjoin_delayed,
      create_or_index_quals() could pull an indexable restriction for the nullable
      side out of it, leading to wrong results as demonstrated by today's bug
      report from toruvinn.  (See added regression test case for an example.)
      
      In principle this has been wrong for quite a while.  In practice I don't
      think any branch before 8.3 can really show the failure, because
      create_or_index_quals() will only pull out indexable conditions, and before
      8.3 those were always strict.  So though we might have improperly generated
      null-extended rows in the outer join, they'd get discarded from the result
      anyway.  The gating factor that makes the failure visible is that 8.3
      considers "col IS NULL" to be indexable.  Hence I'm not going to risk
      back-patching further than 8.3.
      dcc23347
    • M
      Fix standalone libpq build on win32. · f6c1dece
      Magnus Hagander 提交于
      Hiroshi Saito
      f6c1dece
  14. 27 6月, 2008 3 次提交