.\" ----------
.\" figure-1
.\"
.\"	Copyright (c) 2003-2004, PostgreSQL Global Development Group
.\"	Author: Jan Wieck, Afilias USA INC.
.\"
.\" $Id: figure-1.pic,v 1.3 2004/02/20 15:13:28 wieck Exp $
.\" ----------
.PS
.ps -2
.vs 1m

dx=0.4

Outer:	box wid 5.2 ht 4.2
		"Figure 1" at Outer.s below
.ps -4

define table {
		box wid 0.8 ht 0.15
		" \fB$1\fR" at last box .w ljust
}

define field {
F$1:	box same with .n at last box .s
		" $1" at last box .w ljust
		"$2 " at last box .e rjust
}

Tsl_node: [
		table(sl_node)
		field(no_id, PK)
		field(no_active)
		field(no_comment)
	] with .nw at Outer.nw+(1.6,-1.5)

Tsl_set: [
		table(sl_set)
		field(set_id, PK)
		field(set_origin)
		field(set_comment)
	] with .nw at Tsl_node.ne+(dx,0.0)

	line -> from Tsl_set.Fset_origin.w left 0.2 then up 0.15 to Tsl_node.Fno_id.e

Tsl_setsync: [
		table(sl_setsync)
		field(ssy_setid, PK)
		field(ssy_origin)
		field(ssy_seqno)
		field(ssy_minxid)
		field(ssy_maxxid)
		field(ssy_xip)
		field(ssy_action_list)
	] with .nw at Tsl_set.sw+(0.0,-dx)

	line -> from Tsl_setsync.Fssy_setid.e right 0.2 to Tsl_set.Fset_id.e+(0.2,0.0) to Tsl_set.Fset_id.e
	line -> from Tsl_setsync.Fssy_origin.w left 0.2 to Tsl_node.Fno_id.e+(0.2,0.0) to Tsl_node.Fno_id.e

Tsl_table: [
		table(sl_table)
		field(tab_id, PK)
		field(tab_reloid)
		field(tab_set)
		field(tab_attkind)
		field(tab_comment)
	] with .nw at Tsl_set.ne+(dx,0.0)

	line -> from Tsl_table.Ftab_set.w left 0.2 then up 0.3 to Tsl_set.Fset_id.e

Tsl_path: [
		table(sl_path)
		field(pa_server, PK1)
		field(pa_client, PK2)
		field(pa_conninfo)
		field(pa_connretry)
	] with .sw at Tsl_node.nw+(0.0,dx)

	line -> from Tsl_path.Fpa_server.e right 0.2 to Tsl_node.Fno_id.e+(0.2,0.0) to Tsl_node.Fno_id.e
	line -> from Tsl_path.Fpa_client.e right 0.2 to Tsl_node.Fno_id.e+(0.2,0.0) to Tsl_node.Fno_id.e

Tsl_listen: [
		table(sl_listen)
		field(li_origin, PK1)
		field(li_provider, PK2)
		field(li_receiver, PK3)
	] with .ne at Tsl_path.nw+(-dx,0.0)

	line -> from Tsl_listen.Fli_origin.w left 0.2 then down 0.5 then right 1.2 to Tsl_node.Fno_id.w+(-0.2,0.0) to Tsl_node.Fno_id.w

	line    from Tsl_listen.Fli_provider.e right 0.1 then down 0.075
	line    from Tsl_listen.Fli_receiver.e right 0.1 then up 0.075
	circle	rad 0.02 fill 1.0 with .c at Tsl_listen.Fli_provider.se+(0.1,0.0)
	line	from Tsl_listen.Fli_provider.se+(0.1,0.0) right 0.1 to Tsl_path.Fpa_server.sw+(-0.2,0.0) then right 0.1
	circle	rad 0.02 fill 1.0 with .c at Tsl_path.Fpa_server.sw+(-0.1,0.0)
	line -> from Tsl_path.Fpa_server.sw+(-0.1,0.0) up 0.075 to Tsl_path.Fpa_server.w
	line -> from Tsl_path.Fpa_server.sw+(-0.1,0.0) down 0.075 to Tsl_path.Fpa_client.w

Tsl_subscribe: [
		table(sl_subscribe)
		field(sub_set, PK2)
		field(sub_provider)
		field(sub_receiver, PK1)
		field(sub_forward)
		field(sub_active)
	] with .nw at Tsl_path.ne+(dx,0.0)

	line -> from Tsl_subscribe.Fsub_set.e right 0.2 to Tsl_set.Fset_id.e+(0.2,0.0) to Tsl_set.Fset_id.e

.\" multi-colum constraint sl_subscribe-sl_path-ref
	line    from Tsl_subscribe.Fsub_provider.w left 0.1
	line    from Tsl_subscribe.Fsub_receiver.w left 0.1 then up 0.15
	circle	rad 0.02 fill 1.0 with .c at Tsl_subscribe.Fsub_provider.w+(-0.1,0.0)
	line    from Tsl_subscribe.Fsub_provider.w+(-0.1,0.0) up 0.5 then left 1.3 to Tsl_path.Fpa_server.sw+(-0.2,0.0) then right 0.1

Tsl_event: [
		table(sl_event)
		field(ev_origin, PK1)
		field(ev_seqno, PK2)
		field(ev_timestamp)
		field(ev_minxid)
		field(ev_maxxid)
		field(ev_xip)
		field(ev_type)
		field(ev_data1)
		field(ev_data2)
		field(ev_data3)
		field(ev_data4)
		field(ev_data5)
		field(ev_data6)
		field(ev_data7)
		field(ev_data8)
	] with .ne at Tsl_node.nw+(-dx,0.0)

	line -> from Tsl_event.Fev_origin.e to Tsl_node.Fno_id.w

Tsl_confirm: [
		table(sl_confirm)
		field(con_origin)
		field(con_received)
		field(con_seqno)
		field(con_timestamp)
	] with .nw at Tsl_node.sw+(0.0,-dx)

	line -> from Tsl_confirm.Fcon_origin.e right 0.2 to Tsl_node.Fno_id.e+(0.2,0.0) to Tsl_node.Fno_id.e
	line -> from Tsl_confirm.Fcon_received.e right 0.2 to Tsl_node.Fno_id.e+(0.2,0.0) to Tsl_node.Fno_id.e

Tsl_logs: [
		table(sl_log_[1|2])
		field(sl_origin)
		field(sl_xid)
		field(sl_tableid)
		field(sl_actionseq)
		field(sl_cmdtype)
		field(sl_cmddata)
	] with .sw at Tsl_table.w.x,Tsl_event.se.y
.ps -6
.vs
.PE
