== Wöchentlicher PostgreSQL Newsletter - 09. Oktober 2011 ==

== Wöchentlicher PostgreSQL Newsletter - 09. Oktober 2011 ==

am 11.10.2011 22:41:46 von adsmail

Der Originalartikel befindet sich unter:

http://www.postgresql.org/community/weeklynews/pwn20111009



== Wöchentlicher PostgreSQL Newsletter - 09. Oktober 2011 ==

Die PostgreSQL Konferenz Europa findet vom 18. bis 21. Oktober
in Amsterdam statt. Registrierung ist weiterhin möglich.
http://2011.pgconf.eu/registration/

== PostgreSQL Produkt Neuigkeiten ==

devart dotConnect 5.50 für PostgreSQL, ein
ADO.NET Treiber, ist erschienen.
http://www.devart.com/dotconnect/postgresql/

ODB 1.6.0, ein ORM für C++, unterstützt PostgreSQL.
http://www.codesynthesis.com/~boris/blog/2011/10/04/odb-1-6- 0-released/

pgwatch 1.0, ein Browserbasiertes Monitoring Werkzeug
für PostgreSQL, ist erschienen.
http://www.cybertec.at/en/pgwatch

phpPgAdmin 5.0.3, ein webbasiertes Administrationstool für
PostgreSQL, ist erschienen.
http://phppgadmin.sourceforge.net/

== PostgreSQL Jobs im Oktober ==

http://archives.postgresql.org/pgsql-jobs/2011-10/threads.ph p

== PostgreSQL Lokal ==

PostgreSQL Conference Europe 2011 findet vom 18. bis
21. Oktober in Amsterdam statt.
http://2011.pgconf.eu/

PG-Day Denver 2011 findet am Freitag, dem 21. Oktober 2011 auf dem
Auraria Campus in der Nähe von Downtown Denver, Colorado statt.
http://pgday.consistentstate.com/

pgbr findet in Sao Paulo, Brazilien, am 3. und 4. November 2011 statt.
http://pgbr.postgresql.org.br/

PGConf.DE 2011 ist die Deutschsprachige PostgreSQL Konferenz
und wird am 11. November 2011 im Rheinischen Industriemuseum
in Oberhausen, Deutschland, stattfinden. Der Call for Papers ist offen.
http://2011.pgconf.de/

Die fünfte Edition des Italienischen PostgreSQL
Tags (PGDay.IT 2011) findet am 25. November in
Prato, Italien statt.
http://2011.pgday.it/

Der Call for Papers für die FLOSS UK ist offen, die Veranstaltung
findet in Edinburgh vom 20. bis 22. März 2012 statt. Der
Einsendeschluß für Einreichungen ist der 18. November 2011,
ausgewählte Sprecher werden bis zum 25. November benachrichtigt.
Einreichungen sollen an postgresql2012 AT flossuk DOT org gehen.
Mehr Informationen:
http://www.flossuk.org/Events/Spring2012

== PostgreSQL in den News ==

Planet PostgreSQL: http://planet.postgresql.org/

Dieser wöchentliche PostgreSQL Newsletter wurde erstellt von David Fet=
ter.

Sende Neuigkeiten und Ankündigungen bis Sonntag, 15 Uhr Pazifischer
Zeit. Bitte sende englische Beiträge an david@fetter.org, deutsche an
pwn@pgug.de, italienische an pwn@itpug.org, spanische an pwn@arpug.com.ar.

== Reviews ==

== Angewandte Patches ==

Tom Lane pushed:

- ProcedureCreate neglected to record dependencies on default
expressions. Thus, an object referenced in a default expression
could be dropped while the function remained present. This was
unaccountably missed in the original patch to add default parameters
for functions. Reported by Pavel Stehule.
=20
http://git.postgresql.org/pg/commitdiff/76074fcaa04fb5d35e8c f7716587440e3d0=
75d50

- Remove the custom_variable_classes parameter. This variable
provides only marginal error-prevention capability (since it can
only check the prefix of a qualified GUC name), and the consensus is
that that isn't worth the amount of hassle that maintaining the
setting creates for DBAs. So, let's just remove it. With this
commit, the system will silently accept a value for any qualified
GUC name at all, whether it has anything to do with any known
extension or not. (Unqualified names still have to match known
built-in settings, though; and you will get a WARNING at extension
load time if there's an unrecognized setting with that extension's
prefix.) There's still some discussion ongoing about whether to
tighten that up and if so how; but if we do come up with a solution,
it's not likely to look anything like custom_variable_classes.
=20
http://git.postgresql.org/pg/commitdiff/1a00c0ef5368bb7b8ddc b3cf279df365779=
18ac4

