Skip to content

Wöchentlicher PostgreSQL Newsletter - 16. September 2007

Der Originalartikel befindet sich unter:

== Wöchentlicher PostgreSQL Newsletter - 16. September 2007 ==

Postgres 8.2.5, 8.1.10, 8.0.14, 7.4.18 und 7.3.20 erscheinen bald.
Fertigmachen zum Update!

== PostgreSQL Produkt Neuigkeiten ==

pgAdmin III 1.8.0 Beta 5 erschienen.

== PostgreSQL Jobs im September ==

== PostgreSQL Lokal ==

Die PostgreSQL Herbstkonferenz wird am 20. Oktober in Portland sein.

Es gibt einen PostgreSQL Stand auf dem Ohio Linuxfest am 29 September
und Robert Treat wird sprechen.

== PostgreSQL in den News ==

Planet PostgreSQL:

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, deutsche an

== Angewandte Patches ==

Marc Fournier committed:

- Update configure for 7.3.20.

- Update configure for 7.4.18.

- Update configure for 8.0.14.

- Update configure for 8.1.10.

- Update configure for 8.2.5.

Peter Eisentraut committed:

- Translation updates

Andrew Dunstan committed:

- Perform post-escaping encoding validity checks on SQL literals and
COPY input so that invalidly encoded data cannot enter the database
by these means.

Magnus Hagander committed:

- In pgsql/src/tools/msvc/, install dictionary sample files.
Per buildfarm and Teodor.

Bruce Momjian committed:

- Update Japanese FAQ. Jun Kuwamura

- Add to TODO: "Prevent long-lived temporary tables from causing
frozen-xid advancement starvation."

- Add to TODO: "Make it possible to use RETURNING together with
conditional DO INSTEAD rules, such as for partitioning setups.

- Fix FAQ markup.

- Update pronunciation item in FAQ.

- Update FAQ to mention that an alternate project name is "Postgres."

- Heikki Linnakangas's patch to remove GIN interface section from
pgsql/src/backend/access/gin/README. GIN is now documented in SGML.

- Kris Jurka's patch to fix GSS API pointer checking.

- Document atan2() as y/x, rather than x/y, to conform to general
usage. Per Andrew Maclean.

- Brendan Jurd's patch to add some links for escape strings. Fix
markup in previous commit.

- Laurenz Albe's patch which adds LDAP URL documentation.

- Update documentation to mention that autovacuum also does analyze so
we don't need to recommend nightly analyzes anymore unless
autovacuum is off.

- Clarify tar documentation about return error codes. Backpatch to

- Update tsearch include location in example. Patch from Oleg

- Add tsearch tab completion support to psql.

- In pgsql/doc/src/sgml/spi.sgml, fix SPI example (PG_MODULE_MAGIC is
required as of PostgreSQL 8.2) and add a link to the compiling and
linking section. Euler Taveira de Oliveira.

- Update GNU tar error code documentation. Backpatch to 8.2.X.

- In pgsql/doc/src/sgml/client-auth.sgml, mention that PAM doesn't
work for Unix system authentication because of the problems non-root
reading /etc/shadow.

- In pgsql/doc/src/sgml/maintenance.sgml, update documented error
text. Fujii Masao

- Clarify age() 'months' calculation documentation.

- Update documentation to emphasize autovacuum rather than
administrator-scheduled vacuums.

- Jun Kuwamura's patch to update Japanese FAQ, backpatch.

- In pgsql/src/tools/RELEASE_CHANGES, improve whitespace.

- Document an efficient way to create documentation for back branches.

- Update Japanese FAQ to current release number.

- Stamp 8.2.5, 8.1.10, 8.0.14, 7.4.18 and 7.3.20. Update FAQs for

Alvaro Herrera committed:

- Fix a memory leak in the autovacuum launcher code. Noted by Darcy
Buskermolen, who reported it privately to me.

- Make REINDEX DATABASE silently skip remote temp tables. Per report
from bitsandbytes88 <at> and subsequent discussion.
This is a back patch of a patch committed yesterday to CLUSTER and
REINDEX. REINDEX only processes user indexes as of 8.1, so we
needn't backpatch this any further. (CLUSTER was backpatched
separately all the way back to 7.4).

- Fix the database-wide version of CLUSTER to silently skip temp
tables of remote sessions, instead of erroring out in the middle of
the operation. This is a backpatch of a previous fix applied to
CLUSTER to HEAD and 8.2, all the way back that it is relevant to.

- Add a CHECK_FOR_INTERRUPTS call in the site where the vacuum delay
point was removed.

- Make CLUSTER and REINDEX silently skip remote temp tables in their
database-wide editions. Per report from bitsandbytes88 <at> and subsequent discussion. Back-ported to 8.2

- Release the exclusive lock on the table early after truncating it in
lazy vacuum, instead of waiting till commit.

- Remove the vacuum_delay_point call in count_nondeletable_pages,
because we hold an exclusive lock on the table at this point, which
we want to release as soon as possible. This is called in the phase
of lazy vacuum where we truncate the empty pages at the end of the
table. An alternative solution would be to lower the vacuum delay
settings before starting the truncating phase, but this doesn't work
very well in autovacuum due to the autobalancing code (which can
cause other processes to change our cost delay settings). This case
could be considered in the balancing code, but it is simpler this
way. Back-patched to 8.0

Teodor Sigaev committed:

- In pgsql/src/backend/utils/adt/tsrank.c, fix typo in typecasting.
patch from ITAGAKI Takahiro.

- Remove QueryOperand->istrue flag, as it was used only in cover
ranking (ts_rank_cd). Use palloc'ed array in ranking instead of

