What's Changed
Engine V2, Planner & Execution
- Support target list routing for engine v2 by @reshke (#1685)
- Support simple virtual function scan by @reshke (#1738)
- Refactor & simplify reference relation insertion code in planner v2 by @reshke (#1745)
- Support simple INSERT INTO .. VALUES in planner V2 by @reshke (#1746)
- Support BATCH INSERT for engine V2 by @reshke (#1811)
- Split executor gang bind & executor run in stages by @reshke (#1747)
- Make query analyze earlier in planning by @reshke (#1769)
- Move all constant-based routing logic to Analyze phase by @reshke (#1770)
- Remove procExpr by @reshke (#1773)
- Introduce TupleTableSlot and use it across execution and SHOW processing by @reshke (#1705, #1706, #1707, #1710, #1711, #1718, #1721)
- Add shard-match to DefaultRouteBehaviour by @reshke (#1837)
- Named cursors support by @reshke (#1841)
Reference Relations & Distributed DML
- Refactor rewrite query support for reference relation modification by @reshke (#1752)
- Add test for reference relation sync by @EinKrebs (#1762)
- Support returning clause for UPDATE of reference relations by @reshke (#1766)
- Support distributed relation batch insert by @reshke (#1786)
- DROP SEQUENCE ... CASCADE by @diPhantxm (#1788)
- Correct reference table locks in spqrguard regress test by @EinKrebs (#1833)
- Prevent reference relation modification on sync by @EinKrebs (#1836)
- Rewrite spqrguard interaction to support 2.0 by @EinKrebs (#1855)
Transactions & 2PC
- Refactor Unlocks by @xelavopelk (#1665)
- Meta transactions: prepare etcd by @xelavopelk (#1753)
- Introduce Instance Control Protocol / Instance Control Points by @reshke (#1780)
- Create interfaces for 2pc recovery by @reshke (#1782)
- Implement 2pc recovery watchdog by @reshke (#1797)
- Use state keeper to record 2pc tx state by @reshke (#1803)
- TwoPhase recovery POC by @reshke (#1805)
- Refactoring CreateDistribution for 2-phase execution by @xelavopelk (#1835)
Networking
- Refactor proxying requests to control-plane from regular connections by @reshke (#1767)
- Cache router gRPC connections in coordinator by @Denchick (#1787)
- Add gRPC keep-alive settings to coordinator by @Denchick (#1792)
- JSON logging by default in coordinator by @cypny (#1807)
- Check TCP connection aliveness and add client pool watchdog by @reshke (#1814, #1834)
- Fix TCP aliveness check using TCP_INFO by @Denchick (#1852)
- Fix panic on un-attached client by @reshke (#1831)
Console, SHOW & Routing Semantics
- Add reference_relations to __spqr__show function by @reshke (#1696)
- Use lyx a_expr grammar for console WHERE handling by @reshke (#1719)
- Make GROUP BY logic independent of SHOW statement type by @reshke (#1720)
- Support more virtual processing in __spqr__show by @reshke (#1723)
- Support and fixes for SequencesStr by @Mot1x (#1756, #1825)
- Add is_alive field to SHOW clients and fix related commands by @reshke (#1818, #1820, #1821, #1822, #1824)
Balancer, Shards & Key Ranges
- Store multiple move tasks and task groups by @EinKrebs (#1697)
- Sync key range lock state by @EinKrebs (#1735)
Tests, Stability & Fixes
- Add tests for MemQDB key range operations by @Iesht (#1776)
- regress tests with coordinator instalation by @xelavopelk (#1717)
- Large batch of regression and feature test fixes by @reshke, @EinKrebs and @xelavopelk (#1728, #1729, #1739, #1744)
- Add missing DDL test by @reshke (#1740)
- Run console regress tests in coordinator by @EinKrebs (#1760)
- Fix unlocks, parsing errors, quoted client ids, add hosts to shard by @reshke (#1730, #1731, #1732)
- Do not allocate memory on bind in xproto (#1793)
- Fix oversights and edge cases by @reshke (#1798, #1799, #1800, #1801, #1802)
- Add tests for RestoreQDB by @kla1mn (#1826)
- Balancer: add unit tests, fix adjacency logic, make fit coefficient configurable by @KKittyCatik (#1830)
Docs
- Deployment and production usage guide by @Denchick (#1690)
- Documentation for composite sharding keys by @Denchick (#1692)
- Documentation for distributed transactions and commit strategies by @Denchick (#1694)
- Document routing priority hierarchy by @Denchick (#1709)
- Add SYNC REFERENCE TABLE command documentation by @Denchick (#1785)
- Update coordinator configuration docs by @Denchick (#1772)
- Better default shard docs by @Denchick (#1832)
- Add GitHub Copilot instructions by @Denchick (#1704)
Other
- Add net/http/pprof to coordinator by @Denchick (#1699)
- Add promote-nightly script by @Denchick (#1722)
- Update Dockerfile and fix image builds by @Denchick (#1765, #1840)
- Remove PG 13, add PG 18 by @EinKrebs (#1853)
- Bumps by @dependabot in #1712 #1734 #1736 #1742 #1743 #1761 #1768 #1775 #1819 #1828 #1829 #1838 #1839 #1844 #1845 #1858 #1859
New Contributors
- @cypny (#1750)
- @Mot1x (#1755)
- @kla1mn (#1826)
- @Firsikita (#1790)
- @Iesht (#1776)
- @KKittyCatik (#1830)
Full Changelog: 2.8.0...2.9.0