mirror of
https://github.com/postgresml/pgcat.git
synced 2026-03-23 17:36:28 +00:00
* Support reloading the entire config (including sharding logic) without restart. * Fix bug incorrectly handing error reporting when the shard is set incorrectly via SET SHARD TO command. selected wrong shard and the connection keep reporting fatal #80. * Fix total_received and avg_recv admin database statistics. * Enabling the query parser by default. * More tests.
40 lines
939 B
PL/PgSQL
40 lines
939 B
PL/PgSQL
|
|
-- \setrandom aid 1 :naccounts
|
|
\set aid random(1, 100000)
|
|
-- \setrandom bid 1 :nbranches
|
|
\set bid random(1, 100000)
|
|
-- \setrandom tid 1 :ntellers
|
|
\set tid random(1, 100000)
|
|
-- \setrandom delta -5000 5000
|
|
\set delta random(-5000,5000)
|
|
|
|
\set shard random(0, 2)
|
|
|
|
SET SHARD TO :shard;
|
|
|
|
SET SERVER ROLE TO 'auto';
|
|
|
|
BEGIN;
|
|
|
|
UPDATE pgbench_accounts SET abalance = abalance + :delta WHERE aid = :aid;
|
|
|
|
SELECT abalance FROM pgbench_accounts WHERE aid = :aid;
|
|
|
|
UPDATE pgbench_tellers SET tbalance = tbalance + :delta WHERE tid = :tid;
|
|
|
|
UPDATE pgbench_branches SET bbalance = bbalance + :delta WHERE bid = :bid;
|
|
|
|
INSERT INTO pgbench_history (tid, bid, aid, delta, mtime) VALUES (:tid, :bid, :aid, :delta, CURRENT_TIMESTAMP);
|
|
|
|
END;
|
|
|
|
SET SHARDING KEY TO :aid;
|
|
|
|
-- Read load balancing
|
|
SELECT abalance FROM pgbench_accounts WHERE aid = :aid;
|
|
|
|
SET SERVER ROLE TO 'replica';
|
|
|
|
-- Read load balancing
|
|
SELECT abalance FROM pgbench_accounts WHERE aid = :aid;
|