Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

spanner-jdbc: Use random data for tests #6098

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -25,46 +25,46 @@ SET READONLY = FALSE;

@EXPECT UPDATE_COUNT 3
INSERT INTO Singers (SingerId, FirstName, LastName)
VALUES(1, 'Marc', 'Richards'),
(2, 'Catalina', 'Smith'),
(3, 'Alice', 'Trentor');
VALUES(1, 'First 1', 'Last 1'),
(2, 'First 2', 'Last 2'),
(3, 'First 3', 'Last 3');

@EXPECT UPDATE_COUNT 3
INSERT INTO Singers (SingerId, FirstName, LastName)
SELECT 4, 'Lea', 'Martin'
SELECT 4, 'First 4', 'Last 4'
UNION ALL
SELECT 5, 'David', 'Lomond'
SELECT 5, 'First 5', 'Last 5'
UNION ALL
SELECT 6, 'Elena', 'Campbell';
SELECT 6, 'First 6', 'Last 6';

@EXPECT UPDATE_COUNT 1
INSERT INTO Singers (SingerId, FirstName, LastName)
VALUES (10, 'Virginia', 'Watson');
VALUES (10, 'First 10', 'Last 10');
@EXPECT UPDATE_COUNT 1
INSERT INTO Singers (SingerId, FirstName, LastName)
VALUES (11, 'Timothy', 'Campbell');
VALUES (11, 'First 11', 'Last 11');

@EXPECT UPDATE_COUNT 5
INSERT INTO Albums (SingerId, AlbumId, AlbumTitle)
VALUES
(1, 1, 'Total Junk'),
(1, 2, 'Go, Go, Go'),
(2, 1, 'Green'),
(2, 2, 'Forever Hold Your Peace'),
(2, 3, 'Terrified');
(1, 1, 'Album 1 1'),
(1, 2, 'Album 1 2'),
(2, 1, 'Album 2 1'),
(2, 2, 'Album 2 2'),
(2, 3, 'Album 2 3');

@EXPECT NO_RESULT
COMMIT;

-- Try to insert a record that already exists
@EXPECT EXCEPTION ALREADY_EXISTS
INSERT INTO Singers (SingerId, FirstName, LastName)
VALUES (10, 'Virginia', 'Watson');
VALUES (10, 'First 10', 'Last 10');

@EXPECT RESULT_SET
SELECT COUNT(*) AS ACTUAL, 1 AS EXPECTED
FROM Singers
WHERE FirstName='Virginia' AND LastName='Watson';
WHERE FirstName='First 10' AND LastName='Last 10';

@EXPECT NO_RESULT
ROLLBACK;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,11 @@ SHOW VARIABLE AUTOCOMMIT_DML_MODE;

-- Verify that executing an update statement is possible
@EXPECT UPDATE_COUNT 1
UPDATE Singers SET LastName='Anderson' /* It used to be 'Richards' */
UPDATE Singers SET LastName='Some Other Last Name' /* It used to be 'Last 1' */
WHERE SingerId=1;

@EXPECT RESULT_SET
SELECT LastName AS ACTUAL, 'Anderson' AS EXPECTED
SELECT LastName AS ACTUAL, 'Some Other Last Name' AS EXPECTED
FROM Singers
WHERE SingerId=1;

Expand All @@ -52,11 +52,11 @@ SET AUTOCOMMIT_DML_MODE = 'partitioned_non_atomic';
SHOW VARIABLE AUTOCOMMIT_DML_MODE;

@EXPECT UPDATE_COUNT 1
UPDATE Singers SET LastName='Richards'
UPDATE Singers SET LastName='Last 1'
WHERE SingerId=1;

@EXPECT RESULT_SET
SELECT LastName AS ACTUAL, 'Richards' AS EXPECTED
SELECT LastName AS ACTUAL, 'Last 1' AS EXPECTED
FROM Singers
WHERE SingerId=1;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,25 +27,25 @@ SET AUTOCOMMIT_DML_MODE = 'PARTITIONED_NON_ATOMIC';

-- Verify that executing an update statement fails
@EXPECT EXCEPTION FAILED_PRECONDITION 'FAILED_PRECONDITION: Update statements are not allowed in read-only mode'
UPDATE Singers SET LastName='Anderson' /* It used to be 'Richards' */
UPDATE Singers SET LastName='Some Other Last Name' /* It used to be 'Last 1' */
WHERE SingerId=1;

