Revues de code

Correctifs appliqués

Alvaro Herrera a poussé :

Peter Eisentraut a poussé :

Tom Lane a poussé :

  • Adjust SP-GiST regression tests to be less locale-sensitive. The original test cases gave varying results depending on whether the locale sorts digits before or after letters. Since that's not really what we wish to test here, adjust the test data to not contain any strings beginning with digits. Per report from Pavel Stehule.
  • Revert "Remove troublesome Asserts in cost_mergejoin()." This reverts commit ff68b256a533b398e3420750f34d161aeee4e099. The recent change to use -fexcess-precision=standard should make those Asserts safe, and does fix a test case that formerly crashed for me, so I think there's no need to have a cross-version difference in the code here.
  • Use mutex hint bit in PPC LWARX instructions, where possible. The hint bit makes for a small but measurable performance improvement in access to contended spinlocks. On the other hand, some PPC chips give an illegal-instruction failure. There doesn't seem to be a completely bulletproof way to tell whether the hint bit will cause an illegal-instruction failure other than by trying it; but most if not all 64-bit PPC machines should accept it, so follow the Linux kernel's lead and assume it's okay to use it in 64-bit builds. Of course we must also check whether the assembler accepts the command, since even with a recent CPU the toolchain could be old. Patch by Manabu Ori, significantly modified by me.
  • Use 4-byte slock_t on both PPC and PPC64. Previously we defined slock_t as 8 bytes on PPC64, but the TAS assembly code uses word-wide operations regardless, so that the second word was just wasted space. There doesn't appear to be any performance benefit in adding the second word, so get rid of it to simplify the code.
  • Use LWSYNC in place of SYNC/ISYNC in PPC spinlocks, where possible. This is allegedly a win, at least on some PPC implementations, according to the PPC ISA documents. However, as with LWARX hints, some PPC platforms give an illegal-instruction failure. Use the same trick as before of assuming that PPC64 platforms will accept it; we might need to refine that based on experience, but there are other projects doing likewise according to google. I did not add an assembler compatibility test because LWSYNC has been around much longer than hint bits, and it seems unlikely that any toolchains currently in use don't recognize it.

Bruce Momjian a poussé :

Simon Riggs a poussé :

Correctifs rejetés (à ce jour)

  • Pas de déception cette semaine :-)

Correctifs en attente

  • Simon Riggs sent in two more revisions of the patch to add page checksums.
  • Alexander Björnhagen sent in two more revisions of the patch to tune synchronous replication.
  • Brar Piening sent in two more revisions of the patches to support VS 2010.
  • Andrew Dunstan sent in another revision of the patch to make pretty-printing view definitions actually print them in a pretty way.
  • Peter Eisentraut sent in a patch to fix an infelicity in CREATE TABLE ... LIKE.
  • Peter Eisentraut sent in a patch to make the dumping of FOREIGN ... OPTIONS more legible.
  • Simon Riggs sent in another revision of the patch to pause at the end of recovery.
  • Peter Geoghegan sent in another revision of the fast path sorting patch, along with some benchmarks demonstrating its usefulness.
  • Simon Riggs sent in a patch to implement DROP INDEX CONCURRENTLY.
  • Noah Misch sent in a patch to add protransform functions to the length coercions for numeric, varbit, timestamp, timestamptz, time, timetz and interval. This prevents whole-table rewrites in some ALTER TABLE ... ALTER COLUMN ... TYPE ... statements involving the aforementioned types.
  • Noah Misch sent in another revision of the patch to collect frequency statistics for arrays.
  • Zoltan Boszormenyi sent in another revision of the patch to fix ECPG cursor readahead.
  • Pavel Stehule sent in another revision of the CHECK FUNCTION patch.
  • Peter Eisentraut sent in a WIP patch intended to inform the information schema about default privileges.
  • Peter Eisentraut sent in a WIP patch to relax the requirement that PL/pgsql trigger functions return a value when called in AFTER triggers.
  • Peter Eisentraut sent in a patch to fix the sorting of operators in pg_dump.