Skip to content
Snippets Groups Projects
  1. Jun 10, 2009
  2. Jun 09, 2009
  3. Jun 08, 2009
  4. Jun 07, 2009
    • 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
  5. Jun 06, 2009
    • 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
  6. Jun 04, 2009
    • Tom Lane's avatar
      Improve the recently-added support for properly pluralized error messages · 76d4abf2
      Tom Lane authored
      by extending the ereport() API to cater for pluralization directly.  This
      is better than the original method of calling ngettext outside the elog.c
      code because (1) it avoids double translation, which wastes cycles and in
      the worst case could give a wrong result; and (2) it avoids having to use
      a different coding method in PL code than in the core backend.  The
      client-side uses of ngettext are not touched since neither of these concerns
      is very pressing in the client environment.  Per my proposal of yesterday.
      76d4abf2
  7. Jun 03, 2009
  8. Jun 02, 2009
    • Heikki Linnakangas's avatar
      Only recycle normal files in pg_xlog as WAL segments. pg_standby creates · 7c8d7a2e
      Heikki Linnakangas authored
      symbolic links with the -l option, and as Fujii Masao pointed out we ended up
      overwriting files in the archive directory before this patch. Patch by
      Aidan Van Dyk, Fujii Masao and me.
      
      Backpatch to 8.3, where pg_standby was introduced.
      7c8d7a2e
    • 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
  9. Jun 01, 2009
    • 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
  10. May 31, 2009
  11. May 29, 2009
  12. May 28, 2009
  13. May 27, 2009
  14. May 26, 2009
  15. May 25, 2009
  16. May 24, 2009
    • Tom Lane's avatar
      Fix LIKE's special-case code for % followed by _. I'm not entirely sure that · fc2660fc
      Tom Lane authored
      this case is worth a special code path, but a special code path that gets
      the boundary condition wrong is definitely no good.  Per bug #4821 from
      Andrew Gierth.
      
      In passing, clean up some minor code formatting issues (excess parentheses
      and blank lines in odd places).
      
      Back-patch to 8.3, where the bug was introduced.
      fc2660fc
  17. May 21, 2009
  18. May 20, 2009
  19. May 19, 2009
  20. May 18, 2009
  21. May 16, 2009
  22. May 15, 2009
  23. May 14, 2009
    • Alvaro Herrera's avatar
      Translation updates · f9701706
      Alvaro Herrera authored
      f9701706
    • Tom Lane's avatar
      Improve a couple of comments. · 284e12c3
      Tom Lane authored
      284e12c3
    • Heikki Linnakangas's avatar
      Add recovery_end_command option to recovery.conf. recovery_end_command · 9e403c25
      Heikki Linnakangas authored
      is run at the end of archive recovery, providing a chance to do external
      cleanup. Modify pg_standby so that it no longer removes the trigger file,
      that is to be done using the recovery_end_command now.
      
      Provide a "smart" failover mode in pg_standby, where we don't fail over
      immediately, but only after recovering all unapplied WAL from the archive.
      That gives you zero data loss assuming all WAL was archived before
      failover, which is what most users of pg_standby actually want.
      
      recovery_end_command by Simon Riggs, pg_standby changes by Fujii Masao and
      myself.
      9e403c25
    • Tom Lane's avatar
      Add checks to DefineQueryRewrite() to prohibit attaching rules to relations · a7107136
      Tom Lane authored
      that aren't RELKIND_RELATION or RELKIND_VIEW, and to disallow attaching rules
      to system relations unless allowSystemTableMods is on.  This is to make the
      behavior of CREATE RULE more like CREATE TRIGGER, which disallows the
      comparable cases.  Per discussion of bug #4808.
      a7107136
Loading