PostgreSQL 2008年4月第4周新闻综述 -- 2008/04/27

From PostgreSQL 中文维基, PostgreSQL 中文站, PostgreSQL 中国社区, PostgreSQL Chinese community

Jump to: navigation, search


Simon Riggs提出了一个实现MERGE功能的新方法建议,针对此方法讨论仍在进行中。

[编辑] PostgreSQL相关软件新闻

OpenResty 0.2.2版本发布,详情可浏览:http://search.cpan.org/~agent/OpenResty/lib/OpenResty.pm

pg_top 3.6.2-beta4测试版本发布,详情可浏览:http://ptop.projects.postgresql.org/

prefix 0.2 版本发布,详情可浏览:http://pgfoundry.org/projects/prefix/

[编辑] PostgreSQL四月相关工作机会

详情可浏览:http://archives.postgresql.org/pgsql-jobs/2008-04/threads.php

[编辑] PostgreSQL各地新闻

企业数据库2008年会将于4/24--25在莫斯科举行,详情可浏览:http://citforum.ru/seminars/cbd2008/

巴尔的摩/华盛顿区的PostgreSQL用户协会将在5/14星期三举行他们第一次会议,地点是在OmniTI公司的哥伦比亚总部大楼,详情可浏览:http://lethargy.org/~jesus/categories/6-BWPUG

PGCon 2008年度大会将于05/20--23在渥太华举行,详情可浏览:http://www.pgcon.org/2008/

希腊PostgreSQL用户协会将在第三届希腊开源软件大会上设立一个展位,本次大会将于5/27--28在NTUA,Athens举行,详情可浏览:http://www.postgresql.gr/

PostgreSQL日将在开源大会(OSCON)之前于波特兰举行,详情可浏览:http://pugs.postgresql.org/taxonomy/term/53

犹他州2008开源软件大会自6/1起开放注册,这个第二次的年度大会将于2008/08/28--30日在Salt Lake举行,详情可浏览:http://2008.utosc.com/

[编辑] PostgreSQL其他新闻

PostgreSQL网志站点:http://www.planetpostgresql.org/

PostgreSQL技巧站点,目前主要为一些存档文章和很少的更新:http://www.varlena.com/GeneralBits/

PostgreSQL本周新闻综述是由David Fetter带给我们大家的,谢谢他的工作。

如果您想提交一些新闻或是软件发布稿等内容可在每周星期天的下午3:00(太平洋时区)前,英文版的内容可发送至david@fetter.org,德文版本的内容可发送至pwn@pgug.de,意大利语版本的内容可发至pwn@itpug.org

[编辑] 本周打入系统的补丁

Magnus Hagander 打入系统的补丁:

- In pgsql/doc/src/sgml/release.sgml, add link to major version release notes at the top of the minor version ones, to make it clear

to users just browsing the notes that there are a lot more changes available from whatever version they are at than what's in the minor version release notes.

- Make float4byval and float8byval configurable on MSVC.

- In pgsql/doc/src/sgml/cvs.sgml, fix typo, noted by Stefan Kaltenbrunner.

- Clean up float4byval and float8byval handling by dealing with them completely from inside the build script for Windows.

- Don't pull in pthreads header files in this file because we never use them.

- Prevent shutdown in normal mode if online backup is running, and have pg_ctl warn about this. Cancel running online backups (by renaming the backup_label file, thus rendering the backup useless) when shutting down in fast mode. Laurenz Albe

Tom Lane 打入系统的补丁:

- Fix convert_IN_to_join to properly handle the case where the subselect's output is not of the same type that's needed for the IN

comparison (ie, where the parser inserted an implicit coercion above the subselect result).  We should record the coerced expression, not just a raw Var referencing the subselect output, as the quantity that needs to be unique-ified if we choose to implement the IN as Unique followed by a plain join.  As of 8.3 this error was causing crashes, as seen in bug #4113 from Javier Hernandez, because the executor was being told to hash or sort the raw subselect output column using operators appropriate to the coerced type.  In prior versions there was no crash because the executor chose the hash or sort operators for itself based on the column type it saw.  However, that's still not really right, because what's unique for one data type might not be unique for another.  In corner cases we could get multiple outputs of a row that should appear only once, as demonstrated by the regression test case included in this commit. However, this patch doesn't apply cleanly to 8.2 or before, and the code involved has shifted enough over time that I'm hesitant to try to back-patch.  Given the lack of complaints from the field about such corner cases, I think the bug may not be important enough to risk breaking other things with a back-patch.

- Issue explicit error messages for attempts to use "shell" operators in ordinary expressions. This probably doesn't catch every single

