1. 24 Apr, 2008 10 commits
  2. 23 Apr, 2008 2 commits
  3. 22 Apr, 2008 5 commits
  4. 21 Apr, 2008 9 commits
    • Tom Lane's avatar
      Fix convert_IN_to_join to properly handle the case where the subselect's · ff673f55
      Tom Lane authored
      output is not of the same type that's needed for the IN comparison (ie,
      where the parser inserted an implicit coercion above the subselect result).
      We should record the coerced expression, not just a raw Var referencing
      the subselect output, as the quantity that needs to be unique-ified if
      we choose to implement the IN as Unique followed by a plain join.
      
      As of 8.3 this error was causing crashes, as seen in bug #4113 from Javier
      Hernandez, because the executor was being told to hash or sort the raw
      subselect output column using operators appropriate to the coerced type.
      
      In prior versions there was no crash because the executor chose the
      hash or sort operators for itself based on the column type it saw.
      However, that's still not really right, because what's unique for one data
      type might not be unique for another.  In corner cases we could get multiple
      outputs of a row that should appear only once, as demonstrated by the
      regression test case included in this commit.
      
      However, this patch doesn't apply cleanly to 8.2 or before, and the code
      involved has shifted enough over time that I'm hesitant to try to back-patch.
      Given the lack of complaints from the field about such corner cases, I think
      the bug may not be important enough to risk breaking other things with a
      back-patch.
      ff673f55
    • Magnus Hagander's avatar
      Clean up float4byval and float8byval handling by dealing with them completely · a31b03ba
      Magnus Hagander authored
      from inside the build script.
      a31b03ba
    • Magnus Hagander's avatar
      Fix typo, noted by Stefan Kaltenbrunner. · be9ab113
      Magnus Hagander authored
      be9ab113
    • Magnus Hagander's avatar
      de6e4c9d
    • Magnus Hagander's avatar
      Add link to major version release notes at the top of the minor · 3bb6d101
      Magnus Hagander authored
      version ones, to make it clear to users just browsing the notes
      that there are a lot more changes available from whatever version
      they are at than what's in the minor version release notes.
      3bb6d101
    • Tom Lane's avatar
      Fix a couple of places in execMain that erroneously assumed that SELECT FOR · f593f623
      Tom Lane authored
      UPDATE/SHARE couldn't occur as a subquery in a query with a non-SELECT
      top-level operation.  Symptoms included outright failure (as in report from
      Mark Mielke) and silently neglecting to take the requested row locks.
      
      Back-patch to 8.3, because the visible failure in the INSERT ... SELECT case
      is a regression from 8.2.  I'm a bit hesitant to back-patch further given the
      lack of field complaints.
      f593f623
    • Tom Lane's avatar
      Add FLOAT4PASSBYVAL/FLOAT8PASSBYVAL to pg_config.h.win32, as a stopgap · 819b49a6
      Tom Lane authored
      measure to get the Windows buildfarm members working again.  I don't
      know if it's worth exposing these as configurables, or exactly how to
      do it in the MSVC build system ...
      819b49a6
    • Tom Lane's avatar
      Make earthdistance use version-0 calling convention if not USE_FLOAT8_BYVAL, · 3d1588cd
      Tom Lane authored
      and version-1 if USE_FLOAT8_BYVAL.  This might seem a bit pointless, but the
      idea is to have at least one regression test that will fail if we ever
      accidentally break version-0 functions that return float8.  However, they're
      already broken, or at least hopelessly unportable, in the USE_FLOAT8_BYVAL
      case.
      
      Per a recent suggestion from Greg Stark.
      3d1588cd
    • Tom Lane's avatar
      Allow float8, int8, and related datatypes to be passed by value on machines · 8472bf7a
      Tom Lane authored
      where Datum is 8 bytes wide.  Since this will break old-style C functions
      (those still using version 0 calling convention) that have arguments or
      results of these types, provide a configure option to disable it and retain
      the old pass-by-reference behavior.  Likewise, provide a configure option
      to disable the recently-committed float4 pass-by-value change.
      
      Zoltan Boszormenyi, plus configurability stuff by me.
      8472bf7a
  5. 20 Apr, 2008 2 commits
  6. 19 Apr, 2008 7 commits
  7. 18 Apr, 2008 5 commits
    • Alvaro Herrera's avatar
      Change the float4-returning functions in contrib/seg to fmgr v1 calling · 05ace733
      Alvaro Herrera authored
      conventions.
      
      I also changed seg_in and seg_out, which was probably unnecessary, but
      it can't harm.
      05ace733
    • Tom Lane's avatar
      Fix typo. · 41de1d15
      Tom Lane authored
      41de1d15
    • Alvaro Herrera's avatar
      Modify the float4 datatype to be pass-by-val. Along the way, remove the last · 7861d72e
      Alvaro Herrera authored
      uses of the long-deprecated float32 in contrib/seg; the definitions themselves
      are still there, but no longer used.  fmgr/README updated to match.
      
      I added a CREATE FUNCTION to account for existing seg_center() code in seg.c
      too, and some tests for it and the neighbor functions.  At the same time,
      remove checks for NULL which are not needed (because the functions are declared
      STRICT).
      
      I had to do some adjustments to contrib's btree_gist too.  The choices for
      representation there are not ideal for changing the underlying types :-(
      
      Original patch by Zoltan Boszormenyi, with some adjustments by me.
      7861d72e
    • Tom Lane's avatar
      Fix rmtree() so that it keeps going after failure to remove any individual · b8e5581d
      Tom Lane authored
      file; the idea is that we should clean up as much as we can, even if there's
      some problem removing one file.  Make the error messages a bit less misleading,
      too.  In passing, const-ify function arguments.
      b8e5581d
    • Heikki Linnakangas's avatar
      Fix two race conditions between the pending unlink mechanism that was put in · 9cb91f90
      Heikki Linnakangas authored
      place to prevent reusing relation OIDs before next checkpoint, and DROP
      DATABASE. First, if a database was dropped, bgwriter would still try to unlink
      the files that the rmtree() call by the DROP DATABASE command has already
      deleted, or is just about to delete. Second, if a database is dropped, and
      another database is created with the same OID, bgwriter would in the worst
      case delete a relation in the new database that happened to get the same OID
      as a dropped relation in the old database.
      
      To fix these race conditions:
      - make rmtree() ignore ENOENT errors. This fixes the 1st race condition.
      - make ForgetDatabaseFsyncRequests forget unlink requests as well.
      - force checkpoint on in dropdb on all platforms
      
      Since ForgetDatabaseFsyncRequests() is asynchronous, the 2nd change isn't
      enough on its own to fix the problem of dropping and creating a database with
      same OID, but forcing a checkpoint on DROP DATABASE makes it sufficient.
      
      Per Tom Lane's bug report and proposal. Backpatch to 8.3.
      9cb91f90