1. 06 Jun, 2009 4 commits
    • Tom Lane's avatar
      Improve the IndexVacuumInfo/IndexBulkDeleteResult API to allow somewhat sane · 32ea2363
      Tom Lane authored
      behavior in cases where we don't know the heap tuple count accurately; in
      particular partial vacuum, but this also makes the API a bit more useful
      for ANALYZE.  This patch adds "estimated_count" flags to both structs so
      that an approximate count can be flagged as such, and adjusts the logic
      so that approximate counts are not used for updating pg_class.reltuples.
      
      This fixes my previous complaint that VACUUM was putting ridiculous values
      into pg_class.reltuples for indexes.  The actual impact of that bug is
      limited, because the planner only pays attention to reltuples for an index
      if the index is partial; which probably explains why beta testers hadn't
      noticed a degradation in plan quality from it.  But it needs to be fixed.
      
      The whole thing is a bit messy and should be redesigned in future, because
      reltuples now has the potential to drift quite far away from reality when
      a long period elapses with no non-partial vacuums.  But this is as good as
      it's going to get for 8.4.
      32ea2363
    • Joe Conway's avatar
      Add support for using SQL/MED compliant FOREIGN DATA WRAPPER, SERVER, · 4334695b
      Joe Conway authored
      and USER MAPPING as method to supply dblink connect parameters. Per
      mailing list and PGCon discussions.
      4334695b
    • Tom Lane's avatar
      Move variable declaration to avoid 'unused variable' warning when the · af98bb2a
      Tom Lane authored
      ifdef doesn't trigger.  Not worth back-patching.  Per buildfarm reports.
      af98bb2a
    • Tom Lane's avatar
      Fix a serious bug introduced into GIN in 8.4: now that MergeItemPointers() · 356eea24
      Tom Lane authored
      is supposed to remove duplicate heap TIDs, we have to be sure to reduce the
      tuple size and posting-item count accordingly in addItemPointersToTuple().
      Failing to do so resulted in the effective injection of garbage TIDs into the
      index contents, ie, whatever happened to be in the memory palloc'd for the
      new tuple.  I'm not sure that this fully explains the index corruption
      reported by Tatsuo Ishii, but the test case I'm using no longer fails.
      356eea24
  2. 05 Jun, 2009 4 commits
  3. 04 Jun, 2009 4 commits
  4. 03 Jun, 2009 7 commits
  5. 02 Jun, 2009 3 commits
  6. 01 Jun, 2009 2 commits
    • Tom Lane's avatar
      Change AdjustIntervalForTypmod to not discard higher-order field values on the · bac2ad38
      Tom Lane authored
      grounds that they don't fit into the specified interval qualifier (typmod).
      This behavior, while of long standing, is clearly wrong per spec --- for
      example the value INTERVAL '999' SECOND means 999 seconds and should not be
      reduced to less than 60 seconds.
      
      In some cases there could be grounds to raise an error if higher-order field
      values are not given as zero; for example '1 year 1 month'::INTERVAL MONTH
      should arguably be taken as an error rather than equivalent to 13 months.
      However our internal representation doesn't allow us to do that in a fashion
      that would consistently reject all and only the cases that a strict reading
      of the spec would suggest.  Also, seeing that for example INTERVAL '13' MONTH
      will print out as '1 year 1 mon', we have to be careful not to create a
      situation where valid data will fail to dump and reload.  The present patch
      therefore takes the attitude of not throwing an error in any such case.
      We might want to revisit that in future but it would take more redesign
      than seems prudent in late beta.
      
      Per a complaint from Sebastien Flaesch and subsequent discussion.  While
      at other times we might have just postponed such an issue to the next
      development cycle, 8.4 already has changed the parsing of interval literals
      quite a bit in an effort to accept all spec-compliant cases correctly.
      This seems like a change that should be part of that rather than coming
      along later.
      bac2ad38
    • Tom Lane's avatar
      Fix DecodeInterval to report an error for multiple occurrences of DAY, WEEK, · b3b89fd1
      Tom Lane authored
      YEAR, DECADE, CENTURY, or MILLENIUM fields, just as it always has done for
      other types of fields.  The previous behavior seems to have been a hack to
      avoid defining bit-positions for all these field types in DTK_M() masks,
      rather than something that was really considered to be desired behavior.
      But there is room in the masks for these, and we really need to tighten up
      at least the behavior of DAY and YEAR fields to avoid unexpected behavior
      associated with the 8.4 changes to interpret ambiguous fields based on the
      interval qualifier (typmod) value.  Per my example and proposed patch.
      b3b89fd1
  7. 31 May, 2009 1 commit
  8. 29 May, 2009 1 commit
  9. 28 May, 2009 2 commits
  10. 27 May, 2009 8 commits
  11. 26 May, 2009 4 commits