case where you might get "cache lookup failed for function 0" for use of a shell operator, but it will catch most.  Per bug #4120 from Pedro Gimeno.  This patch incidentally folds make_op_expr() into its sole remaining caller --- the alternative was to give it yet more arguments, which didn't seem an improvement.

- Replace developer FAQ with a reference to the wiki, which is where it now lives (per discussion). Leave the other FAQs alone for now.

- Fix ALTER TABLE ADD COLUMN ... PRIMARY KEY so that the new column is correctly checked to see if it's been initialized to all non-nulls. The implicit NOT NULL constraint was not being checked during the ALTER (in fact, not even if there was an explicit NOT NULL too), because ATExecAddColumn neglected to set the flag needed to make the test happen. This has been broken since the capability was first added, in 8.0. Brendan Jurd, per a report from Kaloyan Iliev.

- Remove transformAlterTableStmt's kluge to replace ColumnDef.is_not_null flags by separate AT_SetNotNull subcommands.

That was always ugly and inefficient, and it's now clear that it was merely a partial workaround for the bug just identified in
ATExecAddColumn.  This is just code beautification not a bug fix, so no back-patch.  Brendan Jurd, with some trivial additional cleanup by me.

- Code review for recent patch to terminate online backup during shutdown: do CancelBackup at a sane place, fix some oversights in

the state transitions, allow only superusers to connect while we are waiting for backup mode to end.

- Back-patch Heikki's fix to make TransactionIdIsCurrentTransactionId() use binary search instead of linear search when checking

child-transaction XIDs.  Per example from Robert Treat, the speed of TransactionIdIsCurrentTransactionId is significantly more important in 8.3 than it was in prior releases, so this seems worth taking back-patching risk for.

Bruce Momjian committed:

- FAQ2txt now only controls the main FAQ, not FAQ_DEV.

- Add URL for TODO item MERGE.

- Add to psql TODO: "Add prompt escape to display the client and server versions."

- Add URL for GIT (Grouped Index Tuples) URL.

- Update TODO description for GIT: "Consider smaller indexes that record a range of values per heap page, rather than having one index entry for every heap row."

- Remove from TODO, item done, description unclear: "Allow index scans to return matching index keys."

- Add to TODO: "Allow adding enumerated values to an existing enumerated data type."

- Add to TODO: "Allow index scans to return matching index keys, not just the matching heap locations."

- Add URL for above TODO.

- Add to TODO: "Impove COPY performance."

- Add to TODO: "Allow prepared transactions with temporary tables created and dropped in the same transaction, and when an ON COMMIT DELETE ROWS temporary table is accessed."

- Add embedded usage mention to FAQ, per Greg Smith.

- Update TODO item: "Allow adding/removing enumerated values to an existing enumerated data."

- Update TODO item: "Allow adding/renaming/removing enumerated values to an existing enumerated data type."

- Update to remove passive wording from FAQ, David Fetter.

- Add URL for TODO: "Allow adding/renaming/removing enumerated values to an existing enumerated data type."

Teodor Sigaev committed:

- Fix using too many LWLocks bug, reported by Craig Ringer. It was my mistake, I missed limitation of number of held locks, now GIN doesn't use continiuous locks, but still holds buffers pinned to prevent interfering with vacuum's deletion algorithm. Backpatch is needed.

Alvaro Herrera committed:

- In pgsql/doc/src/sgml/array.sgml, add SGML ID attributes to the arrays subsections, and a few index entries for them.

[编辑] Rejected Patches (for now)

No one was disappointed this week :-)

[编辑] Pending Patches

Joshua Drake sent in six revisions of his patch to shorten and clarify psql's default banner.

Zoltan Boszormenyi sent in another revision of his TRUNCATE ... RESTART IDENTITY patch.

Teodor Sigaev updated his patch to add partial match to GIN.

Bruce Momjian sent in another revision of the patch to wrap psql output at the window width.

Euler Taveira de Oliveira sent in an updated version of his patch which localizes lc_time and dates.

Andrew Dunstan sent in a patch to implement column-level privileges.

Zdenek Kotala sent in a patch which removes nonsegment mode support due to its non-portability.

Alvaro Herrera sent in two more revisions of his patch for snapshot management.

Hitoshi Harada sent in a patch to implement a temporal version of generate_series().

Peter Koczan sent in a patch to fix a bug in kerberos in 8.3.

Euler Taveira de Oliveira sent in a patch which localizes ecpg.

Stephen Layland sent in a patch to implement LDAPS support.

Personal tools