github sysown/proxysql v3.0.3

latest release: 3.0.4
9 hours ago

ProxySQL 3.0.3 Release Notes

This release of ProxySQL 3.0.3 includes a significant number of new features, particularly around PostgreSQL Extended Query Protocol support, along with numerous bug fixes and dependency updates to improve stability and performance.

Compared to version 3.0.2, ProxySQL 3.0.3 introduces the following changes:

New Features:

PostgreSQL Extended Query Protocol Support:

  • Add PostgreSQL extended query (prepared statement) support (24fecc1, #5044)
    • Lays groundwork for handling PostgreSQL extended query protocol, including parsing, caching, and execution framework stubs.
  • Added Describe message handling (a741598, #5044)
  • Added Close statement handling (4d0618c, #5044)
  • Added Bind and Execute support (8bb248c, #5044)
  • Added support for protocol-supplied (out-of-band) parameter typing (4ebff4c, #5044)
    • Parameter types will be part of hash calculation. Includes refactoring and optimizations.
  • Added support for protocol level parameter type (87ce0d0, #5044)
  • Added pgsql-max_stmts_per_connection variable (3619fa5, #5044)
  • Added SET statement tracking support (02eb58d, #5044)
  • Added DEALLOCATE <stmt_name> and DEALLOCATE ALL support (070d4ca, #5044)
  • Added prepared statement map and connection status fields to PROXYSQL INTERNAL SESSION output (f715c54, #5044)
  • Added stats_pgsql_prepared_statements_info table (703a5f3, #5044)
  • Add support for unnamed Describe Portal and improve extended query handling (48ba491, #5044)
    • Always send Describe Portal to the backend.
    • Enforce check for unnamed portals in Bind, Describe, Close, and Execute; raise errors for named portals.
    • Improve error handling for extended query flow.
    • Introduce Extended_Query_Info struct to unify extended query related members.
  • Queue client packets during active query execution (3dd401f, #5078)
    • New packets are placed in a FIFO queue and processed after the current query finishes, improving compatibility with connectors like pgJDBC.

Build System & Dependencies:

Other Features:

  • Add Watchdog PROXYSQLTEST covering MySQL and PgSQL threads (344ba25, #5044)
  • Refactored Watchdog and integrated PostgreSQL thread monitoring into it's loop (e4c0f5c, #5044)
  • Added query logging support for PostgreSQL (a89291c, #5124)
  • Handle SHOW STATUS LIKE 'Ssl_version' in ProxySQL without any backend (aa80a1f, #5085)
  • Replace CLOCK_MONOTONIC with CLOCK_MONOTONIC_RAW (daf1570, #5099)
  • Added integer_datetimes in ProxySQL startup parameters status, hardcoded to on. (43e5b55, #5103)
  • Added scram_iterations in ProxySQL startup parameters status, hardcoded to 4096 SCRAM_SHA_256_DEFAULT_ITERATIONS (43e5b55, #5103)
  • Added client_close_all (099597d, #5044)
  • Implement a ignore_min_gtid_annotation global variable for ProxySQL (6cb5222, #5150)
  • New admin command to dynamically change configuration file path.
  • Added KILL PGSQL CONNECTION support (b3e96b0, #5137)
  • Add pgsql-kill_backend_connection_when_disconnect support (d09fe4d, #5137)
  • Implement backend query cancellation for PostgreSQL (4d91452, #5136, #5137)
    • Adds support for PostgreSQL query cancellation and backend termination features.
    • Intercepts pg_backend_pid(), pg_terminate_backend(), pg_cancel_backend().
    • Supports Cancel Request protocol via separate connection with PID and secret key validation.
    • Returns BackendKeyData message on successful authentication.
  • Add support for PostgreSQL transaction command aliases and ROLLBACK AND CHAIN (4527157, #5153)
  • Add tracking for PostgreSQL search_path parameter (b005c2d, #5149)
  • Added SHOW FULL PGSQL ACTIVITY and SHOW PGSQL ACTIVITY handling (fc4d7f7, #5156)
  • Add backend PID/state to stats_pgsql_processlist and create pg_stat_activity-style view (f3ea179, #5156)

Bug Fixes:

Memory & Stability:

  • Fix heap-after-use between PROXYSQL INTERNAL SESSION and SHOW PROCESSLIST (4b28bb6, #5191)
  • Fix potential use-after-free by SHOW PROCESSLIST in MySQL (639f9d0, #5180)
  • Fix potential use-after-free by SHOW PROCESSLIST in PgSQL (c0978f9, #5182)
  • processlist: Prevent crash due to SQLITE_TOOBIG (5219d4b, #5165)
  • Ensure PgSQL_Errors_statsvdestructor is invoked on delete (ff50bb4, #5112, #5078)
    • Fixes a bug where deleting PgSQL_Errors_stats instances with only a forward declaration caused the destructor to be skipped, leading to memory leaks.
  • Fix: REST API server crash due to malformed multipart POST request (0a0336e, #5072, #5074)
    • Disables POST preprocessing option in libhttpserver and validates Content-Type header for POST /sync.
  • Ensure PgSQL_Threads_Handler and PgSQL_HostGroups_Manager objects are released when ProxySQL shuts down or restarts (8d8577b, #5086, #5087, c7ce5a8, #5078)
    • Fixes client hangs after executing PROXYSQL RESTART and attempting reconnection.
  • Fixed a crash occurring during session destruction (9e4b76d, #5044)
  • Fixed PgSQL_Session::handler___status_NONE_or_default (8021121, #5044)
  • Fixed Debug logs (3a46324, #5137)
  • Fixed SSL STATUS in PgSQL_Data_Stream (58eac30, #5044)
  • Fixed RequestEnd (97b3bb1 #5044))
  • Fix RequestEnd: avoid updating internal state when query failed on backend (abd1911, #5078)
    • Adds success/failure flag to RequestEnd calls and restricts state changing logic to successful query executions.
  • Fixed clang compilation (a7df0d3, #5120)
  • Fixed compiler issues by updating postgresql (318f108, #5138)
  • Fixed new compiler issue in mariadb-client (f1526fc, #5138)
  • Fixed issues by updating libconfig (88c34b3, #5138)
  • Fix new compiler issue in btree.h (5e7ab93, #5138)
  • Fix compilation warning for strncpy due string truncation (2668de7, #5182, 67624b8, #5180)
  • Add boundary checks in MySQL_Protocol::get_binds_from_pkt (e35973b, #5188)
  • Change COM_STMT_EXECUTE params length decoding (64b1617, #5188)
  • Ensure default mysql-interfaces=0.0.0.0:6033 and pgsql-interfaces=0.0.0.0:6133 are set (48928ce #5190)

PostgreSQL Specific:

  • Fixed extended query message parser (944b0ef, #5142)
  • Fix parameter length misalignment in PQsendQueryPrepared (786fb37, #5142)
  • Send NoData in response to Describe Portal before Execute (empty query) (67842ff, #5143)
  • Fixed Describe Portal returning NoData (1b47a1d, #5078)
  • Align DateStyle parsing with PostgreSQL (d4b2de9, #5144)
  • Fix ParameterStatus capitalization for DateStyle, TimeZone, and IntervalStyle (03b63f6, #5146)
  • Fixed multiplex disabled due to CREATE SEQUENCE (c613865, #5078)
  • If the startup connection includes untracked session parameters (passed via options=), the connection must be destroyed instead of returned to the pool (a69a443, #5078)
  • Inject implicit Sync if simple query arrives before extended query cycle is completed (9a5fa14, #5078)
    • Injects an implicit Sync, processes extended query messages, then executes the simple query, and sends ReadyForQuery only after the simple query completes.
  • Fix omission of ReadyForQuery after error with pending extended-query messages (fff2a91, #5078)
    • Ensures ReadyForQuery is always emitted immediately when a result indicates an error, preventing clients from waiting indefinitely.
  • Ensure consistent handling of NoData packets in PQsendQueryPrepared (8a3bab5, #5078)
    • Explicitly appends a NoData packet to the result for commands like INSERT, DELETE, or UPDATE to provide consistent behavior.
  • Fixed DISCARD ALL tag (4d3dc7b, #5044)
  • Handled DISCARD ALL, DISCARD PLANS, send rest of the variants to backend Fixed connection reset for client connection (27f1fed, #5044)
  • Prevent overwrite of named statements (7c71fe1, #5044)
    • Named prepared statements cannot be overwritten and will raise an error if redefined.
  • Refined Bind Message parameter format, value handling, and result format iterator (b989fc2, #5044)
  • Fixed SonarQube warnings where applicable (0638375, #5044)
  • Corrected advancement of current pointer (ef2b0cb, #5044)
  • Fixed few compilation warnings (3cff4f9, #5044)
  • Removed server_capabilities from PgSQL modules (bc87d0d, #5044)
  • Removed autocommit_on_hostgroup from PgSQL modules (87ad15b, #5044)
  • Removed AutoCommit related code from PostgreSQL session (3cff4f9, #5044)
  • Removed last_insert_id from PgSQL modules (026f458, #5044)
  • Removed warning tracking code from PgSQL_Connection (2a9f672, #5044)
  • Preserve implicit transactions with pipeline + FLUSH (23a764e, #5118, #5119)
    • Switches to libpq pipeline mode and replaces intermediate SYNC messages with FLUSH, ensuring all client query frames execute as part of the same implicit transaction
  • Intercept LISTEN command and return "not supported" for both simple and extended query flows (0391a8d, #5109, #5078)

Admin & Configuration:

  • Fixed PROXYSQL STOP (38befb8, #5173)
  • Resolved issues with admin PROXYSQL PAUSE/RESUME commands (67d383d, #5173)
  • Add validation for LOAD <module> FROM CONFIG (0a336de, #5113)
    • Adds validation for mysql_users, pgsql_users, mysql_servers, pgsql_servers, and proxysql_servers.
    • Checks for duplicates and mandatory fields, returning descriptive error messages.

Other Fixes:

Hashes

SHA256s:

d2cd83d5bc0a75dcd9db7ab6ad64a01f0d4f6d30739ba7b369e86f6d62e02b15  proxysql-3.0.3-1-almalinux10-clang.x86_64.rpm
25ac617357ffd010a3e75ffdc2f7f6a2abc8d17495012437fd5e453ba281e7d3  proxysql-3.0.3-1-almalinux10.aarch64.rpm
28cba6d30b3b98cc59886f0b4a1907c4c5981e62ae55eec34148e082335fd768  proxysql-3.0.3-1-almalinux10.x86_64.rpm
2cb6ad20bff0e51ee1b0f228a3616209ad886f4099a576d9f7aa72101433ae45  proxysql-3.0.3-1-almalinux8-clang.x86_64.rpm
c244dde220a6abcd86d65994001cfc8826c69c519520b59d4a028da5a3b215bb  proxysql-3.0.3-1-almalinux8.aarch64.rpm
0c4a09e3149c7fede6cd97507cd0637bd0708db743babea2cff9bf275f2b051d  proxysql-3.0.3-1-almalinux8.x86_64.rpm
5b40b8ae6352f3c417034b1ad372c5dbdfe5605ab9c7b0435023c5da1885f8e8  proxysql-3.0.3-1-almalinux9-clang.x86_64.rpm
96716e8384c67eb95e06dabbbdcf58e63da9efed0fb99fc9a1fde2aeedc33d6c  proxysql-3.0.3-1-almalinux9.aarch64.rpm
b49e427986aa9d355038ae9ffa23c0bbe05bd2ae3877dbd14e5d150be5264a7d  proxysql-3.0.3-1-almalinux9.x86_64.rpm
3dae1eadac8f4fb7959f64e631d96c80485df44195d08d3e5608292337c7220a  proxysql-3.0.3-1-centos10-clang.x86_64.rpm
738a159ddb70c25d4b6837f382445d7576a1e64ee43947106dcb87e383c7e547  proxysql-3.0.3-1-centos10.aarch64.rpm
cab3bd814f56a78f24d8c1bb34334c38f461f2c464ddb11fd721e52c4c480101  proxysql-3.0.3-1-centos10.x86_64.rpm
ba8999db16d0f0b6201ef376368388e1205c32ac445472e6ed5154a507f0a150  proxysql-3.0.3-1-centos9-clang.x86_64.rpm
a950c19aef1a398df1edf48f2f4a038c7a8a62358ea5d222d5f2e9353423e415  proxysql-3.0.3-1-centos9.aarch64.rpm
6d02e80e9d29e4141e48b5ef733ed762d1957ec0b01dc57e0116bd945a1fe83d  proxysql-3.0.3-1-centos9.x86_64.rpm
f488d94217ccc779814900c845c30ea578fc08bd8da8c9922dbc4ef2f34119ab  proxysql-3.0.3-1-dbg-almalinux10.x86_64.rpm
48fde2994d973879a94f90440becc2bef880ef16752d4bb2e8271b786fc58e7c  proxysql-3.0.3-1-dbg-almalinux8.x86_64.rpm
6081e5fe8e5868e46f6eae642d468f5bb351dc107bd772d1270eb5e730fcedde  proxysql-3.0.3-1-dbg-almalinux9.x86_64.rpm
c6c8ed12504cb428fbd4625602139e24dbd845e8ff6ca67c2a3f1b9035dfae7b  proxysql-3.0.3-1-dbg-centos10.x86_64.rpm
ab8ee982ae8743c2aa886bff61444669c5c6443b5b9c88e3b43fa4fc1b2001c1  proxysql-3.0.3-1-dbg-centos9.x86_64.rpm
f09114f2929f6da9e954139571706f82971d5e3d8a60565d5eb3056c2d916e7f  proxysql-3.0.3-1-dbg-fedora40.x86_64.rpm
43c9c577c4a21a3e595dea95f64e19eb5d456f9a73a4db8dfa3e8baec22dda62  proxysql-3.0.3-1-dbg-fedora41.x86_64.rpm
6be11d85d66ddc810d8549fb23f6c5c718e5f7c66c6cca6b3da063d77d464cb9  proxysql-3.0.3-1-dbg-fedora42.x86_64.rpm
4dedb3d682c5bb8bd1d8b1d702ef8fbcf307f7bb047cc04070616db21f1a7811  proxysql-3.0.3-1-dbg-opensuse15.x86_64.rpm
64ccfc215320243a72ebc09481bfde61523377a0fab21498339d995dc6245ea2  proxysql-3.0.3-1-fedora40-clang.x86_64.rpm
3ef15ba7632e668d449dcc15e3e459ae894f74f22cc8149798db4e70aca08b80  proxysql-3.0.3-1-fedora40.aarch64.rpm
d4a622569a3da2658e8e0011f59eea9bac152ce3681efaf6f7c1ea0abe16fb9a  proxysql-3.0.3-1-fedora40.x86_64.rpm
ec9e6481a32bef9bcd68d990a142cea8e5c6b5da8a616d10dba57deaeeedb65b  proxysql-3.0.3-1-fedora41-clang.x86_64.rpm
ddb256570beff6ebc6d9a460c01046dc354341d52815bf8ac8ba7b15461287ea  proxysql-3.0.3-1-fedora41.aarch64.rpm
cf5b480cb15508cf2296f3c5e0edad891bb23fcdbabe9998b1a193ccb70f8f22  proxysql-3.0.3-1-fedora41.x86_64.rpm
f910103c646c140d2c3236116ede96d006741916460fd3c5c8d2a63794193c02  proxysql-3.0.3-1-fedora42-clang.x86_64.rpm
fd5b19a6c93ee5f708c975409532b531fb82f2ecd3ad539c9910d4aaf3230702  proxysql-3.0.3-1-fedora42.aarch64.rpm
d794e733522f06fc2b25c648c39caf157526d3a57a85c1a91c2c07b7f02f4397  proxysql-3.0.3-1-fedora42.x86_64.rpm
13a01cb5f1261f1dca28fa1adbe62d59f1c270d0ea3d556f1b850685db248630  proxysql-3.0.3-1-opensuse15-clang.x86_64.rpm
3fd839287f11dbb21d0db49c4e0dabb6e920054d1f18e738f0e2884d9f324e5d  proxysql-3.0.3-1-opensuse15.aarch64.rpm
e39dc57f8595529d6dbdd0c56e5267508341a7664a9c0ea5e0d9e79b13accd28  proxysql-3.0.3-1-opensuse15.x86_64.rpm
0ed15ee2ace5b51e1395ed21b405094c3e75d2853984889117f3f0698ce7a98d  proxysql-3.0.3.id-hash
38970d2f3866c223aa81e4ad82ee33878532c46ae39562e7fbbf558239b82250  proxysql_3.0.3-dbg-debian12_amd64.deb
75d79454f5eae9096d59398c099664aac2c311a8987dc04b12e03d993d3b9d4c  proxysql_3.0.3-dbg-debian13_amd64.deb
5b394f137eae33482b004a87aba2703b397479e6a2e344fe35c108c7c7e58a01  proxysql_3.0.3-dbg-ubuntu22_amd64.deb
4aabbf8af463c5c0e43f728cb98c27f419ba60686d7f5945515d6f3103f2b483  proxysql_3.0.3-dbg-ubuntu24_amd64.deb
273d594fcb9cdfd446958d356c35b08502b6a5004404f50bcd8db9eab3c1783d  proxysql_3.0.3-debian12-clang_amd64.deb
4ea3593afa074bd489b83048fab85e71ebe3a5b1b51eea53d3624012ac4ef31f  proxysql_3.0.3-debian12_amd64.deb
9beafd26c87e898915612e63d5a03027090a5653dbe195fbf27541e57ec63326  proxysql_3.0.3-debian12_arm64.deb
ddfc821fcaa71ce64e0889ac5e74e2e418a43f476e7f559ba2bec47670f39117  proxysql_3.0.3-debian13-clang_amd64.deb
de16a6062ac3bf9980b5b0e1d0ba3af592685ee30601d34839f809f1319aa508  proxysql_3.0.3-debian13_amd64.deb
6eb0d9418c6dff4b2086df1354782cbc47c70194c01e36c2f10c3f134ebf22b3  proxysql_3.0.3-debian13_arm64.deb
81c290a29ae8c82b10aa21efc11ee26ccceb1c8912cd681b470aae4010985145  proxysql_3.0.3-ubuntu22-clang_amd64.deb
ef4d33f2c4e5ce299f4605b93e0ea62390ae4b4f796cedba322c0393f73f4c1a  proxysql_3.0.3-ubuntu22_amd64.deb
75b209b0725dbb7dd0bd780e1cbded5805a211798389bf6fd670511df6388c7f  proxysql_3.0.3-ubuntu22_arm64.deb
f64816a8e4ab886c1653cf538623bfaa924c6e2a5c68a61b930338b6d25039b6  proxysql_3.0.3-ubuntu24-clang_amd64.deb
083cc904ba7e2f9c6d52eba52f67b0b70cc36997b969966749630d6179ac5cd9  proxysql_3.0.3-ubuntu24_amd64.deb
26729dab9bdf5180259e52e08dec2b35a9718e7386c8a57db9d3cbbcd92b05ab  proxysql_3.0.3-ubuntu24_arm64.deb

Don't miss a new proxysql release

NewReleases is sending notifications on new releases.