Skip to content

3.1.0

Latest

Choose a tag to compare

@Denchick Denchick released this 28 Aug 08:08
· 5 commits to master since this release
Immutable release. Only release title and notes can be modified.
d555565

We are excited to announce SPQR 3.1.0!

This release focuses on production operations and reliability: improved redistribution tooling and recovery, connection pinning and PostgreSQL advisory lock support, stronger two-phase commit recovery, new key range management commands, extended protocol improvements, and better observability.

This release covers all changes from 3.0.0 to 3.1.0.

What's Changed

Data Redistribution & Recovery

Key Range & Shard Management

Advisory Locks & Connection Pinning

Two-Phase Commit (2PC)

  • Add __spqr__allow_autoprotect_2pc GUC by @reshke #2641
  • Improve transaction deployment error reporting by @reshke #2671
  • Add deployment context to transaction utilities by @reshke #2694
  • Improve 2PC recovery logic by @reshke #2865 #2866
  • Remove two-phase metadata for successfully reverted transactions by @reshke #2909
  • Remove transaction metadata for successfully committed 2PC transactions with eager cleanup by @reshke #2921
  • Add eager 2PC cleanup GUC and tests by @reshke #2920
  • Add transaction listing methods and extended two-phase transaction SHOW target by @reshke #2922
  • Optionally persist only 2PC transaction data in MemQDB by @EinKrebs #2924
  • Allow the 2PC watchdog to work without a backend rule by @EinKrebs #2925
  • Use compare-and-swap for transaction status changes by @EinKrebs #2926

Query Routing & Execution

  • Support in-router aggregate functions by @reshke #2754
  • Add default read-only transaction support by @reshke #2842
  • Add SPQR EXECUTE HOST FILTER by @reshke #2905
  • Fix query cancellation in multishard queries by @reshke #2703
  • Match catalog queries case-insensitively by @reshke #2732
  • Try already acquired routes for route-oblivious plans by @reshke #2930
  • Fix command tag handling for reference relation modifications by @reshke #2762

Extended Protocol & Portals

  • Invalidate portal description cache on parse by @reshke #2645
  • Fix multiple portal execution iterations with non-zero MaxRows by @reshke #2680
  • Fix portal suspension hazards for single-shard queries by @reshke #2682
  • Fix slice description for multi-slice virtual plans by @reshke #2779
  • Support extended protocol during query analysis by @reshke #2833
  • Support ParseComplete in xproto message copy by @reshke #2885
  • Fix dummy prepared statement parameter substitution by @reshke #2919
  • Hash parameter OIDs in prepared statement names by @reshke #2933
  • Fix INT2 bind parameter parsing and named portal binds by @reshke #2940

Console & SQL

  • Implement generic string GUCs by @reshke #2663
  • Add log_query router configuration option by @reshke #2702
  • Fix spqr-console handling of empty queries by @reshke #2791
  • Reject invalid UNITE KEY RANGE ALL / SPLIT KEY RANGE ALL commands by @reshke #2808
  • Improve console grammar and reject additional invalid SQL by @reshke #2798 #2814
  • Make SPQR_DEFAULT_ROUTE_BEHAVIOUR a generic string GUC by @reshke #2818
  • Make preferred execution engine a generic GUC by @reshke #2820
  • Add assign hooks for generic GUCs by @reshke #2826
  • Make SPQR_REPLY_NOTICE a generic GUC by @reshke #2836
  • Make __spqr__sharding_key a generic GUC by @reshke #2844
  • Make maintenance parameters generic GUCs by @reshke #2918
  • Make SHOW notice message format configurable through GUC by @reshke #2908

Monitoring & Observability

Configuration, Security & Networking

  • Add gRPC TLS configuration types and credential adapter by @Denchick #2748
  • Configure TSA recheck frequency through dbpool_tsa_recheck_period by @reshke #2849
  • Properly implement TSA checker timeouts by @reshke #2853
  • Do not hold pool lock while checking connections for TSA match by @reshke #2665
  • Redact secrets in configuration output by @Denchick #2845
  • Remove invalid pool settings from backend rules by @Denchick #2900
  • Add validation for empty shard on client connection by @Denchick #2726

Stability & Correctness

Documentation & CI

Full Changelog: 3.0.0...3.1.0