mirror of https://github.com/sysown/proxysql
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
13 KiB
13 KiB
ProxySQL 3.0.4 Detailed Changelog
This changelog includes all individual commits since ProxySQL 3.0.3.
e73ba2b6Fix changing server defaults for 'reg_test_unexp_ping_pkt'- Fixed was changing server defaults ('max_allowed_packet') in the same
7efc85ceFix TAP 'groups.json' file syntaxb9cf5b16Remove empty spaces at end of lines for TAP tests 'groups.json'91e20648Fixed an issue where cur_cmd_cmnt was shared across threads54e2b3e6Add new test 'reg_test_unexp_ping_pkt-t' to TAP groups6fea828eImprove logging in unexpected COM_PING packet handling Logging messages now include 'client address', 'session status' and503b0975Add new TAP test exercising unexpected COM_PING packets logic Also fixes 'random_string' utility function for large strings, avoidingd0e88599Add special handling for unexpected COM_PING packets Implements a workaround for the handling of unexpected 'COM_PING'cf8cbfd8Document coredump_filters feature (issue #5213) Add comprehensive documentation for the on‑demand core dump generationefe0d4feAdd extensive doxygen documentation for vacuum_stats and stats_pgsql_stat_activity This commit documents:de214cb5Add comprehensive documentation for "Closing killed client connection" warningsfebb650aAdded Multiple Keep Comments test6966b79dAdd documentation for query rules capture groups and backreferences5e75264bUpdated TAP test5b3805adRefactored comment handling- Removed is_cmd (/*!) handling
e70fcbf0* Add dedicated handling for double-quoted PostgreSQL identifiers * Added crash payload testing * Fixed unterminated comments handlingfd53642fAdded pgsql-query_digests_stages_test-t to groups.jsonf9b9ede6Fixed TAP test39728b2dAdd missing pgsql_tokenizer.cpp1b16a393Added TAP test42864e88Improved Tokenizer for PostgreSQL- Added
process_pg_typecast()to handle PostgreSQL type cast syntax (::)
- Added
66119b74Add comments to select @@version queries to bypass ProxySQL interception ProxySQL now responds directly toselect @@versionqueries, which prevents2987242dFix cache_empty_result=0 not caching non-empty resultsets (issue #5248) Thecache_empty_resultfield in query rules has three possible values:d1b003a0Added TAP test to groups.json0b2bc1bfFix SQL injection vulnerability in Read_Global_Variables_from_configfile Replace sprintf-based SQL query construction with prepared statements using0e7b5e2bAdded TAP testfae283cfAdd SSL and non-SSL connection OK metrics for PostgreSQL monitor connections Adds two new metrics, ssl_connections_OK and non_ssl_connections_OK, to improve visibility into PostgreSQL monitor connection status.a2068286Add test_load_from_config_prefix_stripping-t to test groups Adds the new prefix stripping validation test to the default-g4 test group6c97d3d2Add extensive Doxygen documentation for ProxySQL_Config and Read_Global_Variables_from_configfile This commit adds detailed Doxygen documentation for:7ebdf561Fix automatic prefix stripping to work with libconfig lookup The previous implementation stripped the prefix before callingb4683569Add automatic prefix stripping for mysql_variables, pgsql_variables, and admin_variables config parsing When users mistakenly include the module prefix (e.g., mysql-log_unhealthy_connections)ec1247f2Add Doxygen docs for MySQL_Data_Stream::check_data_flow()4044a407Skip bidirectional data check for permanent fast-forward sessions Allow permanent fast-forward sessions (SESSION_FORWARD_TYPE_PERMANENT)689bece9Add CONTRIBUTING.md guide for community contributors- Comprehensive contribution guidelines for ProxySQL
f5079037Added nested comments support for PostgreSQL895c814cAdded utility functions to support pgsql query digest testing285fb1b4Add PostgreSQL dialect support: dollar-quoted strings, identifier quoting, and dialect-specific comment rules This change introduces PostgreSQL-aware tokenization by adding support for dollar-quoted strings, PostgreSQL’s double-quoted identifiers, and its comment rules. The tokenizer now correctly parses…andtag…tag, treats " as an identifier delimiter in PostgreSQL, disables MySQL-only # comments, and accepts -- as a comment starter without requiring a trailing space. All new behavior is fully isolated behind the dialect flag to avoid impacting MySQL parsing.2b900b34Update test groups configuration5a7b2218Fix metrics collection for wait_timeout counters The get_status_variable() function was only scanning worker threadsfbf5f2d7Improve wait_timeout warning messages with detailed connection information Enhance logging clarity:dc4694d6Refactor idle session scanning and improve test precision Code improvements:0c5e75a0Fix wait_timeout timeout calculations and add proper newline characters Key improvements:0c9c938dFix mysql-set_wait_timeout-t.cpp compilation and JSON testing- Replace <json/json.h> include with <json.hpp> and proper nlohmann namespace
6539587ctest: Add comprehensive wait_timeout JSON validation tests- Add JSON parsing helper for PROXYSQL INTERNAL SESSION responses
df515f91session: Add wait_timeout to proxysql internal session JSON- Include wait_timeout value in session JSON output for monitoring/debugging
0a9dc9ddsession: Add input validation for client wait_timeout with silent clamping- Add range validation for client SET wait_timeout commands
86cc7cd3session: Fix wait_timeout member variable declaration and usage- Add wait_timeout member variable declaration to Base_Session class
9df7407fAdd fast forward replication deprecate EOF test and update test infrastructure- Add comprehensive test
fast_forward_switch_replication_deprecate_eof.cppthat validates
- Add comprehensive test
5485bb02Improve fast forward replication CLIENT_DEPRECATE_EOF validation Enhance the match_ff_req_options function to better handle CLIENT_DEPRECATE_EOF7205f424Add SSL support for backend connections in PGSQL monitor9c0e14a5Replace rand() with lock-free Xoshiro128++ PRNG1251e4d5Add Xoshiro128++ pseudo-random number generator to replace rand()291e5f02Add AI disclaimer to ENHANCEMENT-OPPORTUNITIES.md54091905Restructure AI-generated documentation with verification framework- Move AI-generated docs to doc/ai-generated/ folder for clear separation
652acb5dcont39f94b0fsimplify for pr644174a3Add reg_test_4855_affected_rows_ddl to TAP test groups Include the regression test for issue 4855 in the g1 test group configurationf5128d76Fix TAP test for issue 4855 affected rows DDL bug Improve the TAP test to be SQLite-compatible and comprehensive:a54a0ad8Fix TAP test to use correct TAP framework functions- Replace made-up fail()/pass() functions with ok() and diag()
9df1e475Clean up: Remove incorrect standalone test file19c635b7Fix TAP test to use proper ProxySQL connection patterns- Use CommandLine cl object with getEnv() for configuration
b6b60e1aAdd proper TAP test for issue 4855 fix- TAP test connects to ProxySQL Admin interface on port 6032
bf4b1d92Update TAP test for issue 4855 with standalone version- Updated main TAP test to remove proxy_sqlite3 wrapper dependency
a577491fRefactor issue 4855 fix: Use sqlite3_total_changes64 difference approach PROBLEM:05960b5dFix issue 4855: Reset affected_rows to 0 for DDL queries in Admin interface Problem:d0ef6918Add mysql-select_version_without_backend-t to TAP group0c3582f1Add TCP keepalive warnings test to TAP test groups Added reg_test_5212_tcp_keepalive_warnings-t to the default test group1a48aadfCode cleanupbce71a95add opensuse16 packaging9a55e974docs: Add comprehensive Doxygen documentation for GTID refactoring- Document addGtidInterval() function with parameter details and reconnection behavior
6a700cd5Add comprehensive Doxygen documentation to get_matching_lines_from_filename()- Document purpose, parameters, return values, and behavior
19176909Rename TAP test file to remove mysql- prefix- Rename mysql-reg_test_5212_tcp_keepalive_warnings-t.cpp to reg_test_5212_tcp_keepalive_warnings-t.cpp
b1a1930eAdd working TAP test for TCP keepalive warnings (issue #5212)- Implement get_matching_lines_from_filename() with efficient queue-based processing
e54e3c8dAdd TAP test for TCP keepalive warnings with line-limited get_matching_lines()- Add TAP test mysql-reg_test_5212_tcp_keepalive_warnings-t.cpp to verify TCP keepalive warnings
6ed82ef8Fix crash in TCP keepalive warnings for issue #5212- Fix crash by using get_variable_int() instead of get_variable_string() for boolean use_tcp_keepalive variable
cf454b8eAdd TCP keepalive warnings for issue #5212- Add warnings in flush_mysql_variables___database_to_runtime() when mysql-use_tcp_keepalive=false
27923c19Use emplace instead of insert50c60284gtid: Refactor reconnect logic & preventevents_countreset- This patch was originally added by commit
0a70fd5and
- This patch was originally added by commit
187edfe1Change assert to warningc0f99c0eRefactor: Improved Prepared-Statement Cache Design (Lock-Free Hot Path) #5211 Concurrency and Memory Management49899601chore: Ignore GEMINI.md This file is generated by the Gemini CLI and is not part of the project.546c1012docs: Add TAP test writing guide for ProxySQL.83300374Use right user in fast_forward_grace_close140745a9Change default schema in fast_forward_grace_close494dbf37Minor enhancement in TAP fast_forward_grace_close AddedCREATE DATABASE IF NOT EXISTS test41b0e96ccreate missing database test in tap test952bd39fcleanup redundant group folders458ff778regroup tests to balace group test timeee824c0bRemoving debugging code3329a671Add extensive documentation for fast forward grace close feature846c4de5Replace spaces with tabs in fast_forward_grace_close.cppdd60d266Add fast_forward_grace_close test to groups.jsonae939666Add TAP test for fast forward grace close feature- Rename and modify test to use MySQL C API mysql_binlog_* functions
44aa606cImplement fast forward grace close feature to prevent data loss Problem: In fast forward mode, ProxySQL forwards packets directly from clientd8444472Replaced use of the generic write_generic() helper with direct packet construction for selected PostgreSQL protocol messages to reduce overhead and improve performance.ba664785bump version to 3.0.4 at the beginning of the development cyclee744c2bbOptimize transaction command parsing to avoid unnecessary tokenization Previously, the parser always tokenized the full command, even when we only7c665b9fChecking the data stream on both ends doesn’t apply to frontend connections, since response data is buffered during extended queries. Fixed TAP test24e02e95Changing monitor ping poll() timeout to 10ms6a80c3f2Implemented explicit task memory ownership management in Monitor_Poll.50fae0b0Current check on file descriptors (fd) is not reliable or necessary1c3c4295Improve ping accuracy- Introduced batching for ping task dispatch (default: 30 servers per batch)
fa74de3cAdd delay to let ProxySQL process mysql_stmt_close()7a3a5c71Optimize hot path: replace std::string with char[] to avoid heap61ba1824Introduce inline functions for efficient ASCII whitespace detection and uint32-to-string conversion9eb934e7Buffer response until Extended Query frame completes; send early only if resultset threshold is reached.9fa3d75fBackport PQsendPipelineSync from PostgreSQL 17 and update code to use it- Backport PQsendPipelineSync to PostgreSQL 16.3, enabling pipeline
45cb1673.aider file3c08cc5fSyntax Convention library tweak, it now provides loarders and merely needs to have it's script dir in path. The sub agents when loaded may then go and popualte and additional prompt conventions they need as they areloaded.36ebee53purged946b6e3updates from internal docs89849d0dpatch5f15d971patch4dad6424doc update9e337ce7TEST-PIPELINE.md doce2e8d8c4doc cleanup - remove agenetic verbage and mermaid patchab2a3292Visual Guide v0.1 checkinfbbefb91initial arch entry point for agentsa753e64cinitial agent definitionsdd0e8529Git ignore updated24b81e6Initial checkin - Claude and npl convention readmes4a10ce65Add TAP test for select @@version without backend Signed-off-by: Wazir Ahmed wazir@proxysql.com97eb19c0fix: Close idle session based on effective timeout- effective_timeout = min (mysql-wait_timeout, session-wait_timeout)
fd9ce84bAdd TAP test for session wait timeout Signed-off-by: Wazir Ahmed wazir@proxysql.com1545fd24Removed range check.d7ec497aNow taking effective timeout taking as minimum of global timeout and session timeout2b5bd110Using mysql_thread___server_version directlyb589e58dUsing global mysql versionabe16e66Parsing and setting wait timeout for sessiondf287b20Added handling of SELECT @@version and SELECT VERSION() without backend