postgresql/contrib/rserv/master.sql.in
Peter Eisentraut 264f8f2b6c Install dynamically loadable modules into a private subdirectory
under libdir, for a cleaner separation in the installation layout
and compatibility with binary packaging standards.  Point backend's
default search location there.  The contrib modules are also
installed in the said location, giving them the benefit of the
default search path as well.  No changes in user interface
nevertheless.
2001-09-16 16:11:11 +00:00

102 lines
2.0 KiB
MySQL

-- erServer
-- Master server setup for erServer demonstration implementation
-- (c) 2000 Vadim Mikheev, PostgreSQL Inc.
--
--
-- Slave servers
--
drop table _RSERV_SERVERS_;
create table _RSERV_SERVERS_
(
server int4, -- slave server id
host text, -- server' host
port int4, -- server' port
dbase text -- db name
);
--
-- Tables to sync
--
drop table _RSERV_TABLES_;
create table _RSERV_TABLES_
(
tname name, -- table name
cname name, -- column name
reloid oid, -- table oid
key int4 -- key attnum
);
--
-- Log for inserts/updates/deletes to sync-ed tables
--
drop table _RSERV_LOG_;
create table _RSERV_LOG_
(
reloid oid,
logid int4, -- xid of last update xaction
logtime timestamp, -- last update xaction start time
deleted int4, -- deleted or inserted/updated
key text --
);
-- This is to speedup lookup deleted tuples
create index _RSERV_LOG_INDX_DLT_ID_ on _RSERV_LOG_ (deleted, logid);
-- This is to speedup cleanup
create index _RSERV_LOG_INDX_TM_ID_ on _RSERV_LOG_ (logtime, logid);
-- This is to speedup trigger and lookup updated tuples
create index _RSERV_LOG_INDX_REL_KEY_ on _RSERV_LOG_ (reloid, key);
--
-- How much each slave servers are sync-ed
--
drop table _RSERV_SYNC_;
create table _RSERV_SYNC_
(
server int4,
syncid int4, -- from _rserv_sync_seq_
synctime timestamp, --
status int4, -- prepared (0) | applied
minid int4, -- min xid from serializable snapshot
maxid int4, -- max xid from serializable snapshot
active text -- list of active xactions
);
create index _RSERV_SYNC_INDX_SRV_ID_ on _RSERV_SYNC_ (server, syncid);
drop sequence _rserv_sync_seq_;
create sequence _rserv_sync_seq_;
drop function _rserv_log_();
CREATE FUNCTION _rserv_log_()
RETURNS opaque
AS '@MODULE_FILENAME@'
LANGUAGE 'c'
;
drop function _rserv_sync_(int4);
CREATE FUNCTION _rserv_sync_(int4)
RETURNS int4
AS '@MODULE_FILENAME@'
LANGUAGE 'c'
;
drop function _rserv_debug_(int4);
CREATE FUNCTION _rserv_debug_(int4)
RETURNS int4
AS '@MODULE_FILENAME@'
LANGUAGE 'c'
;