Der Originalartikel befindet sich unter:
== Wöchentlicher PostgreSQL Newsletter - 13. April 2008 ==
== PostgreSQL Produkt Neuigkeiten ==
check_postgres 1.4.2 erschienen.
Npgsql 2 Beta3 erschienen.
pgpool-II 2.1 beta2 erschienen.
pg_top, früher bekannt als ptop, 3.6.2-beta3 erschienen.
SkyTools 2.1.6 erschienen.
== PostgreSQL Jobs im April ==
== PostgreSQL Lokal ==
Russian Internet Technologies 2008 wird vom 14-15. April in Moskau sein.
ITPUG wird "PostgreSQL, eine freie Datenbank für den Public Sector" in
Pula, Sardinien auf der PAAL 2008 präsentieren, der Hauptmesse für
freie Software in Behörden in Italien.
Die FISL wird vom 17. bis 19. April 2008 auf der PUCRS in Porto Alegre,
Der PostgreSQL Unicamp Tag 2008 wird am 22. April in Campinas, SP,
Corporate Databases 2008 wird am 24-25. April in Moskau sein.
PGCon 2008 wird vom 20. bis 23. Mai in Ottawa sein.
PGDay wird in Portland am Tag vor der OSCON stattfinden.
Der Call for Papers für die Utah Open Source Konferenz 2008 ist bis zum
1. Juni offen. Diese 2. jährliche Konferenz wird vom 28. bis 30. August
2008 in Salt Lake City, UT stattfinden.
== PostgreSQL in den News ==
Planet PostgreSQL: http://www.planetpostgresql.org/
General Bits, Archive und gelegentliche News Artikel:
Dieser wöchentliche PostgreSQL Newsletter wurde erstellt von David
Sende Neuigkeiten und Ankündigungen bis Sonntag, 15 Uhr Pazifischer
Zeit. Bitte sende englische Beiträge an firstname.lastname@example.org, deutsche an
email@example.com, italienische an firstname.lastname@example.org.
== Angewandte Patches ==
Peter Eisentraut committed:
- Implement a few changes to how shared libraries and dynamically
loadable modules are built. Foremost, it creates a solid
distinction between these two types of targets based on what had
already been implemented and duplicated in ad hoc ways before.
Specifically, dynamically loadable modules no longer get a soname.
The numbers previously set in the makefiles were dummy numbers
anyway, and the presence of a soname upset a few packaging tools, so
it is nicer not to have one. The cumbersome detour taken on
installation (build a libfoo.so.0.0.0 and then override the rule to
install foo.so instead) is removed. Lots of duplicated code
- In pgsql/src/Makefile.shlib, always define stlib, since some
platforms need it for building modules. Should fix build failures
- In pgsql/src/Makefile.shlib, on cygwin and win32, don't override the
shlib name when building a module. Should fix regression test
failures on those platforms.
Magnus Hagander committed:
- In pgsql/src/tools/msvc/config.pl, make integer_datetimes the
default on msvc as well, to have the same default as other
- In pgsql/src/interfaces/libpq/fe-lobj.c, make parameters in
implementation have same const:ness as the ones in the prototype.
Silences msvc build warning.
- Create wrapper pgwin32_safestat() and redefine stat() to it on
win32, because the stat() function in the runtime cannot be trusted
to always update the st_size field. Per report and research by
Tom Lane committed:
- In pgsql/src/backend/utils/adt/tsvector_op.c, fix
tsvector_update_trigger() to be domain-friendly: it needs to allow
all the columns it works with to be domains over the expected type,
not just exactly the expected type. In passing, fix ts_stat() the
same way. Per report from Markus Wollny.
- Replace "amgetmulti" AM functions with "amgetbitmap", in which the
whole indexscan always occurs in one call, and the results are
returned in a TIDBitmap instead of a limited-size array of TIDs.
This should improve speed a little by reducing AM entry/exit
overhead, and it is necessary infrastructure if we are ever to
support bitmap indexes. In an only slightly related change, add
support for TIDBitmaps to preserve (somewhat lossily) the knowledge
that particular TIDs reported by an index need to have their quals
rechecked when the heap is visited. This facility is not really
used yet; we'll need to extend the forced-recheck feature to plain
indexscans before it's useful, and that hasn't been coded yet. The
intent is to use it to clean up 8.3's horrid @@@ kluge for text
search with weighted queries. There might be other uses in future,
but that one alone is sufficient reason. Heikki Linnakangas, with
some adjustments by me.
- Fix several datatype input functions that were allowing unused bytes
in their results to contain uninitialized, unpredictable values.
While this was okay as far as the datatypes themselves were
concerned, it's a problem for the parser because occurrences of the
"same" literal might not be recognized as equal by datumIsEqual (and
hence not by equal()). It seems sufficient to fix this in the input
functions since the only critical use of equal() is in the parser's
comparisons of ORDER BY and DISTINCT expressions. Per a trouble
report from Marc Cousin. Patch all the way back. Interestingly,
array_in did not have the bug before 8.2, which may explain why the
issue went unnoticed for so long.
- Add some debug support code to try to catch future mistakes in the
area of input functions that include garbage bytes in their results.
Provide a compile-time option RANDOMIZE_ALLOCATED_MEMORY to make
palloc fill returned blocks with variable contents. This option
also makes the parser perform conversions of literal constants twice
and compare the results, emitting a WARNING if they don't match.
(This is the code I used to catch the input function bugs fixed in
the previous commit.) For the moment, I've set it to be activated
automatically by --enable-cassert.
- A quick try at un-breaking the Cygwin build. Whether it needs the
pgwin32_safestat remains to be determined, but in any case the
current code is not tolerable.
- Create new routines systable_beginscan_ordered,
systable_getnext_ordered, systable_endscan_ordered that have API
similar to systable_beginscan etc (in particular, the passed-in
scankeys have heap not index attnums), but guarantee ordered output,
unlike the existing functions. For the moment these are just very
thin wrappers around index_beginscan/index_getnext/etc. Someday
they might need to get smarter; but for now this is just a code
refactoring exercise to reduce the number of direct callers of
index_getnext, in preparation for changing that function's API. In
passing, remove index_getnext_indexitem, which has been dead code
for quite some time, and will have even less use than that in the
presence of run-time-lossy indexes.
- Clean up a few places where Datums were being treated as pointers
without going through DatumGetPointer or some other "official"
conversion macro. Not actually a bug, since Datum the same size as
pointer is the only supported case at the moment, but good cleanup
for the future. Gavin Sherry.
- Turn the -i/--ignore-version options of pg_dump and pg_dumpall into
no-ops: 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.
- Phase 2 of project to make index operator lossiness be determined at
runtime 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.
- Since createplan.c no longer cares whether index operators are
lossy, it has 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
Bruce Momjian committed:
- In FAQ, remove mention of the Berkeley origins of the alias
"Postgres" --- seems unnecessary to mention in the FAQ, per
discussion on IRC.
- Revert sentence removal from nickname in FAQ.
- Revert README cleanups.
- Small wording improvements for source code READMEs.
- Update text FAQ.
- In pgsql/doc/src/sgml/backup.sgml, document that continuous
archiving backup can be used for cases where you can't get a
- Add TODO URLs moved from open items queue.
- Fix main README typo. Brendan Jurd.
- In TODO, update URLs for dead space map.
- Add TODO: "Support procedures, which return no value."
- Update TODO wording to read: "Allow calling of a procedure outside a
SELECT that can control the transaction state."
Michael Meskes committed:
- In ecpg, PGTYPEStimestamp_sub should use the values and not the
pointers to substract.
Alvaro Herrera committed:
- Mention pg_backend_pid() in the system information section in
addition to the monitoring section. Jim Nasby
- In pgsql/doc/src/sgml/plperl.sgml, remove mention of DBD::PgSPI,
which is unmaintained and generally unnecessary.
Marc Fournier committed:
- Add a global cvsignore know, currently just with objfiles.txt in it.
== Abgelehnte Patches (bis jetzt) ==
Andrew Chernow's libpq Win32 mutex performance patch. Needs
Bruce Momjian's patch which allows adminstrators to terminate sessions
with SIGTERM. It doesn't handle the case where UDFs trap SIGTERM.
== Eingesandte Patches ==
Magnus Hagander sent in a patch which implements wal_sync_method as an
Alvaro Herrera sent in another revision of his patch to turn
ActiveSnapshot from a global pointer to a stack.
Zoltan Boszormenyi sent in another revision of his patch to implement
TRUNCATE TABLE with IDENTITY.
Gregory Stark sent in a patch which lets people see EXPLAIN progress
David Fetter sent in a patch which lets psql's \dT see the elements of
Laurenz Albe sent in another revision of his patch to improve shutdown
during online backup.
Sibte Abbas sent in another revision of his psql slash# command patch.
Andrew Chernow sent in three more revisions of his patch to libpq
which adds a pqtypes hook API.
Brendan Jurd sent in a patch to implement a printTable API for psql