{"push_id":1405256233,"size":4,"distinct_size":4,"ref":"refs/heads/dev/logical-decoding-timeline-following-pg10","head":"f09dd3160a913c2a900f6ffef61fa6e94821ed42","before":"66b56f9dc13aacaeb05f3021f7669138d690a08b","commits":[{"sha":"4ea6e7bff66ac2026bbca130bd036618b4012c35","author":{"name":"Craig Ringer","email":"16a7a05fad8a991a88499eabd88a68550b596989@2ndquadrant.com"},"message":"Document that perl 5.8.8 is required","distinct":true,"url":"https://api.github.com/repos/2ndQuadrant/postgres/commits/4ea6e7bff66ac2026bbca130bd036618b4012c35"},{"sha":"b1266ad1adba8619bf43d4297d1ed6392e302198","author":{"name":"Craig Ringer","email":"16a7a05fad8a991a88499eabd88a68550b596989@2ndquadrant.com"},"message":"Add an optional --endpos LSN argument to pg_recvlogical\n\npg_recvlogical usually just runs until cancelled or until the upstream\nserver disconnects. For some purposes, especially testing, it's useful\nto have the ability to stop receive at a specified LSN without having\nto parse the output and deal with buffering issues, etc.\n\nAdd a --endpos parameter that takes the LSN at which no further\nmessages should be written and receive should stop.\n\nCraig Ringer, Álvaro Herrera","distinct":true,"url":"https://api.github.com/repos/2ndQuadrant/postgres/commits/b1266ad1adba8619bf43d4297d1ed6392e302198"},{"sha":"8a4b4788940e2b72383e2e0195e7df7f1cf4061c","author":{"name":"Craig Ringer","email":"16a7a05fad8a991a88499eabd88a68550b596989@2ndquadrant.com"},"message":"Add a pg_recvlogical wrapper to PostgresNode","distinct":true,"url":"https://api.github.com/repos/2ndQuadrant/postgres/commits/8a4b4788940e2b72383e2e0195e7df7f1cf4061c"},{"sha":"f09dd3160a913c2a900f6ffef61fa6e94821ed42","author":{"name":"Craig Ringer","email":"16a7a05fad8a991a88499eabd88a68550b596989@2ndquadrant.com"},"message":"Follow timeline switches in logical decoding\n\nWhen decoding from a logical slot, it's necessary for xlog reading to\nbe able to read xlog from historical (i.e. not current) timelines.\nOtherwise decoding fails after failover to a physical replica because\nthe oldest still-needed archives are in the historical timeline.\n\nSupporting logical decoding timeline following is a pre-requisite for\nlogical decoding on physical standby servers. It also makes it\npossible to promote a replica with logical slots to a master and\nreplay from those slots, allowing logical decoding applications to\nfollow physical failover.\n\nLogical slots cannot actually be created on a replica without use of\nthe low-level C slot management APIs so this is mostly foundation work\nfor subsequent changes to enable logical decoding on standbys.\n\nTests are included to exercise the functionality using a cold disk-level copy\nof the master that's started up as a replica with slots intact, but the\nintended use of the functionality is with logical decoding on a standby.\n\nNote that an earlier version of logical decoding timeline following\nwas committed to 9.5 as 24c5f1a103ce, 3a3b309041b0, 82c83b337202, and\nf07d18b6e94d. It was then reverted by c1543a81a7a8 just after 9.5\nfeature freeze when issues were discovered too late to safely fix them\nin the 9.5 release cycle.\n\nThe prior approach failed to consider that a record could be split\nacross pages that are on different segments, where the new segment\ncontains the start of a new timeline. In that case the old segment\nmight be missing or renamed with a .partial suffix.\n\nThis patch reworks the logic to be page-based and in the process\nsimplify how the last timeline for a segment is looked up.","distinct":true,"url":"https://api.github.com/repos/2ndQuadrant/postgres/commits/f09dd3160a913c2a900f6ffef61fa6e94821ed42"}]}
{"actor":{"display_login":"ringerc"}}