From 453b3af8720ec1f94afef586e923daa7c4d8f984 Mon Sep 17 00:00:00 2001 From: Guido Fioravantti Date: Fri, 30 Oct 2015 17:49:27 +0100 Subject: [PATCH 1/7] Removes extra d in delimiter 155 --- scripts-available/CDB_CartodbfyTable.sql | 2 +- test/CDB_CartodbfyTableTest.sql | 7 +++++++ test/CDB_CartodbfyTableTest_expect | 4 ++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/scripts-available/CDB_CartodbfyTable.sql b/scripts-available/CDB_CartodbfyTable.sql index 849238e..172c372 100644 --- a/scripts-available/CDB_CartodbfyTable.sql +++ b/scripts-available/CDB_CartodbfyTable.sql @@ -166,7 +166,7 @@ BEGIN AS seq INTO rec2; -- Reset sequence name - sql := Format('ALTER SEQUENCE %s RESTART WITH %d', rec2.seq::text, rec.max + 1); + sql := Format('ALTER SEQUENCE %s RESTART WITH %', rec2.seq::text, rec.max + 1); RAISE DEBUG 'Running %', sql; EXECUTE sql; diff --git a/test/CDB_CartodbfyTableTest.sql b/test/CDB_CartodbfyTableTest.sql index fc6bd8a..280e8c5 100644 --- a/test/CDB_CartodbfyTableTest.sql +++ b/test/CDB_CartodbfyTableTest.sql @@ -319,6 +319,13 @@ SELECT CDB_CartodbfyTableCheck('test', 'Table with non unique and null cartodb_i SELECT cartodb_id, cartodb_id_0 from test; DROP TABLE test; +-- _CDB_create_cartodb_id_column with cartodb_id already present +CREATE TABLE test (cartodb_id integer); + +SELECT _CDB_Create_Cartodb_ID_Column('test'::regclass); +SELECT column_name FROM information_schema.columns WHERE table_name = 'test' AND column_name = '_cartodb_id0'; + +DROP TABLE test; -- TODO: table with existing custom-triggered the_geom diff --git a/test/CDB_CartodbfyTableTest_expect b/test/CDB_CartodbfyTableTest_expect index 6103dc8..0e866e9 100644 --- a/test/CDB_CartodbfyTableTest_expect +++ b/test/CDB_CartodbfyTableTest_expect @@ -102,5 +102,9 @@ Table with non unique and null cartodb_id #148 cartodbfied fine 3| 4|2 DROP TABLE +CREATE TABLE + +_cartodb_id0 +DROP TABLE DROP FUNCTION DROP FUNCTION From 081ed36aae65e3fb78499378b28a77a9b279570a Mon Sep 17 00:00:00 2001 From: Guido Fioravantti Date: Mon, 2 Nov 2015 11:47:14 +0100 Subject: [PATCH 2/7] Fixes NULL max in rec 155 --- scripts-available/CDB_CartodbfyTable.sql | 4 ++-- test/CDB_CartodbfyTableTest.sql | 10 +++++++++- test/CDB_CartodbfyTableTest_expect | 3 +++ 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/scripts-available/CDB_CartodbfyTable.sql b/scripts-available/CDB_CartodbfyTable.sql index 172c372..44127c7 100644 --- a/scripts-available/CDB_CartodbfyTable.sql +++ b/scripts-available/CDB_CartodbfyTable.sql @@ -157,7 +157,7 @@ BEGIN EXECUTE sql; -- Find max value - sql := Format('SELECT max(cartodb_id) FROM %s', reloid::text); + sql := Format('SELECT coalesce(max(cartodb_id), 0) as max FROM %s', reloid::text); RAISE DEBUG 'Running %', sql; EXECUTE sql INTO rec; @@ -166,7 +166,7 @@ BEGIN AS seq INTO rec2; -- Reset sequence name - sql := Format('ALTER SEQUENCE %s RESTART WITH %', rec2.seq::text, rec.max + 1); + sql := Format('ALTER SEQUENCE %s RESTART WITH %s', rec2.seq::text, rec.max + 1); RAISE DEBUG 'Running %', sql; EXECUTE sql; diff --git a/test/CDB_CartodbfyTableTest.sql b/test/CDB_CartodbfyTableTest.sql index 280e8c5..367f31a 100644 --- a/test/CDB_CartodbfyTableTest.sql +++ b/test/CDB_CartodbfyTableTest.sql @@ -319,7 +319,7 @@ SELECT CDB_CartodbfyTableCheck('test', 'Table with non unique and null cartodb_i SELECT cartodb_id, cartodb_id_0 from test; DROP TABLE test; --- _CDB_create_cartodb_id_column with cartodb_id already present +-- _CDB_create_cartodb_id_column with cartodb_id integer already present CREATE TABLE test (cartodb_id integer); SELECT _CDB_Create_Cartodb_ID_Column('test'::regclass); @@ -327,6 +327,14 @@ SELECT column_name FROM information_schema.columns WHERE table_name = 'test' AND DROP TABLE test; +-- _CDB_create_cartodb_id_column with cartodb_id text already present +CREATE TABLE test (cartodb_id text); + +SELECT _CDB_Create_Cartodb_ID_Column('test'::regclass); +SELECT column_name FROM information_schema.columns WHERE table_name = 'test' AND column_name = '_cartodb_id0'; + +DROP TABLE test; + -- TODO: table with existing custom-triggered the_geom DROP FUNCTION CDB_CartodbfyTableCheck(regclass, text); diff --git a/test/CDB_CartodbfyTableTest_expect b/test/CDB_CartodbfyTableTest_expect index 0e866e9..6317b33 100644 --- a/test/CDB_CartodbfyTableTest_expect +++ b/test/CDB_CartodbfyTableTest_expect @@ -104,6 +104,9 @@ Table with non unique and null cartodb_id #148 cartodbfied fine DROP TABLE CREATE TABLE +DROP TABLE +CREATE TABLE + _cartodb_id0 DROP TABLE DROP FUNCTION From 6252907de28e84d310b79e8006b8b29f1eb6822d Mon Sep 17 00:00:00 2001 From: Guido Fioravantti Date: Thu, 5 Nov 2015 17:11:27 +0100 Subject: [PATCH 3/7] Rises verbosity level before tests for _CDB_create_cartodb_id_column 155 --- test/CDB_CartodbfyTableTest.sql | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/CDB_CartodbfyTableTest.sql b/test/CDB_CartodbfyTableTest.sql index 367f31a..5614786 100644 --- a/test/CDB_CartodbfyTableTest.sql +++ b/test/CDB_CartodbfyTableTest.sql @@ -319,6 +319,7 @@ SELECT CDB_CartodbfyTableCheck('test', 'Table with non unique and null cartodb_i SELECT cartodb_id, cartodb_id_0 from test; DROP TABLE test; +\set VERBOSITY terse -- _CDB_create_cartodb_id_column with cartodb_id integer already present CREATE TABLE test (cartodb_id integer); @@ -334,6 +335,7 @@ SELECT _CDB_Create_Cartodb_ID_Column('test'::regclass); SELECT column_name FROM information_schema.columns WHERE table_name = 'test' AND column_name = '_cartodb_id0'; DROP TABLE test; +\set VERBOSITY default -- TODO: table with existing custom-triggered the_geom From 545196811f598c6262fb52e89f369d641f9dd60a Mon Sep 17 00:00:00 2001 From: Guido Fioravantti Date: Fri, 6 Nov 2015 14:41:12 +0100 Subject: [PATCH 4/7] Changes logger level to error 155 --- test/CDB_CartodbfyTableTest.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/CDB_CartodbfyTableTest.sql b/test/CDB_CartodbfyTableTest.sql index 5614786..76e62b0 100644 --- a/test/CDB_CartodbfyTableTest.sql +++ b/test/CDB_CartodbfyTableTest.sql @@ -319,7 +319,7 @@ SELECT CDB_CartodbfyTableCheck('test', 'Table with non unique and null cartodb_i SELECT cartodb_id, cartodb_id_0 from test; DROP TABLE test; -\set VERBOSITY terse +SET client_min_messages TO notice; -- _CDB_create_cartodb_id_column with cartodb_id integer already present CREATE TABLE test (cartodb_id integer); @@ -335,7 +335,7 @@ SELECT _CDB_Create_Cartodb_ID_Column('test'::regclass); SELECT column_name FROM information_schema.columns WHERE table_name = 'test' AND column_name = '_cartodb_id0'; DROP TABLE test; -\set VERBOSITY default +SET client_min_messages TO error; -- TODO: table with existing custom-triggered the_geom From 7cf0d02935831302683ae34ca992310d1c54e5cd Mon Sep 17 00:00:00 2001 From: Guido Fioravantti Date: Fri, 6 Nov 2015 15:11:08 +0100 Subject: [PATCH 5/7] Fixes expected 155 --- test/CDB_CartodbfyTableTest_expect | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/test/CDB_CartodbfyTableTest_expect b/test/CDB_CartodbfyTableTest_expect index 6317b33..5c464ad 100644 --- a/test/CDB_CartodbfyTableTest_expect +++ b/test/CDB_CartodbfyTableTest_expect @@ -102,12 +102,21 @@ Table with non unique and null cartodb_id #148 cartodbfied fine 3| 4|2 DROP TABLE +SET CREATE TABLE +NOTICE: Column cartodb_id already exists +NOTICE: Existing cartodb_id field does not have an associated sequence, renaming +NOTICE: Trying to recover data from _cartodb_id0 column DROP TABLE CREATE TABLE +NOTICE: Column cartodb_id already exists +NOTICE: Existing cartodb_id field is of invalid type text (need int2, int4 or int8), renaming +NOTICE: Trying to recover data from _cartodb_id0 column +NOTICE: Could not initialize cartodb_id with existing values: result of USING clause for column "cartodb_id" cannot be cast automatically to type integer (42804) _cartodb_id0 DROP TABLE +SET DROP FUNCTION DROP FUNCTION From cce63f0eaeec8be4d0b416e1d492adf5ae124ab2 Mon Sep 17 00:00:00 2001 From: Guido Fioravantti Date: Fri, 6 Nov 2015 16:26:03 +0100 Subject: [PATCH 6/7] Adds ::integer cast for USING 155 --- scripts-available/CDB_CartodbfyTable.sql | 2 +- test/CDB_CartodbfyTableTest_expect | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/scripts-available/CDB_CartodbfyTable.sql b/scripts-available/CDB_CartodbfyTable.sql index 44127c7..4d44c22 100644 --- a/scripts-available/CDB_CartodbfyTable.sql +++ b/scripts-available/CDB_CartodbfyTable.sql @@ -152,7 +152,7 @@ BEGIN -- Copy existing values to new field -- NOTE: using ALTER is a workaround to a PostgreSQL bug and is also known to be faster for tables with many rows -- See http://www.postgresql.org/message-id/20140530143150.GA11051@localhost - sql := Format('ALTER TABLE %s ALTER cartodb_id TYPE int USING %I', reloid::text, new_name); + sql := Format('ALTER TABLE %s ALTER cartodb_id TYPE int USING %I::integer', reloid::text, new_name); RAISE DEBUG 'Running %', sql; EXECUTE sql; diff --git a/test/CDB_CartodbfyTableTest_expect b/test/CDB_CartodbfyTableTest_expect index 5c464ad..a3057fb 100644 --- a/test/CDB_CartodbfyTableTest_expect +++ b/test/CDB_CartodbfyTableTest_expect @@ -113,7 +113,6 @@ CREATE TABLE NOTICE: Column cartodb_id already exists NOTICE: Existing cartodb_id field is of invalid type text (need int2, int4 or int8), renaming NOTICE: Trying to recover data from _cartodb_id0 column -NOTICE: Could not initialize cartodb_id with existing values: result of USING clause for column "cartodb_id" cannot be cast automatically to type integer (42804) _cartodb_id0 DROP TABLE From 4803abf365f83d12d5a4ab3852e149994df1ba69 Mon Sep 17 00:00:00 2001 From: Guido Fioravantti Date: Fri, 6 Nov 2015 16:32:56 +0100 Subject: [PATCH 7/7] Fix typo in expected 155 --- test/CDB_CartodbfyTableTest_expect | 1 - 1 file changed, 1 deletion(-) diff --git a/test/CDB_CartodbfyTableTest_expect b/test/CDB_CartodbfyTableTest_expect index a3057fb..e63dbd3 100644 --- a/test/CDB_CartodbfyTableTest_expect +++ b/test/CDB_CartodbfyTableTest_expect @@ -114,7 +114,6 @@ NOTICE: Column cartodb_id already exists NOTICE: Existing cartodb_id field is of invalid type text (need int2, int4 or int8), renaming NOTICE: Trying to recover data from _cartodb_id0 column -_cartodb_id0 DROP TABLE SET DROP FUNCTION