Le PGDay Campinas 2015 aura lieu à Campinas (Brésil) le 7 août. L'appel à conférenciers expire le 31 mai : http://pgdaycampinas.com.br/english/

L'appel à conférenciers pour la session PostgreSQL n°7 (24 septembre 2015 à Paris) est lancé jusqu'au 15 juin 2015 : call-for-paper <AT> postgresql-sessions <DOT> org. http://www.postgresql-sessions.org/7/about

Les nouveautés des produits dérivés

Offres d'emplois autour de PostgreSQL en avril

PostgreSQL Local

PostgreSQL dans les média

PostgreSQL Weekly News / les nouvelles hebdomadaires vous sont offertes cette semaine par David Fetter. Traduction par l'équipe PostgreSQLFr sous licence CC BY-NC-SA.

Proposez vos articles ou annonces avant dimanche 15:00 (heure du Pacifique). Merci de les envoyer en anglais à david (a) fetter.org, en allemand à pwn (a) pgug.de, en italien à pwn (a) itpug.org et en espagnol à pwn (a) arpug.com.ar.

(lien vers l'article original)

Correctifs appliqués

Peter Eisentraut a poussé :

Bruce Momjian a poussé :

Andres Freund a poussé :

Robert Haas a poussé :

Heikki Linnakangas a poussé :

Stephen Frost a poussé :

  • Pull in tableoid for inheiritance with rowMarks. As noted by Etsuro Fujita [1] and Dean Rasheed[2], cb1ca4d800621dcae67ca6c799006de99fa4f0a5 changed ExecBuildAuxRowMark() to always look for the tableoid in the target list, but didn't also change preprocess_targetlist() to always include the tableoid. This resulted in errors with soon-to-be-added RLS with inheritance tests, and errors when using inheritance with foreign tables. Authors: Etsuro Fujita and Dean Rasheed (independently) Minor word-smithing on the comments by me. [1] 552CF0B6.8010006@lab.ntt.co.jp [2] CAEZATCVmFUfUOwwhnBTcgi6AquyjQ0-1fyKd0T3xBWJvn+xsFA@mail.gmail.com http://git.postgresql.org/pg/commitdiff/4ccc5bd28e7f0c0d1b221683398ae178515b9f76
  • RLS fixes, new hooks, and new test module. In prepend_row_security_policies(), defaultDeny was always true, so if there were any hook policies, the RLS policies on the table would just get discarded. Fixed to start off with defaultDeny as false and then properly set later if we detect that only the default deny policy exists for the internal policies. The infinite recursion detection in fireRIRrules() didn't properly manage the activeRIRs list in the case of WCOs, so it would incorrectly report infinite recusion if the same relation with RLS appeared more than once in the rtable, for example "UPDATE t ... FROM t ...". Further, the RLS expansion code in fireRIRrules() was handling RLS in the main loop through the rtable, which lead to RTEs being visited twice if they contained sublink subqueries, which prepend_row_security_policies() attempted to handle by exiting early if the RTE already had securityQuals. That doesn't work, however, since if the query involved a security barrier view on top of a table with RLS, the RTE would already have securityQuals (from the view) by the time fireRIRrules() was invoked, and so the table's RLS policies would be ignored. This is fixed in fireRIRrules() by handling RLS in a separate loop at the end, after dealing with any other sublink subqueries, thus ensuring that each RTE is only visited once for RLS expansion. The inheritance planner code didn't correctly handle non-target relations with RLS, which would get turned into subqueries during planning. Thus an update of the form "UPDATE t1 ... FROM t2 ..." where t1 has inheritance and t2 has RLS quals would fail. Fix by making sure to copy in and update the securityQuals when they exist for non-target relations. process_policies() was adding WCOs to non-target relations, which is unnecessary, and could lead to a lot of wasted time in the rewriter and the planner. Fix by only adding WCO policies when working on the result relation. Also in process_policies, we should be copying the USING policies to the WITH CHECK policies on a per-policy basis, fix by moving the copying up into the per-policy loop. Lastly, as noted by Dean, we were simply adding policies returned by the hook provided to the list of quals being AND'd, meaning that they would actually restrict records returned and there was no option to have internal policies and hook-based policies work together permissively (as all internal policies currently work). Instead, explicitly add support for both permissive and restrictive policies by having a hook for each and combining the results appropriately. To ensure this is all done correctly, add a new test module (test_rls_hooks) to test the various combinations of internal, permissive, and restrictive hook policies. Largely from Dean Rasheed (thanks!): CAEZATCVmFUfUOwwhnBTcgi6AquyjQ0-1fyKd0T3xBWJvn+xsFA@mail.gmail.com Author: Dean Rasheed, though I added the new hooks and test module. http://git.postgresql.org/pg/commitdiff/0bf22e0c8b1114ae37939c500535307abefd38e1
  • Fix installcheck for test_rls_hooks. As pointed out by the buildfarm, test_rls_hooks wasn't functioning properly with a clean installcheck. test_rls_hooks needs to explicitly load the library with the hooks in it, to allow installcheck to work; using the --temp-config doesn't help since that isn't used when running installcheck and it isn't exactly fair to the buildfarm to modify the installed config prior to calling installcheck. Also, have test_rls_hooks clean up after itself. http://git.postgresql.org/pg/commitdiff/450fa1b5ba0e986a20d8c017500c0c0bbf1e0b4b
  • Copy the relation name for error reporting in WCOs. In get_row_security_policies(), we need to make a copy of the relation name when building the WithCheckOptions structure, since RelationGetRelationName just returns a pointer into the local Relation structure. The relation name in the WCO structure is only used for error reporting. Pointed out by Robert and Christian Ullrich, who noted that the buildfarm members with -DCLOBBER_CACHE_ALWAYS were failing. http://git.postgresql.org/pg/commitdiff/cb087ec03bbb1d52845a4de83a6bf634dac2639f
  • Perform RLS WITH CHECK before constraints, etc. The RLS capability is built on top of the WITH CHECK OPTION system which was added for auto-updatable views, however, unlike WCOs on views (which are mandated by the SQL spec to not fire until after all other constraints and checks are done), it makes much more sense for RLS checks to happen earlier than constraint and uniqueness checks. This patch reworks the structure which holds the WCOs a bit to be explicitly either VIEW or RLS checks and the RLS-related checks are done prior to the constraint and uniqueness checks. This also allows better error reporting as we are now reporting when a violation is due to a WITH CHECK OPTION and when it's due to an RLS policy violation, which was independently noted by Craig Ringer as being confusing. The documentation is also updated to include a paragraph about when RLS WITH CHECK handling is performed, as there have been a number of questions regarding that and the documentation was previously silent on the matter. Author: Dean Rasheed, with some kabitzing and comment changes by me. http://git.postgresql.org/pg/commitdiff/e89bd02f58ac07e44e0388a32b7ee1b42f1fd7c6
  • Fix file comment for test_rls_hooks.c. The file-level comment wasn't updated when it was copied from the shared memory queue test module. Fixed. Noted by Dean Rasheed. http://git.postgresql.org/pg/commitdiff/410cbfd6dd778e8f388fd0d7ee9d84f833700da5

Álvaro Herrera a poussé :

  • Use the right type OID after creating a shell type. Commit a2e35b53c39b2a neglected to update the type OID to use further down in DefineType when TypeShellMake was changed to return ObjectAddress instead of OID (it got it right in DefineRange, however.) This resulted in an internal error message being issued when looking up I/O functions. Author: Michael Paquier. Also add Asserts() to a couple of other places to ensure that the type OID being used is as expected. http://git.postgresql.org/pg/commitdiff/50a16e30ebd76e70fc76abb2c8f0cd1e71deac41

Tom Lane a poussé :

  • Fix obsolete comment in set_rel_size(). The cross-reference to set_append_rel_pathlist() was obsoleted by commit e2fa76d80ba571d4de8992de6386536867250474, which split what had been set_rel_pathlist() and child routines into two sets of functions. But I (tgl) evidently missed updating this comment. Back-patch to 9.2 to avoid unnecessary divergence among branches. Amit Langote http://git.postgresql.org/pg/commitdiff/70d44dd9de2b781436ef1d55906614d241e02249
  • Fix up .gitignore and cleanup actions in some src/test/ subdirectories. examples/, locale/, and thread/ lacked .gitignore files and were also not connected up to top-level "make clean" etc. This had escaped notice because none of those directories are built in normal scenarios. Still, they have working Makefiles, so if someone does a "make" in one of these directories it would be good if (a) git doesn't bleat about the product files and (b) cleaning up removes them. This is a longstanding oversight, but since this behavior is probably only of interest to developers, there seems no need for back-patching. Michael Paquier and Tom Lane http://git.postgresql.org/pg/commitdiff/732b33f8ae4ecc9d7a9f07fd4cb74a60a2a5e2c2
  • Prevent improper reordering of antijoins vs. outer joins. An outer join appearing within the RHS of an antijoin can't commute with the antijoin, but somehow I missed teaching make_outerjoininfo() about that. In Teodor Sigaev's recent trouble report, this manifests as a "could not find RelOptInfo for given relids" error within eqjoinsel(); but I think silently wrong query results are possible too, if the planner misorders the joins and doesn't happen to trigger any internal consistency checks. It's broken as far back as we had antijoins, so back-patch to all supported branches. http://git.postgresql.org/pg/commitdiff/3cf8686014f91174018f20e01dbb0dafdcad0473
  • Add comments warning against generalizing default_with_oids. pg_dump has historically assumed that default_with_oids affects only plain tables and not other relkinds. Conceivably we could make it apply to some newly invented relkind if we did so from the get-go, but changing the behavior for existing object types will break existing dump scripts. Add code comments warning about this interaction. Also, make sure that default_with_oids doesn't cause parse_utilcmd.c to think that CREATE FOREIGN TABLE will create an OID column. I think this is only a latent bug right now, since we don't allow UNIQUE/PKEY constraints in CREATE FOREIGN TABLE, but it's better to be consistent and future-proof. http://git.postgresql.org/pg/commitdiff/0bd11d9711b88e72d2022e25b9227c480aca4978
  • Fix typo in linux startup script. Missed a "$" in what was meant to be a variable substitution. Careless mistake in commit f23425fa950fec3aff458de117037c9caadbc35c. http://git.postgresql.org/pg/commitdiff/f320cbb615e0374b18836337713239da58705cf3

Noah Misch a poussé :

Andrew Dunstan a poussé :

Correctifs rejetés (à ce jour)

  • No one was disappointed this week

Correctifs en attente

  • Jeff Janes sent in a patch to help make vacuum truncation scans faster.
  • Peter Geoghegan sent in another revision of a patch to implement INSERT ... ON CONFLICT IGNORE (and UPDATE).
  • Michael Paquier sent in another revision of a patch to ensure that logical decoding follows timelines.
  • Heikki Linnakangas sent in another revision of a patch to implement access menthods for sequences.
  • Michael Paquier sent in two more revisions of a patch to support TAP tests with MSVC and Windows.
  • SAWADA Masahiko sent in another revision of a patch to help avoid freezing very large tables.
  • Etsuro Fujita sent in another revision of a patch to allow foreign tables to be created with OIDs.
  • Michael Paquier sent in another revision of a patch to ensure that Install.bat works when the target directory contains a space.
  • Michael Paquier sent in another revision of a patch to add pg_settings.pending_restart.
  • Kaigai Kouhei sent in another revision of a patch to add a custom join API.
  • Jan de Visser sent in another revision of a patch to let pg_ctl check the result of a postmaster config reload.
  • Petr Jelinek sent in a patch to add catalog regression tests for the TABLESAMPLE feature.
  • Michael Paquier sent in a patch to fix a comment in src/backend/access/transam/xlog.c.
  • Michael Paquier sent in a patch to allow releasing LWLocks on failure in cases where that makes sense.
  • Amit Kapila sent in another revision of a patch to implement parallel sequential scan.
  • Abhijit Menon-Sen sent in two more revisions of a patch to create a fast bloat measurement tool.
  • Fabrízio de Royes Mello sent in another revision of a patch to add CINE for ALTER TABLE ... ADD COLUMN.
  • David Steele sent in another revision of a patch to add pg_audit.
  • Kyotaro HORIGUCHI sent in two revisions of a patch to fix an issue where coerce_type() fails for Var of type UNKNOWNOID.
  • Andres Freund sent in another revision of a patch to implement replication identifiers.
  • Michael Paquier sent in a patch to fix broken collate.linux.utf8 test coverage.
  • Pavel Stehule sent in two more revisions of a patch to tune the displayability of context messages in PL/pgSQL errors.
  • Fabien COELHO sent in another revision of a patch to extend pgbench expressions with functions.
  • Fabien COELHO sent in another revision of a patch to fix pgbench --progress report under (very) low rate.
  • Euler Taveira de Oliveira sent in a patch to fix some issues in the parallel mode and parallel contexts.