@EXPECT RESULT_SET
SELECT LastName AS ACTUAL, 'Richards' AS EXPECTED
SELECT LastName AS ACTUAL, 'Last 1' AS EXPECTED
FROM Singers
WHERE SingerId=1;

-- Verify the same for INSERT and DELETE statements
@EXPECT EXCEPTION FAILED_PRECONDITION 'FAILED_PRECONDITION: Update statements are not allowed in read-only mode'
INSERT INTO Singers (SingerId, FirstName, LastName) VALUES (9999, 'Morten', 'Harket');
INSERT INTO Singers (SingerId, FirstName, LastName) VALUES (9999, 'First 9999', 'Last 9999');

@EXPECT EXCEPTION FAILED_PRECONDITION 'FAILED_PRECONDITION: Update statements are not allowed in read-only mode'
DELETE FROM Singers;

-- Verify that the same error message is given even if the update statements references a non-existent table
@EXPECT EXCEPTION FAILED_PRECONDITION 'FAILED_PRECONDITION: Update statements are not allowed in read-only mode'
/* The referenced table does not exist */
update Artists set LastName='Anderson'
update Artists set LastName='Some Last Name'
where ArtistId=1;

-- Verify that DDL statements will also cause an exception
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ SET AUTOCOMMIT = TRUE;
SET READONLY = TRUE;

@EXPECT RESULT_SET
SELECT LastName AS ACTUAL, 'Richards' AS EXPECTED
SELECT LastName AS ACTUAL, 'Last 1' AS EXPECTED
FROM Singers
WHERE SingerId=1;

Expand All @@ -37,7 +37,7 @@ SHOW VARIABLE COMMIT_TIMESTAMP;
SET READONLY = FALSE;

@EXPECT RESULT_SET
SELECT LastName AS ACTUAL, 'Richards' AS EXPECTED
SELECT LastName AS ACTUAL, 'Last 1' AS EXPECTED
FROM Singers
WHERE SingerId=1;

Expand All @@ -51,7 +51,7 @@ SET AUTOCOMMIT = FALSE;
SET READONLY = TRUE;

@EXPECT RESULT_SET
SELECT LastName AS ACTUAL, 'Richards' AS EXPECTED
SELECT LastName AS ACTUAL, 'Last 1' AS EXPECTED
FROM Singers
WHERE SingerId=1;

Expand All @@ -66,7 +66,7 @@ SHOW VARIABLE COMMIT_TIMESTAMP;
SET READONLY = FALSE;

@EXPECT RESULT_SET
SELECT LastName AS ACTUAL, 'Richards' AS EXPECTED
SELECT LastName AS ACTUAL, 'Last 1' AS EXPECTED
FROM Singers
WHERE SingerId=1;

Expand All @@ -81,7 +81,7 @@ SHOW VARIABLE COMMIT_TIMESTAMP;
SET AUTOCOMMIT = FALSE;

@EXPECT UPDATE_COUNT 1
UPDATE Singers SET LastName='Perry'
UPDATE Singers SET LastName='New Last 1'
WHERE SingerId=1;

@EXPECT NO_RESULT
Expand All @@ -92,15 +92,15 @@ SHOW VARIABLE COMMIT_TIMESTAMP;

-- Reset the value to its original value
@EXPECT UPDATE_COUNT 1
UPDATE Singers SET LastName='Richards'
UPDATE Singers SET LastName='Last 1'
WHERE SingerId=1;

@EXPECT NO_RESULT
COMMIT;

-- Select query in transactional and read-write mode that rollbacks should not yield a commit timestamp
@EXPECT RESULT_SET
SELECT LastName AS ACTUAL, 'Richards' AS EXPECTED
SELECT LastName AS ACTUAL, 'Last 1' AS EXPECTED
FROM Singers
WHERE SingerId=1;

Expand All @@ -112,7 +112,7 @@ SHOW VARIABLE COMMIT_TIMESTAMP;

-- Update statement in transactional and read-write mode that rollbacks should not yield a commit timestamp
@EXPECT UPDATE_COUNT 1
UPDATE Singers SET LastName='Perry'
UPDATE Singers SET LastName='New Last 1'
WHERE SingerId=1;

@EXPECT NO_RESULT
Expand All @@ -127,7 +127,7 @@ SET AUTOCOMMIT = FALSE;
SET READONLY = FALSE;

