1. 19 Apr, 2008 4 commits
  2. 18 Apr, 2008 6 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
    • Tom Lane's avatar
      Cause EXPLAIN's VERBOSE option to print the target list (output column list) · 87a2f050
      Tom Lane authored
      of each plan node, instead of its former behavior of dumping the internal
      representation of the plan tree.  The latter display is still available for
      those who really want it (see debug_print_plan), but uses for it are certainly
      few and and far between.  Per discussion.
      
      This patch also removes the explain_pretty_print GUC, which is obsoleted
      by the change.
      87a2f050
  3. 17 Apr, 2008 5 commits
    • Alvaro Herrera's avatar
      Clean up a few places where Datums were being treated as pointers (and vice · 2f0f7b4b
      Alvaro Herrera authored
      versa) without going through DatumGetPointer.
      
      Gavin Sherry, with Feng Tian.
      2f0f7b4b
    • Tom Lane's avatar
      Fix a couple of oversights associated with the "physical tlist" optimization: · 25e46a50
      Tom Lane authored
      we had several code paths where a physical tlist could be used for the input
      to a Sort node, which is a dumb idea because any unneeded table columns will
      increase the volume of data the sort has to push around.
      
      (Unfortunately the easy-looking fix of calling disuse_physical_tlist during
      make_sort_xxx doesn't work because in most cases we're already committed to
      the current input tlist --- it's been marked with sort column numbers, or
      we've built grouping column numbers using it, etc.  The tlist has to be
      selected properly at the calling level before we start constructing sort-col
      information.  This is easy enough to do, we were just failing to take the
      point into consideration.)
      
      Back-patch to 8.3.  I believe the problem probably exists clear back to 7.4
      when the physical tlist optimization was added, but I'm afraid to back-patch
      further than 8.3 without a great deal more study than I want to put into it.
      The code in this area has drifted a lot over time.  The real-world importance
      of these code paths is uncertain anyway --- I think in many cases we'd
      probably prefer hash-based methods.
      25e46a50
    • Bruce Momjian's avatar
      TODO Done: · c5c7ba1b
      Bruce Momjian authored
      > * -Allow administrators to safely terminate individual sessions
      c5c7ba1b
    • Bruce Momjian's avatar
    • Tom Lane's avatar
      Add some code to EXPLAIN to show the targetlist (ie, output columns) · c5e4e91a
      Tom Lane authored
      of each plan node.  For the moment this is debug support only and is
      not enabled unless EXPLAIN_PRINT_TLISTS is defined at build time.
      Later I'll see about the idea of letting EXPLAIN VERBOSE do it.
      c5e4e91a
  4. 16 Apr, 2008 9 commits
  5. 15 Apr, 2008 9 commits
  6. 14 Apr, 2008 3 commits
  7. 13 Apr, 2008 3 commits
    • Tom Lane's avatar
      Since createplan.c no longer cares whether index operators are lossy, it has · 226837e5
      Tom Lane authored
      no particular need to do get_op_opfamily_properties() while building an
      indexscan plan.  Postpone that lookup until executor start.  This simplifies
      createplan.c a lot more than it complicates nodeIndexscan.c, and makes things
      more uniform since we already had to do it that way for RowCompare
      expressions.  Should be a bit faster too, at least for plans that aren't
      re-used many times, since we avoid palloc'ing and perhaps copying the
      intermediate list data structure.
      226837e5
    • Tom Lane's avatar
      Phase 2 of project to make index operator lossiness be determined at runtime · 24558da1
      Tom Lane authored
      instead of plan time.  Extend the amgettuple API so that the index AM returns
      a boolean indicating whether the indexquals need to be rechecked, and make
      that rechecking happen in nodeIndexscan.c (currently the only place where
      it's expected to be needed; other callers of index_getnext are just erroring
      out for now).  For the moment, GIN and GIST have stub logic that just always
      sets the recheck flag to TRUE --- I'm hoping to get Teodor to handle pushing
      that control down to the opclass consistent() functions.  The planner no
      longer pays any attention to amopreqcheck, and that catalog column will go
      away in due course.
      24558da1
    • Tom Lane's avatar
      Turn the -i/--ignore-version options of pg_dump and pg_dumpall into no-ops: · c22ed3d5
      Tom Lane authored
      the server version check is now always enforced.  Relax the version check to
      allow a server that is of pg_dump's own major version but a later minor
      version; this is the only case that -i was at all safe to use in.
      
      pg_restore already enforced only a very weak version check, so this is
      really just a documentation change for it.
      
      Per discussion.
      c22ed3d5
  8. 12 Apr, 2008 1 commit