- Remember the source GucContext for each GUC parameter. We used to
just remember the GucSource, but saving GucContext too provides a
little more information --- notably, whether a SET was done by a
superuser or regular user. This allows us to rip out the fairly
dodgy code that define_custom_variable used to use to try to infer
the context to re-install a pre-existing setting with. In
particular, it now works for a superuser to SET a extension's SUSET
custom variable before loading the associated extension, because GUC
can remember whether the SET was done as a superuser or not. The
plperl regression tests contain an example where this is useful.
=20
http://git.postgresql.org/pg/commitdiff/9f5836d224e876399dfd d7d6d4343300dbc=
2f664

- Add sourcefile/sourceline data to EXEC_BACKEND GUC transmission
files. This oversight meant that on Windows, the pg_settings view
would not display source file or line number information for values
coming from postgresql.conf, unless the backend had received a
SIGHUP since starting. In passing, also make the error detection in
read_nondefault_variables a tad more thorough, and fix it to not
lose precision on float GUCs (these changes are already in HEAD as
of my previous commit).
=20
http://git.postgresql.org/pg/commitdiff/4bcb82a7d590afa16507 f9089bd68ef4bce=
bebb1

- Fix uninitialized-variable bug.
=20
http://git.postgresql.org/pg/commitdiff/fa56a0c3e01c175695e9 32e6cdc2c6915df=
5adc6

- Improve define_custom_variable's handling of pre-existing settings.
Arrange for any problems with pre-existing settings to be reported
as WARNING not ERROR, so that we don't undesirably abort the loading
of the incoming add-on module. The bad setting is just discarded,
as though it had never been applied at all. (This requires a change
in the API of set_config_option. After some thought I decided the
most potentially useful addition was to allow callers to just pass
in a desired elevel.) Arrange to restore the complete stacked state
of the variable, rather than cheesily reinstalling only the active
value. This ensures that custom GUCs will behave unsurprisingly
even when the module loading operation occurs within nested
subtransactions that have changed the active value. Since a module
load could occur as a result of, eg, a PL function call, this is not
an unlikely scenario.
=20
http://git.postgresql.org/pg/commitdiff/41e461d36fb1ef784944 29f28ea4b72c759=
f419d

- Improve and simplify CREATE EXTENSION's management of GUC variables.
CREATE EXTENSION needs to transiently set search_path, as well as
client_min_messages and log_min_messages. We were doing this by the
expedient of saving the current string value of each variable, doing
a SET LOCAL, and then doing another SET LOCAL with the previous
value at the end of the command. This is a bit expensive though,
and it also fails badly if there is anything funny about the
existing search_path value, as seen in a recent report from Roger
Niederland. Fortunately, there's a much better way, which is to
piggyback on the GUC infrastructure previously developed for
functions with SET options. We just open a new GUC nesting level,
do our assignments with GUC_ACTION_SAVE, and then close the nesting
level when done. This automatically restores the prior settings
without a re-parsing pass, so (in principle anyway) there can't be
an error. And guc.c still takes care of cleanup in event of an
error abort. The CREATE EXTENSION code for this was modeled on some
much older code in ri_triggers.c, which I also changed to use the
better method, even though there wasn't really much risk of failure
there. Also improve the comments in guc.c to reflect this
additional usage.
=20
http://git.postgresql.org/pg/commitdiff/ba6f629326be365a3124 dc80aa5d303e2b0=
bf46b

- Support index-only scans using the visibility map to avoid heap
fetches. When a btree index contains all columns required by the
query, and the visibility map shows that all tuples on a target heap
page are visible-to-all, we don't need to fetch that heap page.
This patch depends on the previous patches that made the visibility
map reliable. There's a fair amount left to do here, notably trying
to figure out a less chintzy way of estimating the cost of an
index-only scan, but the core functionality seems ready to commit.
Robert Haas and Ibrar Ahmed, with some previous work by Heikki
Linnakangas.
=20
http://git.postgresql.org/pg/commitdiff/a2822fb9337a21f98ac4 ce850bb4145acf4=
7ca27

- Fix brain fade in cost estimation for index-only scans.
visibility_fraction should not be applied to regular indexscans.
Noted by Cédric Villemain.
=20
http://git.postgresql.org/pg/commitdiff/b324384f6bd5d661efed db83d7f607781e9=
6947d

- Note that index-only scans can affect idx_tup_fetch. An index-only
scan that avoids heap fetches will increment idx_tup_read but not
idx_tup_fetch.
=20
http://git.postgresql.org/pg/commitdiff/c78d8cd1464bc6b69fdc 72f9ce51407c895=
54ece

- Prevent index-only scans in stats regression test. This bollixes
the test because it's expecting to see the idx_tup_fetch counter
increase, which won't happen if heap fetches were avoided by use of
an index-only scan. Per buildfarm results. While at it, let's just
make sure that enable_seqscan and enable_indexscan are ON for this
test ...
=20
http://git.postgresql.org/pg/commitdiff/45401c1c25fe1ef14bf6 8089de86bcb5cce=
9f453

