On Fri, Apr 9, 2010 at 3:39 PM, Jaime Casanova
<jcasa...@systemguards.com.ec> wrote:
> Hi,
>
> i'm startint to try Hot Standby & Streaming Replication, so i started
> a replication:
>

i think "make standbycheck" needs a little more work, why it isn't
accesible from top of source dir?

For now, to excercise it i have to do (on the standby server):
- cd src/test/regress
- psql -h ip_primary -f sql/hs_primary_setup.sql
- make standbycheck (and 2 tests fail for differences in the messages,
patch to fix attached)

just an idea, can't we use the info about primary_conninfo to know how
to execute the script hs_primary_setup.sql on the primary?

-- 
Atentamente,
Jaime Casanova
Soporte y capacitación de PostgreSQL
Asesoría y desarrollo de sistemas
Guayaquil - Ecuador
Cel. +59387171157
Index: src/test/regress/expected/hs_standby_disallowed.out
===================================================================
RCS file: /home/postgres/pg_repo/pgsql/src/test/regress/expected/hs_standby_disallowed.out,v
retrieving revision 1.1
diff -c -r1.1 hs_standby_disallowed.out
*** src/test/regress/expected/hs_standby_disallowed.out	19 Dec 2009 01:32:45 -0000	1.1
--- src/test/regress/expected/hs_standby_disallowed.out	10 Apr 2010 04:26:48 -0000
***************
*** 11,50 ****
  WARNING:  there is no transaction in progress
  -- SELECT
  select * from hs1 FOR SHARE;
! ERROR:  transaction is read-only
  select * from hs1 FOR UPDATE;
! ERROR:  transaction is read-only
  -- DML
  BEGIN;
  insert into hs1 values (37);
! ERROR:  transaction is read-only
  ROLLBACK;
  BEGIN;
  delete from hs1 where col1 = 1;
! ERROR:  transaction is read-only
  ROLLBACK;
  BEGIN;
  update hs1 set col1 = NULL where col1 > 0;
! ERROR:  transaction is read-only
  ROLLBACK;
  BEGIN;
  truncate hs3;
! ERROR:  transaction is read-only
  ROLLBACK;
  -- DDL
  create temporary table hstemp1 (col1 integer);
! ERROR:  transaction is read-only
  BEGIN;
  drop table hs2;
! ERROR:  transaction is read-only
  ROLLBACK;
  BEGIN;
  create table hs4 (col1 integer);
! ERROR:  transaction is read-only
  ROLLBACK;
  -- Sequences
  SELECT nextval('hsseq');
! ERROR:  cannot be executed during recovery
  -- Two-phase commit transaction stuff
  BEGIN;
  SELECT count(*) FROM hs1;
--- 11,50 ----
  WARNING:  there is no transaction in progress
  -- SELECT
  select * from hs1 FOR SHARE;
! ERROR:  cannot execute SELECT FOR SHARE in a read-only transaction
  select * from hs1 FOR UPDATE;
! ERROR:  cannot execute SELECT FOR UPDATE in a read-only transaction
  -- DML
  BEGIN;
  insert into hs1 values (37);
! ERROR:  cannot execute INSERT in a read-only transaction
  ROLLBACK;
  BEGIN;
  delete from hs1 where col1 = 1;
! ERROR:  cannot execute DELETE in a read-only transaction
  ROLLBACK;
  BEGIN;
  update hs1 set col1 = NULL where col1 > 0;
! ERROR:  cannot execute UPDATE in a read-only transaction
  ROLLBACK;
  BEGIN;
  truncate hs3;
! ERROR:  cannot execute TRUNCATE TABLE in a read-only transaction
  ROLLBACK;
  -- DDL
  create temporary table hstemp1 (col1 integer);
! ERROR:  cannot execute CREATE TABLE in a read-only transaction
  BEGIN;
  drop table hs2;
! ERROR:  cannot execute DROP TABLE in a read-only transaction
  ROLLBACK;
  BEGIN;
  create table hs4 (col1 integer);
! ERROR:  cannot execute CREATE TABLE in a read-only transaction
  ROLLBACK;
  -- Sequences
  SELECT nextval('hsseq');
! ERROR:  cannot execute nextval() in a read-only transaction
  -- Two-phase commit transaction stuff
  BEGIN;
  SELECT count(*) FROM hs1;
***************
*** 54,60 ****
  (1 row)
  
  PREPARE TRANSACTION 'foobar';
! ERROR:  cannot be executed during recovery
  ROLLBACK;
  BEGIN;
  SELECT count(*) FROM hs1;
--- 54,60 ----
  (1 row)
  
  PREPARE TRANSACTION 'foobar';
! ERROR:  cannot execute PREPARE TRANSACTION during recovery
  ROLLBACK;
  BEGIN;
  SELECT count(*) FROM hs1;
***************
*** 64,70 ****
  (1 row)
  
  COMMIT PREPARED 'foobar';
! ERROR:  cannot be executed during recovery
  ROLLBACK;
  BEGIN;
  SELECT count(*) FROM hs1;
--- 64,70 ----
  (1 row)
  
  COMMIT PREPARED 'foobar';
! ERROR:  COMMIT PREPARED cannot run inside a transaction block
  ROLLBACK;
  BEGIN;
  SELECT count(*) FROM hs1;
***************
*** 74,80 ****
  (1 row)
  
  PREPARE TRANSACTION 'foobar';