@EXPECT EXCEPTION INVALID_ARGUMENT
SELECT LastName AS ACTUAL, 'Richards' AS EXPECTED
SELECT LastName AS ACTUAL, 'Last 1' AS EXPECTED
FROM NonExistentTable
WHERE SingerId=1;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ SET AUTOCOMMIT = TRUE;
SET READONLY = TRUE;

@EXPECT RESULT_SET
SELECT LastName AS ACTUAL, 'Richards' AS EXPECTED
SELECT LastName AS ACTUAL, 'Last 1' AS EXPECTED
FROM Singers
WHERE SingerId=1;

Expand All @@ -34,7 +34,7 @@ SHOW VARIABLE READ_TIMESTAMP;
SET READONLY = FALSE;

@EXPECT RESULT_SET
SELECT LastName AS ACTUAL, 'Richards' AS EXPECTED
SELECT LastName AS ACTUAL, 'Last 1' AS EXPECTED
FROM Singers
WHERE SingerId=1;

Expand All @@ -46,7 +46,7 @@ SET AUTOCOMMIT = FALSE;
SET READONLY = TRUE;

@EXPECT RESULT_SET
SELECT LastName AS ACTUAL, 'Richards' AS EXPECTED
SELECT LastName AS ACTUAL, 'Last 1' AS EXPECTED
FROM Singers
WHERE SingerId=1;

Expand All @@ -59,7 +59,7 @@ COMMIT;
SET READONLY = FALSE;

@EXPECT RESULT_SET
SELECT LastName AS ACTUAL, 'Richards' AS EXPECTED
SELECT LastName AS ACTUAL, 'Last 1' AS EXPECTED
FROM Singers
WHERE SingerId=1;

Expand All @@ -72,7 +72,7 @@ COMMIT;
SET AUTOCOMMIT = FALSE;

@EXPECT UPDATE_COUNT 1
UPDATE Singers SET LastName='Perry'
UPDATE Singers SET LastName='New Last 1'
WHERE SingerId=1;

@EXPECT RESULT_SET 'READ_TIMESTAMP',null
Expand All @@ -82,7 +82,7 @@ ROLLBACK;

-- Verify that the rollback actually worked
@EXPECT RESULT_SET
SELECT LastName AS ACTUAL, 'Richards' AS EXPECTED
SELECT LastName AS ACTUAL, 'Last 1' AS EXPECTED
FROM Singers
WHERE SingerId=1;

Expand All @@ -93,7 +93,7 @@ SET AUTOCOMMIT = TRUE;
SET READONLY = TRUE;

@EXPECT EXCEPTION INVALID_ARGUMENT
SELECT LastName AS ACTUAL, 'Richards' AS EXPECTED
SELECT LastName AS ACTUAL, 'Last 1' AS EXPECTED
FROM NonExistentTable
WHERE SingerId=1;

Expand All @@ -104,7 +104,7 @@ SHOW VARIABLE READ_TIMESTAMP;
SET READONLY = FALSE;