- Improve index-only scans to avoid repeated access to the index page.
We copy all the matched tuples off the page during _bt_readpage,
instead of expensively re-locking the page during each subsequent
tuple fetch. This costs a bit more local storage, but not more than
2*BLCKSZ worth, and the reduction in LWLock traffic is certainly
worth that. What's more, this lets us get rid of the API wart in
the original patch that said an index AM could randomly decline to
supply an index tuple despite having asserted pg_am.amcanreturn.
That will be important for future improvements in the
index-only-scan feature, since the executor will now be able to rely
on having the index data available.
=20
http://git.postgresql.org/pg/commitdiff/cbfa92c23c3924d53889 320cdbe26f23ee2=
3e40c

Alvaro Herrera pushed:

- Use callbacks in SlruScanDirectory for the actual action.
Previously, the code assumed that the only possible action to take
was to delete files behind a certain cutoff point. The async notify
code was already a crock: it used a different "pagePrecedes"
function for truncation than for regular operation. By allowing it
to pass a callback to SlruScanDirectory it can do cleanly exactly
what it needs to do. The clog.c code also had its own use for
SlruScanDirectory, which is made a bit simpler with this.
=20
http://git.postgresql.org/pg/commitdiff/09e196e4539a70c51e82 8abcfe48dee3efd=
312d8

Bruce Momjian pushed:

- Explain COALESCE example in the docs.
=20
http://git.postgresql.org/pg/commitdiff/9d23d7cdafb3540aa2de 9310c7f1afee87d=
fc2f2

- Change wording for COALESCE docs to use "otherwise". Per Tom Lane
=20
http://git.postgresql.org/pg/commitdiff/3919ad864d7040361fd4 b44719acaa1ec0f=
87bbd

- Add postmaster -C option to query configuration parameters, and have
pg_ctl use that to query the data directory for config-only
installs. This fixes awkward or impossible pg_ctl operation for
config-only installs.
=20
http://git.postgresql.org/pg/commitdiff/aaa6e1def292cdacb6b2 7088898793b1b87=
9fedf

- Simplify new pg_ctl newline termination code.
=20
http://git.postgresql.org/pg/commitdiff/416e82ce9f0c8c4ec6d3 77368d670b8ca74=
097a6

- Move pg_upgrade doc mention of the port numbers to the same place.
=20
http://git.postgresql.org/pg/commitdiff/981e5acd24cc63fa4f27 dac3b35e5d0bf39=
21efc

- In pg_upgrade, improve popen() failure detection by checking for
fgets() failures.
=20
http://git.postgresql.org/pg/commitdiff/a3996754cc0281293cc5 bfb90bf594fef41=
aff5b

- In pg_upgrade, use the new postmaster -C option to get the real data
directory, for config-only directory installs. Only works for PG
9.2+ servers.
=20
http://git.postgresql.org/pg/commitdiff/caa1054df8408b165e5f 66ff25c87b6dd0a=
0a1e7

Heikki Linnakangas pushed:

- Replace the "New Linear" GiST split algorithm for boxes and points
with a new double-sorting algorithm. The new algorithm produces
better quality trees, making searches faster. Alexander Korotkov
=20
http://git.postgresql.org/pg/commitdiff/7f3bd86843e5aad84585 a57d3f6b80db3c6=
09916

- Don't let transform_null_equals=3Don affect CASE foo WHEN NULL ...
constructs. transform_null_equals is only supposed to affect "foo =3D
NULL" expressions given directly by the user, not the internal "foo
=3D NULL" expression generated from CASE-WHEN. This fixes bug #6242,
reported by Sergey. Backpatch to all supported branches.
=20
http://git.postgresql.org/pg/commitdiff/1ef60dab7049ffac52de e60b5788b6c7bc1=
f9d67

- Clean up a couple of box gist helper functions. The original idea
of this patch was to make box picksplit run faster, by eliminating
unnecessary palloc() overhead, but that was obsoleted by the new
double-sorting split algorithm that doesn't call these functions so
heavily anymore. Nevertheless, the code looks better this way.
Original patch by me, reviewed and tidied up after the
double-sorting patch by Kevin Grittner.
=20
http://git.postgresql.org/pg/commitdiff/d50e1251946a6e59092f 0a84fc903532eb5=
99a4f

Robert Haas pushed:

- Make pgstatindex respond to cancel interrupts. A similar problem
for pgstattuple() was fixed in April of 2010 by commit
33065ef8bc52253ae855bc959576e52d8a28ba06, but pgstatindex() seems to
have been overlooked. Back-patch all the way, as with that commit,
though not to 7.4 through 8.1, since those are now EOL.
=20
http://git.postgresql.org/pg/commitdiff/1cb018dd09268cab7f4a c1e8ab59b2277e7=
709f1

