mirror of
				https://github.com/postgres/postgres.git
				synced 2025-10-31 10:30:33 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			55 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PL/PgSQL
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PL/PgSQL
		
	
	
	
	
	
| BEGIN;
 | |
| 
 | |
| CREATE FUNCTION "recordchange" () RETURNS trigger
 | |
|     AS '$libdir/pending', 'recordchange'
 | |
|     LANGUAGE C;
 | |
| 
 | |
| CREATE TABLE dbmirror_MirrorHost (
 | |
|     MirrorHostId serial PRIMARY KEY,
 | |
|     SlaveName varchar NOT NULL
 | |
| );
 | |
| 
 | |
| CREATE TABLE dbmirror_Pending (
 | |
|     SeqId serial PRIMARY KEY,
 | |
|     TableName name NOT NULL,
 | |
|     Op character,
 | |
|     XID integer NOT NULL
 | |
| );
 | |
| 
 | |
| CREATE INDEX dbmirror_Pending_XID_Index ON dbmirror_Pending (XID);
 | |
| 
 | |
| CREATE TABLE dbmirror_PendingData (
 | |
|     SeqId integer NOT NULL,
 | |
|     IsKey boolean NOT NULL,
 | |
|     Data varchar,
 | |
|     PRIMARY KEY (SeqId, IsKey) ,
 | |
|     FOREIGN KEY (SeqId) REFERENCES dbmirror_Pending (SeqId) ON UPDATE CASCADE  ON DELETE CASCADE
 | |
| );
 | |
| 
 | |
| CREATE TABLE dbmirror_MirroredTransaction (
 | |
|     XID integer NOT NULL,
 | |
|     LastSeqId integer NOT NULL,
 | |
|     MirrorHostId integer NOT NULL,
 | |
|     PRIMARY KEY (XID, MirrorHostId),
 | |
|     FOREIGN KEY (MirrorHostId) REFERENCES dbmirror_MirrorHost (MirrorHostId) ON UPDATE CASCADE ON DELETE CASCADE,
 | |
|     FOREIGN KEY (LastSeqId) REFERENCES dbmirror_Pending (SeqId)  ON UPDATE CASCADE ON DELETE CASCADE
 | |
| );
 | |
| 
 | |
| UPDATE pg_proc SET proname='nextval_pg' WHERE proname='nextval';
 | |
| 
 | |
| CREATE FUNCTION pg_catalog.nextval(regclass) RETURNS bigint
 | |
|     AS '$libdir/pending', 'nextval_mirror'
 | |
|     LANGUAGE C STRICT;
 | |
| 
 | |
| UPDATE pg_proc set proname='setval_pg' WHERE proname='setval';
 | |
| 
 | |
| CREATE FUNCTION pg_catalog.setval(regclass, bigint, boolean) RETURNS bigint
 | |
|     AS '$libdir/pending', 'setval3_mirror'
 | |
|     LANGUAGE C STRICT;
 | |
| 
 | |
| CREATE FUNCTION pg_catalog.setval(regclass, bigint) RETURNS bigint
 | |
|     AS '$libdir/pending', 'setval_mirror'
 | |
|     LANGUAGE C STRICT;
 | |
| 
 | |
| COMMIT;
 |