hawq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From y...@apache.org
Subject [10/10] incubator-hawq git commit: HAWQ-898. Add feature test for COPY with new test framework.
Date Tue, 26 Jul 2016 12:06:22 GMT
HAWQ-898. Add feature test for COPY with new test framework.


Project: http://git-wip-us.apache.org/repos/asf/incubator-hawq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-hawq/commit/b5960312
Tree: http://git-wip-us.apache.org/repos/asf/incubator-hawq/tree/b5960312
Diff: http://git-wip-us.apache.org/repos/asf/incubator-hawq/diff/b5960312

Branch: refs/heads/master
Commit: b59603125b28a3ea2ce860feaf29bad9cb2fa0dd
Parents: faf5047
Author: YI JIN <yjin@pivotal.io>
Authored: Tue Jul 26 22:05:58 2016 +1000
Committer: YI JIN <yjin@pivotal.io>
Committed: Tue Jul 26 22:05:58 2016 +1000

----------------------------------------------------------------------
 src/test/feature/UtilityCommand/ans/gpcopy.ans |   574 -
 src/test/feature/UtilityCommand/sql/gpcopy.sql |   572 -
 src/test/feature/UtilityCommand/test_cmd.cpp   |    15 -
 src/test/feature/utility/ans/copy-stdio.ans    |   165 +
 src/test/feature/utility/ans/gpcopy.ans        |   574 +
 src/test/feature/utility/data/agg.data         |     4 +
 src/test/feature/utility/data/array.data       |   100 +
 src/test/feature/utility/data/desc.data        | 10000 ++++++++++++++++++
 src/test/feature/utility/data/emp.data         |     3 +
 src/test/feature/utility/data/hash.data        | 10000 ++++++++++++++++++
 src/test/feature/utility/data/onek.data        |  1000 ++
 src/test/feature/utility/data/person.data      |    50 +
 src/test/feature/utility/data/real_city.data   |     5 +
 src/test/feature/utility/data/rect.data        |  3378 ++++++
 src/test/feature/utility/data/streets.data     |  5124 +++++++++
 src/test/feature/utility/data/stud_emp.data    |     3 +
 src/test/feature/utility/data/student.data     |     2 +
 src/test/feature/utility/data/tenk.data        | 10000 ++++++++++++++++++
 src/test/feature/utility/sql/copy-stdio.sql    |   131 +
 src/test/feature/utility/sql/gpcopy.sql        |   572 +
 src/test/feature/utility/test_cmd.cpp          |    15 +
 src/test/feature/utility/test_copy.cpp         |   212 +
 src/test/regress/input/copy.source             |   224 -
 src/test/regress/known_good_schedule           |     1 -
 src/test/regress/output/copy.source            |   214 -
 25 files changed, 41338 insertions(+), 1600 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/b5960312/src/test/feature/UtilityCommand/ans/gpcopy.ans
