Test output and sql changes
authorPallavi Sontakke <[email protected]>
Tue, 2 Feb 2016 09:17:30 +0000 (14:47 +0530)
committerPallavi Sontakke <[email protected]>
Tue, 2 Feb 2016 09:17:30 +0000 (14:47 +0530)
Change comments on FQS of query as per behavior #59
Separate out an issue #67 from xc_copy

src/test/regress/expected/xc_FQS.out
src/test/regress/input/xc_copy.source
src/test/regress/input/xl_bugs.source [new file with mode: 0644]
src/test/regress/output/xc_copy.source
src/test/regress/output/xl_bugs.source [new file with mode: 0644]
src/test/regress/parallel_schedule
src/test/regress/sql/xc_FQS.sql

index 016d476b9c8010e117f64b44674ce581c3dc2fb8..41ec56b7867641cdfb8e13f6c6c49048cd0d5f9a 100644 (file)
@@ -601,7 +601,7 @@ explain (verbose on, nodes off, costs off) select * from tab1_hash order by val;
                Output: val, val2
 (7 rows)
 
--- should not get FQSed because of DISTINCT clause
+-- should get FQSed because DISTINCT clause contains distkey
 select distinct val, val2 from tab1_hash where val2 = 8;
  val | val2 
 -----+------
@@ -622,7 +622,7 @@ explain (verbose on, nodes off, costs off) select distinct val, val2 from tab1_h
                Filter: (tab1_hash.val2 = 8)
 (9 rows)
 
--- should not get FQSed because of GROUP clause
+-- should get FQSed because GROUP BY clause uses distkey
 select val, val2 from tab1_hash where val2 = 8 group by val, val2;
  val | val2 
 -----+------
@@ -1010,7 +1010,7 @@ explain (verbose on, nodes off, costs off) select * from tab1_modulo order by va
                Output: val, val2
 (7 rows)
 
--- should not get FQSed because of DISTINCT clause
+-- should get FQSed because DISTINCT clause contains distkey
 select distinct val, val2 from tab1_modulo where val2 = 8;
  val | val2 
 -----+------
@@ -1031,7 +1031,7 @@ explain (verbose on, nodes off, costs off) select distinct val, val2 from tab1_m
                Filter: (tab1_modulo.val2 = 8)
 (9 rows)
 
--- should not get FQSed because of GROUP clause
+-- should get FQSed because GROUP BY clause uses distkey
 select val, val2 from tab1_modulo where val2 = 8 group by val, val2;
  val | val2 
 -----+------
index 5079ce8176d18c314503c230a3b5b2feebff1077..2b8a1f813e8b3c43e3d54a91ec96d9798ffbfbe6 100644 (file)
@@ -2,96 +2,6 @@
 -- XC_COPY
 --
 
--- COPY tests for a Postgres-XL cluster
-
-create or replace function pgxc_nodetype() returns varchar as 
-$$
-declare
-       pgxc_class_entries int;        
-begin
-       select into pgxc_class_entries count(*) from pgxc_class ;             
-       if pgxc_class_entries > 0 then
-               return ' Node type: C';
-       else
-               return ' Node type: D';
-       end if;
-end $$ language plpgsql;
-
-
-create function deffunc() returns bytea as
-$$
-begin
-       return E'\\023\\000\\\\''!|''';
-end $$ language plpgsql;
-
-
-create or replace function deffunc_bytea() returns bytea as 
-$$
-begin
-       return E'\0123';
-end $$ language plpgsql;
-
-create or replace function deffunc_str() returns varchar as 
-$$
-begin
-       return E'\\.\\000"\\''!|''\\N' || pgxc_nodetype();
-end $$ language plpgsql;
-
-create or replace function deffunc_str_i() returns varchar immutable as 
-$$
-begin
-       return E'\\.\\000"\\''!|''' || pgxc_nodetype();
-end $$ language plpgsql;
-
-create or replace function deffunc_nullstring() returns varchar as 
-$$
-begin
-       return E'\\N';
-end $$ language plpgsql;
-
-create table xccopydef(idseq serial, id1 int,
-                       def1 bytea default deffunc(),
-                                          def2 bytea default E'\\000'::bytea,
-                                          def3 varchar default deffunc_str(),
-                                          def4 varchar default deffunc_str_i(),
-                                          def5 varchar default deffunc_nullstring(),
-                                          def6 bytea default deffunc_bytea(),
-                                          id2 varchar,
-                                          def7 float default length(deffunc_str()) + 0.433);
-
-
-copy xccopydef (id1, id2) from stdin (delimiter '|');
-3 | \\\\x135
-\N| abcd
-\.
-
-copy xccopydef (id1, id2) from stdin (format 'csv');
-3 , \\\\x135
-, abcd
-\.
-
-
-insert into xccopydef (id1, id2) values (NULL, NULL);
-insert into xccopydef (id1) values (4567);
-
-select * from xccopydef order by idseq;
-
-copy xccopydef (id1, id2) to '@abs_builddir@/results/copydefout.data' (format 'binary');
-
-truncate xccopydef;
-
-copy xccopydef (id1, id2) from '@abs_builddir@/results/copydefout.data' (format 'binary');
-
-select * from xccopydef order by idseq;
-
-drop table xccopydef;
-drop function pgxc_nodetype();
-drop function deffunc();
-drop function deffunc_bytea();
-drop function deffunc_str();
-drop function deffunc_str_i();
-drop function deffunc_nullstring();
-
 -- Tests related to COPY for a Postgres-XL cluster
 -- Create a table not using the first node of cluster
 SELECT create_table_nodes('xc_copy_1(a int, b int)', '{2}'::int[], 'replication', NULL);
