Kevin Zimmerman
dc649aaee3
simplified write!; generic new functions
2023-07-26 19:53:32 -05:00
Kevin Zimmerman
b4ba3b378c
fix formatting
2023-07-26 09:47:58 -05:00
Kevin Zimmerman
81536a0bad
make AuthPassthrough generic
2023-07-26 09:44:31 -05:00
Kevin Zimmerman
6eb01e51a0
remove async/spawn in Collector::collect
2023-07-25 19:56:15 -05:00
Kevin Zimmerman
ae3241b634
use Result::map_err and ? in Tls::new
2023-07-25 19:44:04 -05:00
Kevin Zimmerman
33724ea670
simplify TableAccess::run
2023-07-25 19:34:37 -05:00
Kevin Zimmerman
1c26aa3547
simplify format!
2023-07-25 19:24:52 -05:00
Kevin Zimmerman
64eb417125
remove unnecessary allocation
2023-07-25 19:24:04 -05:00
Kevin Zimmerman
22d9d3c90a
fix query_logger info! argument order
2023-07-25 15:59:01 -05:00
Kevin Zimmerman
3162d550fd
simplify format_duration, reduce String allocs
2023-07-25 15:54:48 -05:00
Kevin Zimmerman
12522562ce
fix clippy lints
2023-07-25 15:49:46 -05:00
Lev Kokotov
4cf54a6122
Release 1.1 ( #526 )
v1.1.0
2023-07-25 10:27:04 -07:00
Mostafa Abdelraouf
2a8f3653a6
Fix COPY FROM and add tests ( #522 )
...
* Fix COPY FROM and add tests
* E
* fmt
2023-07-20 23:06:01 -07:00
Sebastian Webber
19cb8a3022
add --no-color option to disable colors in the terminal ( #518 )
...
add --no-color option to disable colors
this commit adds a new option to disable colors in the terminal and also
moves the logger configuration to a different crate.
Signed-off-by: Sebastian Webber <sebastian@swebber.me >
2023-07-19 21:15:55 -07:00
Sebastian Webber
f85e5bd9e8
add support for multiple log formats ( #517 )
...
this commit adds the tracing-subscriber crate and use its formatters to
support multiple log formats.
More details in
https://github.com/postgresml/pgcat/issues/464#issuecomment-1641430299
Signed-off-by: Sebastian Webber <sebastian@swebber.me >
2023-07-18 23:07:13 -07:00
Sebastian Webber
7bdb4e5cd9
Add cmd line parser ( #512 )
...
This commit adds the clap library and configures the necessary args to
parse from the command line, expanding the current option of a single
file and adding support for environment variables.
Signed-off-by: Sebastian Webber <sebastian@swebber.me >
2023-07-18 13:52:40 -07:00
Sebastian Webber
5d87e3781e
push and build only in main and tags ( #508 )
...
this commit changes the CI behavior to only build and push when something is committed to main or is a new tag.
2023-07-14 10:30:49 -07:00
dependabot[bot]
3e08c6bd8d
chore(deps): bump num_cpus from 1.15.0 to 1.16.0 ( #507 )
...
Bumps [num_cpus](https://github.com/seanmonstar/num_cpus ) from 1.15.0 to 1.16.0.
- [Release notes](https://github.com/seanmonstar/num_cpus/releases )
- [Changelog](https://github.com/seanmonstar/num_cpus/blob/master/CHANGELOG.md )
- [Commits](https://github.com/seanmonstar/num_cpus/compare/v1.15.0...v1.16.0 )
---
updated-dependencies:
- dependency-name: num_cpus
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-14 07:58:11 -07:00
Sebastian Webber
15b6db8e4e
add "show help" command ( #505 )
...
This commit adds a new function to handle notify and use it
in the SHOW HELP command, which displays the available options
in the admin console.
Also, adding Fabrízio as a co-author for all the help with the
protocol and the help to structure this PR.
Signed-off-by: Sebastian Webber <sebastian@swebber.me >
Co-authored-by: Fabrízio de Royes Mello <fabriziomello@gmail.com >
2023-07-13 22:40:04 -07:00
dependabot[bot]
b2e6dfd9bb
chore(deps): bump rustls-pemfile from 1.0.2 to 1.0.3 ( #504 )
...
Bumps [rustls-pemfile](https://github.com/rustls/pemfile ) from 1.0.2 to 1.0.3.
- [Commits](https://github.com/rustls/pemfile/commits )
---
updated-dependencies:
- dependency-name: rustls-pemfile
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-12 21:41:48 -07:00
Mostafa Abdelraouf
3c9565d351
Add support for tcp_user_timeout ( #503 )
...
* Add support for tcp_user_timeout
* option
* duration
* Some()
* docs
* fmt, compile
2023-07-12 11:24:30 -07:00
dependabot[bot]
67579c9af4
chore(deps): bump rustls from 0.21.1 to 0.21.5 ( #501 )
...
Bumps [rustls](https://github.com/rustls/rustls ) from 0.21.1 to 0.21.5.
- [Release notes](https://github.com/rustls/rustls/releases )
- [Commits](https://github.com/rustls/rustls/compare/v/0.21.1...v/0.21.5 )
---
updated-dependencies:
- dependency-name: rustls
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-12 05:46:31 -07:00
Cluas
cf7f6f35ab
docs: fix general.autoreload description ( #491 )
...
* docs: fix autoreload description
Signed-off-by: Cluas <Cluas@live.cn >
* docs: add blank line
Signed-off-by: Cluas <Cluas@live.cn >
---------
Signed-off-by: Cluas <Cluas@live.cn >
2023-07-12 05:42:44 -07:00
Voldemarich
7205537b49
[BUG] Fix binding of NULL value parameters in prepared statements ( #496 )
...
Fix binding of NULL value parameters in prepared statements
Co-authored-by: anon <anon@non.existent >
2023-07-10 10:35:43 +02:00
Zain Kabani
1ed6e925ed
Fixes the default for round robing in General ( #488 )
2023-06-23 09:15:44 -07:00
Lev Kokotov
4b78af9676
Implement Close for prepared statements ( #482 )
...
* Partial support for Close
* Close
* respect config value
* prepared spec
* Hmm
* Print cache size
2023-06-18 23:02:34 -07:00
Lev Kokotov
73500c0c96
Fix build ( #481 )
2023-06-17 09:09:54 -07:00
Lev Kokotov
b167de5aa3
fmt ( #480 )
2023-06-17 08:57:33 -07:00
Juraj Bubniak
473bb3d17d
Log not implemented messages as debug in prometheus metrics. ( #477 )
2023-06-16 18:48:38 -07:00
Lev Kokotov
c7d6273037
Support for prepared statements ( #474 )
...
* Start prepared statements
* parse
* Ok
* optional
* dont rewrite anonymous prepared stmts
* Dont rewrite anonymous prep statements
* hm?
* prep statements
* I see!
* comment
* Print config value
* Rewrite bind and add sqlx test
* fmt
* ok
* Fix
* Fix stats
* its late
* clean up PREPARE
2023-06-16 12:57:44 -07:00
Jeff Chen
94c781881f
Report min_pool_size correctly ( #471 )
2023-06-12 09:23:56 -07:00
dependabot[bot]
a8c81e5df6
chore(deps): bump pin-project from 1.0.12 to 1.1.0 ( #440 )
...
Bumps [pin-project](https://github.com/taiki-e/pin-project ) from 1.0.12 to 1.1.0.
- [Release notes](https://github.com/taiki-e/pin-project/releases )
- [Changelog](https://github.com/taiki-e/pin-project/blob/main/CHANGELOG.md )
- [Commits](https://github.com/taiki-e/pin-project/compare/v1.0.12...v1.1.0 )
---
updated-dependencies:
- dependency-name: pin-project
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-12 00:51:24 -07:00
dependabot[bot]
1d3746ec9e
chore(deps): bump sqlparser from 0.33.0 to 0.34.0 ( #448 )
...
Bumps [sqlparser](https://github.com/sqlparser-rs/sqlparser-rs ) from 0.33.0 to 0.34.0.
- [Changelog](https://github.com/sqlparser-rs/sqlparser-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/sqlparser-rs/sqlparser-rs/compare/v0.33.0...v0.34.0 )
---
updated-dependencies:
- dependency-name: sqlparser
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-12 00:51:05 -07:00
dependabot[bot]
b5489dc1e6
chore(deps): bump regex from 1.8.1 to 1.8.4 ( #466 )
...
Bumps [regex](https://github.com/rust-lang/regex ) from 1.8.1 to 1.8.4.
- [Release notes](https://github.com/rust-lang/regex/releases )
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/regex/compare/1.8.1...1.8.4 )
---
updated-dependencies:
- dependency-name: regex
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-12 00:50:46 -07:00
dependabot[bot]
557b425fb1
chore(deps): bump log from 0.4.17 to 0.4.19 ( #470 )
...
Bumps [log](https://github.com/rust-lang/log ) from 0.4.17 to 0.4.19.
- [Release notes](https://github.com/rust-lang/log/releases )
- [Changelog](https://github.com/rust-lang/log/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/log/compare/0.4.17...0.4.19 )
---
updated-dependencies:
- dependency-name: log
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-12 00:50:26 -07:00
Zain Kabani
aca9738821
Make queue strategy configurable and default to Fifo ( #463 )
...
* Change idle timeout default to 10 minutes
* Revert lifo for now while we investigate connection thrashing issues
* Make queue strategy configurable
* test revert idle time out
* Add pgcat start to python test
2023-06-09 11:35:20 -07:00
Zain Kabani
0bc453a771
Change default server lifetime and bump bb8 version to use LIFO correctly ( #462 )
...
Change default server lifetime and idle timeouts and bump bb8 version to use LIFO correctly
2023-05-31 08:25:42 -07:00
Zain Kabani
b67c33b6d0
Use latest bb8 and use Lifo as the queue strategy in the pool ( #455 )
...
* Use git bb8
* Use latest bb8 and change pool is use stack
2023-05-28 19:46:13 -07:00
Mostafa Abdelraouf
a8a30ad43b
Refactor Pool Stats to be based off of Server/Client stats ( #445 )
...
What is wrong
Stats reported by SHOW POOLS seem to be leaking. We see lingering cl_idle , cl_waiting, and similarly for sv_idle , sv_active. We confirmed that these are reporting issues not actual lingering clients.
This behavior is readily reproducible by running
while true; do
psql "postgres://sharding_user:sharding_user@localhost:6432/sharded_db" -c "SELECT 1" > /dev/null 2>&1 &
done
Why it happens
I wasn't able to get to figure our the reason for the bug but my best guess is that we have race conditions when updating pool-level stats. So even though individual update operations are atomic, we perform a check then update sequence which is not protected by a guard.
https://github.com/postgresml/pgcat/blob/main/src/stats/pool.rs#L174-L179
I am also suspecting that using Relaxed ordering might allow this behavior (I changed all operations to use Ordering::SeqCst but still got lingering clients)
How to fix
Since SHOW POOLS/SHOW SERVER/SHOW CLIENTS all show the current state of the proxy (as opposed to SHOW STATS which show aggregate values), this PR refactors SHOW POOLS to have it construct the results directly from SHOW SERVER and SHOW CLIENT datasets. This reduces the complexity of stat updates and eliminates the need for having locks when updating pool stats as we only care about updating individual client/server states.
This will change the semantics of maxwait, so instead of it holding the maxwait time ever encountered by a client (connected or disconnected), it will only consider connected clients which should be okay given PgCat tends to hold on to client connections more than Pgbouncer.
2023-05-23 08:44:49 -05:00
dependabot[bot]
d63be9b93a
chore(deps): bump toml from 0.7.3 to 0.7.4 ( #447 )
...
Bumps [toml](https://github.com/toml-rs/toml ) from 0.7.3 to 0.7.4.
- [Commits](https://github.com/toml-rs/toml/compare/toml-v0.7.3...toml-v0.7.4 )
---
updated-dependencies:
- dependency-name: toml
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-19 08:58:13 -07:00
Lev Kokotov
100778670c
Ensure data makes it to the client ( #446 )
...
* Ensure data makes it to the client
* flush all buffers
2023-05-18 16:41:22 -07:00
Lev Kokotov
37e3349c24
Optionally clean up server connections ( #444 )
...
* Optionally clean up server connections
* move setting to pool
* fix test
* Print setting to screen
* fmt
* Fix pool_settings override in tests
2023-05-18 10:46:55 -07:00
Zain Kabani
7f57a89d75
Fix time based average stats ( #442 )
...
* keep track of current stats and zero them after updating averages
* Try tests
* typo
* remove commented test stuff
* Avoid dividing by zero
* Fix test
* refactor, get rid of iterator. do it manually
* trigger build
* Fix
2023-05-17 21:38:10 -07:00
Lev Kokotov
0898461c01
Allow to deploy pools without checking ( #438 )
2023-05-12 12:48:37 -07:00
Lev Kokotov
52b1b43850
Prewarmer ( #435 )
...
* Prewarmer
* hmm
* Tests
* default
* fix test
* Correct configuration
* Added minimal config example
* remove connect_timeout
2023-05-12 09:50:52 -07:00
Zain Kabani
0907f1b77f
Improve logging for connection cleanup ( #428 )
...
* initial commit
* fix
* fmt
2023-05-11 17:40:10 -07:00
Zain Kabani
73260690b0
Fixes average stats bug ( #436 )
...
* Add test
* Fix test
* Add fix
2023-05-11 17:37:58 -07:00
Mostafa Abdelraouf
5056cbe8ed
Fix docker-compose dev stack for Apple silicon ( #432 )
...
The docker-compose dev setup is broken under Apple silicon, starting the stack fails with the following error. Switching to a different docker image fixes the issue.
2023-05-10 10:24:35 -05:00
Lev Kokotov
571b02e178
Calculate averages correctly and preserve totals like before ( #429 )
...
* Reset totals after avg calculation
* like it used to be
2023-05-08 10:06:16 -07:00
Andrew Tanner
159eb89bf0
First try with role reset ( #427 )
...
* First try with role rest
* update
* extra line
* Update src/server.rs
Co-authored-by: Lev Kokotov <levkk@users.noreply.github.com >
* Update tests/ruby/misc_spec.rb
Co-authored-by: Lev Kokotov <levkk@users.noreply.github.com >
---------
Co-authored-by: Lev Kokotov <levkk@users.noreply.github.com >
2023-05-05 15:31:27 -07:00