1. 30 5月, 2008 1 次提交
    • T
      Fix some bugs introduced by the 8.2-era conversion of cube functions to V1 · 5914140a
      Tom Lane 提交于
      calling convention.  cube_inter and cube_distance could attempt to pfree
      their input arguments, and cube_dim returned a value from a struct it
      might have just pfree'd (which would only really cause a problem in a
      debug build, but it's still wrong).  Per bug #4208 and additional code
      reading.
      
      In HEAD and 8.3, I also made a batch of cosmetic changes to bring these
      functions into line with the preferred coding style for V1 functions,
      ie declare and fetch all the arguments at the top so readers can easily
      see what they are.
      5914140a
  2. 29 5月, 2008 2 次提交
  3. 28 5月, 2008 5 次提交
  4. 27 5月, 2008 3 次提交
    • M
      Explicitly bind gettext() to the UTF8 locale when in use. · ea7f9648
      Magnus Hagander 提交于
      This is required on Windows due to the special locale
      handling for UTF8 that doesn't change the full environment.
      
      Fixes crash with translated error messages per bugs 4180
      and 4196.
      
      Tom Lane
      ea7f9648
    • T
      Alter the xxx_pattern_ops opclasses to use the regular equality operator of · 7b8a63c3
      Tom Lane 提交于
      the associated datatype as their equality member.  This means that these
      opclasses can now support plain equality comparisons along with LIKE tests,
      thus avoiding the need for an extra index in some applications.  This
      optimization was not possible when the pattern opclasses were first introduced,
      because we didn't insist that text equality meant bitwise equality; but we
      do now, so there is no semantic difference between regular and pattern
      equality operators.
      
      I removed the name_pattern_ops opclass altogether, since it's really useless:
      name's regular comparisons are just strcmp() and are unlikely to become
      something different.  Instead teach indxpath.c that btree name_ops can be
      used for LIKE whether or not the locale is C.  This might lead to a useful
      speedup in LIKE queries on the system catalogs in non-C locales.
      
      The ~=~ and ~<>~ operators are gone altogether.  (It would have been nice to
      keep them for backward compatibility's sake, but since the pg_amop structure
      doesn't allow multiple equality operators per opclass, there's no way.)
      
      A not-immediately-obvious incompatibility is that the sort order within
      bpchar_pattern_ops indexes changes --- it had been identical to plain
      strcmp, but is now trailing-blank-insensitive.  This will impact
      in-place upgrades, if those ever happen.
      
      Per discussions a couple months ago.
      7b8a63c3
    • T
      Fix an old corner-case bug in set_config_option: push_old_value has to be · a3d9a242
      Tom Lane 提交于
      called before, not after, calling the assign_hook if any.  This is because
      push_old_value might fail (due to palloc out-of-memory), and in that case
      there would be no stack entry to tell transaction abort to undo the GUC
      assignment.  Of course the actual assignment to the GUC variable hasn't
      happened yet --- but the assign_hook might have altered subsidiary state.
      Without a stack entry we won't call it again to make it undo such actions.
      So this is necessary to make the world safe for assign_hooks with side
      effects.  Per a discussion a couple weeks ago with Magnus.
      
      Back-patch to 8.0.  7.x did not have the problem because it did not have
      allocatable stacks of GUC values.
      a3d9a242
  5. 26 5月, 2008 1 次提交
    • T
      Adjust timestamp regression tests to prevent two low-probability failure · 8c2ac75c
      Tom Lane 提交于
      cases.  Recent buildfarm experience shows that it is sometimes possible
      to execute several SQL commands in less time than the granularity of
      Windows' not-very-high-resolution gettimeofday(), leading to a failure
      because the tests expect the value of now() to change and it doesn't.
      Also, it was recognized some time ago that the same area of the tests
      could fail if local midnight passes between the insertion and the checking
      of the values for 'yesterday', 'tomorrow', etc.  Clean all this up per
      ideas from myself and Greg Stark.
      
      There remains a window for failure if the transaction block is entered
      exactly at local midnight (so that 'now' and 'today' have the same value),
      but that seems low-probability enough to live with.
      
      Since the point of this change is mostly to eliminate buildfarm noise,
      back-patch to all versions we are still actively testing.
      8c2ac75c
  6. 22 5月, 2008 3 次提交
  7. 21 5月, 2008 3 次提交
  8. 20 5月, 2008 5 次提交
  9. 19 5月, 2008 2 次提交
    • T
      Coercion sanity check in ri_HashCompareOp failed to allow for enums, as per · 63e98b55
      Tom Lane 提交于
      example from Rod Taylor.  On reflection the correct test here is for any
      polymorphic type, not specifically ANYARRAY as in the original coding.
      63e98b55
    • T
      Make another try at using -Wl,--as-needed to suppress linking of unnecessary · 2dad10f4
      Tom Lane 提交于
      shared libraries.  We've tried this before and had problems with libreadline
      not linking properly on some platforms, but that seems to be a libreadline
      bug that may have been fixed by now.  In any case, it's early enough in the
      8.4 devel cycle that we can afford to have some transient breakage while
      we work out any portability problems.
      
      On Darwin, we try -Wl,-dead_strip_dylibs, which seems to be the equivalent
      incantation there.
      2dad10f4
  10. 18 5月, 2008 12 次提交
  11. 17 5月, 2008 3 次提交