diff --git a/src/test/regress/input/xl_bugs.source b/src/test/regress/input/xl_bugs.source
new file mode 100644 (file)
index 0000000..db1f0f8
--- /dev/null
@@ -0,0 +1,94 @@
+--
+-- XC_COPY
+--
+
+-- COPY tests for a Postgres-XL cluster
+
+create or replace function pgxc_nodetype() returns varchar as
+$$
+declare
+       pgxc_class_entries int;
+begin
+       select into pgxc_class_entries count(*) from pgxc_class ;
+       if pgxc_class_entries > 0 then
+               return ' Node type: C';
+       else
+               return ' Node type: D';
+       end if;
+end $$ language plpgsql;
+
+
+create function deffunc() returns bytea as
+$$
+begin
+       return E'\\023\\000\\\\''!|''';
+end $$ language plpgsql;
+
+
+create or replace function deffunc_bytea() returns bytea as
+$$
+begin
+       return E'\0123';
+end $$ language plpgsql;
+
+create or replace function deffunc_str() returns varchar as
+$$
+begin
+       return E'\\.\\000"\\''!|''\\N' || pgxc_nodetype();
+end $$ language plpgsql;
+
+create or replace function deffunc_str_i() returns varchar immutable as
+$$
+begin
+       return E'\\.\\000"\\''!|''' || pgxc_nodetype();
+end $$ language plpgsql;
+
+create or replace function deffunc_nullstring() returns varchar as
+$$
+begin
+       return E'\\N';
+end $$ language plpgsql;
+
+create table xccopydef(idseq serial, id1 int,
+                       def1 bytea default deffunc(),
+                                          def2 bytea default E'\\000'::bytea,
+                                          def3 varchar default deffunc_str(),
+                                          def4 varchar default deffunc_str_i(),
+                                          def5 varchar default deffunc_nullstring(),
+                                          def6 bytea default deffunc_bytea(),
+                                          id2 varchar,
+                                          def7 float default length(deffunc_str()) + 0.433);
+
+
+copy xccopydef (id1, id2) from stdin (delimiter '|');
+3 | \\\\x135
+\N| abcd
+\.
+
+copy xccopydef (id1, id2) from stdin (format 'csv');
+3 , \\\\x135
+, abcd
+\.
+
+
+insert into xccopydef (id1, id2) values (NULL, NULL);
+insert into xccopydef (id1) values (4567);
+
+select * from xccopydef order by idseq;
+
+copy xccopydef (id1, id2) to '@abs_builddir@/results/copydefout.data' (format 'binary');
+
+truncate xccopydef;
+
+copy xccopydef (id1, id2) from '@abs_builddir@/results/copydefout.data' (format 'binary');
+
+select * from xccopydef order by idseq;
+
+drop table xccopydef;
+drop function pgxc_nodetype();
+drop function deffunc();
+drop function deffunc_bytea();
+drop function deffunc_str();
+drop function deffunc_str_i();
+drop function deffunc_nullstring();
+
index f11935427431e29f6388f1faf451f3320444ef93..f3375376daf9279ab7f0beff24a77059312c6295 100644 (file)
@@ -1,89 +1,6 @@
 --
 -- XC_COPY
 --
