{"push_id":608414737,"size":45,"distinct_size":45,"ref":"refs/heads/master","head":"a61fd5334eb1040d0dcec0368702398a5b49152c","before":"2720e96a9bd58b2af177c714c0c5402773e1cf30","commits":[{"sha":"2093eb4d4c2b55962df613fdd6f605ce4dc67217","author":{"email":"194ab8dd455e11882084133e0b9c41a286f6e7bc@postgresql.org","name":"Michael Meskes"},"message":"Revert \"Ignore object files generated by ecpg test suite on Windows\"\n\nThis reverts commit b9e538b190d9cf4387361214eadc430393ebf852.","distinct":true,"url":"https://api.github.com/repos/dwsteele/postgres/commits/2093eb4d4c2b55962df613fdd6f605ce4dc67217"},{"sha":"fa83f809458a966dff225d3d266399d48e7b5e6e","author":{"email":"194ab8dd455e11882084133e0b9c41a286f6e7bc@postgresql.org","name":"Michael Meskes"},"message":"Ignore leftover artifacts from ecpg testsuite runs on Windows.","distinct":true,"url":"https://api.github.com/repos/dwsteele/postgres/commits/fa83f809458a966dff225d3d266399d48e7b5e6e"},{"sha":"31eae6028eca4365e7165f5f33fee1ed0486aee0","author":{"email":"3c84f0de6f8a0f296d36cdd9f57fa166641c96b1@alvh.no-ip.org","name":"Alvaro Herrera"},"message":"Allow CURRENT/SESSION_USER to be used in certain commands\n\nCommands such as ALTER USER, ALTER GROUP, ALTER ROLE, GRANT, and the\nvarious ALTER OBJECT / OWNER TO, as well as ad-hoc clauses related to\nroles such as the AUTHORIZATION clause of CREATE SCHEMA, the FOR clause\nof CREATE USER MAPPING, and the FOR ROLE clause of ALTER DEFAULT\nPRIVILEGES can now take the keywords CURRENT_USER and SESSION_USER as\nuser specifiers in place of an explicit user name.\n\nThis commit also fixes some quite ugly handling of special standards-\nmandated syntax in CREATE USER MAPPING, which in particular would fail\nto work in presence of a role named \"current_user\".\n\nThe special role specifiers PUBLIC and NONE also have more consistent\nhandling now.\n\nAlso take the opportunity to add location tracking to user specifiers.\n\nAuthors: Kyotaro Horiguchi.  Heavily reworked by Álvaro Herrera.\nReviewed by: Rushabh Lathia, Adam Brightwell, Marti Raudsepp.","distinct":true,"url":"https://api.github.com/repos/dwsteele/postgres/commits/31eae6028eca4365e7165f5f33fee1ed0486aee0"},{"sha":"e3f1c24b992acb88e4ccf33118640aee4b11dd47","author":{"email":"3c84f0de6f8a0f296d36cdd9f57fa166641c96b1@alvh.no-ip.org","name":"Alvaro Herrera"},"message":"Fix crasher bugs in previous commit\n\nALTER DEFAULT PRIVILEGES was trying to decode the list of roles in the\nFOR clause as a list of names rather than of RoleSpecs; and the IN\nclause in CREATE ROLE was doing the same thing.  This was evidenced by\ncrashes on some buildfarm machines, though on my platform this doesn't\ncause a failure by mere chance; I can reproduce the failures only by\nadding some padding in struct RoleSpecs.\n\nFix by dereferencing those lists as being of RoleSpecs, not string\nValues.","distinct":true,"url":"https://api.github.com/repos/dwsteele/postgres/commits/e3f1c24b992acb88e4ccf33118640aee4b11dd47"},{"sha":"4f3924d9cd438ba4e6fd639460f8c859c65d45a3","author":{"email":"3c84f0de6f8a0f296d36cdd9f57fa166641c96b1@alvh.no-ip.org","name":"Alvaro Herrera"},"message":"Keep CommitTs module in sync in standby and master\n\nWe allow this module to be turned off on restarts, so a restart time\ncheck is enough to activate or deactivate the module; however, if there\nis a standby replaying WAL emitted from a master which is restarted, but\nthe standby isn't, the state in the standby becomes inconsistent and can\neasily be crashed.\n\nFix by activating and deactivating the module during WAL replay on\nparameter change as well as on system start.\n\nProblem reported by Fujii Masao in\nhttp://www.postgresql.org/message-id/CAHGQGwFhJ3CnHo1CELEfay18yg_RA-XZT-7D8NuWUoYSZ90r4Q@mail.gmail.com\n\nAuthor: Petr Jelínek","distinct":true,"url":"https://api.github.com/repos/dwsteele/postgres/commits/4f3924d9cd438ba4e6fd639460f8c859c65d45a3"},{"sha":"865f14a2d31af23a05bbf2df04c274629c5d5c4d","author":{"email":"cc4ab156f0be9feefe10b35a552fd319cd7679ae@postgresql.org","name":"Robert Haas"},"message":"Allow named parameters to be specified using => in addition to :=\n\nSQL has standardized on => as the use of to specify named parameters,\nand we've wanted for many years to support the same syntax ourselves,\nbut this has been complicated by the possible use of => as an operator\nname.  In PostgreSQL 9.0, we began emitting a warning when an operator\nnamed => was defined, and in PostgreSQL 9.2, we stopped shipping a\n=>(text, text) operator as part of hstore.  By the time the next major\nversion of PostgreSQL is released, => will have been deprecated for a\nfull five years, so hopefully there won't be too many people still\nrelying on it.  We continue to support := for compatibility with\nprevious PostgreSQL releases.\n\nPavel Stehule, reviewed by Petr Jelinek, with a few documentation\ntweaks by me.","distinct":true,"url":"https://api.github.com/repos/dwsteele/postgres/commits/865f14a2d31af23a05bbf2df04c274629c5d5c4d"},{"sha":"e491bd2ee34860b14ff18abc5602f9aa5b197a2d","author":{"email":"3c84f0de6f8a0f296d36cdd9f57fa166641c96b1@alvh.no-ip.org","name":"Alvaro Herrera"},"message":"Move BRIN page type to page's last two bytes\n\n... which is the usual convention among AMs, so that pg_filedump and\nsimilar utilities can tell apart pages of different AMs.  It was also\nthe intent of the original code, but I failed to realize that alignment\nconsiderations would move the whole thing to the previous-to-last word\nin the page.\n\nThe new definition of the associated macro makes surrounding code a bit\nleaner, too.\n\nPer note from Heikki at\nhttp://www.postgresql.org/message-id/546A16EF.9070005@vmware.com","distinct":true,"url":"https://api.github.com/repos/dwsteele/postgres/commits/e491bd2ee34860b14ff18abc5602f9aa5b197a2d"},{"sha":"bb7b35caf78de80d2ff1643d042e62a71f83abbb","author":{"email":"3c84f0de6f8a0f296d36cdd9f57fa166641c96b1@alvh.no-ip.org","name":"Alvaro Herrera"},"message":"Fix stray sentence fragment in shared_preload_libraries documentation\n\nThe introduction in the Shared Library Preloading section already\ninstructs the user to separate multiple library names with commas, so\njust remove the fragment from here.\n\nAuthor: Dagfinn Ilmari Mannsåker","distinct":true,"url":"https://api.github.com/repos/dwsteele/postgres/commits/bb7b35caf78de80d2ff1643d042e62a71f83abbb"},{"sha":"2fbb286647fac2014abdf2fbf6c7b4134be91602","author":{"email":"ffeaa947aef224da9ba99b6a18bdd74288df0e3e@sss.pgh.pa.us","name":"Tom Lane"},"message":"Clean up the mess from => patch.\n\nCommit 865f14a2d31af23a05bbf2df04c274629c5d5c4d was quite a few bricks\nshy of a load: psql, ecpg, and plpgsql were all left out-of-step with\nthe core lexer.  Of these only the last was likely to be a fatal\nproblem; but still, a minimal amount of grepping, or even just reading\nthe comments adjacent to the places that were changed, would have found\nthe other places that needed to be changed.","distinct":true,"url":"https://api.github.com/repos/dwsteele/postgres/commits/2fbb286647fac2014abdf2fbf6c7b4134be91602"},{"sha":"57aa5b2bb11a4dbfdfc0f92370e0742ae5aa367b","author":{"email":"1f6acd02e97f7332f0e624e7be5170a1e771cb87@postgresql.org","name":"Fujii Masao"},"message":"Add GUC to enable compression of full page images stored in WAL.\n\nWhen newly-added GUC parameter, wal_compression, is on, the PostgreSQL server\ncompresses a full page image written to WAL when full_page_writes is on or\nduring a base backup. A compressed page image will be decompressed during WAL\nreplay. Turning this parameter on can reduce the WAL volume without increasing\nthe risk of unrecoverable data corruption, but at the cost of some extra CPU\nspent on the compression during WAL logging and on the decompression during\nWAL replay.\n\nThis commit changes the WAL format (so bumping WAL version number) so that\nthe one-byte flag indicating whether a full page image is compressed or not is\nincluded in its header information. This means that the commit increases the\nWAL volume one-byte per a full page image even if WAL compression is not used\nat all. We can save that one-byte by borrowing one-bit from the existing field\nlike hole_offset in the header and using it as the flag, for example. But which\nwould reduce the code readability and the extensibility of the feature.\nPer discussion, it's not worth paying those prices to save only one-byte, so we\ndecided to add the one-byte flag to the header.\n\nThis commit doesn't introduce any new compression algorithm like lz4.\nCurrently a full page image is compressed using the existing PGLZ algorithm.\nPer discussion, we decided to use it at least in the first version of the\nfeature because there were no performance reports showing that its compression\nratio is unacceptably lower than that of other algorithm. Of course,\nin the future, it's worth considering the support of other compression\nalgorithm for the better compression.\n\nRahila Syed and Michael Paquier, reviewed in various versions by myself,\nAndres Freund, Robert Haas, Abhijit Menon-Sen and many others.","distinct":true,"url":"https://api.github.com/repos/dwsteele/postgres/commits/57aa5b2bb11a4dbfdfc0f92370e0742ae5aa367b"},{"sha":"66ece312f99f384bd33e4342580e78b0eebf0e74","author":{"email":"3c84f0de6f8a0f296d36cdd9f57fa166641c96b1@alvh.no-ip.org","name":"Alvaro Herrera"},"message":"Refactor Mkvcbuild.pm to facilitate modules migrations\n\nThis is in preparation to \"upgrade\" some modules from contrib/ to\nsrc/bin/, per discussion.\n\nAuthor: Michael Paquier","distinct":true,"url":"https://api.github.com/repos/dwsteele/postgres/commits/66ece312f99f384bd33e4342580e78b0eebf0e74"},{"sha":"bbfd7edae5aa5ad5553d3c7e102f2e450d4380d4","author":{"email":"883768b6dd2c42aea0031b24be8a2da40fef4b64@anarazel.de","name":"Andres Freund"},"message":"Add macros wrapping all usage of gcc's __attribute__.\n\nUntil now __attribute__() was defined to be empty for all compilers but\ngcc. That's problematic because it prevents using it in other compilers;\nwhich is necessary e.g. for atomics portability.  It's also just\ngenerally dubious to do so in a header as widely included as c.h.\n\nInstead add pg_attribute_format_arg, pg_attribute_printf,\npg_attribute_noreturn macros which are implemented in the compilers that\nunderstand them. Also add pg_attribute_noreturn and pg_attribute_packed,\nbut don't provide fallbacks, since they can affect functionality.\n\nThis means that external code that, possibly unwittingly, relied on\n__attribute__ defined to be empty on !gcc compilers may now run into\nwarnings or errors on those compilers. But there shouldn't be many\noccurances of that and it's hard to work around...\n\nDiscussion: 54B58BA3.8040302@ohmu.fi\nAuthor: Oskari Saarenmaa, with some minor changes by me.","distinct":true,"url":"https://api.github.com/repos/dwsteele/postgres/commits/bbfd7edae5aa5ad5553d3c7e102f2e450d4380d4"},{"sha":"e529cd4ffa605c6f14f1391af5559b3a44da0336","author":{"email":"cc4ab156f0be9feefe10b35a552fd319cd7679ae@postgresql.org","name":"Robert Haas"},"message":"Suggest to the user the column they may have meant to reference.\n\nError messages informing the user that no such column exists can\nsometimes provoke a perplexed response.  This often happens due to\na subtle typo in the column name or, perhaps less likely, in the\nalias name.  To speed discovery of what the real issue is in such\ncases, we'll now search the range table for approximate matches.\nIf there are one or two such matches that are good enough to think\nthat they might be what the user intended to type, and better than\nall other approximate matches, we'll issue a hint suggesting that\nthe user might have intended to reference those columns.\n\nPeter Geoghegan and Robert Haas","distinct":true,"url":"https://api.github.com/repos/dwsteele/postgres/commits/e529cd4ffa605c6f14f1391af5559b3a44da0336"},{"sha":"e96b7c6b9fc4d148a22588894245416b63743368","author":{"email":"cc4ab156f0be9feefe10b35a552fd319cd7679ae@postgresql.org","name":"Robert Haas"},"message":"sepgsql: Improve error message when unsupported object type is labeled.\n\nKaiGai Kohei, reviewed by Álvaro Herrera and myself","distinct":true,"url":"https://api.github.com/repos/dwsteele/postgres/commits/e96b7c6b9fc4d148a22588894245416b63743368"},{"sha":"21dcda2713656a7483e3280ac9d2ada20a87a9a9","author":{"email":"ffeaa947aef224da9ba99b6a18bdd74288df0e3e@sss.pgh.pa.us","name":"Tom Lane"},"message":"Allocate ParamListInfo once per plpgsql function, not once per expression.\n\nsetup_param_list() was allocating a fresh ParamListInfo for each query or\nexpression evaluation requested by a plpgsql function.  There was probably\nonce good reason to do it like that, but for a long time we've had a\nconvention that there's a one-to-one mapping between the function's\nPLpgSQL_datum array and the ParamListInfo slots, which means that a single\nParamListInfo can serve all the function's evaluation requests: the data\nthat would need to be passed is the same anyway.\n\nIn this patch, we retain the pattern of zeroing out the ParamListInfo\ncontents during each setup_param_list() call, because some of the slots may\nbe stale and we don't know exactly which ones.  So this patch only saves a\npalloc/pfree per evaluation cycle and nothing more; still, that seems to be\ngood for a couple percent overall speedup on simple-arithmetic type\nstatements.  In future, though, we might be able to improve matters still\nmore by managing the param array contents more carefully.\n\nAlso, unify the former use of estate->cur_expr with that of\nparamLI->parserSetupArg; they both were used to point to the active\nexpression, so we can combine the variables into just one.","distinct":true,"url":"https://api.github.com/repos/dwsteele/postgres/commits/21dcda2713656a7483e3280ac9d2ada20a87a9a9"},{"sha":"c6b3c939b7e0f1d35f4ed4996e71420a993810d2","author":{"email":"ffeaa947aef224da9ba99b6a18bdd74288df0e3e@sss.pgh.pa.us","name":"Tom Lane"},"message":"Make operator precedence follow the SQL standard more closely.\n\nWhile the SQL standard is pretty vague on the overall topic of operator\nprecedence (because it never presents a unified BNF for all expressions),\nit does seem reasonable to conclude from the spec for <boolean value\nexpression> that OR has the lowest precedence, then AND, then NOT, then IS\ntests, then the six standard comparison operators, then everything else\n(since any non-boolean operator in a WHERE clause would need to be an\nargument of one of these).\n\nWe were only sort of on board with that: most notably, while \"<\" \">\" and\n\"=\" had properly low precedence, \"<=\" \">=\" and \"<>\" were treated as generic\noperators and so had significantly higher precedence.  And \"IS\" tests were\neven higher precedence than those, which is very clearly wrong per spec.\n\nAnother problem was that \"foo NOT SOMETHING bar\" constructs, such as\n\"x NOT LIKE y\", were treated inconsistently because of a bison\nimplementation artifact: they had the documented precedence with respect\nto operators to their right, but behaved like NOT (i.e., very low priority)\nwith respect to operators to their left.\n\nFixing the precedence issues is just a small matter of rearranging the\nprecedence declarations in gram.y, except for the NOT problem, which\nrequires adding an additional lookahead case in base_yylex() so that we\ncan attach a different token precedence to NOT LIKE and allied two-word\noperators.\n\nThe bulk of this patch is not the bug fix per se, but adding logic to\nparse_expr.c to allow giving warnings if an expression has changed meaning\nbecause of these precedence changes.  These warnings are off by default\nand are enabled by the new GUC operator_precedence_warning.  It's believed\nthat very few applications will be affected by these changes, but it was\nagreed that a warning mechanism is essential to help debug any that are.","distinct":true,"url":"https://api.github.com/repos/dwsteele/postgres/commits/c6b3c939b7e0f1d35f4ed4996e71420a993810d2"},{"sha":"bc93ac12c2544b6b3a68b6cb0282e0828fa14a34","author":{"email":"cc4ab156f0be9feefe10b35a552fd319cd7679ae@postgresql.org","name":"Robert Haas"},"message":"Require non-NULL pstate for all addRangeTableEntryFor* functions.\n\nPer discussion, it's better to have a consistent coding rule here.\n\nMichael Paquier, per a node from Greg Stark referencing an old post\nfrom Tom Lane.","distinct":true,"url":"https://api.github.com/repos/dwsteele/postgres/commits/bc93ac12c2544b6b3a68b6cb0282e0828fa14a34"},{"sha":"1ce7a57ca6e8c5212fa2ab3bf31d56c74d5b5b8f","author":{"email":"c50e6bf7013fce877ffb25104d778a36de31e297@gmx.net","name":"Peter Eisentraut"},"message":"PL/Python: Avoid lossiness in float conversion\n\nPL/Python uses str() to convert Python values back to PostgreSQL, but\nstr() is lossy for float values, so use repr() instead in that case.\n\nAuthor: Marko Kreen <markokr@gmail.com>","distinct":true,"url":"https://api.github.com/repos/dwsteele/postgres/commits/1ce7a57ca6e8c5212fa2ab3bf31d56c74d5b5b8f"},{"sha":"890192e99af5db1d15d5bb73f3f1044faa1d2758","author":{"email":"3c84f0de6f8a0f296d36cdd9f57fa166641c96b1@alvh.no-ip.org","name":"Alvaro Herrera"},"message":"Support user mappings in get_object_address\n\nSince commit 72dd233d3ef we were trying to obtain object addressing\ninformation in sql_drop event triggers, but that caused failures when\nthe drops involved user mappings.  This addition enables that to work\nagain.  Naturally, pg_get_object_address can work with these objects\nnow, too.\n\nI toyed with the idea of removing DropUserMappingStmt as a node and\nusing DropStmt instead in the DropUserMappingStmt grammar production,\nbut that didn't go very well: for one thing the messages thrown by the\nspecific code are specialized (you get \"server not found\" if you specify\nthe wrong server, instead of a generic \"user mapping for ... not found\"\nwhich you'd get it we were to merge this with RemoveObjects --- unless\nwe added even more special cases).  For another thing, it would require\nto pass RoleSpec nodes through the objname/objargs representation used\nby RemoveObjects, which works in isolation, but gets messy when\npg_get_object_address is involved.  So I dropped this part for now.\n\nReviewed by Stephen Frost.","distinct":true,"url":"https://api.github.com/repos/dwsteele/postgres/commits/890192e99af5db1d15d5bb73f3f1044faa1d2758"},{"sha":"d4d7777548ed3ea2ca579003e37f9df4d0e0ab9e","author":{"email":"3c84f0de6f8a0f296d36cdd9f57fa166641c96b1@alvh.no-ip.org","name":"Alvaro Herrera"},"message":"Fix libpq test expected output file\n\nEvidently, this test is not run very frequently ...","distinct":true,"url":"https://api.github.com/repos/dwsteele/postgres/commits/d4d7777548ed3ea2ca579003e37f9df4d0e0ab9e"}]}