! ERROR:  cannot be executed during recovery
  ROLLBACK PREPARED 'foobar';
  ERROR:  current transaction is aborted, commands ignored until end of transaction block
  ROLLBACK;
--- 74,80 ----
  (1 row)
  
  PREPARE TRANSACTION 'foobar';
! ERROR:  cannot execute PREPARE TRANSACTION during recovery
  ROLLBACK PREPARED 'foobar';
  ERROR:  current transaction is aborted, commands ignored until end of transaction block
  ROLLBACK;
***************
*** 86,137 ****
  (1 row)
  
  ROLLBACK PREPARED 'foobar';
! ERROR:  cannot be executed during recovery
  ROLLBACK;
  -- Locks
  BEGIN;
  LOCK hs1;
! ERROR:  cannot be executed during recovery
  COMMIT;
  BEGIN;
  LOCK hs1 IN SHARE UPDATE EXCLUSIVE MODE;
! ERROR:  cannot be executed during recovery
  COMMIT;
  BEGIN;
  LOCK hs1 IN SHARE MODE;
! ERROR:  cannot be executed during recovery
  COMMIT;
  BEGIN;
  LOCK hs1 IN SHARE ROW EXCLUSIVE MODE;
! ERROR:  cannot be executed during recovery
  COMMIT;
  BEGIN;
  LOCK hs1 IN EXCLUSIVE MODE;
! ERROR:  cannot be executed during recovery
  COMMIT;
  BEGIN;
  LOCK hs1 IN ACCESS EXCLUSIVE MODE;
! ERROR:  cannot be executed during recovery
  COMMIT;
  -- Listen
  listen a;
! ERROR:  cannot be executed during recovery
  notify a;
! ERROR:  cannot be executed during recovery
  unlisten a;
! ERROR:  cannot be executed during recovery
  unlisten *;
! ERROR:  cannot be executed during recovery
  -- disallowed commands
  ANALYZE hs1;
! ERROR:  cannot be executed during recovery
  VACUUM hs2;
! ERROR:  cannot be executed during recovery
  CLUSTER hs2 using hs1_pkey;
! ERROR:  cannot be executed during recovery
  REINDEX TABLE hs2;
! ERROR:  cannot be executed during recovery
  REVOKE SELECT ON hs1 FROM PUBLIC;
! ERROR:  transaction is read-only
  GRANT SELECT ON hs1 TO PUBLIC;
! ERROR:  transaction is read-only
--- 86,137 ----
  (1 row)
  
  ROLLBACK PREPARED 'foobar';
! ERROR:  ROLLBACK PREPARED cannot run inside a transaction block
  ROLLBACK;
  -- Locks
  BEGIN;
  LOCK hs1;
! ERROR:  cannot execute LOCK TABLE during recovery
  COMMIT;
  BEGIN;
  LOCK hs1 IN SHARE UPDATE EXCLUSIVE MODE;
! ERROR:  cannot execute LOCK TABLE during recovery
  COMMIT;
  BEGIN;
  LOCK hs1 IN SHARE MODE;
! ERROR:  cannot execute LOCK TABLE during recovery
  COMMIT;
  BEGIN;
  LOCK hs1 IN SHARE ROW EXCLUSIVE MODE;
! ERROR:  cannot execute LOCK TABLE during recovery
  COMMIT;
  BEGIN;
  LOCK hs1 IN EXCLUSIVE MODE;
! ERROR:  cannot execute LOCK TABLE during recovery
  COMMIT;
  BEGIN;
  LOCK hs1 IN ACCESS EXCLUSIVE MODE;
! ERROR:  cannot execute LOCK TABLE during recovery
  COMMIT;
  -- Listen
  listen a;
! ERROR:  cannot execute LISTEN during recovery
  notify a;
! ERROR:  cannot execute NOTIFY during recovery
  unlisten a;
! ERROR:  cannot execute UNLISTEN during recovery
  unlisten *;
! ERROR:  cannot execute UNLISTEN during recovery
  -- disallowed commands
  ANALYZE hs1;
! ERROR:  cannot execute VACUUM during recovery
  VACUUM hs2;
! ERROR:  cannot execute VACUUM during recovery
  CLUSTER hs2 using hs1_pkey;
! ERROR:  cannot execute CLUSTER during recovery
  REINDEX TABLE hs2;
! ERROR:  cannot execute REINDEX during recovery
  REVOKE SELECT ON hs1 FROM PUBLIC;
! ERROR:  cannot execute REVOKE in a read-only transaction
  GRANT SELECT ON hs1 TO PUBLIC;
! ERROR:  cannot execute GRANT in a read-only transaction
Index: src/test/regress/expected/hs_standby_functions.out
===================================================================
RCS file: /home/postgres/pg_repo/pgsql/src/test/regress/expected/hs_standby_functions.out,v
retrieving revision 1.1
diff -c -r1.1 hs_standby_functions.out
*** src/test/regress/expected/hs_standby_functions.out	19 Dec 2009 01:32:45 -0000	1.1
--- src/test/regress/expected/hs_standby_functions.out	10 Apr 2010 04:28:25 -0000
***************
*** 5,11 ****
  --
  -- should fail
  select txid_current();
! ERROR:  cannot be executed during recovery
  select length(txid_current_snapshot()::text) >= 4;
   ?column? 
  ----------
--- 5,11 ----
  --
  -- should fail
  select txid_current();
! ERROR:  cannot execute txid_current() during recovery
  select length(txid_current_snapshot()::text) >= 4;
   ?column? 
  ----------
-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to