--- COPY tests for a Postgres-XL cluster
-create or replace function pgxc_nodetype() returns varchar as 
-$$
-declare
-       pgxc_class_entries int;        
-begin
-       select into pgxc_class_entries count(*) from pgxc_class ;             
-       if pgxc_class_entries > 0 then
-               return ' Node type: C';
-       else
-               return ' Node type: D';
-       end if;
-end $$ language plpgsql;
-create function deffunc() returns bytea as
-$$
-begin
-       return E'\\023\\000\\\\''!|''';
-end $$ language plpgsql;
-create or replace function deffunc_bytea() returns bytea as 
-$$
-begin
-       return E'\0123';
-end $$ language plpgsql;
-create or replace function deffunc_str() returns varchar as 
-$$
-begin
-       return E'\\.\\000"\\''!|''\\N' || pgxc_nodetype();
-end $$ language plpgsql;
-create or replace function deffunc_str_i() returns varchar immutable as 
-$$
-begin
-       return E'\\.\\000"\\''!|''' || pgxc_nodetype();
-end $$ language plpgsql;
-create or replace function deffunc_nullstring() returns varchar as 
-$$
-begin
-       return E'\\N';
-end $$ language plpgsql;
-create table xccopydef(idseq serial, id1 int,
-                       def1 bytea default deffunc(),
-                                          def2 bytea default E'\\000'::bytea,
-                                          def3 varchar default deffunc_str(),
-                                          def4 varchar default deffunc_str_i(),
-                                          def5 varchar default deffunc_nullstring(),
-                                          def6 bytea default deffunc_bytea(),
-                                          id2 varchar,
-                                          def7 float default length(deffunc_str()) + 0.433);
-copy xccopydef (id1, id2) from stdin (delimiter '|');
-copy xccopydef (id1, id2) from stdin (format 'csv');
-insert into xccopydef (id1, id2) values (NULL, NULL);
-insert into xccopydef (id1) values (4567);
-select * from xccopydef order by idseq;
- idseq | id1  |       def1       | def2 |            def3             |           def4            | def5 |  def6  |    id2    |  def7  
--------+------+------------------+------+-----------------------------+---------------------------+------+--------+-----------+--------
-     1 |    3 | \x13005c27217c27 | \x00 | \.\000"\'!|'\N Node type: C | \.\000"\'!|' Node type: D | \N   | \x0a33 |  \\x135   | 27.433
-     2 |      | \x13005c27217c27 | \x00 | \.\000"\'!|'\N Node type: C | \.\000"\'!|' Node type: D | \N   | \x0a33 |  abcd     | 27.433
-     3 |    3 | \x13005c27217c27 | \x00 | \.\000"\'!|'\N Node type: C | \.\000"\'!|' Node type: D | \N   | \x0a33 |  \\\\x135 | 27.433
-     4 |      | \x13005c27217c27 | \x00 | \.\000"\'!|'\N Node type: C | \.\000"\'!|' Node type: D | \N   | \x0a33 |  abcd     | 27.433
-     5 |      | \x13005c27217c27 | \x00 | \.\000"\'!|'\N Node type: C | \.\000"\'!|' Node type: C | \N   | \x0a33 |           | 27.433
-     6 | 4567 | \x13005c27217c27 | \x00 | \.\000"\'!|'\N Node type: C | \.\000"\'!|' Node type: C | \N   | \x0a33 |           | 27.433
-(6 rows)
-
-copy xccopydef (id1, id2) to '@abs_builddir@/results/copydefout.data' (format 'binary');
-truncate xccopydef;
-copy xccopydef (id1, id2) from '@abs_builddir@/results/copydefout.data' (format 'binary');
-select * from xccopydef order by idseq;
- idseq | id1  |       def1       | def2 |            def3             |           def4            | def5 |  def6  |    id2    |  def7  
--------+------+------------------+------+-----------------------------+---------------------------+------+--------+-----------+--------
-     7 |    3 | \x13005c27217c27 | \x00 | \.\000"\'!|'\N Node type: C | \.\000"\'!|' Node type: D | \N   | \x0a33 |  \\x135   | 27.433
-     8 |      | \x13005c27217c27 | \x00 | \.\000"\'!|'\N Node type: C | \.\000"\'!|' Node type: D | \N   | \x0a33 |  abcd     | 27.433
-     9 |    3 | \x13005c27217c27 | \x00 | \.\000"\'!|'\N Node type: C | \.\000"\'!|' Node type: D | \N   | \x0a33 |  \\\\x135 | 27.433
-    10 |      | \x13005c27217c27 | \x00 | \.\000"\'!|'\N Node type: C | \.\000"\'!|' Node type: D | \N   | \x0a33 |  abcd     | 27.433
-    11 |      | \x13005c27217c27 | \x00 | \.\000"\'!|'\N Node type: C | \.\000"\'!|' Node type: D | \N   | \x0a33 |           | 27.433
-    12 | 4567 | \x13005c27217c27 | \x00 | \.\000"\'!|'\N Node type: C | \.\000"\'!|' Node type: D | \N   | \x0a33 |           | 27.433
-(6 rows)
-
-drop table xccopydef;
-drop function pgxc_nodetype();
-drop function deffunc();
-drop function deffunc_bytea();
-drop function deffunc_str();
-drop function deffunc_str_i();
-drop function deffunc_nullstring();
 -- Tests related to COPY for a Postgres-XL cluster
 -- Create a table not using the first node of cluster
 SELECT create_table_nodes('xc_copy_1(a int, b int)', '{2}'::int[], 'replication', NULL);