- Try to fix memory barriers on x86_64. %esp is no good; must use
%rsp there.
=20
http://git.postgresql.org/pg/commitdiff/6a6082c27c148eb452d8 04af306e8745f6e=
49b36

- Add missing space. Dickson S. Guedes
=20
http://git.postgresql.org/pg/commitdiff/13168ae4ebb6eac6f668 a4a157e7fe3ffae=
22d85

- Fix typo.
=20
http://git.postgresql.org/pg/commitdiff/041dceb2590081c397da eda84ff28ffc71a=
51fb0

- Revert accidental change to pg_config_manual.h. This was broken in
commit 53dbc27c62d8e1b6c5253feba04a5094cb8fe046, which introduced
unlogged tables. Fortunately, as debugging tools go, this one is
pretty cheap, which is probably why it took nine months for someone
to notice, but it's not intended to be enabled by default, so
revert. Noted by Fujii Masao.
=20
http://git.postgresql.org/pg/commitdiff/c980426c69ae76b04aa9 de010027438457a=
eaa7f

- Fix ALTER TABLE ONLY .. DROP CONSTRAINT. When I consolidated two
copies of the HOT-chain search logic in commit
4da99ea4231e3d8bbf28b666748c1028e7b7d665, I introduced a behavior
change: the old code wouldn't necessarily traverse the entire chain,
if the most recently returned tuple were updated while the HOT chain
traversal is in progress. The new behavior seems more correct, but
unfortunately, the code here relies on a scan with SnapshotNow
failing to see its own updates. That seems pretty shaky even with
the old HOT chain traversal behavior, since there's no guarantee
that these updates will always be HOT, but it's trivial to broke a
failure with the new HOT search logic. Fix by updating just the
first matching pg_constraint tuple, rather than all of them, since
there should be only one anyway. But since nobody has reproduced
this failure on older versions, no back-patch for now. Report and
test case by Alex Hunsaker; tablecmds.c changes by me.
=20
http://git.postgresql.org/pg/commitdiff/c0f03aae0469e758964f aac0fb741685170=
c39a5

Magnus Hagander pushed:

- Ensure walsenders can be SIGTERMed while in non-walsender code. In
order to exit on SIGTERM when in non-walsender code, such as
do_pg_stop_backup(), we need to set the interrupt variables that are
used there, and not just the walsender local ones.
=20
http://git.postgresql.org/pg/commitdiff/7aeff9f4a4e57dca5727 828bf95f12cf630=
03270

== Abgelehnte Patches (bis jetzt) ==

No one was disappointed this week :-)

== Eingesandte Patches ==

Simon Riggs sent in two more revisions of the patch to separate
checkpointing and background writing into distinct components.

Royce Ausburn sent in two revisions of a patch to enable monitoring
unremovable tuples.

Heikki Linnakangas sent in another revision of a patch to fix some
socket issues on HP-UX.

Fujii Masao sent in another revision of a patch to fix a bug in
recovery.

Fujii Masao sent in another revision of a patch to add a
pg_last_xact_insert_timestamp column.

Alex Hunsaker sent in two more revisions of a patch to do some
encoding checking for PL/Perl inputs.

Pavel Stehule sent in a patch which returns the number of rows
processed by COPY.

KaiGai Kohei sent in two more revisions of the patch to rework DROP
into a single framework.

Pavel Stehule sent in two revisions of a patch to implement CHECK
FUNCTION and CHECK TRIGGER.

Alex Hunsaker sent in two more revisions of a patch to allow
non-inheritable CHECK constraints.

Alex Hunsaker and Robert Haas traded revisions of a patch to fix ALTER
TABLE ONLY ... DROP CONSTRAINT.

Marti Raudsepp sent in another revision of a patch to log crashed
backends.

Kyotaro HORIGUCHI sent in a patch to endure that make_greater_string()
returns a string.

Simon Riggs sent in two revisions of a patch to prevent duplicate
checkpoints.

Etsuro Fujita sent in another revision of a patch to collect
statistics on foreign tables.

Yeb Havinga sent in another revision of a patch that enables cursors
with named parameters.

Julien Tachoires sent in a WIP patch which enables moving TOAST tables
to a different tablespace.

Kevin Grittner sent in another revision of the patch to optimize
box_penalty.

KaiGai Kohei sent in another revision of the patch to fix some leaks
in VIEWs.

Jun Ishiduka sent in another revision of the patch to allow creating a
backup from a hot standby.

--
Andreas 'ads' Scherbaum
Deutsche PostgreSQL User Group: http://www.pgug.de/
DPWN: http://andreas.scherbaum.la/blog/categories/18-PWN




--=20
Sent via pgsql-de-allgemein mailing list (pgsql-de-allgemein@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-de-allgemein