What's Changed
Features
- Pause resume by @rkhapov in #799
- sources/backend.c: shuffle endpoints by @rkhapov in #816
- Accept pgoptions hint for TSA. Use it in attach logic. by @reshke in #832
- Config option to disable PostgreSQL parameters maintenance by @reshke in #801
- Full virtual processing for SET by @reshke in #839
- sources/multi_pool by @rkhapov in #876
- sources/attach.c: use all endpoints in attach_extended by @rkhapov in #887
- Add new authentication type "external" for odyssey by @AndrewOvvv in #913
- add graceful_shutdown_timeout_ms option by @rkhapov in #942
- soft oom feature by @rkhapov in #958 (still in progress btw)
- Min pool size by @rkhapov in #921
- OMDB-130: Update exporter metrics names by @rivkind-nv in #986
- empty show host_utilization command by @rkhapov in #998
- Support startup option
roleby @reshke in #961 - log connected address of odyssey to new backend connection by @rkhapov in #1008
- more pg-way of auth failed message style: part 1 by @rkhapov in #1015
- ldap more pg-way auth error messages by @rkhapov in #1017
- more simple way to report ldap error by @rkhapov in #1018
- add host to application name at runtime by @rkhapov in #1027
- sources/console.c: support 'show rules' command by @rkhapov in #1075
- connection type in rules by @rkhapov in #1079
- Disable connection drop opt by @rkhapov in #805
Infrastructure
- Fix for non-release mode build by @reshke in #825
- Update Makefile: add usefull dev_run target by @reshke in #820
- Simplify od_relay_step logics. Conservative variant by @reshke in #823
- fix: remove ODY_DIR build arg from Makefile local_build target by @aidekqz in #798
- .github/workflows/build.yml: github action to check build by @rkhapov in #831
- Python tests for functional tests by @rkhapov in #845
- make postgresql & libpq an optional dependency by @reshke in #848
- use c23 as standard by @rkhapov in #860
- replace compiler intrinsics in machinarium by usage of stdatomic.h functions by @sergei-heifetz in #867
- add compile commands export to CMakeLists.txt by @sergei-heifetz in #882
- add compare-and-wait functionality to machinarium wait list by @sergei-heifetz in #881
- Simplify od_relay_step logics. Modern variant by @reshke in #824
- fix compiler warns by @rkhapov in #886
- rewrite wait list (notify_all, sleepy release) by @sergei-heifetz in #888
- rewrite wait_group (use compare_wait, change done behaviour) by @sergei-heifetz in #890
- sources/global.h: add global setter and getter by @rkhapov in #918
- docker/functional/shell-test/parse_pg_options_test.sh: tests to search_path by @Varman56 in #843
- test/odyssey: Add tests to odyssey hashmap by @Varman56 in #849
- add wait_flag by @sergei-heifetz in #906
- Build with prometheus-client-c library by @Varman56 in #944
- wait_group: change guarantees, add lifetime test, update docs by @sergei-heifetz in #983
- add clang functional test run by @rkhapov in #1007
- docker/build_public: image for dockerhub by @Varman56 in #980
- docker/quickstart/entrypoint.sh: Added dynamic build of config by @Varman56 in #1020
- add test for prom exporter by @rkhapov in #1029
- Add new metrics for pool capacity by @Ivelok in #1019
- Refactor odyssey exporter by @Ivelok in #1061
- relay.h: remove non-full packets handling by @rkhapov in #1050
- replace cpp style comment with c style comments by @rkhapov in #1044
- add clang at unit tests by @rkhapov in #1041
Bug fixes
- Fix worker stuck on shutdown by @rkhapov in #803
- sources/frontend.c: fix od_eject_conn_with_rate by @rkhapov in #804
- Fix client connection closing on unparsed bind by @reshke in #826
- simple mutex by @rkhapov in #815
- third_party/kiwi/kiwi/var.h: changed dst to pos by @Varman56 in #840
- sources/auth.c: actually do not offer scram-sha256-plus by @rkhapov in #842
- MINOR: fix leak on error path found by Coverity by @chipitsine in #863
- Fix for external auth plugins with no password users by @AndrewOvvv in #866
- Pass address for cancel requests by @reshke in #902
- Cancel tests + fix by @rkhapov in #903
- fix build for aarch64 by @rkhapov in #908
- sources/router.c: fix server_lifetime handling by @rkhapov in #919
- auth_query.c: fix leak of password msg by @rkhapov in #923
- sources/rules.c: fix default_address_range leak by @rkhapov in #925
- sources/external_auth.c: fix io leak for conn err case by @rkhapov in #926
- sources/multi_pool.c: fix leak by @rkhapov in #929
- sources/rules.c: fix msg leak by @rkhapov in #930
- machine.c: free SSL_CTX in machine end by @rkhapov in #931
- replace gmtime with gmtime_r to fix data race by @sergei-heifetz in #932
- fix server->closed data race by @sergei-heifetz in #934
- ldap leaks fixes by @rkhapov in #936
- fix cron stop (fix data race, replace mutex with wait flag) by @sergei-heifetz in #945
- Fix attach time in relay by @rkhapov in #988
- some fixes for asan in hba by @rkhapov in #1002
- fix stack use after return by @rkhapov in #1004
- fix asan for group checker by @rkhapov in #1003
- Fix group checker race by @rkhapov in #1005
- fix leak in scram sha 256 by @rkhapov in #1011
- Fix memory leak due to unfree message's data and fix out-of-bound read in authentications methods by @AndrewOvvv in #1064
Documentation updates
- initial commit for docs with mcdocs by @rkhapov in #949
- add even more docs by @rkhapov in #953
- catchup-timeout.md catchup_timeout typo by @barazbay in #990
- Update rules.md catchup_checks "see link" by @barazbay in #991
- Update global.md Configuration Parameters Reference by @barazbay in #992
- Update mkdocs.yml by @rkhapov in #993
- add plugin for s3 build of docs by @rkhapov in #996
- terraform s3 backet creation script by @rkhapov in #997
- Configuration Parameters Reference and English grammar by @barazbay in #994
- chore: Fix typos by @gfischer7 in #1062
AI features
New Contributors
- @Varman56 made their first contribution in #794
- @sergei-heifetz made their first contribution in #867
- @Fenoman made their first contribution in #810
- @rivkind-nv made their first contribution in #986
- @barazbay made their first contribution in #990
- @gfischer7 made their first contribution in #1062
Full Changelog: 1.4.0...v1.4.1