Add CVS \r\n regression tests.
authorBruce Momjian <bruce@momjian.us>
Wed, 16 Mar 2005 06:05:53 +0000 (06:05 +0000)
committerBruce Momjian <bruce@momjian.us>
Wed, 16 Mar 2005 06:05:53 +0000 (06:05 +0000)
Andrew Dunstan

src/test/regress/input/copy.source
src/test/regress/output/copy.source

index 47f06a7ae8fcc99a036f2b2cb701b685b774cd9e..184a0ec1bcf172e9f3d137dd10e532b73b05c14a 100644 (file)
@@ -54,3 +54,36 @@ COPY bt_txt_heap FROM '@abs_srcdir@/data/desc.data';
 
 COPY bt_f8_heap FROM '@abs_srcdir@/data/hash.data';
 
+--- test copying in CSV mode with various styles
+--- of embedded line ending characters
+
+create temp table copytest (
+   style   text,
+   test    text,
+   filler  int);
+
+insert into copytest values('DOS','abc\r\ndef',1);
+insert into copytest values('Unix','abc\ndef',2);
+insert into copytest values('Mac','abc\rdef',3);
+insert into copytest values('esc\\ape','a\\r\\\r\\\n\\nb',4);
+
+copy copytest to '@abs_builddir@/results/copytest.csv' csv;
+
+create temp table copytest2 (like copytest);
+
+copy copytest2 from '@abs_builddir@/results/copytest.csv' csv;
+
+select * from copytest except select * from copytest2;
+
+truncate copytest2;
+
+--- same test but with an escape char different from quote char
+
+copy copytest to '@abs_builddir@/results/copytest.csv' csv quote '\'' escape '\\';
+
+copy copytest2 from '@abs_builddir@/results/copytest.csv' csv quote '\'' escape '\\';
+
+select * from copytest except select * from copytest2;
+
+
+
index a44eae8a7eeff806d727d657f49b00fd5d1f040a..35ef9dce7eaf9bde6f14fa45040ed10e447efea6 100644 (file)
@@ -31,3 +31,30 @@ COPY bt_i4_heap FROM '@abs_srcdir@/data/desc.data';
 COPY bt_name_heap FROM '@abs_srcdir@/data/hash.data';
 COPY bt_txt_heap FROM '@abs_srcdir@/data/desc.data';
 COPY bt_f8_heap FROM '@abs_srcdir@/data/hash.data';
+--- test copying in CSV mode with various styles
+--- of embedded line ending characters
+create temp table copytest (
+   style   text,
+   test    text,
+   filler  int);
+insert into copytest values('DOS','abc\r\ndef',1);
+insert into copytest values('Unix','abc\ndef',2);
+insert into copytest values('Mac','abc\rdef',3);
+insert into copytest values('esc\\ape','a\\r\\\r\\\n\\nb',4);
+copy copytest to '@abs_builddir@/results/copytest.csv' csv;
+create temp table copytest2 (like copytest);
+copy copytest2 from '@abs_builddir@/results/copytest.csv' csv;
+select * from copytest except select * from copytest2;
+ style | test | filler 
+-------+------+--------
+(0 rows)
+
+truncate copytest2;
+--- same test but with an escape char different from quote char
+copy copytest to '@abs_builddir@/results/copytest.csv' csv quote '\'' escape '\\';
+copy copytest2 from '@abs_builddir@/results/copytest.csv' csv quote '\'' escape '\\';
+select * from copytest except select * from copytest2;
+ style | test | filler 
+-------+------+--------
+(0 rows)
+