summaryrefslogtreecommitdiff
path: root/contrib/dblink/expected
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2010-06-15 19:04:15 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2010-06-15 19:04:15 +0000
commit3b3706d2cfb6d7a29ee5adb2fb6f2bf363256508 (patch)
tree02de41e71a8c04336a4bf1e804937a3e226a36b5 /contrib/dblink/expected
parent4a969085753d4e6586e60e613f160bf3a956b75d (diff)
downloadpostgresql-3b3706d2cfb6d7a29ee5adb2fb6f2bf363256508.tar.gz
Fix dblink_build_sql_insert() and related functions to handle dropped
columns correctly. In passing, get rid of some dead logic in the underlying get_sql_insert() etc functions --- there is no caller that will pass null value-arrays to them. Per bug report from Robert Voinea.
Diffstat (limited to 'contrib/dblink/expected')
-rw-r--r--contrib/dblink/expected/dblink.out37
1 files changed, 37 insertions, 0 deletions
diff --git a/contrib/dblink/expected/dblink.out b/contrib/dblink/expected/dblink.out
index e553061773..454588d94c 100644
--- a/contrib/dblink/expected/dblink.out
+++ b/contrib/dblink/expected/dblink.out
@@ -887,3 +887,40 @@ SELECT dblink_disconnect();
OK
(1 row)
+-- test dropped columns in dblink_build_sql_insert, dblink_build_sql_update
+CREATE TEMP TABLE test_dropped
+(
+ col1 INT NOT NULL DEFAULT 111,
+ id SERIAL PRIMARY KEY,
+ col2 INT NOT NULL DEFAULT 112,
+ col2b INT NOT NULL DEFAULT 113
+);
+NOTICE: CREATE TABLE will create implicit sequence "test_dropped_id_seq" for serial column "test_dropped.id"
+NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "test_dropped_pkey" for table "test_dropped"
+INSERT INTO test_dropped VALUES(default);
+ALTER TABLE test_dropped
+ DROP COLUMN col1,
+ DROP COLUMN col2,
+ ADD COLUMN col3 VARCHAR(10) NOT NULL DEFAULT 'foo',
+ ADD COLUMN col4 INT NOT NULL DEFAULT 42;
+SELECT dblink_build_sql_insert('test_dropped', '2', 1,
+ ARRAY['1'::TEXT], ARRAY['2'::TEXT]);
+ dblink_build_sql_insert
+---------------------------------------------------------------------------
+ INSERT INTO test_dropped(id,col2b,col3,col4) VALUES('2','113','foo','42')
+(1 row)
+
+SELECT dblink_build_sql_update('test_dropped', '2', 1,
+ ARRAY['1'::TEXT], ARRAY['2'::TEXT]);
+ dblink_build_sql_update
+-------------------------------------------------------------------------------------------
+ UPDATE test_dropped SET id = '2', col2b = '113', col3 = 'foo', col4 = '42' WHERE id = '2'
+(1 row)
+
+SELECT dblink_build_sql_delete('test_dropped', '2', 1,
+ ARRAY['2'::TEXT]);
+ dblink_build_sql_delete
+-----------------------------------------
+ DELETE FROM test_dropped WHERE id = '2'
+(1 row)
+