@EXPECT EXCEPTION INVALID_ARGUMENT
SELECT LastName AS ACTUAL, 'Richards' AS EXPECTED
SELECT LastName AS ACTUAL, 'Last 1' AS EXPECTED
FROM NonExistentTable
WHERE SingerId=1;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ FROM (

-- Try to execute an update that should also timeout
@EXPECT EXCEPTION DEADLINE_EXCEEDED 'DEADLINE_EXCEEDED: Statement execution timeout occurred'
UPDATE Singers SET LastName='Anderson' /* It used to be 'Richards' */
UPDATE Singers SET LastName='Some Other Last Name' /* It used to be 'Last 1' */
WHERE SingerId=1
OR LastName IN (
SELECT LastName
Expand Down Expand Up @@ -127,7 +127,7 @@ OR LastName IN (
-- Verify that the record was not updated
SET STATEMENT_TIMEOUT=null;
@EXPECT RESULT_SET
SELECT LastName AS ACTUAL, 'Richards' AS EXPECTED
SELECT LastName AS ACTUAL, 'Last 1' AS EXPECTED
FROM Singers
WHERE SingerId=1;

Expand Down Expand Up @@ -207,7 +207,7 @@ ROLLBACK;

-- Try to execute an update that should also timeout
@EXPECT EXCEPTION DEADLINE_EXCEEDED 'DEADLINE_EXCEEDED: Statement execution timeout occurred'
UPDATE Singers SET LastName='Anderson' /* It used to be 'Richards' */
UPDATE Singers SET LastName='Some Other Last Name' /* It used to be 'Last 1' */
WHERE SingerId=1
OR LastName IN (
SELECT LastName
Expand Down Expand Up @@ -250,6 +250,6 @@ SET STATEMENT_TIMEOUT=null;
ROLLBACK;

@EXPECT RESULT_SET
SELECT LastName AS ACTUAL, 'Richards' AS EXPECTED
SELECT LastName AS ACTUAL, 'Last 1' AS EXPECTED
FROM Singers
WHERE SingerId=1;
Original file line number Diff line number Diff line change
Expand Up @@ -25,24 +25,24 @@ SET READONLY = FALSE;
BEGIN;
@EXPECT UPDATE_COUNT 1
INSERT INTO Singers (SingerId, FirstName, LastName)
VALUES (9999, 'Vegard', 'Ylvisåker');
VALUES (9999, 'First 9999', 'Last 9999');
COMMIT;

-- Verify that the record is there
@EXPECT RESULT_SET
SELECT FirstName AS ACTUAL, 'Vegard' AS EXPECTED
SELECT FirstName AS ACTUAL, 'First 9999' AS EXPECTED
FROM Singers
WHERE SingerId=9999
UNION ALL
SELECT LastName AS ACTUAL, 'Ylvisåker' AS EXPECTED
SELECT LastName AS ACTUAL, 'Last 9999' AS EXPECTED
FROM Singers
WHERE SingerId=9999;

-- Insert another singer in a temporary transaction and rollback
BEGIN;
@EXPECT UPDATE_COUNT 1
INSERT INTO Singers (SingerId, FirstName, LastName)
VALUES (9998, 'Bård', 'Ylvisåker');
VALUES (9998, 'First 9998', 'Last 9998');
ROLLBACK;

-- Verify that the record is not there
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ SET READONLY = FALSE;
-- Insert a test record
@EXPECT UPDATE_COUNT 1
INSERT INTO Singers (SingerId, FirstName, LastName)
VALUES (9999, 'Vegard', 'Ylvisåker');
VALUES (9999, 'First 9999', 'Last 9999');
COMMIT;

---------------------------------------- Test read only transactions ---------------------------------------------
Expand All @@ -37,7 +37,7 @@ WHERE SingerId=9999;

@EXPECT EXCEPTION FAILED_PRECONDITION 'FAILED_PRECONDITION: Update statements are not allowed for read-only transactions'
-- try to update a record in a read-only transaction
UPDATE Singers SET FirstName='Peter' WHERE SingerId=9999;
UPDATE Singers SET FirstName='New First Name' WHERE SingerId=9999;

-- We are in a read-only transaction that has returned a query, so there should be a read-timestamp
@EXPECT RESULT_SET 'READ_TIMESTAMP'
Expand Down Expand Up @@ -76,7 +76,7 @@ SET TRANSACTION READ WRITE;

@EXPECT UPDATE_COUNT 1
INSERT INTO Singers (SingerId, FirstName, LastName)
VALUES (9998, 'Bård', 'Ylvisåker');
VALUES (9998, 'First 9998', 'Last 9998');

COMMIT;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ SET READONLY = TRUE;
-- Verify that trying to insert a test record will fail
@EXPECT EXCEPTION FAILED_PRECONDITION 'FAILED_PRECONDITION: Update statements are not allowed for read-only transactions'
INSERT INTO Singers (SingerId, FirstName, LastName)
VALUES (9999, 'Vegard', 'Ylvisåker');
VALUES (9999, 'First 9999', 'Last 9999');
COMMIT;

---------------------------------------- Test read only transactions ---------------------------------------------
Expand All @@ -37,7 +37,7 @@ WHERE SingerId=1;

@EXPECT EXCEPTION FAILED_PRECONDITION 'FAILED_PRECONDITION: Update statements are not allowed for read-only transactions'
-- try to update a record in a read-only transaction
UPDATE Singers SET FirstName='Peter' WHERE SingerId=9999;
UPDATE Singers SET FirstName='New First Name' WHERE SingerId=9999;

-- We are in a read-only transaction that has returned a query, so there should be a read-timestamp
@EXPECT RESULT_SET 'READ_TIMESTAMP'
Expand Down