----------------------------------------------------------------------
diff --git a/src/test/feature/UtilityCommand/ans/gpcopy.ans b/src/test/feature/UtilityCommand/ans/gpcopy.ans
deleted file mode 100644
index c0efb23..0000000
--- a/src/test/feature/UtilityCommand/ans/gpcopy.ans
+++ /dev/null
@@ -1,574 +0,0 @@
--- start_ignore
-SET SEARCH_PATH=TestCommand_TestCOPY;
-SET
--- end_ignore
---
--- This test suite tests COPY code that is unique to greenplum db. 
---
--- ######################################################
--- different distribution columns and distribution types
--- ######################################################
-CREATE TABLE copy_regression_hash1(a text, b text, c text) distributed by (b);
-CREATE TABLE
-CREATE TABLE copy_regression_hash2(a text, b text, c text) distributed by (a,c);
-CREATE TABLE
-CREATE TABLE copy_regression_hash3(a varchar, b int, c int, d text) distributed by (a,c,d);
-CREATE TABLE
-CREATE TABLE copy_regression_hash4(a int[], b text) distributed by (a);
-CREATE TABLE
-CREATE TABLE copy_regression_hash5(a text[][]) distributed by (a);
-CREATE TABLE
-CREATE TABLE copy_regression_hash6(a int[], b text[]) distributed by (a,b);
-CREATE TABLE
-CREATE TABLE copy_regression_hash7(a text,b text) distributed randomly;
-CREATE TABLE
--- single key, not first
-COPY copy_regression_hash1 from stdin segment reject limit 10 rows;
-COPY copy_regression_hash1(b,c,a) from stdin segment reject limit 10 rows;
-SELECT * FROM copy_regression_hash1;
-   a    |   b    |   c    
---------+--------+--------
- a data | b data | c data
- a data | b data | c data
-(2 rows)
-
--- two keys
-COPY copy_regression_hash2 from stdin;
-COPY copy_regression_hash2(b,c,a) from stdin;
-SELECT * FROM copy_regression_hash2;
-   a    |   b    |   c    
---------+--------+--------
- a data | b data | c data
- a data | b data | c data
-(2 rows)
-
--- three keys
-COPY copy_regression_hash3 from stdin;
-COPY copy_regression_hash3(c,d,b,a) from stdin;
-COPY copy_regression_hash3(a,c) from stdin;
-COPY copy_regression_hash3(d) from stdin;
-SELECT * FROM copy_regression_hash3;
-   a    | b | c |   d    
---------+---+---+--------
- a data | 2 | 3 | d data
- a data | 2 | 3 | d data
- a data |   | 3 | 
-        |   |   | d data
-(4 rows)
-
--- hash on int array
-COPY copy_regression_hash4 from stdin;
-SELECT * FROM copy_regression_hash4 ORDER BY a;
-        a         |             b              
-------------------+----------------------------
- {1,2,3,4,5}      | hashed on an integer array
- {10,20,30,40,50} | hashed on an integer array
-(2 rows)
-
--- hash on 2 dim varchar array
-COPY copy_regression_hash5 from stdin;
-SELECT * FROM copy_regression_hash5 ORDER BY a;
-                        a                        
--------------------------------------------------
- {{hashing,on},{"two dimentional","text array"}}
-(1 row)
-
--- hash on int array and varchar array
-COPY copy_regression_hash6 from stdin;
-SELECT * FROM copy_regression_hash6 ORDER BY a;
-      a      |                   b                    
--------------+----------------------------------------
- {1,2,3,4,5} | {hashing,on,intarray,and,varchararray}
-(1 row)
-
--- hash randomly
-COPY copy_regression_hash7 from stdin;
-SELECT * FROM copy_regression_hash7;
-   a    |   b    
---------+--------
- a data | b data
- a data | b data
-(2 rows)
-
-DROP TABLE copy_regression_hash1;
-DROP TABLE
-DROP TABLE copy_regression_hash2;
-DROP TABLE
-DROP TABLE copy_regression_hash3;
-DROP TABLE
-DROP TABLE copy_regression_hash4;
-DROP TABLE
-DROP TABLE copy_regression_hash5;
-DROP TABLE
-DROP TABLE copy_regression_hash6;
-DROP TABLE
-DROP TABLE copy_regression_hash7;
-DROP TABLE
--- ######################################################
--- default values and default functions
--- ######################################################
-CREATE TABLE copy_regression_default1(a text not null default 'a default data', b text not null default 'b default data') distributed by(a);
-CREATE TABLE
-CREATE TABLE copy_regression_default2(a text, b serial, c text) distributed by(a);
-psql:/tmp/TestCommand_TestCOPY.sql:99: NOTICE:  CREATE TABLE will create implicit sequence "copy_regression_default2_b_seq" for serial column "copy_regression_default2.b"
-CREATE TABLE
-CREATE TABLE copy_regression_default3(a serial, b text, c text) distributed by(a);
-psql:/tmp/TestCommand_TestCOPY.sql:100: NOTICE:  CREATE TABLE will create implicit sequence "copy_regression_default3_a_seq" for serial column "copy_regression_default3.a"
-CREATE TABLE
--- constant defaults on key and non key attributes
-COPY copy_regression_default1(a) from stdin;
-COPY copy_regression_default1(b) from stdin;
-SELECT * FROM copy_regression_default1;
-       a        |       b        
-----------------+----------------
- a data         | b default data
- a default data | b data
-(2 rows)
-
--- non constant default on non hash key in both text and csv
-COPY copy_regression_default2(a,c) from stdin;
-COPY copy_regression_default2(a,c) from stdin csv;
-SELECT * FROM copy_regression_default2;
-   a    | b |    c    
---------+---+---------
- a data | 1 | c data
- a data | 2 | c data 
- a data | 3 | c data
- a data | 4 | c data
- a data | 5 | c data
- a data | 6 | c data
-(6 rows)
-
--- non constant default on hash key in both text and csv
-COPY copy_regression_default3(b,c) from stdin;
-COPY copy_regression_default3(b,c) from stdin csv;
-SELECT * FROM copy_regression_default2;
-   a    | b |    c    
---------+---+---------
- a data | 1 | c data
- a data | 2 | c data 
- a data | 3 | c data
- a data | 4 | c data
- a data | 5 | c data
- a data | 6 | c data
-(6 rows)
-
-DROP TABLE copy_regression_default1;
-DROP TABLE
-DROP TABLE copy_regression_default2;
-DROP TABLE
-DROP TABLE copy_regression_default3;
-DROP TABLE
--- ######################################################
--- COPY with OIDS
--- ######################################################
-CREATE TABLE copy_regression_oids(a text) WITH OIDS;
-psql:/tmp/TestCommand_TestCOPY.sql:148: NOTICE:  OIDS=TRUE is not recommended for user-created tables. Use OIDS=FALSE to prevent wrap-around of the OID counter
-CREATE TABLE
-COPY copy_regression_oids from stdin with oids delimiter '|';
-COPY copy_regression_oids from stdin with oids csv;
-SELECT * FROM copy_regression_oids ORDER BY oid;
-      a      
--------------
- a text data
- a text data
- a text data
- a text data
-(4 rows)
-
-DROP TABLE copy_regression_oids;
-DROP TABLE
--- ######################################################
--- COPY OUT
--- ######################################################
-CREATE TABLE copy_regression_out1(a text, b varchar, c int[], d bool) distributed by(a);
-CREATE TABLE
--- populating table with data for copy out tests. NOTE: since we can't control the order
--- of rows COPY OUT produces from the segdb, we must have only one row for each test table.
-COPY copy_regression_out1 from stdin null 'nullval';
--- copy out default parameters text format..
-COPY copy_regression_out1 to stdout;
-a copyout data line 2	\N	{2,2,2}	t
--- copy out '|' delimiter 'mynull' null..
-COPY copy_regression_out1 to stdout with delimiter '|' null 'mynull';
-a copyout data line 2|mynull|{2,2,2}|t
--- copy out '|' delimiter "i'm null" null..
-COPY copy_regression_out1 to stdout with delimiter '|' null 'i''m null';
-a copyout data line 2|i'm null|{2,2,2}|t
--- copy out default parameters csv format..
-COPY copy_regression_out1 to stdout with csv;
-a copyout data line 2,,"{2,2,2}",t
--- copy out default parameters csv format with header..
-COPY copy_regression_out1 to stdout with csv header;
-a,b,c,d
-a copyout data line 2,,"{2,2,2}",t
--- copy out partial and mixed column list (c,a,b)..
-COPY copy_regression_out1(c,a,b) to stdout;
-{2,2,2}	a copyout data line 2	\N
--- copy out csv default quotes and escapes and special cases..
-COPY copy_regression_out1 to stdout with csv quote ''''; -- escape should be the same as quote
-a copyout data line 2,,'{2,2,2}',t
-COPY copy_regression_out1 to stdout with csv escape '''';
-a copyout data line 2,,"{2,2,2}",t
-COPY copy_regression_out1 to stdout with csv quote '''' escape E'\\'; -- make sure E'' is accepted
-a copyout data line 2,,'{2,2,2}',t
-DROP TABLE copy_regression_out1;
-DROP TABLE
--- ######################################################
--- Zero column table
--- ######################################################
-CREATE TABLE copy_regression_nocol();
-CREATE TABLE
--- copy in and out of zero column table..
-COPY copy_regression_nocol from stdin;
-COPY copy_regression_nocol from stdin;
-psql:/tmp/TestCommand_TestCOPY.sql:214: ERROR:  extra data after last expected column
-CONTEXT:  COPY copy_regression_nocol, line 1: "we should get an "extra data" error here"
-COPY copy_regression_nocol from stdin with csv;
-COPY copy_regression_nocol from stdin with csv; -- should fail
-psql:/tmp/TestCommand_TestCOPY.sql:219: ERROR:  extra data after last expected column
-CONTEXT:  COPY copy_regression_nocol, line 1: "we should get an "extra data" error here"
-COPY copy_regression_nocol to stdout;
-COPY copy_regression_nocol to stdout with csv;
-DROP TABLE copy_regression_nocol;
-DROP TABLE
--- ######################################################
--- Various text format escape and default format tests
--- ######################################################
--- for text format
-CREATE TABLE copy_regression_text1(a varchar ,b varchar, c text, d text, e text) distributed by(a);
-CREATE TABLE
-CREATE TABLE copy_regression_text2(a varchar ,b varchar, c text, d text, e text) distributed by(a);
-CREATE TABLE
-CREATE TABLE copy_regression_text3(a varchar ,b varchar, c text, d text, e text) distributed by(a);
-CREATE TABLE
--- column order tests
-COPY copy_regression_text1 from stdin; 
-COPY copy_regression_text1(a,b,c,d,e) from stdin;
-COPY copy_regression_text1(e,d,c,b,a) from stdin;
-COPY copy_regression_text1(c,a,b,e,d) from stdin;
-COPY copy_regression_text1(a,c) from stdin;
-SELECT * FROM copy_regression_text1;
-      a      |      b      |      c      |      d      |      e      
--------------+-------------+-------------+-------------+-------------
- a text data | b text data | c text data | d text data | e text data
- a text data | b text data | c text data | d text data | e text data
- a text data | b text data | c text data | d text data | e text data
- a text data | b text data | c text data | d text data | e text data
- a text data |             | c text data |             | 
-(5 rows)
-
--- null print tests
-COPY copy_regression_text2 from stdin;
-COPY copy_regression_text2 from stdin with null 'nullvalue';
-COPY copy_regression_text2 from stdin with delimiter '|' null '';
-COPY copy_regression_text2 from stdin with delimiter '|' null 'i''m null';
-SELECT * FROM copy_regression_text2;
-      a      |      b      |      c      | d |      e      
--------------+-------------+-------------+---+-------------
- a text data |             | c text data |   | e text data
- a text data |             | c text data |   | 
- a text data |             | c text data |   | e text data
- a text data | b text data |             |   | e text data
-             | b text data | c text data |   | e text data
-(5 rows)
-
--- escape tests
-COPY copy_regression_text3 from stdin with delimiter '|' escape '#';
-COPY copy_regression_text3 from stdin with delimiter '|' escape 'off';
-COPY copy_regression_text3 from stdin with delimiter '|';
-COPY copy_regression_text3 from stdin with delimiter '|';
-psql:/tmp/TestCommand_TestCOPY.sql:290: ERROR:  missing data for column "b"
-CONTEXT:  COPY copy_regression_text3, line 1: "an embedded linefeed is not supported\"
-COPY copy_regression_text3 from stdin with delimiter '|';
-SELECT * FROM copy_regression_text3 ORDER BY b;
-                 a                  | b |      c      |      d      |      e       
-------------------------------------+---+-------------+-------------+--------------
- the at sign: @                     | 1 | c text data | d text data | e text data 
- an embedded delimiter | character  | 2 | c text data | d text data | e text data
- a single backslash \ in col a      | 3 | c text data | d text data | e text data
- a single backslash \ in col a      | 4 | c text data | d text data | e text data
- c:\\file\data\neew\path            | 5 | c text data | d text data | e text data
- the at sign: @                     | 6 | c text data | d text data | e text data
- an embedded linefeed sequence      | 7 | c text data | d text data | e text data
- in column a                                                          
- a single backslash \ in col a      | 8 | c text data | d text data | e text data
-(8 rows)
-
-DROP TABLE copy_regression_text1;
-DROP TABLE
-DROP TABLE copy_regression_text2;
-DROP TABLE
-DROP TABLE copy_regression_text3;
-DROP TABLE
--- ######################################################
--- Various text format escape and default format tests
--- ######################################################
--- for csv format
-CREATE TABLE copy_regression_csv1(a varchar ,b varchar, c text, d text, e text) distributed by(a);
-CREATE TABLE
-CREATE TABLE copy_regression_csv2(a varchar ,b varchar, c text, d text, e text) distributed by(a);
-CREATE TABLE
-CREATE TABLE copy_regression_csv3(a varchar ,b varchar, c text, d text, e text) distributed by(a);
-CREATE TABLE
--- column order tests
-COPY copy_regression_csv1 from stdin with csv; 
-COPY copy_regression_csv1(a,b,c,d,e) from stdin with csv;
-COPY copy_regression_csv1(e,d,c,b,a) from stdin with csv;
-COPY copy_regression_csv1(c,a,b,e,d) from stdin with csv;
-COPY copy_regression_csv1(a,c) from stdin with csv;
-SELECT * FROM copy_regression_csv1;
-      a      |      b      |      c      |      d      |      e      
--------------+-------------+-------------+-------------+-------------
- a  csv data | b  csv data | c  csv data | d  csv data | e  csv data
- a  csv data | b  csv data | c  csv data | d  csv data | e csv  data
- a  csv data | b  csv data | c  csv data | d  csv data | e  csv data
- a  csv data | b  csv data | c  csv data | d  csv data | e  csv data
- a  csv data |             | c  csv data |             | 
-(5 rows)
-
--- null print tests
-COPY copy_regression_csv2 from stdin with null E'\\N' csv ;
-COPY copy_regression_csv2 from stdin with null 'nullvalue' csv;
-COPY copy_regression_csv2 from stdin with delimiter '|' null '' csv;
-SELECT * FROM copy_regression_csv2;
-      a      |      b      |      c      | d |      e      
--------------+-------------+-------------+---+-------------
- a  csv data |             | c  csv data |   | e  csv data
- a  csv data |             | c  csv data |   | 
- a  csv data |             | c  csv data |   | e  csv data
-             | b  csv data | c  csv data |   | e  csv data
-(4 rows)
-
--- escape tests
-COPY copy_regression_csv3 from stdin with csv escape E'\\';
-COPY copy_regression_csv3 from stdin with delimiter E'\t' csv; --default quote and escape - "
-COPY copy_regression_csv3 from stdin with delimiter '|' csv quote ';' escape '*';
--- check defaults
-COPY copy_regression_csv3 from stdin with csv quote ''''; -- escape should be the same as quote
-COPY copy_regression_csv3 from stdin with csv escape '''';
-COPY copy_regression_csv3 from stdin with csv quote '''' escape E'\\'; -- make sure E'' is accepted
-SELECT * FROM copy_regression_csv3 ORDER BY b;
-                         a                         | b  |      c      |      d      |      e       
----------------------------------------------------+----+-------------+-------------+--------------
- an embedded delimiter (comma), is printed         | 01 | c  csv data | d  csv data | e  csv data 
- an embedded quote (doubleq)" is printed           | 02 | c  csv data | d  csv data | e  csv data 
- an embedded escape \ is printed                   | 03 | c  csv data | d  csv data | e  csv data
- an embedded line feed                             | 04 | c  csv data | d  csv data | e  csv data
- is printed                                                                           
- an embedded delimiter (tab)      is printed       | 05 | c  csv data | d  csv data | e  csv data 
- an embedded quote or escape (doubleq)" is printed | 06 | c  csv data | d  csv data | e  csv data 
- an embedded line feed                             | 07 | c  csv data | d  csv data | e  csv data
- is printed                                                                           
- an embedded delimiter (pipe)| is printed          | 08 | c  csv data | d  csv data | e  csv data 
- an embedded quote (semicolon); is printed         | 09 | c  csv data | d  csv data | e  csv data 
- an embedded escape (asterisk)* is printed         | 10 | c  csv data | d  csv data | e  csv data
- an embedded line feed                             | 11 | c  csv data | d  csv data | e  csv data
- is printed                                                                           
- an embedded single quote ' here                   | 12 | c csv data  | d csv data  | e csv data 
- an embedded single quote ' here                   | 13 | c csv data  | d csv data  | e csv data 
- an embedded backslash \ here                      | 14 | c csv data  | d csv data  | e csv data 
-(14 rows)
-
-DROP TABLE copy_regression_csv1;
-DROP TABLE
-DROP TABLE copy_regression_csv2;
-DROP TABLE
-DROP TABLE copy_regression_csv3;
-DROP TABLE
--- ######################################################
--- FILL MISSING FIELDS
--- ######################################################
-CREATE TABLE copy_regression_fill1(a int, b int, c text) distributed by(a);
-CREATE TABLE
-CREATE TABLE copy_regression_fill2(a int, b int, c text) distributed by(c);
-CREATE TABLE
--- text
-COPY copy_regression_fill1 from stdin with delimiter '|' fill missing fields;
-COPY copy_regression_fill1(c,b) from stdin with delimiter '|' fill missing fields;
-COPY copy_regression_fill2(a,c) from stdin with delimiter '|' fill missing fields;
-SELECT * FROM copy_regression_fill1 ORDER BY a,b,c;
- a | b |   c   
----+---+-------
- 1 | 1 | one
- 2 | 2 | 
- 3 |   | 
-   | 1 | one
-   |   | three
-   |   | two
-(6 rows)
-
-SELECT * FROM copy_regression_fill2 ORDER BY a,b,c;
- a | b |   c   
----+---+-------
- 1 |   | one
- 2 |   | 
- 3 |   | three
-(3 rows)
-
-TRUNCATE copy_regression_fill1;
-TRUNCATE TABLE
-TRUNCATE copy_regression_fill2;
-TRUNCATE TABLE
--- csv
-COPY copy_regression_fill1 from stdin with csv delimiter '|' fill missing fields;
-COPY copy_regression_fill1(c,b) from stdin with csv delimiter '|' fill missing fields;
-COPY copy_regression_fill2(a,c) from stdin with csv delimiter '|' fill missing fields;
-SELECT * FROM copy_regression_fill1 ORDER BY a,b,c;
- a | b |   c   
----+---+-------
- 1 | 1 | one
- 2 | 2 | 
- 3 |   | 
-   | 1 | one
-   |   | three
-   |   | two
-(6 rows)
-
-SELECT * FROM copy_regression_fill2 ORDER BY a,b,c;
- a | b |   c   
----+---+-------
- 1 |   | one
- 2 |   | 
- 3 |   | three
-(3 rows)
-
--- empty row should fail
-COPY copy_regression_fill1 from stdin with delimiter '|' fill missing fields;
-psql:/tmp/TestCommand_TestCOPY.sql:434: ERROR:  missing data for column "b", found empty data line
-CONTEXT:  COPY copy_regression_fill1, line 1: ""
-COPY copy_regression_fill2 from stdin with delimiter '|' fill missing fields;
-psql:/tmp/TestCommand_TestCOPY.sql:437: ERROR:  missing data for column "b", found empty data line
-CONTEXT:  COPY copy_regression_fill2, line 1: ""
-COPY copy_regression_fill1 from stdin with csv delimiter '|' fill missing fields;
-psql:/tmp/TestCommand_TestCOPY.sql:440: ERROR:  missing data for column "b", found empty data line
-CONTEXT:  COPY copy_regression_fill1, line 1: ""
-COPY copy_regression_fill2 from stdin with csv delimiter '|' fill missing fields;
-psql:/tmp/TestCommand_TestCOPY.sql:443: ERROR:  missing data for column "b", found empty data line
-CONTEXT:  COPY copy_regression_fill2, line 1: ""
-DROP TABLE copy_regression_fill1;
-DROP TABLE
-DROP TABLE copy_regression_fill2;
-DROP TABLE
--- ######################################################
--- FORCE NOT NULL
--- ######################################################
-CREATE TABLE copy_regression_fnn(a text, b text, c text) distributed by(a);
-CREATE TABLE
-COPY copy_regression_fnn from stdin with csv;
-SELECT * FROM copy_regression_fnn WHERE b is null order by a;
-  a  | b |  c  
------+---+-----
- one |   | one
- two |   | 
-(2 rows)
-
-SELECT * FROM copy_regression_fnn WHERE c is null order by a;
-  a  | b | c 
------+---+---
- two |   | 
-(1 row)
-
-TRUNCATE copy_regression_fnn;
-TRUNCATE TABLE
-COPY copy_regression_fnn from stdin with csv force not null b;
-SELECT * FROM copy_regression_fnn WHERE b is null order by a;
- a | b | c 
----+---+---
-(0 rows)
-
-SELECT * FROM copy_regression_fnn WHERE c is null order by a;
-  a  | b | c 
------+---+---
- two |   | 
-(1 row)
-
-TRUNCATE copy_regression_fnn;
-TRUNCATE TABLE
-COPY copy_regression_fnn from stdin with csv force not null b,c;
-SELECT * FROM copy_regression_fnn WHERE b is null order by a;
- a | b | c 
----+---+---
-(0 rows)
-
-SELECT * FROM copy_regression_fnn WHERE c is null order by a;
- a | b | c 
----+---+---
-(0 rows)
-
-TRUNCATE copy_regression_fnn;
-TRUNCATE TABLE
--- now combine with fill missing fields
-COPY copy_regression_fnn from stdin with csv fill missing fields force not null b;
-SELECT * FROM copy_regression_fnn WHERE b is null order by a;
- a | b | c 
----+---+---
-(0 rows)
-
-SELECT * FROM copy_regression_fnn WHERE c is null order by a;
-  a  | b | c 
------+---+---
- two |   | 
-(1 row)
-
-DROP TABLE copy_regression_fnn;
-DROP TABLE
--- ###########################################################
--- distributed data error consolidation + original row numbers
--- ###########################################################
-CREATE TABLE copy_regression_error1(a int, b int) distributed by(a);
-CREATE TABLE
--- parse error on QE (extra column on line 6)
--- start_ignore
-COPY copy_regression_error1 from stdin;
-psql:/tmp/TestCommand_TestCOPY.sql:503: ERROR:  extra data after last expected column  (seg5 localhost:40000 pid=74724)
-CONTEXT:  COPY copy_regression_error1, line 6: "6	6	6"
--- end_ignore
--- parse error on QD (missing column on line 3)
--- start_ignore
-COPY copy_regression_error1 from stdin;
-psql:/tmp/TestCommand_TestCOPY.sql:513: ERROR:  missing data for column "b"
-CONTEXT:  COPY copy_regression_error1, line 3: "3"
--- end_ignore
--- convert error on QD (invalid type line 2)
-COPY copy_regression_error1 from stdin;
-psql:/tmp/TestCommand_TestCOPY.sql:522: ERROR:  invalid input syntax for integer: "two"
-CONTEXT:  COPY copy_regression_error1, line 2, column a
--- convert error on QE (invalid type line 5)
-COPY copy_regression_error1 from stdin;
-psql:/tmp/TestCommand_TestCOPY.sql:533: ERROR:  invalid input syntax for integer: "five"  (seg2 localhost:40000 pid=74715)
-CONTEXT:  COPY copy_regression_error1, line 5, column b
-DROP TABLE copy_regression_error1;
-DROP TABLE
--- ######################################################
--- NEWLINE
--- ######################################################
-CREATE TABLE copy_regression_newline(a text, b text) distributed by(a);
-CREATE TABLE
--- positive: text
-COPY copy_regression_newline from stdin with delimiter '|' newline 'lf';
--- positive: csv
-COPY copy_regression_newline from stdin with delimiter '|' newline 'lf' csv;
--- start_ignore
--- negative: text
-COPY copy_regression_newline from stdin with delimiter '|' newline 'cr';
-psql:/tmp/TestCommand_TestCOPY.sql:560: ERROR:  extra data after last expected column  (seg4 localhost:40000 pid=74723)
-CONTEXT:  COPY copy_regression_newline, line 1: "1|1
-2|2
-"
--- negative: csv
-COPY copy_regression_newline from stdin with delimiter '|' newline 'cr' csv;
-psql:/tmp/TestCommand_TestCOPY.sql:566: ERROR:  extra data after last expected column  (seg4 localhost:40000 pid=74717)
-CONTEXT:  COPY copy_regression_newline, line 1: "1|1
-2|2
-"
--- end_ignore
--- negative: invalid newline
-COPY copy_regression_newline from stdin with delimiter '|' newline 'blah';
-psql:/tmp/TestCommand_TestCOPY.sql:571: ERROR:  invalid value for NEWLINE (blah)
-HINT:  valid options are: 'LF', 'CRLF', 'CR'
--- negative: newline not yet supported for COPY TO
-COPY copy_regression_newline to stdout with delimiter '|' newline 'blah';
-psql:/tmp/TestCommand_TestCOPY.sql:573: ERROR:  newline currently available for data loading only, not unloading
-DROP TABLE copy_regression_newline;
-DROP TABLE

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/b5960312/src/test/feature/UtilityCommand/sql/gpcopy.sql
----------------------------------------------------------------------
diff --git a/src/test/feature/UtilityCommand/sql/gpcopy.sql b/src/test/feature/UtilityCommand/sql/gpcopy.sql
deleted file mode 100644
index 6c48586..0000000
--- a/src/test/feature/UtilityCommand/sql/gpcopy.sql
+++ /dev/null
@@ -1,572 +0,0 @@
---
--- This test suite tests COPY code that is unique to greenplum db. 
---
-
--- ######################################################
--- different distribution columns and distribution types
--- ######################################################
-
-CREATE TABLE copy_regression_hash1(a text, b text, c text) distributed by (b);
-CREATE TABLE copy_regression_hash2(a text, b text, c text) distributed by (a,c);
-CREATE TABLE copy_regression_hash3(a varchar, b int, c int, d text) distributed by (a,c,d);
-CREATE TABLE copy_regression_hash4(a int[], b text) distributed by (a);
-CREATE TABLE copy_regression_hash5(a text[][]) distributed by (a);
-CREATE TABLE copy_regression_hash6(a int[], b text[]) distributed by (a,b);
-CREATE TABLE copy_regression_hash7(a text,b text) distributed randomly;
-
--- single key, not first
-
-COPY copy_regression_hash1 from stdin segment reject limit 10 rows;
-a data	b data	c data
-\.
-COPY copy_regression_hash1(b,c,a) from stdin segment reject limit 10 rows;
-b data	c data	a data
-\.
-SELECT * FROM copy_regression_hash1;
-
--- two keys
-
-COPY copy_regression_hash2 from stdin;
-a data	b data	c data
-\.
-COPY copy_regression_hash2(b,c,a) from stdin;
-b data	c data	a data
-\.
-SELECT * FROM copy_regression_hash2;
-
--- three keys
-
-COPY copy_regression_hash3 from stdin;
-a data	2	3	d data
-\.
-COPY copy_regression_hash3(c,d,b,a) from stdin;
-3	d data	2	a data
-\.
-COPY copy_regression_hash3(a,c) from stdin;
-a data	3
-\.
-COPY copy_regression_hash3(d) from stdin;
-d data
-\.
-SELECT * FROM copy_regression_hash3;
-
--- hash on int array
-
-COPY copy_regression_hash4 from stdin;
-{1,2,3,4,5}	hashed on an integer array
-{10,20,30,40,50}	hashed on an integer array
-\.
-SELECT * FROM copy_regression_hash4 ORDER BY a;
-
--- hash on 2 dim varchar array
-
-COPY copy_regression_hash5 from stdin;
-{{hashing,on},{two dimentional,text array}}
-\.
-SELECT * FROM copy_regression_hash5 ORDER BY a;
-
--- hash on int array and varchar array
-
-COPY copy_regression_hash6 from stdin;
-{1,2,3,4,5}	{hashing,on,intarray,and,varchararray}
-\.
-SELECT * FROM copy_regression_hash6 ORDER BY a;
-
--- hash randomly
-
-COPY copy_regression_hash7 from stdin;
-a data	b data
-a data	b data
-\.
-SELECT * FROM copy_regression_hash7;
-
-DROP TABLE copy_regression_hash1;
-DROP TABLE copy_regression_hash2;
-DROP TABLE copy_regression_hash3;
-DROP TABLE copy_regression_hash4;
-DROP TABLE copy_regression_hash5;
-DROP TABLE copy_regression_hash6;
-DROP TABLE copy_regression_hash7;
-
--- ######################################################
--- default values and default functions
--- ######################################################
-
-CREATE TABLE copy_regression_default1(a text not null default 'a default data', b text not null default 'b default data') distributed by(a);
-CREATE TABLE copy_regression_default2(a text, b serial, c text) distributed by(a);
-CREATE TABLE copy_regression_default3(a serial, b text, c text) distributed by(a);
-
--- constant defaults on key and non key attributes
-
-COPY copy_regression_default1(a) from stdin;
-a data
-\.
-COPY copy_regression_default1(b) from stdin;
-b data
-\.
-SELECT * FROM copy_regression_default1;
-
--- non constant default on non hash key in both text and csv
-
-COPY copy_regression_default2(a,c) from stdin;
-a data	c data
-a data	c data 
-a data	c data
-\.
-COPY copy_regression_default2(a,c) from stdin csv;
-a data,c data
-a data,c data
-a data,c data
-\.
-SELECT * FROM copy_regression_default2;
-
--- non constant default on hash key in both text and csv
-
-COPY copy_regression_default3(b,c) from stdin;
-b data	c data
-b data	c data
-b data	c data
-\.
-COPY copy_regression_default3(b,c) from stdin csv;
-b data,c data
-b data,c data
-b data,c data
-\.
-SELECT * FROM copy_regression_default2;
-
-DROP TABLE copy_regression_default1;
-DROP TABLE copy_regression_default2;
-DROP TABLE copy_regression_default3;
-
--- ######################################################
--- COPY with OIDS
--- ######################################################
-
-CREATE TABLE copy_regression_oids(a text) WITH OIDS;
-
-COPY copy_regression_oids from stdin with oids delimiter '|';
-50000|a text data
-50001|a text data
-\.
-COPY copy_regression_oids from stdin with oids csv;
-60000,a text data
-60001,a text data
-\.
-SELECT * FROM copy_regression_oids ORDER BY oid;
-
-DROP TABLE copy_regression_oids;
-
-
-
--- ######################################################
--- COPY OUT
--- ######################################################
-
-CREATE TABLE copy_regression_out1(a text, b varchar, c int[], d bool) distributed by(a);
-
--- populating table with data for copy out tests. NOTE: since we can't control the order
--- of rows COPY OUT produces from the segdb, we must have only one row for each test table.
-
-COPY copy_regression_out1 from stdin null 'nullval';
-a copyout data line 2	nullval	{2,2,2}	true
-\.
-
--- copy out default parameters text format..
-COPY copy_regression_out1 to stdout;
-
--- copy out '|' delimiter 'mynull' null..
-COPY copy_regression_out1 to stdout with delimiter '|' null 'mynull';
-
--- copy out '|' delimiter "i'm null" null..
-COPY copy_regression_out1 to stdout with delimiter '|' null 'i''m null';
-
--- copy out default parameters csv format..
-COPY copy_regression_out1 to stdout with csv;
-
--- copy out default parameters csv format with header..
-COPY copy_regression_out1 to stdout with csv header;
-
--- copy out partial and mixed column list (c,a,b)..
-COPY copy_regression_out1(c,a,b) to stdout;
-
--- copy out csv default quotes and escapes and special cases..
-COPY copy_regression_out1 to stdout with csv quote ''''; -- escape should be the same as quote
-COPY copy_regression_out1 to stdout with csv escape '''';
-COPY copy_regression_out1 to stdout with csv quote '''' escape E'\\'; -- make sure E'' is accepted
-
-DROP TABLE copy_regression_out1;
-
-
--- ######################################################
--- Zero column table
--- ######################################################
-
-CREATE TABLE copy_regression_nocol();
-
--- copy in and out of zero column table..
-COPY copy_regression_nocol from stdin;
-\.
-COPY copy_regression_nocol from stdin;
-we should get an "extra data" error here
-\.
-COPY copy_regression_nocol from stdin with csv;
-\.
-COPY copy_regression_nocol from stdin with csv; -- should fail
-we should get an "extra data" error here
-\.
-COPY copy_regression_nocol to stdout;
-COPY copy_regression_nocol to stdout with csv;
-
-DROP TABLE copy_regression_nocol;
-
-
--- ######################################################
--- Various text format escape and default format tests
--- ######################################################
-
--- for text format
-CREATE TABLE copy_regression_text1(a varchar ,b varchar, c text, d text, e text) distributed by(a);
-CREATE TABLE copy_regression_text2(a varchar ,b varchar, c text, d text, e text) distributed by(a);
-CREATE TABLE copy_regression_text3(a varchar ,b varchar, c text, d text, e text) distributed by(a);
-
--- column order tests
-
-COPY copy_regression_text1 from stdin; 
-a text data	b text data	c text data	d text data	e text data
-\.
-COPY copy_regression_text1(a,b,c,d,e) from stdin;
-a text data	b text data	c text data	d text data	e text data
-\.
-COPY copy_regression_text1(e,d,c,b,a) from stdin;
-e text data	d text data	c text data	b text data	a text data
-\.
-COPY copy_regression_text1(c,a,b,e,d) from stdin;
-c text data	a text data	b text data	e text data	d text data
-\.
-COPY copy_regression_text1(a,c) from stdin;
-a text data	c text data
-\.
-SELECT * FROM copy_regression_text1;
-
--- null print tests
-
-COPY copy_regression_text2 from stdin;
-a text data	\N	c text data	\N	e text data
-\.
-COPY copy_regression_text2 from stdin with null 'nullvalue';
-a text data	nullvalue	c text data	nullvalue	nullvalue
-\.
-COPY copy_regression_text2 from stdin with delimiter '|' null '';
-a text data||c text data||e text data
-|b text data|c text data||e text data
-\.
-COPY copy_regression_text2 from stdin with delimiter '|' null 'i''m null';
-a text data|b text data|i'm null|i'm null|e text data
-\.
-SELECT * FROM copy_regression_text2;
-
--- escape tests
-
-COPY copy_regression_text3 from stdin with delimiter '|' escape '#';
-the at sign: #100 |1|c text data|d text data|e text data 
-an embedded delimiter #| character |2|c text data|d text data|e text data
-a single backslash \ in col a|3|c text data|d text data|e text data
-\.
-COPY copy_regression_text3 from stdin with delimiter '|' escape 'off';
-a single backslash \ in col a|4|c text data|d text data|e text data
-c:\\file\data\neew\path|5|c text data|d text data|e text data
-\.
-COPY copy_regression_text3 from stdin with delimiter '|';
-the at sign: \100|6|c text data|d text data|e text data
-a single backslash \\ in col a|8|c text data|d text data|e text data
-\.
-COPY copy_regression_text3 from stdin with delimiter '|';
-an embedded linefeed is not supported\
-and another one that should fail\
-in column a|7|c text data|d text data|e text data
-\.
-COPY copy_regression_text3 from stdin with delimiter '|';
-an embedded linefeed sequence\nin column a|7|c text data|d text data|e text data
-\.
-
-SELECT * FROM copy_regression_text3 ORDER BY b;
-
-DROP TABLE copy_regression_text1;
-DROP TABLE copy_regression_text2;
-DROP TABLE copy_regression_text3;
-
-
-
--- ######################################################
--- Various text format escape and default format tests
--- ######################################################
-
--- for csv format
-CREATE TABLE copy_regression_csv1(a varchar ,b varchar, c text, d text, e text) distributed by(a);
-CREATE TABLE copy_regression_csv2(a varchar ,b varchar, c text, d text, e text) distributed by(a);
-CREATE TABLE copy_regression_csv3(a varchar ,b varchar, c text, d text, e text) distributed by(a);
-
--- column order tests
-
-COPY copy_regression_csv1 from stdin with csv; 
-a  csv data,b  csv data,c  csv data,d  csv data,e  csv data
-\.
-COPY copy_regression_csv1(a,b,c,d,e) from stdin with csv;
-a  csv data,b  csv data,c  csv data,d  csv data,e csv  data
-\.
-COPY copy_regression_csv1(e,d,c,b,a) from stdin with csv;
-e  csv data,d  csv data,c  csv data,b  csv data,a  csv data
-\.
-COPY copy_regression_csv1(c,a,b,e,d) from stdin with csv;
-c  csv data,a  csv data,b  csv data,e  csv data,d  csv data
-\.
-COPY copy_regression_csv1(a,c) from stdin with csv;
-a  csv data,c  csv data
-\.
-SELECT * FROM copy_regression_csv1;
-
--- null print tests
-
-COPY copy_regression_csv2 from stdin with null E'\\N' csv ;
-a  csv data,\N,c  csv data,\N,e  csv data
-\.
-COPY copy_regression_csv2 from stdin with null 'nullvalue' csv;
-a  csv data,nullvalue,c  csv data,nullvalue,nullvalue
-\.
-COPY copy_regression_csv2 from stdin with delimiter '|' null '' csv;
-a  csv data||c  csv data||e  csv data
-|b  csv data|c  csv data||e  csv data
-\.
-SELECT * FROM copy_regression_csv2;
-
--- escape tests
-
-COPY copy_regression_csv3 from stdin with csv escape E'\\';
-"an embedded delimiter (comma), is printed",01,c  csv data,d  csv data,e  csv data 
-"an embedded quote (doubleq)\" is printed",02,c  csv data,d  csv data,e  csv data 
-"an embedded escape \\ is printed",03,c  csv data,d  csv data,e  csv data
-"an embedded line feed
-is printed",04,c  csv data,d  csv data,e  csv data
-\.
-COPY copy_regression_csv3 from stdin with delimiter E'\t' csv; --default quote and escape - "
-"an embedded delimiter (tab)	 is printed"	05	c  csv data	d  csv data	e  csv data 
-"an embedded quote or escape (doubleq)"" is printed"	06	c  csv data	d  csv data	e  csv data 
-"an embedded line feed
-is printed"	07	c  csv data	d  csv data	e  csv data
-\.
-COPY copy_regression_csv3 from stdin with delimiter '|' csv quote ';' escape '*';
-;an embedded delimiter (pipe)| is printed;|08|c  csv data|d  csv data|e  csv data 
-;an embedded quote (semicolon)*; is printed;|09|c  csv data|d  csv data|e  csv data 
-;an embedded escape (asterisk)** is printed;|10|c  csv data|d  csv data|e  csv data
-;an embedded line feed
-is printed;|11|c  csv data|d  csv data|e  csv data
-\.
-
--- check defaults
-COPY copy_regression_csv3 from stdin with csv quote ''''; -- escape should be the same as quote
-'an embedded single quote '' here',12,c csv data,d csv data,e csv data 
-\.
-COPY copy_regression_csv3 from stdin with csv escape '''';
-"an embedded single quote '' here",13,c csv data,d csv data,e csv data 
-\.
-COPY copy_regression_csv3 from stdin with csv quote '''' escape E'\\'; -- make sure E'' is accepted
-'an embedded backslash \\ here',14,c csv data,d csv data,e csv data 
-\.
-SELECT * FROM copy_regression_csv3 ORDER BY b;
-
-DROP TABLE copy_regression_csv1;
-DROP TABLE copy_regression_csv2;
-DROP TABLE copy_regression_csv3;
-
--- ######################################################
--- FILL MISSING FIELDS
--- ######################################################
-
-CREATE TABLE copy_regression_fill1(a int, b int, c text) distributed by(a);
-CREATE TABLE copy_regression_fill2(a int, b int, c text) distributed by(c);
-
--- text
-COPY copy_regression_fill1 from stdin with delimiter '|' fill missing fields;
-1|1|one
-2|2
-3
-\.
-COPY copy_regression_fill1(c,b) from stdin with delimiter '|' fill missing fields;
-one|1
-two
-three
-\.
-COPY copy_regression_fill2(a,c) from stdin with delimiter '|' fill missing fields;
-1|one
-2
-3|three
-\.
-SELECT * FROM copy_regression_fill1 ORDER BY a,b,c;
-SELECT * FROM copy_regression_fill2 ORDER BY a,b,c;
-TRUNCATE copy_regression_fill1;
-TRUNCATE copy_regression_fill2;
-
--- csv
-COPY copy_regression_fill1 from stdin with csv delimiter '|' fill missing fields;
-1|1|one
-2|2
-3
-\.
-COPY copy_regression_fill1(c,b) from stdin with csv delimiter '|' fill missing fields;
-one|1
-two
-three
-\.
-COPY copy_regression_fill2(a,c) from stdin with csv delimiter '|' fill missing fields;
-1|one
-2
-3|three
-\.
-SELECT * FROM copy_regression_fill1 ORDER BY a,b,c;
-SELECT * FROM copy_regression_fill2 ORDER BY a,b,c;
-
--- empty row should fail
-COPY copy_regression_fill1 from stdin with delimiter '|' fill missing fields;
-
-\.
-COPY copy_regression_fill2 from stdin with delimiter '|' fill missing fields;
-
-\.
-COPY copy_regression_fill1 from stdin with csv delimiter '|' fill missing fields;
-
-\.
-COPY copy_regression_fill2 from stdin with csv delimiter '|' fill missing fields;
-
-\.
-DROP TABLE copy_regression_fill1;
-DROP TABLE copy_regression_fill2;
-
--- ######################################################
--- FORCE NOT NULL
--- ######################################################
-
-CREATE TABLE copy_regression_fnn(a text, b text, c text) distributed by(a);
-
-COPY copy_regression_fnn from stdin with csv;
-one,,one
-two,,
-\.
-SELECT * FROM copy_regression_fnn WHERE b is null order by a;
-SELECT * FROM copy_regression_fnn WHERE c is null order by a;
-TRUNCATE copy_regression_fnn;
-
-COPY copy_regression_fnn from stdin with csv force not null b;
-one,,one
-two,,
-\.
-SELECT * FROM copy_regression_fnn WHERE b is null order by a;
-SELECT * FROM copy_regression_fnn WHERE c is null order by a;
-TRUNCATE copy_regression_fnn;
-
-COPY copy_regression_fnn from stdin with csv force not null b,c;
-one,,one
-two,,
-\.
-SELECT * FROM copy_regression_fnn WHERE b is null order by a;
-SELECT * FROM copy_regression_fnn WHERE c is null order by a;
-TRUNCATE copy_regression_fnn;
-
--- now combine with fill missing fields
-COPY copy_regression_fnn from stdin with csv fill missing fields force not null b;
-one,,one
-two,
-\.
-SELECT * FROM copy_regression_fnn WHERE b is null order by a;
-SELECT * FROM copy_regression_fnn WHERE c is null order by a;
-
-DROP TABLE copy_regression_fnn;
-
--- ###########################################################
--- distributed data error consolidation + original row numbers
--- ###########################################################
-
-CREATE TABLE copy_regression_error1(a int, b int) distributed by(a);
-
--- parse error on QE (extra column on line 6)
--- start_ignore
-COPY copy_regression_error1 from stdin;
-1	1
-2	2
-3	3
-4	4
-5	5
-6	6	6
-7	7
-\.
--- end_ignore
-
--- parse error on QD (missing column on line 3)
--- start_ignore
-COPY copy_regression_error1 from stdin;
-1	1
-2	2
-3
-4	4
-\.
--- end_ignore
-
--- convert error on QD (invalid type line 2)
-
-COPY copy_regression_error1 from stdin;
-1	1
-two	2
-3	3
-\.
-
--- convert error on QE (invalid type line 5)
-COPY copy_regression_error1 from stdin;
-1	1
-2	2
-3	3
-4	4
-5	five
-6	6
-7	7
-\.
-
-DROP TABLE copy_regression_error1;
-
--- ######################################################
--- NEWLINE
--- ######################################################
-
-CREATE TABLE copy_regression_newline(a text, b text) distributed by(a);
-
--- positive: text
-COPY copy_regression_newline from stdin with delimiter '|' newline 'lf';
-1|1
-2|2
-\.
-
--- positive: csv
-COPY copy_regression_newline from stdin with delimiter '|' newline 'lf' csv;
-1|1
-2|2
-\.
-
--- start_ignore
--- negative: text
-COPY copy_regression_newline from stdin with delimiter '|' newline 'cr';
-1|1
-2|2
-\.
-
--- negative: csv
-COPY copy_regression_newline from stdin with delimiter '|' newline 'cr' csv;
-1|1
-2|2
-\.
--- end_ignore
-
-
--- negative: invalid newline
-COPY copy_regression_newline from stdin with delimiter '|' newline 'blah';
--- negative: newline not yet supported for COPY TO
-COPY copy_regression_newline to stdout with delimiter '|' newline 'blah';
-
-DROP TABLE copy_regression_newline;

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/b5960312/src/test/feature/UtilityCommand/test_cmd.cpp
----------------------------------------------------------------------
diff --git a/src/test/feature/UtilityCommand/test_cmd.cpp b/src/test/feature/UtilityCommand/test_cmd.cpp
deleted file mode 100644
index 25af7b8..0000000
--- a/src/test/feature/UtilityCommand/test_cmd.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-#include "gtest/gtest.h"
-
-#include "lib/sql_util.h"
-
-class TestCommand: public ::testing::Test {
- public:
-  TestCommand() {}
-  ~TestCommand() {}
-};
-
-TEST_F(TestCommand, TestCOPY) {
- hawq::test::SQLUtility util;
- util.execSQLFile("UtilityCommand/sql/gpcopy.sql",
-                  "UtilityCommand/ans/gpcopy.ans");
-}

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/b5960312/src/test/feature/utility/ans/copy-stdio.ans
----------------------------------------------------------------------
diff --git a/src/test/feature/utility/ans/copy-stdio.ans b/src/test/feature/utility/ans/copy-stdio.ans
new file mode 100644
index 0000000..9dd90b9
--- /dev/null
+++ b/src/test/feature/utility/ans/copy-stdio.ans
@@ -0,0 +1,165 @@
+create temp table copytest3 (
+	c1 int, 
+	"col with , comma" text, 
+	"col with "" quote"  int) distributed by (c1);
+CREATE TABLE
+copy copytest3 from stdin csv header;
+copy copytest3 to stdout csv header;
+c1,"col with , comma","col with "" quote"
+1,a,1
+2,b,2
+-- copy with error table
+CREATE TABLE number (a INT) DISTRIBUTED BY (a);
+CREATE TABLE
+COPY number FROM STDIN LOG ERRORS INTO err_copy SEGMENT REJECT LIMIT 10 ROWS;
+psql:/tmp/TestCopy_TestCOPY2.sql:19: NOTICE:  Error table "err_copy" does not exist. Auto generating an error table with the same name
+psql:/tmp/TestCopy_TestCOPY2.sql:19: WARNING:  The error table was created in the same transaction as this operation. It will get dropped if transaction rolls back even if bad rows are present
+HINT:  To avoid this create the error table ahead of time using: CREATE TABLE <name> (cmdtime timestamp with time zone, relname text, filename text, linenum integer, bytenum integer, errmsg text, rawdata text, rawbytes bytea)
+psql:/tmp/TestCopy_TestCOPY2.sql:29: NOTICE:  Found 9 data formatting errors (9 or more input rows). Errors logged into error table "err_copy"
+select relname,filename,linenum,bytenum,errmsg,rawdata,rawbytes from err_copy order by linenum;
+ relname | filename | linenum | bytenum |                                                 errmsg                                                  |                          rawdata                          | rawbytes 
+---------+----------+---------+---------+---------------------------------------------------------------------------------------------------------+-----------------------------------------------------------+----------
+ number  | <stdin>  |       1 |         | invalid input syntax for integer: "these are invalid line should be insert into error table.", column a | these are invalid line should be insert into error table. | 
+ number  | <stdin>  |       2 |         | invalid input syntax for integer: "a", column a                                                         | a                                                         | 
+ number  | <stdin>  |       3 |         | invalid input syntax for integer: "b", column a                                                         | b                                                         | 
+ number  | <stdin>  |       4 |         | invalid input syntax for integer: "c", column a                                                         | c                                                         | 
+ number  | <stdin>  |       5 |         | invalid input syntax for integer: "d", column a                                                         | d                                                         | 
+ number  | <stdin>  |       6 |         | invalid input syntax for integer: "e", column a                                                         | e                                                         | 
+ number  | <stdin>  |       7 |         | invalid input syntax for integer: "f", column a                                                         | f                                                         | 
+ number  | <stdin>  |       8 |         | invalid input syntax for integer: "g", column a                                                         | g                                                         | 
+ number  | <stdin>  |       9 |         | invalid input syntax for integer: "h", column a                                                         | h                                                         | 
+(9 rows)
+
+select * from number; --should be empty
+ a 
+---
+(0 rows)
+
+\d err_copy
+ Append-Only Table "testcopy_testcopy2.err_copy"
+  Column  |           Type           | Modifiers 
+----------+--------------------------+-----------
+ cmdtime  | timestamp with time zone | 
+ relname  | text                     | 
+ filename | text                     | 
+ linenum  | integer                  | 
+ bytenum  | integer                  | 
+ errmsg   | text                     | 
+ rawdata  | text                     | 
+ rawbytes | bytea                    | 
+Compression Type: None
+Compression Level: 0
+Block Size: 32768
+Checksum: f
+Distributed randomly
+
+DROP TABLE err_copy;
+DROP TABLE
+COPY number FROM STDIN LOG ERRORS INTO err_copy SEGMENT REJECT LIMIT 10 ROWS;
+psql:/tmp/TestCopy_TestCOPY2.sql:37: NOTICE:  Error table "err_copy" does not exist. Auto generating an error table with the same name
+psql:/tmp/TestCopy_TestCOPY2.sql:37: WARNING:  The error table was created in the same transaction as this operation. It will get dropped if transaction rolls back even if bad rows are present
+HINT:  To avoid this create the error table ahead of time using: CREATE TABLE <name> (cmdtime timestamp with time zone, relname text, filename text, linenum integer, bytenum integer, errmsg text, rawdata text, rawbytes bytea)
+psql:/tmp/TestCopy_TestCOPY2.sql:54: NOTICE:  Found 9 data formatting errors (9 or more input rows). Errors logged into error table "err_copy"
+select relname,filename,linenum,bytenum,errmsg,rawdata,rawbytes from err_copy order by linenum;
+ relname | filename | linenum | bytenum |                                                 errmsg                                                  |                          rawdata                          | rawbytes 
+---------+----------+---------+---------+---------------------------------------------------------------------------------------------------------+-----------------------------------------------------------+----------
+ number  | <stdin>  |       1 |         | invalid input syntax for integer: "these are invalid line should be insert into error table.", column a | these are invalid line should be insert into error table. | 
+ number  | <stdin>  |       2 |         | invalid input syntax for integer: "a", column a                                                         | a                                                         | 
+ number  | <stdin>  |       4 |         | invalid input syntax for integer: "b", column a                                                         | b                                                         | 
+ number  | <stdin>  |       6 |         | invalid input syntax for integer: "c", column a                                                         | c                                                         | 
+ number  | <stdin>  |       8 |         | invalid input syntax for integer: "d", column a                                                         | d                                                         | 
+ number  | <stdin>  |      10 |         | invalid input syntax for integer: "e", column a                                                         | e                                                         | 
+ number  | <stdin>  |      12 |         | invalid input syntax for integer: "f", column a                                                         | f                                                         | 
+ number  | <stdin>  |      14 |         | invalid input syntax for integer: "g", column a                                                         | g                                                         | 
+ number  | <stdin>  |      16 |         | invalid input syntax for integer: "h", column a                                                         | h                                                         | 
+(9 rows)
+
+select count(*) from number; --should be 7
+ count 
+-------
+     7
+(1 row)
+
+DROP TABLE err_copy;
+DROP TABLE
+TRUNCATE number;
+TRUNCATE TABLE
+COPY number FROM STDIN LOG ERRORS INTO err_copy SEGMENT REJECT LIMIT 10 ROWS;
+psql:/tmp/TestCopy_TestCOPY2.sql:62: NOTICE:  Error table "err_copy" does not exist. Auto generating an error table with the same name
+psql:/tmp/TestCopy_TestCOPY2.sql:62: WARNING:  The error table was created in the same transaction as this operation. It will get dropped if transaction rolls back even if bad rows are present
+HINT:  To avoid this create the error table ahead of time using: CREATE TABLE <name> (cmdtime timestamp with time zone, relname text, filename text, linenum integer, bytenum integer, errmsg text, rawdata text, rawbytes bytea)
+psql:/tmp/TestCopy_TestCOPY2.sql:80: ERROR:  Segment reject limit reached. Aborting operation. Last error was: invalid input syntax for integer: "i", column a
+CONTEXT:  COPY number, line 17, column a
+select relname,filename,linenum,bytenum,errmsg,rawdata,rawbytes from err_copy order by linenum; -- should not exist
+psql:/tmp/TestCopy_TestCOPY2.sql:82: ERROR:  relation "err_copy" does not exist
+LINE 1: ...name,linenum,bytenum,errmsg,rawdata,rawbytes from err_copy o...
+                                                             ^
+select count(*) from number; --should be empty
+ count 
+-------
+     0
+(1 row)
+
+TRUNCATE number;
+TRUNCATE TABLE
+CREATE TABLE err_copy (cmdtime timestamp with time zone, relname text, filename text, linenum integer, bytenum integer, errmsg text, rawdata text, rawbytes bytea) distributed randomly;
+CREATE TABLE
+COPY number FROM STDIN LOG ERRORS INTO err_copy SEGMENT REJECT LIMIT 10 ROWS;
+psql:/tmp/TestCopy_TestCOPY2.sql:105: NOTICE:  Found 9 data formatting errors (9 or more input rows). Errors logged into error table "err_copy"
+select relname,filename,linenum,bytenum,errmsg,rawdata,rawbytes from err_copy order by linenum;
+ relname | filename | linenum | bytenum |                                                 errmsg                                                  |                          rawdata                          | rawbytes 
+---------+----------+---------+---------+---------------------------------------------------------------------------------------------------------+-----------------------------------------------------------+----------
+ number  | <stdin>  |       1 |         | invalid input syntax for integer: "these are invalid line should be insert into error table.", column a | these are invalid line should be insert into error table. | 
+ number  | <stdin>  |       2 |         | invalid input syntax for integer: "a", column a                                                         | a                                                         | 
+ number  | <stdin>  |       4 |         | invalid input syntax for integer: "b", column a                                                         | b                                                         | 
+ number  | <stdin>  |       6 |         | invalid input syntax for integer: "c", column a                                                         | c                                                         | 
+ number  | <stdin>  |       8 |         | invalid input syntax for integer: "d", column a                                                         | d                                                         | 
+ number  | <stdin>  |      10 |         | invalid input syntax for integer: "e", column a                                                         | e                                                         | 
+ number  | <stdin>  |      12 |         | invalid input syntax for integer: "f", column a                                                         | f                                                         | 
+ number  | <stdin>  |      14 |         | invalid input syntax for integer: "g", column a                                                         | g                                                         | 
+ number  | <stdin>  |      16 |         | invalid input syntax for integer: "h", column a                                                         | h                                                         | 
+(9 rows)
+
+select count(*) from number; --should be 7
+ count 
+-------
+     7
+(1 row)
+
+DROP TABLE err_copy;
+DROP TABLE
+-- invalid error table schema
+TRUNCATE number;
+TRUNCATE TABLE
+create table invalid_error_table1 (a int) distributed randomly;
+CREATE TABLE
+create table invalid_error_table3 (cmdtime timestamp with time zone, relname text, filename text, linenum integer, bytenum integer, errmsg text, rawdata text, rawbytes bytea)
+		distributed by (cmdtime);
+CREATE TABLE
+		
+COPY number FROM STDIN LOG ERRORS INTO invalid_error_table1 SEGMENT REJECT LIMIT 10 ROWS; -- should fail
+psql:/tmp/TestCopy_TestCOPY2.sql:117: ERROR:  Relation "invalid_error_table1" already exists and is not of a valid error table format (expected 8 attributes, found 1)
+these are invalid line should be insert into error table.
+1
+\.
+psql:/tmp/TestCopy_TestCOPY2.sql:120: invalid command \.
+;
+psql:/tmp/TestCopy_TestCOPY2.sql:122: ERROR:  syntax error at or near "these"
+LINE 1: these are invalid line should be insert into error table.
+        ^
+COPY number FROM STDIN LOG ERRORS INTO invalid_error_table3 SEGMENT REJECT LIMIT 10 ROWS; -- should fail
+psql:/tmp/TestCopy_TestCOPY2.sql:124: ERROR:  Relation "invalid_error_table3" already exists and is not of a valid error table format. It appears to not distributed randomly
+these are invalid line should be insert into error table.
+1
+\.
+psql:/tmp/TestCopy_TestCOPY2.sql:127: invalid command \.
+;
+psql:/tmp/TestCopy_TestCOPY2.sql:129: ERROR:  syntax error at or near "these"
+LINE 1: these are invalid line should be insert into error table.
+        ^
+DROP TABLE invalid_error_table1;
+DROP TABLE
+DROP TABLE invalid_error_table3;
+DROP TABLE
+DROP TABLE number;
+DROP TABLE

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/b5960312/src/test/feature/utility/ans/gpcopy.ans
----------------------------------------------------------------------
diff --git a/src/test/feature/utility/ans/gpcopy.ans b/src/test/feature/utility/ans/gpcopy.ans
new file mode 100644
index 0000000..c0efb23
--- /dev/null
+++ b/src/test/feature/utility/ans/gpcopy.ans
@@ -0,0 +1,574 @@
+-- start_ignore
+SET SEARCH_PATH=TestCommand_TestCOPY;
+SET
+-- end_ignore
+--
+-- This test suite tests COPY code that is unique to greenplum db. 
+--
+-- ######################################################
+-- different distribution columns and distribution types
+-- ######################################################
+CREATE TABLE copy_regression_hash1(a text, b text, c text) distributed by (b);
+CREATE TABLE
+CREATE TABLE copy_regression_hash2(a text, b text, c text) distributed by (a,c);
+CREATE TABLE
+CREATE TABLE copy_regression_hash3(a varchar, b int, c int, d text) distributed by (a,c,d);
+CREATE TABLE
+CREATE TABLE copy_regression_hash4(a int[], b text) distributed by (a);
+CREATE TABLE
+CREATE TABLE copy_regression_hash5(a text[][]) distributed by (a);
+CREATE TABLE
+CREATE TABLE copy_regression_hash6(a int[], b text[]) distributed by (a,b);
+CREATE TABLE
+CREATE TABLE copy_regression_hash7(a text,b text) distributed randomly;
+CREATE TABLE
+-- single key, not first
+COPY copy_regression_hash1 from stdin segment reject limit 10 rows;
+COPY copy_regression_hash1(b,c,a) from stdin segment reject limit 10 rows;
+SELECT * FROM copy_regression_hash1;
+   a    |   b    |   c    
+--------+--------+--------
+ a data | b data | c data
+ a data | b data | c data
+(2 rows)
+
+-- two keys
+COPY copy_regression_hash2 from stdin;
+COPY copy_regression_hash2(b,c,a) from stdin;
+SELECT * FROM copy_regression_hash2;
+   a    |   b    |   c    
+--------+--------+--------
+ a data | b data | c data
+ a data | b data | c data
+(2 rows)
+
+-- three keys
+COPY copy_regression_hash3 from stdin;
+COPY copy_regression_hash3(c,d,b,a) from stdin;
+COPY copy_regression_hash3(a,c) from stdin;
+COPY copy_regression_hash3(d) from stdin;
+SELECT * FROM copy_regression_hash3;
+   a    | b | c |   d    
+--------+---+---+--------
+ a data | 2 | 3 | d data
+ a data | 2 | 3 | d data
+ a data |   | 3 | 
+        |   |   | d data
+(4 rows)
+
+-- hash on int array
+COPY copy_regression_hash4 from stdin;
+SELECT * FROM copy_regression_hash4 ORDER BY a;
+        a         |             b              
+------------------+----------------------------
+ {1,2,3,4,5}      | hashed on an integer array
+ {10,20,30,40,50} | hashed on an integer array
+(2 rows)
+
+-- hash on 2 dim varchar array
+COPY copy_regression_hash5 from stdin;
+SELECT * FROM copy_regression_hash5 ORDER BY a;
+                        a                        
+-------------------------------------------------
+ {{hashing,on},{"two dimentional","text array"}}
+(1 row)
+
+-- hash on int array and varchar array
+COPY copy_regression_hash6 from stdin;
+SELECT * FROM copy_regression_hash6 ORDER BY a;
+      a      |                   b                    
+-------------+----------------------------------------
+ {1,2,3,4,5} | {hashing,on,intarray,and,varchararray}
+(1 row)
+
+-- hash randomly
+COPY copy_regression_hash7 from stdin;
+SELECT * FROM copy_regression_hash7;
+   a    |   b    
+--------+--------
+ a data | b data
+ a data | b data
+(2 rows)
+
+DROP TABLE copy_regression_hash1;
+DROP TABLE
+DROP TABLE copy_regression_hash2;
+DROP TABLE
+DROP TABLE copy_regression_hash3;
+DROP TABLE
+DROP TABLE copy_regression_hash4;
+DROP TABLE
+DROP TABLE copy_regression_hash5;
+DROP TABLE
+DROP TABLE copy_regression_hash6;
+DROP TABLE
+DROP TABLE copy_regression_hash7;
+DROP TABLE
+-- ######################################################
+-- default values and default functions
+-- ######################################################
+CREATE TABLE copy_regression_default1(a text not null default 'a default data', b text not null default 'b default data') distributed by(a);
+CREATE TABLE
+CREATE TABLE copy_regression_default2(a text, b serial, c text) distributed by(a);
+psql:/tmp/TestCommand_TestCOPY.sql:99: NOTICE:  CREATE TABLE will create implicit sequence "copy_regression_default2_b_seq" for serial column "copy_regression_default2.b"
+CREATE TABLE
+CREATE TABLE copy_regression_default3(a serial, b text, c text) distributed by(a);
+psql:/tmp/TestCommand_TestCOPY.sql:100: NOTICE:  CREATE TABLE will create implicit sequence "copy_regression_default3_a_seq" for serial column "copy_regression_default3.a"
+CREATE TABLE
+-- constant defaults on key and non key attributes
+COPY copy_regression_default1(a) from stdin;
+COPY copy_regression_default1(b) from stdin;
+SELECT * FROM copy_regression_default1;
+       a        |       b        
+----------------+----------------
+ a data         | b default data
+ a default data | b data
+(2 rows)
+
+-- non constant default on non hash key in both text and csv
+COPY copy_regression_default2(a,c) from stdin;
+COPY copy_regression_default2(a,c) from stdin csv;
+SELECT * FROM copy_regression_default2;
+   a    | b |    c    
+--------+---+---------
+ a data | 1 | c data
+ a data | 2 | c data 
+ a data | 3 | c data
+ a data | 4 | c data
+ a data | 5 | c data
+ a data | 6 | c data
+(6 rows)
+
+-- non constant default on hash key in both text and csv
+COPY copy_regression_default3(b,c) from stdin;
+COPY copy_regression_default3(b,c) from stdin csv;
+SELECT * FROM copy_regression_default2;
+   a    | b |    c    
+--------+---+---------
+ a data | 1 | c data
+ a data | 2 | c data 
+ a data | 3 | c data
+ a data | 4 | c data
+ a data | 5 | c data
+ a data | 6 | c data
+(6 rows)
+
+DROP TABLE copy_regression_default1;
+DROP TABLE
+DROP TABLE copy_regression_default2;
+DROP TABLE
+DROP TABLE copy_regression_default3;
+DROP TABLE
+-- ######################################################
+-- COPY with OIDS
+-- ######################################################
+CREATE TABLE copy_regression_oids(a text) WITH OIDS;
+psql:/tmp/TestCommand_TestCOPY.sql:148: NOTICE:  OIDS=TRUE is not recommended for user-created tables. Use OIDS=FALSE to prevent wrap-around of the OID counter
+CREATE TABLE
+COPY copy_regression_oids from stdin with oids delimiter '|';
+COPY copy_regression_oids from stdin with oids csv;
+SELECT * FROM copy_regression_oids ORDER BY oid;
+      a      
+-------------
+ a text data
+ a text data
+ a text data
+ a text data
+(4 rows)
+
+DROP TABLE copy_regression_oids;
+DROP TABLE
+-- ######################################################
+-- COPY OUT
+-- ######################################################
+CREATE TABLE copy_regression_out1(a text, b varchar, c int[], d bool) distributed by(a);
+CREATE TABLE
+-- populating table with data for copy out tests. NOTE: since we can't control the order
+-- of rows COPY OUT produces from the segdb, we must have only one row for each test table.
+COPY copy_regression_out1 from stdin null 'nullval';
+-- copy out default parameters text format..
+COPY copy_regression_out1 to stdout;
+a copyout data line 2	\N	{2,2,2}	t
+-- copy out '|' delimiter 'mynull' null..
+COPY copy_regression_out1 to stdout with delimiter '|' null 'mynull';
+a copyout data line 2|mynull|{2,2,2}|t
+-- copy out '|' delimiter "i'm null" null..
+COPY copy_regression_out1 to stdout with delimiter '|' null 'i''m null';
+a copyout data line 2|i'm null|{2,2,2}|t
+-- copy out default parameters csv format..
+COPY copy_regression_out1 to stdout with csv;
+a copyout data line 2,,"{2,2,2}",t
+-- copy out default parameters csv format with header..
+COPY copy_regression_out1 to stdout with csv header;
+a,b,c,d
+a copyout data line 2,,"{2,2,2}",t
+-- copy out partial and mixed column list (c,a,b)..
+COPY copy_regression_out1(c,a,b) to stdout;
+{2,2,2}	a copyout data line 2	\N
+-- copy out csv default quotes and escapes and special cases..
+COPY copy_regression_out1 to stdout with csv quote ''''; -- escape should be the same as quote
+a copyout data line 2,,'{2,2,2}',t
+COPY copy_regression_out1 to stdout with csv escape '''';
+a copyout data line 2,,"{2,2,2}",t
+COPY copy_regression_out1 to stdout with csv quote '''' escape E'\\'; -- make sure E'' is accepted
+a copyout data line 2,,'{2,2,2}',t
+DROP TABLE copy_regression_out1;
+DROP TABLE
+-- ######################################################
+-- Zero column table
+-- ######################################################
+CREATE TABLE copy_regression_nocol();
+CREATE TABLE
+-- copy in and out of zero column table..
+COPY copy_regression_nocol from stdin;
+COPY copy_regression_nocol from stdin;
+psql:/tmp/TestCommand_TestCOPY.sql:214: ERROR:  extra data after last expected column
+CONTEXT:  COPY copy_regression_nocol, line 1: "we should get an "extra data" error here"
+COPY copy_regression_nocol from stdin with csv;
+COPY copy_regression_nocol from stdin with csv; -- should fail
+psql:/tmp/TestCommand_TestCOPY.sql:219: ERROR:  extra data after last expected column
+CONTEXT:  COPY copy_regression_nocol, line 1: "we should get an "extra data" error here"
+COPY copy_regression_nocol to stdout;
+COPY copy_regression_nocol to stdout with csv;
+DROP TABLE copy_regression_nocol;
+DROP TABLE
+-- ######################################################
+-- Various text format escape and default format tests
+-- ######################################################
+-- for text format
+CREATE TABLE copy_regression_text1(a varchar ,b varchar, c text, d text, e text) distributed by(a);
+CREATE TABLE
+CREATE TABLE copy_regression_text2(a varchar ,b varchar, c text, d text, e text) distributed by(a);
+CREATE TABLE
+CREATE TABLE copy_regression_text3(a varchar ,b varchar, c text, d text, e text) distributed by(a);
+CREATE TABLE
+-- column order tests
+COPY copy_regression_text1 from stdin; 
+COPY copy_regression_text1(a,b,c,d,e) from stdin;
+COPY copy_regression_text1(e,d,c,b,a) from stdin;
+COPY copy_regression_text1(c,a,b,e,d) from stdin;
+COPY copy_regression_text1(a,c) from stdin;
+SELECT * FROM copy_regression_text1;
+      a      |      b      |      c      |      d      |      e      
+-------------+-------------+-------------+-------------+-------------
+ a text data | b text data | c text data | d text data | e text data
+ a text data | b text data | c text data | d text data | e text data
+ a text data | b text data | c text data | d text data | e text data
+ a text data | b text data | c text data | d text data | e text data
+ a text data |             | c text data |             | 
+(5 rows)
+
+-- null print tests
+COPY copy_regression_text2 from stdin;
+COPY copy_regression_text2 from stdin with null 'nullvalue';
+COPY copy_regression_text2 from stdin with delimiter '|' null '';
+COPY copy_regression_text2 from stdin with delimiter '|' null 'i''m null';
+SELECT * FROM copy_regression_text2;
+      a      |      b      |      c      | d |      e      
+-------------+-------------+-------------+---+-------------
+ a text data |             | c text data |   | e text data
+ a text data |             | c text data |   | 
+ a text data |             | c text data |   | e text data
+ a text data | b text data |             |   | e text data
+             | b text data | c text data |   | e text data
+(5 rows)
+
+-- escape tests
+COPY copy_regression_text3 from stdin with delimiter '|' escape '#';
+COPY copy_regression_text3 from stdin with delimiter '|' escape 'off';
+COPY copy_regression_text3 from stdin with delimiter '|';
+COPY copy_regression_text3 from stdin with delimiter '|';
+psql:/tmp/TestCommand_TestCOPY.sql:290: ERROR:  missing data for column "b"
+CONTEXT:  COPY copy_regression_text3, line 1: "an embedded linefeed is not supported\"
+COPY copy_regression_text3 from stdin with delimiter '|';
+SELECT * FROM copy_regression_text3 ORDER BY b;
+                 a                  | b |      c      |      d      |      e       
+------------------------------------+---+-------------+-------------+--------------
+ the at sign: @                     | 1 | c text data | d text data | e text data 
+ an embedded delimiter | character  | 2 | c text data | d text data | e text data
+ a single backslash \ in col a      | 3 | c text data | d text data | e text data
+ a single backslash \ in col a      | 4 | c text data | d text data | e text data
+ c:\\file\data\neew\path            | 5 | c text data | d text data | e text data
+ the at sign: @                     | 6 | c text data | d text data | e text data
+ an embedded linefeed sequence      | 7 | c text data | d text data | e text data
+ in column a                                                          
+ a single backslash \ in col a      | 8 | c text data | d text data | e text data
+(8 rows)
+
+DROP TABLE copy_regression_text1;
+DROP TABLE
+DROP TABLE copy_regression_text2;
+DROP TABLE
+DROP TABLE copy_regression_text3;
+DROP TABLE
+-- ######################################################
+-- Various text format escape and default format tests
+-- ######################################################
+-- for csv format
+CREATE TABLE copy_regression_csv1(a varchar ,b varchar, c text, d text, e text) distributed by(a);
+CREATE TABLE
+CREATE TABLE copy_regression_csv2(a varchar ,b varchar, c text, d text, e text) distributed by(a);
+CREATE TABLE
+CREATE TABLE copy_regression_csv3(a varchar ,b varchar, c text, d text, e text) distributed by(a);
+CREATE TABLE
+-- column order tests
+COPY copy_regression_csv1 from stdin with csv; 
+COPY copy_regression_csv1(a,b,c,d,e) from stdin with csv;
+COPY copy_regression_csv1(e,d,c,b,a) from stdin with csv;
+COPY copy_regression_csv1(c,a,b,e,d) from stdin with csv;
+COPY copy_regression_csv1(a,c) from stdin with csv;
+SELECT * FROM copy_regression_csv1;
+      a      |      b      |      c      |      d      |      e      
+-------------+-------------+-------------+-------------+-------------
+ a  csv data | b  csv data | c  csv data | d  csv data | e  csv data
+ a  csv data | b  csv data | c  csv data | d  csv data | e csv  data
+ a  csv data | b  csv data | c  csv data | d  csv data | e  csv data
+ a  csv data | b  csv data | c  csv data | d  csv data | e  csv data
+ a  csv data |             | c  csv data |             | 
+(5 rows)
+
+-- null print tests
+COPY copy_regression_csv2 from stdin with null E'\\N' csv ;
+COPY copy_regression_csv2 from stdin with null 'nullvalue' csv;
+COPY copy_regression_csv2 from stdin with delimiter '|' null '' csv;
+SELECT * FROM copy_regression_csv2;
+      a      |      b      |      c      | d |      e      
+-------------+-------------+-------------+---+-------------
+ a  csv data |             | c  csv data |   | e  csv data
+ a  csv data |             | c  csv data |   | 
+ a  csv data |             | c  csv data |   | e  csv data
+             | b  csv data | c  csv data |   | e  csv data
+(4 rows)
+
+-- escape tests
+COPY copy_regression_csv3 from stdin with csv escape E'\\';
+COPY copy_regression_csv3 from stdin with delimiter E'\t' csv; --default quote and escape - "
+COPY copy_regression_csv3 from stdin with delimiter '|' csv quote ';' escape '*';
+-- check defaults
+COPY copy_regression_csv3 from stdin with csv quote ''''; -- escape should be the same as quote
+COPY copy_regression_csv3 from stdin with csv escape '''';
+COPY copy_regression_csv3 from stdin with csv quote '''' escape E'\\'; -- make sure E'' is accepted
+SELECT * FROM copy_regression_csv3 ORDER BY b;
+                         a                         | b  |      c      |      d      |      e       
+---------------------------------------------------+----+-------------+-------------+--------------
+ an embedded delimiter (comma), is printed         | 01 | c  csv data | d  csv data | e  csv data 
+ an embedded quote (doubleq)" is printed           | 02 | c  csv data | d  csv data | e  csv data 
+ an embedded escape \ is printed                   | 03 | c  csv data | d  csv data | e  csv data
+ an embedded line feed                             | 04 | c  csv data | d  csv data | e  csv data
+ is printed                                                                           
+ an embedded delimiter (tab)      is printed       | 05 | c  csv data | d  csv data | e  csv data 
+ an embedded quote or escape (doubleq)" is printed | 06 | c  csv data | d  csv data | e  csv data 
+ an embedded line feed                             | 07 | c  csv data | d  csv data | e  csv data
+ is printed                                                                           
+ an embedded delimiter (pipe)| is printed          | 08 | c  csv data | d  csv data | e  csv data 
+ an embedded quote (semicolon); is printed         | 09 | c  csv data | d  csv data | e  csv data 
+ an embedded escape (asterisk)* is printed         | 10 | c  csv data | d  csv data | e  csv data
+ an embedded line feed                             | 11 | c  csv data | d  csv data | e  csv data
+ is printed                                                                           
+ an embedded single quote ' here                   | 12 | c csv data  | d csv data  | e csv data 
+ an embedded single quote ' here                   | 13 | c csv data  | d csv data  | e csv data 
+ an embedded backslash \ here                      | 14 | c csv data  | d csv data  | e csv data 
+(14 rows)
+
+DROP TABLE copy_regression_csv1;
+DROP TABLE
+DROP TABLE copy_regression_csv2;
+DROP TABLE
+DROP TABLE copy_regression_csv3;
+DROP TABLE
+-- ######################################################
+-- FILL MISSING FIELDS
+-- ######################################################
+CREATE TABLE copy_regression_fill1(a int, b int, c text) distributed by(a);
+CREATE TABLE
+CREATE TABLE copy_regression_fill2(a int, b int, c text) distributed by(c);
+CREATE TABLE
+-- text
+COPY copy_regression_fill1 from stdin with delimiter '|' fill missing fields;
+COPY copy_regression_fill1(c,b) from stdin with delimiter '|' fill missing fields;
+COPY copy_regression_fill2(a,c) from stdin with delimiter '|' fill missing fields;
+SELECT * FROM copy_regression_fill1 ORDER BY a,b,c;
+ a | b |   c   
+---+---+-------
+ 1 | 1 | one
+ 2 | 2 | 
+ 3 |   | 
+   | 1 | one
+   |   | three
+   |   | two
+(6 rows)
+
+SELECT * FROM copy_regression_fill2 ORDER BY a,b,c;
+ a | b |   c   
+---+---+-------
+ 1 |   | one
+ 2 |   | 
+ 3 |   | three
+(3 rows)
+
+TRUNCATE copy_regression_fill1;
+TRUNCATE TABLE
+TRUNCATE copy_regression_fill2;
+TRUNCATE TABLE
+-- csv
+COPY copy_regression_fill1 from stdin with csv delimiter '|' fill missing fields;
+COPY copy_regression_fill1(c,b) from stdin with csv delimiter '|' fill missing fields;
+COPY copy_regression_fill2(a,c) from stdin with csv delimiter '|' fill missing fields;
+SELECT * FROM copy_regression_fill1 ORDER BY a,b,c;
+ a | b |   c   
+---+---+-------
+ 1 | 1 | one
+ 2 | 2 | 
+ 3 |   | 
+   | 1 | one
+   |   | three
+   |   | two
+(6 rows)
+
+SELECT * FROM copy_regression_fill2 ORDER BY a,b,c;
+ a | b |   c   
+---+---+-------
+ 1 |   | one
+ 2 |   | 
+ 3 |   | three
+(3 rows)
+
+-- empty row should fail
+COPY copy_regression_fill1 from stdin with delimiter '|' fill missing fields;
+psql:/tmp/TestCommand_TestCOPY.sql:434: ERROR:  missing data for column "b", found empty data line
+CONTEXT:  COPY copy_regression_fill1, line 1: ""
+COPY copy_regression_fill2 from stdin with delimiter '|' fill missing fields;
+psql:/tmp/TestCommand_TestCOPY.sql:437: ERROR:  missing data for column "b", found empty data line
+CONTEXT:  COPY copy_regression_fill2, line 1: ""
+COPY copy_regression_fill1 from stdin with csv delimiter '|' fill missing fields;
+psql:/tmp/TestCommand_TestCOPY.sql:440: ERROR:  missing data for column "b", found empty data line
+CONTEXT:  COPY copy_regression_fill1, line 1: ""
+COPY copy_regression_fill2 from stdin with csv delimiter '|' fill missing fields;
+psql:/tmp/TestCommand_TestCOPY.sql:443: ERROR:  missing data for column "b", found empty data line
+CONTEXT:  COPY copy_regression_fill2, line 1: ""
+DROP TABLE copy_regression_fill1;
+DROP TABLE
+DROP TABLE copy_regression_fill2;
+DROP TABLE
+-- ######################################################
+-- FORCE NOT NULL
+-- ######################################################
+CREATE TABLE copy_regression_fnn(a text, b text, c text) distributed by(a);
+CREATE TABLE
+COPY copy_regression_fnn from stdin with csv;
+SELECT * FROM copy_regression_fnn WHERE b is null order by a;
+  a  | b |  c  
+-----+---+-----
+ one |   | one
+ two |   | 
+(2 rows)
+
+SELECT * FROM copy_regression_fnn WHERE c is null order by a;
+  a  | b | c 
+-----+---+---
+ two |   | 
+(1 row)
+
+TRUNCATE copy_regression_fnn;
+TRUNCATE TABLE
+COPY copy_regression_fnn from stdin with csv force not null b;
+SELECT * FROM copy_regression_fnn WHERE b is null order by a;
+ a | b | c 
+---+---+---
+(0 rows)
+
+SELECT * FROM copy_regression_fnn WHERE c is null order by a;
+  a  | b | c 
+-----+---+---
+ two |   | 
+(1 row)
+
+TRUNCATE copy_regression_fnn;
+TRUNCATE TABLE
+COPY copy_regression_fnn from stdin with csv force not null b,c;
+SELECT * FROM copy_regression_fnn WHERE b is null order by a;
+ a | b | c 
+---+---+---
+(0 rows)
+
+SELECT * FROM copy_regression_fnn WHERE c is null order by a;
+ a | b | c 
+---+---+---
+(0 rows)
+
+TRUNCATE copy_regression_fnn;
+TRUNCATE TABLE
+-- now combine with fill missing fields
+COPY copy_regression_fnn from stdin with csv fill missing fields force not null b;
+SELECT * FROM copy_regression_fnn WHERE b is null order by a;
+ a | b | c 
+---+---+---
+(0 rows)
+
+SELECT * FROM copy_regression_fnn WHERE c is null order by a;
+  a  | b | c 
+-----+---+---
+ two |   | 
+(1 row)
+
+DROP TABLE copy_regression_fnn;
+DROP TABLE
+-- ###########################################################
+-- distributed data error consolidation + original row numbers
+-- ###########################################################
+CREATE TABLE copy_regression_error1(a int, b int) distributed by(a);
+CREATE TABLE
+-- parse error on QE (extra column on line 6)
+-- start_ignore
+COPY copy_regression_error1 from stdin;
+psql:/tmp/TestCommand_TestCOPY.sql:503: ERROR:  extra data after last expected column  (seg5 localhost:40000 pid=74724)
+CONTEXT:  COPY copy_regression_error1, line 6: "6	6	6"
+-- end_ignore
+-- parse error on QD (missing column on line 3)
+-- start_ignore
+COPY copy_regression_error1 from stdin;
+psql:/tmp/TestCommand_TestCOPY.sql:513: ERROR:  missing data for column "b"
+CONTEXT:  COPY copy_regression_error1, line 3: "3"
+-- end_ignore
+-- convert error on QD (invalid type line 2)
+COPY copy_regression_error1 from stdin;
+psql:/tmp/TestCommand_TestCOPY.sql:522: ERROR:  invalid input syntax for integer: "two"
+CONTEXT:  COPY copy_regression_error1, line 2, column a
+-- convert error on QE (invalid type line 5)
+COPY copy_regression_error1 from stdin;
+psql:/tmp/TestCommand_TestCOPY.sql:533: ERROR:  invalid input syntax for integer: "five"  (seg2 localhost:40000 pid=74715)
+CONTEXT:  COPY copy_regression_error1, line 5, column b
+DROP TABLE copy_regression_error1;
+DROP TABLE
+-- ######################################################
+-- NEWLINE
+-- ######################################################
+CREATE TABLE copy_regression_newline(a text, b text) distributed by(a);
+CREATE TABLE
+-- positive: text
+COPY copy_regression_newline from stdin with delimiter '|' newline 'lf';
+-- positive: csv
+COPY copy_regression_newline from stdin with delimiter '|' newline 'lf' csv;
+-- start_ignore
+-- negative: text
+COPY copy_regression_newline from stdin with delimiter '|' newline 'cr';
+psql:/tmp/TestCommand_TestCOPY.sql:560: ERROR:  extra data after last expected column  (seg4 localhost:40000 pid=74723)
+CONTEXT:  COPY copy_regression_newline, line 1: "1|1
+2|2
+"
+-- negative: csv
+COPY copy_regression_newline from stdin with delimiter '|' newline 'cr' csv;
+psql:/tmp/TestCommand_TestCOPY.sql:566: ERROR:  extra data after last expected column  (seg4 localhost:40000 pid=74717)
+CONTEXT:  COPY copy_regression_newline, line 1: "1|1
+2|2
+"
+-- end_ignore
+-- negative: invalid newline
+COPY copy_regression_newline from stdin with delimiter '|' newline 'blah';
+psql:/tmp/TestCommand_TestCOPY.sql:571: ERROR:  invalid value for NEWLINE (blah)
+HINT:  valid options are: 'LF', 'CRLF', 'CR'
+-- negative: newline not yet supported for COPY TO
+COPY copy_regression_newline to stdout with delimiter '|' newline 'blah';
+psql:/tmp/TestCommand_TestCOPY.sql:573: ERROR:  newline currently available for data loading only, not unloading
+DROP TABLE copy_regression_newline;
+DROP TABLE

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/b5960312/src/test/feature/utility/data/agg.data
----------------------------------------------------------------------
diff --git a/src/test/feature/utility/data/agg.data b/src/test/feature/utility/data/agg.data
new file mode 100755
index 0000000..d92c7df
--- /dev/null
+++ b/src/test/feature/utility/data/agg.data
@@ -0,0 +1,4 @@
+56	7.8
+100	99.097
+0	0.09561
+42	324.78


Mime
View raw message