Der Originalartikel befindet sich unter:
== Wöchentlicher PostgreSQL Newsletter - 26. August 2007 ==
Es geht weiter mit der Integration von tsearch2 in das kommende
== PostgreSQL Produkt Neuigkeiten ==
Entityspaces for PostgreSQL erschienen.
AM Software Design hat PostgreSQL Community Foren eröffnet.
pgloader 2.2.1 erschienen.
== PostgreSQL Jobs im August ==
== PostgreSQL Lokal ==
Alles war global in dieser Woche.
== 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 email@example.com, deutsche an
== Angewandte Patches ==
Tatsuo Ishii committed:
- The upper limit for -c option of pgbench is now obtained from
(FD_SETSIZE - 10) rather than a hardwired number.
Andrew Dunstan committed:
- Reduce memory requirements for writing CSVlogs, so it will work with
about the same amount of memory in ErrorContext as standard logs.
- Unbreak ECPG tests for VPATH builds.
Michael Meskes committed:
- In pgsql/src/interfaces/ecpg, cleaned up some more and removed some
Bruce Momjian committed:
- Fix typo in FAQ_DEV.
- Add book to FAQ_DEV: "Transactional Information Systems by Gerhard
- Uppercase keywords in regression tsearch test scripts.
- Remove tabs from pgsql/doc/src/sgml/config.sgml.
Magnus Hagander committed:
- Build snowball DLL for tsearch-in-core. (Still needs to build the
.sql output files, but this handles the C part of the build)
- In pgsql/src/makefiles/Makefile.win32, don't define BUILDING_DLL for
snowball lib. Should fix build problems on mingw and probably
Tom Lane committed:
- Fix a couple of misbehaviors rooted in the fact that the default
creation namespace isn't necessarily first in the search path (there
could be implicit schemas ahead of it).
- Remove the 'not in' operator (!!=). This was a hangover from
Berkeley days that was obsolete the moment we had IN (SELECT ...)
capability. It's arguably a security hole since it applied no
permissions check to the table it searched, and since it was never
documented anywhere, removing it seems more appropriate than fixing
- Require SELECT privilege on a table to do dblink_get_pkey(). This
is not all that exciting when the system catalogs are readable by
all, but some people try to lock them down, and would not like this
sort of end run ...
- Restrict pg_relation_size to relation owner, pg_database_size to DB
owner, and pg_tablespace_size to superusers. Perhaps we could
weaken the first case to just require SELECT privilege, but that
doesn't work for the other cases, so use ownership as the common
- Make currtid() functions require SELECT privileges on the target
table. While it's not clear that TID linkage info is of any great
use to a nefarious user, it's certainly unexpected that these
functions wouldn't insist on read privileges.
- Restrict pgrowlocks function to superusers. (This might be too
strict, but no permissions check at all is certainly no good.)
Clean up usage of some deprecated APIs.
- Restrict pgstattuple functions to superusers. (This might be too
strict, but no permissions check at all is certainly no good.)
Clean up usage of some deprecated APIs.
- In pgsql/contrib/hstore, clean up usage of some deprecated APIs,
particularly schema-unsafe usage of RelationNameGetTupleDesc()
- Code review for btreefuncs additions: restrict to superusers to
avoid exposing user data to others, and clean up usage of deprecated
- Make ARRAY(SELECT ...) return an empty array, rather than a NULL,
when the sub-select returns zero rows. Per complaint from Jens
Schicke. Since this is more in the nature of a definition change
than a bug, not back-patched.
- Adjust with-system-tzdata patch to not attempt to install a symlink,
but just hardwire the specified timezone database path into the
executable. Per discussion, this avoids some packaging
disadvantages of using a symlink.
- Fix brain fade in DefineIndex(): it was continuing to access the
table's relcache entry after having heap_close'd it. This could
lead to misbehavior if a relcache flush wiped out the cache entry
meanwhile. In 8.2 there is a very real risk of CREATE INDEX
CONCURRENTLY using the wrong relid for locking and waiting purposes.
I think the bug is only cosmetic in 8.0 and 8.1, because their
transgression is limited to using RelationGetRelationName(rel) in an
ereport message immediately after heap_close, and there's no way
(except with special debugging options) for a cache flush to occur
in that interval. Not quite sure that it's cosmetic in 7.4, but
seems best to patch anyway. Found by trying to run the regression
tests with CLOBBER_CACHE_ALWAYS enabled. Maybe we should try to do
that on a regular basis --- it's awfully slow, but perhaps some fast
buildfarm machine could do it once in awhile.
- Simplify implementation of ts_debug() function --- use a join
instead of redundant sub-selects. initdb not forced, since this is
just a cosmetic change, but the new code won't show up till you do
- Some more tsearch docs work --- sync names with CVS-tip reality,
some minor rewording, some markup fixups. Lots left to do here ...
- Fix synonym-dict breakage introduced in last patch :-(. Minor other
- Rename built-in Snowball stemmer dictionaries to be english_stem,
russian_stem, etc. Per discussion.
- Heikki Linnakangas' patch to clean up some problems in the tsearch
- Fix combo_decrypt() to throw an error for zero-length input when
using a padded encryption scheme. Formerly it would try to access
res[(unsigned) -1], which resulted in core dumps on 64-bit machines,
and was certainly trouble waiting to happen on 32-bit machines
(though in at least the known case it was harmless because that byte
would be overwritten after return). Per report from Ken Colson; fix
by Marko Kreen.
- Fix possible core dump from pgbench -d option. Julius Stroffek
- Suppress testing the options of CREATE TEXT SEARCH DICTIONARY during
initdb. We should create all the standard dictionaries even though
some of them may not work in template1's encoding. Per Teodor.
- Propagate Magnus' fix for Windows snowball build into
- In pgsql/doc/src/sgml/ref/alter_tsconfig.sgml, fix cut-n-paste-o.
- Fix VPATH-build problem in new tsearch makefile, per Chad Wagner.
- Remove option to change parser of an existing text search
configuration. This prevents needing to do complex and
poorly-defined updates of the mapping table if the new parser has
different token types than the old. Per discussion.
- Text search doc updates --- first cut at syncing the existing docs
with the final syntax decisions.
- In pgsql/src/backend/tsearch/dict_synonym.c, missed updating
dsynonym_init for new dictionary parameter method.
- In pgsql/src/bin/psql/describe.c, make \dFt and \dFt+ do something
different --- omitting the function names in the former case seems
more consistent with the behavior of other \dF commands.
- Simplify the syntax of CREATE/ALTER TEXT SEARCH DICTIONARY by
treating the init options of the template as top-level options in
the syntax. This also makes ALTER a bit easier to use, since
options can be replaced individually. I also made these statements
verify that the tmplinit method will accept the new settings before
they get stored; in the original coding you didn't find out about
mistakes until the dictionary got invoked. Under the hood, init
methods now get options as a List of DefElem instead of a raw text
string --- that lets tsearch use existing options-pushing code
instead of duplicating functionality.
- Simplify CREATE TEXT SEARCH CONFIGURATION by eliminating the
separate 'with map' parameter; as things now stand there's really
not much point in specifying a config-to-copy if you don't copy its
map. Also, use COPY instead of TEMPLATE as the key word for a
config-to-copy, so as to avoid confusion with text search templates.
Per discussion; the just-committed reference page for the command
already describes it this way.
- First rough cut at text search documentation: bare bones reference
pages for the new SQL commands. I also committed Bruce's text
search introductory chapter, as-is except for fixing some markup
errors, so that there would be a place for the reference pages to
- Exclude snowball/libstemmer/ files from the set processed by
pgindent. There's not much point in prettifying machine-generated
code, and it seems best to keep these files exactly like upstream
anyway. Also add some notes about why various files are excluded.
- In pgsql/src/backend/parser, avoid using TEXT as a Bison symbol,
since this provokes warnings on Windows builds. In passing, fix an
obsolete comment, per gripe from Greg Stark.
- In pgsql/src/backend/utils/adt/tsgistidx.c, remove extraneous
semicolon --- buildfarm member bear, for one, objects to it.
- Fix cash_mul_int4 and cash_div_int4 for overenthusiastic
substitution of int64 for int32. Per reports from Merlin Moncure
and Andrew Chernow.
- Fix money type's send/receive functions to conform to recent
widening of the datatype to int64. Per Andrew Chernow.
- In pgsql/src/backend/utils/adt/varbit.c, fix potential
access-off-the-end-of-memory in varbit_out(): it fetched the byte
after the last full byte of the bit array, regardless of whether
that byte was part of the valid data or not. Found by buildfarm
testing. Thanks to Stefan Kaltenbrunner for nailing down the cause.
- In pgsql/src/backend/postmaster/syslogger.c, fix a small 64-bit
problem in tsearch patch. Suppress uninitialized-variable warning.
- Tsearch2 functionality migrates to core. The bulk of this work is
by Oleg Bartunov and Teodor Sigaev, but I did a lot of
editorializing, so anything that's broken is probably my fault.
Documentation is nonexistent as yet, but let's land the patch so we
can get some portability testing done.
Peter Eisentraut committed:
- Add configure option --with-system-tzdata to use operating system
time zone database.
== Abgelehnte Patches (bis jetzt) ==
No one was disappointed this week :-)
== Eingesandte Patches ==
Pavan Deolasee sent in version 14 of the HOT patch, now with support
for partial and expressional indexes.
Merlin Moncure sent in a third version of his PGparam extension for
Andrew Chernow sent in version 0.4 of PGparam extension to libpq.
Julius Stroffek sent in another version of his optimizer hook patch.
Stefan Kaltenbrunner sent in a patch to clean up some of the tab
completion code in psql and add tsearch2 support to it.