From cb353ec6a8638046f9f143577d16916fa75068bf Mon Sep 17 00:00:00 2001 From: Javier Goizueta Date: Thu, 4 Jul 2019 12:47:01 +0200 Subject: [PATCH] Add tests for quoted table & column names --- test/CDB_SyncTableTest.sql | 32 +++++++++++++++++++++++++++++++- test/CDB_SyncTableTest_expect | 31 +++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 1 deletion(-) diff --git a/test/CDB_SyncTableTest.sql b/test/CDB_SyncTableTest.sql index 53d1362..fc2711e 100644 --- a/test/CDB_SyncTableTest.sql +++ b/test/CDB_SyncTableTest.sql @@ -57,8 +57,38 @@ SELECT * FROM test_sync_dest ORDER BY cartodb_id; \set QUIET on SET client_min_messages TO error; CREATE SCHEMA "sch-ema"; +CREATE TABLE "test_sync_source2" AS SELECT * FROM test_sync_source; \set QUIET off -SELECT cartodb.CDB_SyncTable('test_sync_source', 'sch-ema', 'test_sync_dest'); +SELECT cartodb.CDB_SyncTable('test_sync_source2', 'sch-ema', 'test_sync_dest'); +INSERT INTO test_sync_source2(cartodb_id, lat, lon, name) VALUES (6, 6.0, 6.0, 'papaya'); +DELETE FROM test_sync_source2 WHERE cartodb_id = 4; +UPDATE test_sync_source2 SET lat = 2.5 WHERE cartodb_id = 2; +SET client_min_messages TO notice; +SELECT cartodb.CDB_SyncTable('test_sync_source2', 'sch-ema', 'test_sync_dest'); + +\echo 'It will work with table names that need quoting' +\set QUIET on +SET client_min_messages TO error; +CREATE TABLE "test-sync-source" AS SELECT * FROM test_sync_source; +\set QUIET off +SELECT cartodb.CDB_SyncTable('test-sync-source', 'public', 'test-sync-dest'); +INSERT INTO "test-sync-source"(cartodb_id, lat, lon, name) VALUES (6, 6.0, 6.0, 'papaya'); +DELETE FROM "test-sync-source" WHERE cartodb_id = 4; +UPDATE "test-sync-source" SET lat = 2.5 WHERE cartodb_id = 2; +SET client_min_messages TO notice; +SELECT cartodb.CDB_SyncTable('test-sync-source', 'public', 'test-sync-dest'); + +\echo 'It will work with column names that need quoting' +\set QUIET on +SET client_min_messages TO error; +ALTER TABLE test_sync_source ADD COLUMN "a-column" int; +\set QUIET off +SELECT cartodb.CDB_SyncTable('test_sync_source', 'public', 'test_sync_dest2'); +INSERT INTO test_sync_source(cartodb_id, lat, lon, name) VALUES (6, 6.0, 6.0, 'papaya'); +DELETE FROM test_sync_source WHERE cartodb_id = 4; +UPDATE test_sync_source SET lat = 2.5 WHERE cartodb_id = 2; +SET client_min_messages TO notice; +SELECT cartodb.CDB_SyncTable('test_sync_source', 'public', 'test_sync_dest2'); -- Cleanup ROLLBACK; diff --git a/test/CDB_SyncTableTest_expect b/test/CDB_SyncTableTest_expect index 5963a01..01cb358 100644 --- a/test/CDB_SyncTableTest_expect +++ b/test/CDB_SyncTableTest_expect @@ -60,4 +60,35 @@ NOTICE: MODIFIED 0 row(s) 5|0101000020E610000000000000000014400000000000001440|0101000020110F000099476EE86AFC20413E7EB983F2012141|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