Skip to content

Commit

Permalink
add test to begin
Browse files Browse the repository at this point in the history
  • Loading branch information
CBists committed Dec 5, 2023
1 parent 735966b commit d635f81
Show file tree
Hide file tree
Showing 4 changed files with 178 additions and 21 deletions.
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ require (
github.com/lib/pq v1.10.9
github.com/libp2p/go-reuseport v0.4.0
github.com/opentracing/opentracing-go v1.2.0
github.com/pg-sharding/lyx v0.0.0-20231128090931-e78a93d53505
github.com/pg-sharding/lyx v0.0.0-20231205060821-62d800c1c693
github.com/pkg/errors v0.9.1
github.com/rs/zerolog v1.31.0
github.com/sevlyar/go-daemon v0.1.6
Expand Down
2 changes: 2 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,8 @@ github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+
github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
github.com/pg-sharding/lyx v0.0.0-20231128090931-e78a93d53505 h1:OsLSe/dJ39CE9Z4DttrClPhdXYJpIWqtxtYc647n/a4=
github.com/pg-sharding/lyx v0.0.0-20231128090931-e78a93d53505/go.mod h1:2dPBQAhqv/30mhzj2yBXQkXhsGJQ8GhM+oWOfbGua58=
github.com/pg-sharding/lyx v0.0.0-20231205060821-62d800c1c693 h1:U3mp4vsGFou6MH7nhmq/a6if+rOIpkG3tVi6DSePFds=
github.com/pg-sharding/lyx v0.0.0-20231205060821-62d800c1c693/go.mod h1:2dPBQAhqv/30mhzj2yBXQkXhsGJQ8GhM+oWOfbGua58=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
Expand Down
146 changes: 133 additions & 13 deletions test/regress/tests/router/expected/begin.out
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ DROP KEY RANGE ALL;
(0 rows)

ADD SHARDING RULE t1 COLUMNS id;
add sharding rule
----------------------------------------------------------------------
created sharding rule t1 for table (*) with columns [id, hash: x->x]
add sharding rule
-------------------------------------------------------------------------------------------
created sharding rule t1 for table (*) with columns [id, hash: x->x] in default dataspace
(1 row)

ADD KEY RANGE krid1 FROM 1 TO 11 ROUTE TO sh1;
Expand All @@ -36,32 +36,152 @@ ADD KEY RANGE krid2 FROM 11 TO 101 ROUTE TO sh2;
(1 row)

\c regress
/* TODO: BEGIN READ ONLY doesnt work */
CREATE TABLE test_beg(id int, age int);
NOTICE: send query to shard(s) : sh1,sh2
BEGIN;
INSERT INTO test_beg(id, age) VALUES (10, 16);
NOTICE: send query to shard(s) : sh1
INSERT INTO test_beg(id, age) VALUES (10, 16);
NOTICE: send query to shard(s) : sh1
SELECT * FROM test_beg WHERE id=10;
NOTICE: send query to shard(s) : sh1
id | age
----+-----
10 | 16
10 | 16
(2 rows)

BEGIN TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SELECT * FROM test_beg WHERE id=10;
NOTICE: send query to shard(s) : sh1
id | age
----+-----
10 | 16
10 | 16
(2 rows)

INSERT INTO test_beg(id, age) VALUES (10, 16);
SELECT * FROM test_beg WHERE id=10;
id | age
----+-----
10 | 16
10 | 16
10 | 16
(3 rows)

ROLLBACK;
SELECT * from test_beg;
NOTICE: send query to shard(s) : sh1,sh2
BEGIN TRANSACTION ISOLATION LEVEL READ COMMITTED;
SELECT * FROM test_beg WHERE id=10;
NOTICE: send query to shard(s) : sh1
id | age
----+-----
(0 rows)
10 | 16
10 | 16
(2 rows)

BEGIN;
INSERT INTO test_beg(id, age) VALUES (10, 16);
SELECT * FROM test_beg WHERE id=10;
id | age
----+-----
10 | 16
10 | 16
10 | 16
(3 rows)

ROLLBACK;
BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ;
SELECT * FROM test_beg WHERE id=10;
NOTICE: send query to shard(s) : sh1
id | age
----+-----
10 | 16
10 | 16
(2 rows)

INSERT INTO test_beg(id, age) VALUES (10, 16);
INSERT INTO test_beg(id, age) VALUES (20, 16);
COMMIT;
SELECT * from test_beg;
NOTICE: send query to shard(s) : sh1,sh2
SELECT * FROM test_beg WHERE id=10;
id | age
----+-----
10 | 16
10 | 16
20 | 16
10 | 16
(3 rows)

ROLLBACK;
BEGIN TRANSACTION ISOLATION LEVEL SERIALIZABLE;
SELECT * FROM test_beg WHERE id=10;
NOTICE: send query to shard(s) : sh1
id | age
----+-----
10 | 16
10 | 16
(2 rows)

INSERT INTO test_beg(id, age) VALUES (10, 16);
SELECT * FROM test_beg WHERE id=10;
id | age
----+-----
10 | 16
10 | 16
10 | 16
(3 rows)

ROLLBACK;
/* TODO: Different ISOLATION LEVEL have to effect */
BEGIN TRANSACTION READ WRITE;
SELECT * FROM test_beg WHERE id=10;
NOTICE: send query to shard(s) : sh1
id | age
----+-----
10 | 16
10 | 16
(2 rows)

INSERT INTO test_beg(id, age) VALUES (10, 16);
SELECT * FROM test_beg WHERE id=10;
id | age
----+-----
10 | 16
10 | 16
10 | 16
(3 rows)

ROLLBACK;
BEGIN TRANSACTION DEFERRABLE;
SELECT * FROM test_beg WHERE id=10;
NOTICE: send query to shard(s) : sh1
id | age
----+-----
10 | 16
10 | 16
(2 rows)

INSERT INTO test_beg(id, age) VALUES (10, 16);
SELECT * FROM test_beg WHERE id=10;
id | age
----+-----
10 | 16
10 | 16
10 | 16
(3 rows)

ROLLBACK;
BEGIN TRANSACTION NOT DEFERRABLE;
SELECT * FROM test_beg WHERE id=10;
NOTICE: send query to shard(s) : sh1
id | age
----+-----
10 | 16
10 | 16
(2 rows)

INSERT INTO test_beg(id, age) VALUES (10, 16);
SELECT * FROM test_beg WHERE id=10;
id | age
----+-----
10 | 16
10 | 16
10 | 16
(3 rows)

ROLLBACK;
49 changes: 42 additions & 7 deletions test/regress/tests/router/sql/begin.sql
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,52 @@ ADD KEY RANGE krid1 FROM 1 TO 11 ROUTE TO sh1;
ADD KEY RANGE krid2 FROM 11 TO 101 ROUTE TO sh2;

\c regress

/* TODO: BEGIN READ ONLY doesnt work */
CREATE TABLE test_beg(id int, age int);
BEGIN;
INSERT INTO test_beg(id, age) VALUES (10, 16);
INSERT INTO test_beg(id, age) VALUES (10, 16);
SELECT * FROM test_beg WHERE id=10;

BEGIN TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SELECT * FROM test_beg WHERE id=10;
INSERT INTO test_beg(id, age) VALUES (10, 16);
SELECT * FROM test_beg WHERE id=10;
ROLLBACK;

BEGIN TRANSACTION ISOLATION LEVEL READ COMMITTED;
SELECT * FROM test_beg WHERE id=10;
INSERT INTO test_beg(id, age) VALUES (10, 16);
SELECT * FROM test_beg WHERE id=10;
ROLLBACK;

BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ;
SELECT * FROM test_beg WHERE id=10;
INSERT INTO test_beg(id, age) VALUES (10, 16);
SELECT * FROM test_beg WHERE id=10;
ROLLBACK;

BEGIN TRANSACTION ISOLATION LEVEL SERIALIZABLE;
SELECT * FROM test_beg WHERE id=10;
INSERT INTO test_beg(id, age) VALUES (10, 16);
SELECT * FROM test_beg WHERE id=10;
ROLLBACK;

/* TODO: Different ISOLATION LEVEL have to effect */

BEGIN TRANSACTION READ WRITE;
SELECT * FROM test_beg WHERE id=10;
INSERT INTO test_beg(id, age) VALUES (10, 16);
SELECT * FROM test_beg WHERE id=10;
ROLLBACK;
SELECT * from test_beg;
BEGIN;

BEGIN TRANSACTION DEFERRABLE;
SELECT * FROM test_beg WHERE id=10;
INSERT INTO test_beg(id, age) VALUES (10, 16);
SELECT * FROM test_beg WHERE id=10;
ROLLBACK;

BEGIN TRANSACTION NOT DEFERRABLE;
SELECT * FROM test_beg WHERE id=10;
INSERT INTO test_beg(id, age) VALUES (10, 16);
INSERT INTO test_beg(id, age) VALUES (20, 16);
COMMIT;
SELECT * from test_beg;
SELECT * FROM test_beg WHERE id=10;
ROLLBACK;

0 comments on commit d635f81

Please sign in to comment.