diff --git a/src/test/regress/output/xl_bugs.source b/src/test/regress/output/xl_bugs.source
new file mode 100644 (file)
index 0000000..ad15fb3
--- /dev/null
@@ -0,0 +1,86 @@
+--
+-- XC_COPY
+--
+-- COPY tests for a Postgres-XL cluster
+create or replace function pgxc_nodetype() returns varchar as 
+$$
+declare
+       pgxc_class_entries int;        
+begin
+       select into pgxc_class_entries count(*) from pgxc_class ;             
+       if pgxc_class_entries > 0 then
+               return ' Node type: C';
+       else
+               return ' Node type: D';
+       end if;
+end $$ language plpgsql;
+create function deffunc() returns bytea as
+$$
+begin
+       return E'\\023\\000\\\\''!|''';
+end $$ language plpgsql;
+create or replace function deffunc_bytea() returns bytea as 
+$$
+begin
+       return E'\0123';
+end $$ language plpgsql;
+create or replace function deffunc_str() returns varchar as 
+$$
+begin
+       return E'\\.\\000"\\''!|''\\N' || pgxc_nodetype();
+end $$ language plpgsql;
+create or replace function deffunc_str_i() returns varchar immutable as 
+$$
+begin
+       return E'\\.\\000"\\''!|''' || pgxc_nodetype();
+end $$ language plpgsql;
+create or replace function deffunc_nullstring() returns varchar as 
+$$
+begin
+       return E'\\N';
+end $$ language plpgsql;
+create table xccopydef(idseq serial, id1 int,
+                       def1 bytea default deffunc(),
+                                          def2 bytea default E'\\000'::bytea,
+                                          def3 varchar default deffunc_str(),
+                                          def4 varchar default deffunc_str_i(),
+                                          def5 varchar default deffunc_nullstring(),
+                                          def6 bytea default deffunc_bytea(),
+                                          id2 varchar,
+                                          def7 float default length(deffunc_str()) + 0.433);
+copy xccopydef (id1, id2) from stdin (delimiter '|');
+copy xccopydef (id1, id2) from stdin (format 'csv');
+insert into xccopydef (id1, id2) values (NULL, NULL);
+insert into xccopydef (id1) values (4567);
+select * from xccopydef order by idseq;
+ idseq | id1  |       def1       | def2 |            def3             |           def4            | def5 |  def6  |    id2    |  def7  
+-------+------+------------------+------+-----------------------------+---------------------------+------+--------+-----------+--------
+     1 |    3 | \x13005c27217c27 | \x00 | \.\000"\'!|'\N Node type: C | \.\000"\'!|' Node type: D | \N   | \x0a33 |  \\x135   | 27.433
+     2 |      | \x13005c27217c27 | \x00 | \.\000"\'!|'\N Node type: C | \.\000"\'!|' Node type: D | \N   | \x0a33 |  abcd     | 27.433
+     3 |    3 | \x13005c27217c27 | \x00 | \.\000"\'!|'\N Node type: C | \.\000"\'!|' Node type: D | \N   | \x0a33 |  \\\\x135 | 27.433
+     4 |      | \x13005c27217c27 | \x00 | \.\000"\'!|'\N Node type: C | \.\000"\'!|' Node type: D | \N   | \x0a33 |  abcd     | 27.433
+     5 |      | \x13005c27217c27 | \x00 | \.\000"\'!|'\N Node type: C | \.\000"\'!|' Node type: C | \N   | \x0a33 |           | 27.433
+     6 | 4567 | \x13005c27217c27 | \x00 | \.\000"\'!|'\N Node type: C | \.\000"\'!|' Node type: C | \N   | \x0a33 |           | 27.433
+(6 rows)
+
+copy xccopydef (id1, id2) to '@abs_builddir@/results/copydefout.data' (format 'binary');
+truncate xccopydef;
+copy xccopydef (id1, id2) from '@abs_builddir@/results/copydefout.data' (format 'binary');
+select * from xccopydef order by idseq;
+ idseq | id1  |       def1       | def2 |            def3             |           def4            | def5 |  def6  |    id2    |  def7  
+-------+------+------------------+------+-----------------------------+---------------------------+------+--------+-----------+--------
+     7 |    3 | \x13005c27217c27 | \x00 | \.\000"\'!|'\N Node type: C | \.\000"\'!|' Node type: D | \N   | \x0a33 |  \\x135   | 27.433
+     8 |      | \x13005c27217c27 | \x00 | \.\000"\'!|'\N Node type: C | \.\000"\'!|' Node type: D | \N   | \x0a33 |  abcd     | 27.433
+     9 |    3 | \x13005c27217c27 | \x00 | \.\000"\'!|'\N Node type: C | \.\000"\'!|' Node type: D | \N   | \x0a33 |  \\\\x135 | 27.433
+    10 |      | \x13005c27217c27 | \x00 | \.\000"\'!|'\N Node type: C | \.\000"\'!|' Node type: D | \N   | \x0a33 |  abcd     | 27.433
+    11 |      | \x13005c27217c27 | \x00 | \.\000"\'!|'\N Node type: C | \.\000"\'!|' Node type: D | \N   | \x0a33 |           | 27.433
+    12 | 4567 | \x13005c27217c27 | \x00 | \.\000"\'!|'\N Node type: C | \.\000"\'!|' Node type: D | \N   | \x0a33 |           | 27.433
+(6 rows)
+
+drop table xccopydef;
+drop function pgxc_nodetype();
+drop function deffunc();
+drop function deffunc_bytea();
+drop function deffunc_str();
+drop function deffunc_str_i();
+drop function deffunc_nullstring();
index 0a20d1134b025356eff06b122029a44363d18ee1..db11f293eb83cb94bb46fa4a2585a6e3bdba9c89 100644 (file)
@@ -140,4 +140,5 @@ test: xc_notrans_block
 test: xl_primary_key xl_foreign_key xl_distribution_column_types xl_alter_table xl_distribution_column_types_modulo xl_plan_pushdown xl_functions xl_limitations xl_user_defined_functions xl_join
 
 #known bugs
