First table sync: it should be simply just copied to the destination
NOTICE:  INSERTED 4 row(s)

Next table sync: there shall be no changes
NOTICE:  relation "test_sync_dest" already exists, skipping
NOTICE:  DELETED 0 row(s)
NOTICE:  INSERTED 0 row(s)
NOTICE:  MODIFIED 0 row(s)

Remove a row from the source and check it is deleted from the dest table
DELETE 1
NOTICE:  relation "test_sync_dest" already exists, skipping
NOTICE:  DELETED 1 row(s)
NOTICE:  INSERTED 0 row(s)
NOTICE:  MODIFIED 0 row(s)

Insert a new row and check that it is inserted in the dest table
INSERT 0 1
NOTICE:  relation "test_sync_dest" already exists, skipping
NOTICE:  DELETED 0 row(s)
NOTICE:  INSERTED 1 row(s)
NOTICE:  MODIFIED 0 row(s)

Modify row and check that it is modified in the dest table
UPDATE 1
NOTICE:  relation "test_sync_dest" already exists, skipping
NOTICE:  DELETED 0 row(s)
NOTICE:  INSERTED 0 row(s)
NOTICE:  MODIFIED 1 row(s)

Sanity check: the end result is the same source table
1|1|1|foo
2|2|2|bar
4|4|4|cantaloupe
5|5|5|sandia
1|1|1|foo
2|2|2|bar
4|4|4|cantaloupe
5|5|5|sandia
It shall exclude geom columns if instructed to do so
0
test_sync_source
test_sync_dest
SET
NOTICE:  relation "test_sync_dest" already exists, skipping
NOTICE:  cdb_invalidate_varnish(public.test_sync_dest) called
NOTICE:  DELETED 0 row(s)
NOTICE:  cdb_invalidate_varnish(public.test_sync_dest) called
NOTICE:  INSERTED 0 row(s)
NOTICE:  cdb_invalidate_varnish(public.test_sync_dest) called
NOTICE:  MODIFIED 0 row(s)

1|||1|1|foo
2|||2|2|bar
4|||4|4|cantaloupe
5|||5|5|sandia
1|0101000020E6100000000000000000F03F000000000000F03F|1|1|foo
2|0101000020E610000000000000000000400000000000000040|2|2|bar
4|0101000020E610000000000000000010400000000000001040|4|4|cantaloupe
5|0101000020E610000000000000000014400000000000001440|5|5|sandia
It will work with schemas that need quoting

INSERT 0 1
DELETE 1
UPDATE 1
SET
NOTICE:  relation "test_sync_dest" already exists, skipping
NOTICE:  DELETED 1 row(s)
NOTICE:  INSERTED 1 row(s)
NOTICE:  MODIFIED 1 row(s)

It will work with table names that need quoting

INSERT 0 1
DELETE 1
UPDATE 1
SET
NOTICE:  relation "test-sync-dest" already exists, skipping
NOTICE:  DELETED 1 row(s)
NOTICE:  INSERTED 1 row(s)
NOTICE:  MODIFIED 1 row(s)

It will work with column names that need quoting

INSERT 0 1
DELETE 1
UPDATE 1
SET
NOTICE:  relation "test_sync_dest2" already exists, skipping
NOTICE:  DELETED 1 row(s)
NOTICE:  INSERTED 1 row(s)
NOTICE:  MODIFIED 1 row(s)

ROLLBACK
