summaryrefslogtreecommitdiffstats
path: root/src/test/regress/sql/hs_standby_allowed.sql
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/regress/sql/hs_standby_allowed.sql')
-rw-r--r--src/test/regress/sql/hs_standby_allowed.sql125
1 files changed, 125 insertions, 0 deletions
diff --git a/src/test/regress/sql/hs_standby_allowed.sql b/src/test/regress/sql/hs_standby_allowed.sql
new file mode 100644
index 0000000..6debddc
--- /dev/null
+++ b/src/test/regress/sql/hs_standby_allowed.sql
@@ -0,0 +1,125 @@
+--
+-- Hot Standby tests
+--
+-- hs_standby_allowed.sql
+--
+
+-- SELECT
+
+select count(*) as should_be_1 from hs1;
+
+select count(*) as should_be_2 from hs2;
+
+select count(*) as should_be_3 from hs3;
+
+COPY hs1 TO '/tmp/copy_test';
+\! cat /tmp/copy_test
+
+-- Access sequence directly
+select is_called from hsseq;
+
+-- Transactions
+
+begin;
+select count(*) as should_be_1 from hs1;
+end;
+
+begin transaction read only;
+select count(*) as should_be_1 from hs1;
+end;
+
+begin transaction isolation level repeatable read;
+select count(*) as should_be_1 from hs1;
+select count(*) as should_be_1 from hs1;
+select count(*) as should_be_1 from hs1;
+commit;
+
+begin;
+select count(*) as should_be_1 from hs1;
+commit;
+
+begin;
+select count(*) as should_be_1 from hs1;
+abort;
+
+start transaction;
+select count(*) as should_be_1 from hs1;
+commit;
+
+begin;
+select count(*) as should_be_1 from hs1;
+rollback;
+
+begin;
+select count(*) as should_be_1 from hs1;
+savepoint s;
+select count(*) as should_be_2 from hs2;
+commit;
+
+begin;
+select count(*) as should_be_1 from hs1;
+savepoint s;
+select count(*) as should_be_2 from hs2;
+release savepoint s;
+select count(*) as should_be_2 from hs2;
+savepoint s;
+select count(*) as should_be_3 from hs3;
+rollback to savepoint s;
+select count(*) as should_be_2 from hs2;
+commit;
+
+-- SET parameters
+
+-- has no effect on read only transactions, but we can still set it
+set synchronous_commit = on;
+show synchronous_commit;
+reset synchronous_commit;
+
+discard temp;
+discard all;
+
+-- CURSOR commands
+
+BEGIN;
+
+DECLARE hsc CURSOR FOR select * from hs3;
+
+FETCH next from hsc;
+fetch first from hsc;
+fetch last from hsc;
+fetch 1 from hsc;
+
+CLOSE hsc;
+
+COMMIT;
+
+-- Prepared plans
+
+PREPARE hsp AS select count(*) from hs1;
+PREPARE hsp_noexec (integer) AS insert into hs1 values ($1);
+
+EXECUTE hsp;
+
+DEALLOCATE hsp;
+
+-- LOCK
+
+BEGIN;
+LOCK hs1 IN ACCESS SHARE MODE;
+LOCK hs1 IN ROW SHARE MODE;
+LOCK hs1 IN ROW EXCLUSIVE MODE;
+COMMIT;
+
+-- UNLISTEN
+UNLISTEN a;
+UNLISTEN *;
+
+-- LOAD
+-- should work, easier if there is no test for that...
+
+
+-- ALLOWED COMMANDS
+
+CHECKPOINT;
+
+discard all;