{"push_id":2022223520,"size":13,"distinct_size":13,"ref":"refs/heads/annotation","head":"41d11353a7fabcf1c5eccbc53ed062c38bf1c6ba","before":"f701c938b06ac218fb2cf57a5a25b1ea65516ab9","commits":[{"sha":"c12d570fa147d0ec273df53de3a2802925d551ba","author":{"name":"Tom Lane","email":"9ca635a44fdf5aa326758d8d245579b9ae84653c@sss.pgh.pa.us"},"message":"Support arrays over domains.\n\nAllowing arrays with a domain type as their element type was left un-done\nin the original domain patch, but not for any very good reason.  This\nomission leads to such surprising results as array_agg() not working on\na domain column, because the parser can't identify a suitable output type\nfor the polymorphic aggregate.\n\nIn order to fix this, first clean up the APIs of coerce_to_domain() and\nsome internal functions in parse_coerce.c so that we consistently pass\naround a CoercionContext along with CoercionForm.  Previously, we sometimes\npassed an \"isExplicit\" boolean flag instead, which is strictly less\ninformation; and coerce_to_domain() didn't even get that, but instead had\nto reverse-engineer isExplicit from CoercionForm.  That's contrary to the\ndocumentation in primnodes.h that says that CoercionForm only affects\ndisplay and not semantics.  I don't think this change fixes any live bugs,\nbut it makes things more consistent.  The main reason for doing it though\nis that now build_coercion_expression() receives ccontext, which it needs\nin order to be able to recursively invoke coerce_to_target_type().\n\nNext, reimplement ArrayCoerceExpr so that the node does not directly know\nany details of what has to be done to the individual array elements while\nperforming the array coercion.  Instead, the per-element processing is\nrepresented by a sub-expression whose input is a source array element and\nwhose output is a target array element.  This simplifies life in\nparse_coerce.c, because it can build that sub-expression by a recursive\ninvocation of coerce_to_target_type().  The executor now handles the\nper-element processing as a compiled expression instead of hard-wired code.\nThe main advantage of this is that we can use a single ArrayCoerceExpr to\nhandle as many as three successive steps per element: base type conversion,\ntypmod coercion, and domain constraint checking.  The old code used two\nstacked ArrayCoerceExprs to handle type + typmod coercion, which was pretty\ninefficient, and adding yet another array deconstruction to do domain\nconstraint checking seemed very unappetizing.\n\nIn the case where we just need a single, very simple coercion function,\ndoing this straightforwardly leads to a noticeable increase in the\nper-array-element runtime cost.  Hence, add an additional shortcut evalfunc\nin execExprInterp.c that skips unnecessary overhead for that specific form\nof expression.  The runtime speed of simple cases is within 1% or so of\nwhere it was before, while cases that previously required two levels of\narray processing are significantly faster.\n\nFinally, create an implicit array type for every domain type, as we do for\nbase types, enums, etc.  Everything except the array-coercion case seems\nto just work without further effort.\n\nTom Lane, reviewed by Andrew Dunstan\n\nDiscussion: https://postgr.es/m/9852.1499791473@sss.pgh.pa.us","distinct":true,"url":"https://api.github.com/repos/PengJi/postgresql/commits/c12d570fa147d0ec273df53de3a2802925d551ba"},{"sha":"2632bcce5e767a2b5901bbef54ae52df061eee72","author":{"name":"Tom Lane","email":"9ca635a44fdf5aa326758d8d245579b9ae84653c@sss.pgh.pa.us"},"message":"Fix pg_dump to assign domain array type OIDs during pg_upgrade.\n\nDuring a binary upgrade, all type OIDs are supposed to be assigned by\npg_dump based on their values in the old cluster.  But now that domains\nhave arrays, there's nothing to base the arrays' type OIDs on, if we're\nupgrading from a pre-v11 cluster.  Make pg_dump search for an unused type\nOID to use for this purpose.  Per buildfarm.\n\nDiscussion: https://postgr.es/m/E1dyLlE-0002gT-H5@gemulon.postgresql.org","distinct":true,"url":"https://api.github.com/repos/PengJi/postgresql/commits/2632bcce5e767a2b5901bbef54ae52df061eee72"},{"sha":"396ef1561878a5d42ea9191f60098b7fbbec6e41","author":{"name":"Heikki Linnakangas","email":"f503d7d54583b01050f859fedbc50f86f41cf34b@iki.fi"},"message":"Fix busy-wait in pgbench, with --rate.\n\nIf --rate was used to throttle pgbench, it failed to sleep when it had\nnothing to do, leading to a busy-wait with 100% CPU usage. This bug was\nintroduced in the refactoring in v10. Before that, sleep() was called with\na timeout, even when there were no file descriptors to wait for.\n\nReported by Jeff Janes, patch by Fabien COELHO. Backpatch to v10.\n\nDiscussion: https://www.postgresql.org/message-id/CAMkU%3D1x5hoX0pLLKPRnXCy0T8uHoDvXdq%2B7kAM9eoC9_z72ucw%40mail.gmail.com","distinct":true,"url":"https://api.github.com/repos/PengJi/postgresql/commits/396ef1561878a5d42ea9191f60098b7fbbec6e41"},{"sha":"655c938fb0aacde297d4c53daf97ff82a3b90fad","author":{"name":"Peter Eisentraut","email":"2f47089682e4afbd5de3eea4edffc95dfc1eb9de@gmx.net"},"message":"Add list of acknowledgments to release notes\n\nThis contains all individuals mentioned in the commit messages during\nPostgreSQL 10 development.\n\ncurrent through babf18579455e85269ad75e1ddb03f34138f77b6\n\nDiscussion: https://www.postgresql.org/message-id/flat/54ad0e42-770e-dfe1-123e-bce9361ad452%402ndquadrant.com","distinct":true,"url":"https://api.github.com/repos/PengJi/postgresql/commits/655c938fb0aacde297d4c53daf97ff82a3b90fad"},{"sha":"4a1c0f3dde765c65e0ccb712c899df16986d09ad","author":{"name":"Tom Lane","email":"9ca635a44fdf5aa326758d8d245579b9ae84653c@sss.pgh.pa.us"},"message":"Use a longer connection timeout in pg_isready test.\n\nBuildfarm members skink and sungazer have both recently failed this\ntest, with symptoms indicating that the default 3-second timeout\nisn't quite enough for those very slow systems.  There's no reason\nto be miserly with this timeout, so boost it to 60 seconds.\n\nBack-patch to all versions containing this test.  That may be overkill,\nbecause the failure has only been observed in the v10 branch, but\nI don't feel like having to revisit this later.","distinct":true,"url":"https://api.github.com/repos/PengJi/postgresql/commits/4a1c0f3dde765c65e0ccb712c899df16986d09ad"},{"sha":"5a632a213d43c30940de3328286172c52730a01d","author":{"name":"Tom Lane","email":"9ca635a44fdf5aa326758d8d245579b9ae84653c@sss.pgh.pa.us"},"message":"Update v10 release notes, and set the official release date.\n\nLast(?) round of changes for 10.0.","distinct":true,"url":"https://api.github.com/repos/PengJi/postgresql/commits/5a632a213d43c30940de3328286172c52730a01d"},{"sha":"2e83db3ad2da9b073af9ae12916f0b71cf698e1e","author":{"name":"Andres Freund","email":"c6cbfe878b4ee67646e7630734db67f536518d54@anarazel.de"},"message":"Allow pg_ctl kill to send SIGKILL.\n\nPreviously that was disallowed out of an abundance of\ncaution. Providing KILL support however is helpful to make the\n013_crash_restart.pl test portable, and there's no actual issue with\nallowing it.  SIGABRT, which has similar consequences except it also\ndumps core, was already allowed.\n\nAuthor: Andres Freund\nDiscussion: https://postgr.es/m/45d42d41-6145-9be1-7261-84acf6d9e344@2ndQuadrant.com","distinct":true,"url":"https://api.github.com/repos/PengJi/postgresql/commits/2e83db3ad2da9b073af9ae12916f0b71cf698e1e"},{"sha":"784905795f8aadc09efe2fdae195279d17250f00","author":{"name":"Andres Freund","email":"c6cbfe878b4ee67646e7630734db67f536518d54@anarazel.de"},"message":"Try to make crash restart test work on windows.\n\nAuthor: Andres Freund\nTested-By: Andrew Dunstan\nDiscussion: https://postgr.es/m/20170930224424.ud5ilchmclbl5y5n@alap3.anarazel.de","distinct":true,"url":"https://api.github.com/repos/PengJi/postgresql/commits/784905795f8aadc09efe2fdae195279d17250f00"},{"sha":"1f2830f9df9f0196ba541c1e253463afe657cb67","author":{"name":"Andres Freund","email":"c6cbfe878b4ee67646e7630734db67f536518d54@anarazel.de"},"message":"Remove redundant stdint.h include.\n\nDiscussion: https://postgr.es/m/31674.1506788226@sss.pgh.pa.us","distinct":true,"url":"https://api.github.com/repos/PengJi/postgresql/commits/1f2830f9df9f0196ba541c1e253463afe657cb67"},{"sha":"0ba99c84e8c7138143059b281063d4cca5a2bfea","author":{"name":"Andres Freund","email":"c6cbfe878b4ee67646e7630734db67f536518d54@anarazel.de"},"message":"Replace most usages of ntoh[ls] and hton[sl] with pg_bswap.h.\n\nAll postgres internal usages are replaced, it's just libpq example\nusages that haven't been converted. External users of libpq can't\ngenerally rely on including postgres internal headers.\n\nNote that this includes replacing open-coded byte swapping of 64bit\nintegers (using two 32 bit swaps) with a single 64bit swap.\n\nWhere it looked applicable, I have removed netinet/in.h and\narpa/inet.h usage, which previously provided the relevant\nfunctionality. It's perfectly possible that I missed other reasons for\nincluding those, the buildfarm will tell.\n\nAuthor: Andres Freund\nDiscussion: https://postgr.es/m/20170927172019.gheidqy6xvlxb325@alap3.anarazel.de","distinct":true,"url":"https://api.github.com/repos/PengJi/postgresql/commits/0ba99c84e8c7138143059b281063d4cca5a2bfea"},{"sha":"859759b62f2d2f2f2805e2aa9ebdb167a1b9655c","author":{"name":"Andres Freund","email":"c6cbfe878b4ee67646e7630734db67f536518d54@anarazel.de"},"message":"Correct include file name in inet_aton fallback.\n\nPer buildfarm animal frogmouth.\n\nAuthor: Andres Freund","distinct":true,"url":"https://api.github.com/repos/PengJi/postgresql/commits/859759b62f2d2f2f2805e2aa9ebdb167a1b9655c"},{"sha":"0c8b3ee94478ca07c86c09d2399a2ce73c2b922b","author":{"name":"Andres Freund","email":"c6cbfe878b4ee67646e7630734db67f536518d54@anarazel.de"},"message":"Yet another pg_bswap typo in a windows only file.\n\nPer buildfarm animal frogmouth.\n\nBrown-Paper-Bagged-By: Andres Freund","distinct":true,"url":"https://api.github.com/repos/PengJi/postgresql/commits/0c8b3ee94478ca07c86c09d2399a2ce73c2b922b"},{"sha":"41d11353a7fabcf1c5eccbc53ed062c38bf1c6ba","author":{"name":"pengji","email":"199f4ef93ede848a58ac705b171670c24afc4746@gmail.com"},"message":"Merge branch 'master' of github.com:postgres/postgres into annotation","distinct":true,"url":"https://api.github.com/repos/PengJi/postgresql/commits/41d11353a7fabcf1c5eccbc53ed062c38bf1c6ba"}]}
{"actor":{"display_login":"PengJi"}}