- Fix header's size of structs defines in ispell. Backpatch is needed
for contrib version.

- Add regression tests for ispell, synonym and thesaurus dictionaries.
Rename synonym.syn.sample and thesaurs.ths.sample to
synonym_sample.syn and thesaurs_sample.ths respectively to be able
to use them in regression tests. Ispell dictionary uses synthetic
simple dictionary files.

- Fix ts_debug function to prevent unneeded calls of ts_lexize(). It
will be much better to reimplement ts_debug in C (instead of SQL as
now), but it's planned for the future.

- Refactor from Heikki Linnakangas which defines a new struct
WordEntryPosVector that holds a uint16 length and a variable size
array of WordEntries. This replaces the previous convention of a
variable size uint16 array, with the first element implying the
length. WordEntryPosVector has the same layout in memory, but is
more readable in source code. The POSDATAPTR and POSDATALEN macros
are still used, though it would now be more readable to access the
fields in WordEntryPosVector directly. The patch also removes the
needfree field from DocRepresentation because it was always set to
false. It also does various other refactoring.

- Heikki Linnakangas's patch which adds the tsearch subdirectory to
Makefile to allow compile custom tsearch dictionary as an external

- Fix recently introduced bugs about parsing ispell/hunspell files.
In most cases it cause because of unneeded lowercasing of flags.
Per experiment with regression checks with ispell dictionary.

- In tsearch, change void* opaque argument to Datum type, add
argument's name to PushFunction type definition. Per suggestion by
Tom Lane

- Fix from Heikki Linnakangas for a bug I introduced when I refactored
spell.c to use the readline function for reading and recoding the
input file. I hadn't noticed that some calls to STRNCMP used the
non-lowercased version of the input line.

Tom Lane committed:

- Fix markup that doesn't work in back branches.

- Minor editorialization on release notes.

- Fix missed version-stamping.

- Remove ill-considered (not to mention undocumented) attempt to make
contrib/intarray's GIN opclass override the built-in default. Per
bug #3048 and other complaints.

- Redefine the lp_flags field of item pointers as having four states,
rather than two independent bits (one of which was never used in
heap pages anyway, or at least hadn't been in a very long time).
This gives us flexibility to add the HOT notions of redirected and
dead item pointers without requiring anything so klugy as magic
values of lp_off and lp_len. The state values are chosen so that
for the states currently in use (pre-HOT) there is no change in the
physical representation.

- Revert ill-starred change to ICC anti-aliasing switches. Per Jeremy

- Give ICC its preferred, documented form of the no-strict-aliasing
switch, viz '-fno-alias'. Since we have a separate code path here
anyway, it's just as easy to cooperate.

- Sync timezone data with 2007g zic release.

- Make sure that open hash table scans are cleaned up when bgwriter
tries to recover from elog(ERROR). Problem was created by
introduction of hash seq search tracking awhile back, and affects
all branches that have bgwriter; in HEAD the disease has snuck into
autovacuum and walwriter too. (Not sure that the latter two use
hash_seq_search at the moment, but surely they might someday.) Per
report from Sergey Koposov.

- Include hash table name in all the internal-error elog messages in
dynahash.c. Sergey Koposov's current open problem shows the
possible usefulness of this, and it doesn't add much code.

- Rename recently-added pg_stat_activity column from txn_start to
xact_start, for consistency with other column names such as in

- Arrange for SET LOCAL's effects to persist until the end of the
current top transaction, unless rolled back or overridden by a SET
clause for the same variable attached to a surrounding function
call. Per discussion, these seem the best semantics. Note that
this is an INCOMPATIBLE CHANGE: in 8.0 through 8.2, SET LOCAL's
effects disappeared at subtransaction commit (leading to behavior
that made little sense at the SQL level). I took advantage of the
opportunity to rewrite and simplify the GUC variable save/restore
logic a little bit. The old idea of a "tentative" value is gone; it
was a hangover from before we had a stack. Also, we no longer need
a stack entry for every nesting level, but only for those in which a
variable's value actually changed.

- Revert temporary patch that made synchronous_commit default to OFF.

== Abgelehnte Patches (bis jetzt) ==

Sibte Abbas's patch to implement # and \e# in psql. Saved for 8.4.

== Eingesandte Patches ==

Heikki Linnakangas sent in a patch which allows people to compile a
custom tsearch dictionary as an external module.

Simon Riggs sent in a patch which enables CaseSensitive synonyms.

Heikki Linnakangas sent in another refactor of tsearch. The patch
includes a new struct WordEntryPosVector that holds a uint16 length
and a variable size array of WordEntries. This replaces the previous
convention of a variable size uint16 array, with the first element
implying the length. WordEntryPosVector has the same layout in memory,
but is more readable in source code. The POSDATAPTR and POSDATALEN
macros are still used, though it would now be more readable to access
the fields in WordEntryPosVector directly. Removed needfree field
from DocRepresentation. It was always set to false. Miscellaneous
other commenting and refactoring

Simon Riggs sent in a patch which makes CountActiveBackends() search
the whole of the proc array, even though it could stop when it gets to

Steve Marshall sent in a patch intended to prevent PL/TCL from making
Postgres multi-threaded when the TCL library is multi-threaded.

Florian Pflug sent in a patch that renames latestCompletedXid to
latestCommittedXid, and updates it only on commits.

Florian Pflug sent in a patch which checks the value of
latestCompletedXid to rule out surely in-progress transctions at the
top of TransactionIdIsInProgress.


No Trackbacks


Display comments as Linear | Threaded

No comments

Add Comment

Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
E-Mail addresses will not be displayed and will only be used for E-Mail notifications.
To leave a comment you must approve it via e-mail, which will be sent to your address after submission.
Form options