+test: xl_bugs
 test: xl_known_bugs
index ef1e9dc21c6775cc842dac804ed5d38062f5f651..cc488b8ea7a638fe8dcf35005403f2cb21df135e 100644 (file)
@@ -133,10 +133,10 @@ explain (verbose on, nodes off, costs off) select * from tab1_hash where val2 =
 -- should not get FQSed because of SORT clause
 select * from tab1_hash order by val;
 explain (verbose on, nodes off, costs off) select * from tab1_hash order by val;
--- should not get FQSed because of DISTINCT clause
+-- should get FQSed because DISTINCT clause contains distkey
 select distinct val, val2 from tab1_hash where val2 = 8;
 explain (verbose on, nodes off, costs off) select distinct val, val2 from tab1_hash where val2 = 8;
--- should not get FQSed because of GROUP clause
+-- should get FQSed because GROUP BY clause uses distkey
 select val, val2 from tab1_hash where val2 = 8 group by val, val2;
 explain (verbose on, nodes off, costs off) select val, val2 from tab1_hash where val2 = 8 group by val, val2;
 -- should not get FQSed because of HAVING clause
@@ -198,10 +198,10 @@ explain (verbose on, nodes off, costs off) select * from tab1_modulo where val2
 -- should not get FQSed because of SORT clause
 select * from tab1_modulo order by val;
 explain (verbose on, nodes off, costs off) select * from tab1_modulo order by val;
--- should not get FQSed because of DISTINCT clause
+-- should get FQSed because DISTINCT clause contains distkey
 select distinct val, val2 from tab1_modulo where val2 = 8;
 explain (verbose on, nodes off, costs off) select distinct val, val2 from tab1_modulo where val2 = 8;
--- should not get FQSed because of GROUP clause
+-- should get FQSed because GROUP BY clause uses distkey
 select val, val2 from tab1_modulo where val2 = 8 group by val, val2;
 explain (verbose on, nodes off, costs off) select val, val2 from tab1_modulo where val2 = 8 group by val, val2;
 -- should not get FQSed because of HAVING clause