1. 12 3月, 2008 1 次提交
    • B
      Add to documentation: · 32aaf480
      Bruce Momjian 提交于
      +         Setting <varname>statement_timeout</> in
      +         <filename>postgresql.conf</> is not recommended because it
      +         affects all sessions.
      
      Backpatch to 8.3.X.
      32aaf480
  2. 11 3月, 2008 3 次提交
  3. 09 3月, 2008 2 次提交
    • T
      d19d3543
    • T
      Refactor heap_page_prune so that instead of changing item states on-the-fly, · f647ed43
      Tom Lane 提交于
      it accumulates the set of changes to be made and then applies them.  It had
      to accumulate the set of changes anyway to prepare a WAL record for the
      pruning action, so this isn't an enormous change; the only new complexity is
      to not doubly mark tuples that are visited twice in the scan.  The main
      advantage is that we can substantially reduce the scope of the critical
      section in which the changes are applied, thus avoiding PANIC in foreseeable
      cases like running out of memory in inval.c.  A nice secondary advantage is
      that it is now far clearer that WAL replay will actually do the same thing
      that the original pruning did.
      
      This commit doesn't do anything about the open problem that
      CacheInvalidateHeapTuple doesn't have the right semantics for a CTID change
      caused by collapsing out a redirect pointer.  But whatever we do about that,
      it'll be a good idea to not do it inside a critical section.
      f647ed43
  4. 07 3月, 2008 4 次提交
  5. 06 3月, 2008 5 次提交
  6. 05 3月, 2008 2 次提交
  7. 04 3月, 2008 4 次提交
  8. 02 3月, 2008 3 次提交
  9. 01 3月, 2008 4 次提交
    • T
      Fix unportable usages of tolower(). On signed-char machines, it is necessary · 0b173a6e
      Tom Lane 提交于
      to explicitly cast the output back to char before comparing it to a char
      value, else we get the wrong result for high-bit-set characters.  Found by
      Rolf Jentsch.  Also, fix several places where <ctype.h> functions were being
      called without casting the argument to unsigned char; this is likewise
      unportable, but we keep making that mistake :-(.  These found by buildfarm
      member salamander, which I will desperately miss if it ever goes belly-up.
      0b173a6e
    • T
      Disable the undocumented xmlvalidate() function, which was unintentionally · 25819aae
      Tom Lane 提交于
      left in the code though it was not meant to be provided.  It represents a
      security hole because unprivileged users could use it to look at (at least the
      first line of) any file readable by the backend.  Fortunately, this is only
      possible if the backend was built with XML support, so the damage is at least
      mitigated; and 8.3 probably hasn't propagated into any security-critical uses
      yet anyway.  Per report from Sergey Burladyan.
      25819aae
    • A
      Don't call AddUserToDacl on Cygwin · da956ae7
      Andrew Dunstan 提交于
      da956ae7
    • T
      Reducing the assumed alignment of struct varlena means that the compiler · c6f40157
      Tom Lane 提交于
      is also licensed to put a local variable declared that way at an unaligned
      address.  Which will not work if the variable is then manipulated with
      SET_VARSIZE or other macros that assume alignment.  So the previous patch
      is not an unalloyed good, but on balance I think it's still a win, since
      we have very few places that do that sort of thing.  Fix the one place in
      tuptoaster.c that does it.  Per buildfarm results from gypsy_moth
      (I'm a bit surprised that only one machine showed a failure).
      c6f40157
  10. 29 2月, 2008 2 次提交
    • M
      Fix handling of restricted processes for Windows Vista (mainly), · b7394915
      Magnus Hagander 提交于
      by explicitly adding back the user to the DACL of the new process.
      This fixes the failure case when executing as the Administrator
      user, which had no permissions left at all after we dropped the
      Administrators group.
      
      Dave Page with some modifications from me
      b7394915
    • N
      Fix several memory leaks when rescanning SRFs. Arrange for an SRF's · fefe32d3
      Neil Conway 提交于
      "multi_call_ctx" to be a distinct sub-context of the EState's per-query
      context, and delete the multi_call_ctx as soon as the SRF finishes
      execution. This avoids leaking SRF memory until the end of the current
      query, which is particularly egregious when the SRF is scanned
      multiple times. This change also fixes a leak of the fields of the
      AttInMetadata struct in shutdown_MultiFuncCall().
      
      Also fix a leak of the SRF result TupleDesc when rescanning a
      FunctionScan node. The TupleDesc is allocated in the per-query context
      for every call to ExecMakeTableFunctionResult(), so we should free it
      after calling that function. Since the SRF might choose to return
      a non-expendable TupleDesc, we only free the TupleDesc if it is
      not being reference-counted.
      
      Backpatch to 8.3 and 8.2 stable branches.
      fefe32d3
  11. 28 2月, 2008 2 次提交
  12. 26 2月, 2008 3 次提交
    • P
      Fix uninstall target. · 07e58204
      Peter Eisentraut 提交于
      07e58204
    • T
      Fix encode(...bytea..., 'escape') so that it converts all high-bit-set byte · 47e6f144
      Tom Lane 提交于
      values into \nnn octal escape sequences.  When the database encoding is
      multibyte this is *necessary* to avoid generating invalidly encoded text.
      Even in a single-byte encoding, the old behavior seems very hazardous ---
      consider for example what happens if the text is transferred to another
      database with a different encoding.  Decoding would then yield some other
      bytea value than what was encoded, which is surely undesirable.  Per gripe
      from Hernan Gonzalez.
      
      Backpatch to 8.3, but not further.  This is a bit of a judgment call, but I
      make it on these grounds: pre-8.3 we don't really have much encoding safety
      anyway because of the convert() function family, and we would also have much
      higher risk of breaking existing apps that may not be expecting this behavior.
      8.3 is still new enough that we can probably get away with making this change
      in the function's behavior.
      47e6f144
    • T
      Fix datetime input to behave correctly for Feb 29 in years BC. · 1f51400e
      Tom Lane 提交于
      Formerly, DecodeDate attempted to verify the day-of-the-month exactly, but
      it was under the misapprehension that it would know whether we were looking
      at a BC year or not.  In reality this check can't be made until the calling
      function (eg DecodeDateTime) has processed all the fields.  So, split the
      BC adjustment and validity checks out into a new function ValidateDate that
      is called only after processing all the fields.  In passing, this patch
      makes DecodeTimeOnly work for BC inputs, which it never did before.
      
      (The historical veracity of all this is nonexistent, of course, but if
      we're going to say we support proleptic Gregorian calendar then we should
      do it correctly.  In any case the unpatched code is broken because it could
      emit dates that it would then reject on re-inputting.)
      
      Per report from Bernd Helmle.  Back-patch as far as 8.0; in 7.x we were
      not using our own calendar support and so this seems a bit too risky
      to put into 7.4.
      1f51400e
  13. 24 2月, 2008 3 次提交
    • T
      Use our own getopt() and getopt_long() on Solaris, because that platform's · 53c64ad0
      Tom Lane 提交于
      versions don't handle long options the way we want.  Per Zdenek Kotala.
      53c64ad0
    • T
      Avoid trying to print a NULL char pointer in --describe-config. On some · babbd121
      Tom Lane 提交于
      platforms this works, but on some it crashes.  Zdenek Kotala
      babbd121
    • T
      Change the declaration of struct varlena so that the length word is · 7b416c8c
      Tom Lane 提交于
      represented as "char ...[4]" not "int32".  Since the length word is never
      supposed to be accessed via this struct member anyway, this won't break
      any existing code that is following the rules.  The advantage is that C
      compilers will no longer assume that a pointer to struct varlena is
      word-aligned, which prevents incorrect optimizations in TOAST-pointer
      access and perhaps other places.  gcc doesn't seem to do this (at least
      not at -O2), but the problem is demonstrable on some other compilers.
      
      I changed struct inet as well, but didn't bother to touch a lot of other
      struct definitions in which it wouldn't make any difference because there
      were other fields forcing int alignment anyway.  Hopefully none of those
      struct definitions are used for accessing unaligned Datums.
      7b416c8c
  14. 21 2月, 2008 2 次提交
    • T
      Fix mistakes in pg_ctl's code for "start -w" that tries to cope with · e2f86a5c
      Tom Lane 提交于
      non-default settings for the postmaster's port number.  The code to parse
      command line options and postgresql.conf entries wasn't quite right about
      whitespace or quotes, and it was coded in a not-very-readable way too.
      Per bug #3969 from Itagaki Takahiro, though this is more extensive than his
      proposed patch (which fixed only the whitespace problem).
      This code has been broken since it was put in in 8.0, so patch all the way
      back.
      e2f86a5c
    • T
      Put a CHECK_FOR_INTERRUPTS call into the loops that try to find a unique new · 636fa3b4
      Tom Lane 提交于
      OID or new relfilenode.  If the existing OIDs are sufficiently densely
      populated, this could take a long time (perhaps even be an infinite loop),
      so it seems wise to allow the system to respond to a cancel interrupt here.
      Per a gripe from Jacky Leng.
      
      Backpatch as far as 8.1.  Older versions just fail on OID collision,
      instead of looping.
      636fa3b4