1. 07 Jun, 2007 1 commit
  2. 06 Jun, 2007 1 commit
    • Tom Lane's avatar
      Fix up text concatenation so that it accepts all the reasonable cases that · 2d4db367
      Tom Lane authored
      were accepted by prior Postgres releases.  This takes care of the loose end
      left by the preceding patch to downgrade implicit casts-to-text.  To avoid
      breaking desirable behavior for array concatenation, introduce a new
      polymorphic pseudo-type "anynonarray" --- the added concatenation operators
      are actually text || anynonarray and anynonarray || text.
      2d4db367
  3. 05 Jun, 2007 4 commits
    • Tom Lane's avatar
      7dab4f75
    • Tom Lane's avatar
      Downgrade implicit casts to text to be assignment-only, except for the ones · 31edbadf
      Tom Lane authored
      from the other string-category types; this eliminates a lot of surprising
      interpretations that the parser could formerly make when there was no directly
      applicable operator.
      
      Create a general mechanism that supports casts to and from the standard string
      types (text,varchar,bpchar) for *every* datatype, by invoking the datatype's
      I/O functions.  These new casts are assignment-only in the to-string direction,
      explicit-only in the other, and therefore should create no surprising behavior.
      Remove a bunch of thereby-obsoleted datatype-specific casting functions.
      
      The "general mechanism" is a new expression node type CoerceViaIO that can
      actually convert between *any* two datatypes if their external text
      representations are compatible.  This is more general than needed for the
      immediate feature, but might be useful in plpgsql or other places in future.
      
      This commit does nothing about the issue that applying the concatenation
      operator || to non-text types will now fail, often with strange error messages
      due to misinterpreting the operator as array concatenation.  Since it often
      (not always) worked before, we should either make it succeed or at least give
      a more user-friendly error; but details are still under debate.
      
      Peter Eisentraut and Tom Lane
      31edbadf
    • Jan Wieck's avatar
      The session_replication_role actually can be changed at will during · 1120b994
      Jan Wieck authored
      a session regardless of the existence of cached plans. The plancache
      only needs to be invalidated so that rules affected by the new setting
      will be reflected in the new query plans.
      
      Jan
      1120b994
    • Teodor Sigaev's avatar
      Move call of MarkBufferDirty() before XLogInsert() as required. · f7442628
      Teodor Sigaev authored
      Many thanks to Heikki Linnakangas <heikki@enterprisedb.com> for his
      sharp eyes.
      f7442628
  4. 04 Jun, 2007 7 commits
  5. 03 Jun, 2007 3 commits
  6. 02 Jun, 2007 5 commits
  7. 01 Jun, 2007 10 commits
  8. 31 May, 2007 5 commits
  9. 30 May, 2007 4 commits
    • Tom Lane's avatar
      Fix overly-strict sanity check in BeginInternalSubTransaction that made it · fa0e318f
      Tom Lane authored
      fail when used in a deferred trigger.  Bug goes back to 8.0; no doubt the
      reason it hadn't been noticed is that we've been discouraging use of
      user-defined constraint triggers.  Per report from Frank van Vugt.
      fa0e318f
    • Bruce Momjian's avatar
      Update: · 9b89c13a
      Bruce Momjian authored
      < * Consider allowing 64-bit integers to be passed by value on 64-bit
      <   platforms
      > * Consider allowing 64-bit integers and floats to be passed by value on
      >   64-bit platforms
      >
      >   Also change 32-bit floats (float4) to be passed by value at the same
      >   time.
      >
      9b89c13a
    • Tom Lane's avatar
      Make large sequential scans and VACUUMs work in a limited-size "ring" of · d526575f
      Tom Lane authored
      buffers, rather than blowing out the whole shared-buffer arena.  Aside from
      avoiding cache spoliation, this fixes the problem that VACUUM formerly tended
      to cause a WAL flush for every page it modified, because we had it hacked to
      use only a single buffer.  Those flushes will now occur only once per
      ring-ful.  The exact ring size, and the threshold for seqscans to switch into
      the ring usage pattern, remain under debate; but the infrastructure seems
      done.  The key bit of infrastructure is a new optional BufferAccessStrategy
      object that can be passed to ReadBuffer operations; this replaces the former
      StrategyHintVacuum API.
      
      This patch also changes the buffer usage-count methodology a bit: we now
      advance usage_count when first pinning a buffer, rather than when last
      unpinning it.  To preserve the behavior that a buffer's lifetime starts to
      decrease when it's released, the clock sweep code is modified to not decrement
      usage_count of pinned buffers.
      
      Work not done in this commit: teach GiST and GIN indexes to use the vacuum
      BufferAccessStrategy for vacuum-driven fetches.
      
      Original patch by Simon, reworked by Heikki and again by Tom.
      d526575f
    • Bruce Momjian's avatar
      Fix wording: · 0a6f2ee8
      Bruce Momjian authored
      < * Consider allowing 64-bit integers to be passed by reference on 64-bit
      > * Consider allowing 64-bit integers to be passed by value on 64-bit
      0a6f2ee8