You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hawq.apache.org by "Lei Chang (JIRA)" <ji...@apache.org> on 2016/04/10 12:02:25 UTC

[jira] [Closed] (HAWQ-350) Disable some of installcheck tests due to plpython is not installed by default

     [ https://issues.apache.org/jira/browse/HAWQ-350?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Lei Chang closed HAWQ-350.
--------------------------
       Resolution: Fixed
    Fix Version/s:     (was: backlog)
                   2.0.0

has been fixed in latest code.

> Disable some of installcheck tests due to plpython is not installed by default
> ------------------------------------------------------------------------------
>
>                 Key: HAWQ-350
>                 URL: https://issues.apache.org/jira/browse/HAWQ-350
>             Project: Apache HAWQ
>          Issue Type: Bug
>          Components: Tests
>    Affects Versions: 2.0.0-beta-incubating
>            Reporter: Ruilong Huo
>            Assignee: Ruilong Huo
>             Fix For: 2.0.0
>
>
> We have 3 three suites in installcheck test failes:
> 1. subplan and set_functions fail due to plpython is not installed by default
> 2. exttab1 fails due to gpfdist changes
> {noformat}
> [gpadmin@localhost incubator-hawq]$ make installcheck-good
> ============== dropping database "regression"         ==============
> NOTICE:  database "regression" does not exist, skipping
> DROP DATABASE
> ============== creating database "regression"         ==============
> CREATE DATABASE
> ALTER DATABASE
> ============== checking optimizer status              ==============
> Optimizer disabled. Using planner answer files
> ============== running regression test queries        ==============
> test type_sanity          ... ok (0.05 sec)
> test querycontext         ... ok (8.19 sec)
> test errortbl             ... ok (4.80 sec)
> test goh_create_type_composite ... ok (3.10 sec)
> test goh_partition        ... ok (37.64 sec)
> test goh_toast            ... ok (1.25 sec)
> test goh_database         ... ok (2.84 sec)
> test goh_gp_dist_random   ... ok (0.24 sec)
> test gpsql_alter_table    ... ok (12.11 sec)
> test goh_portals          ... ok (8.25 sec)
> test goh_prepare          ... ok (7.08 sec)
> test goh_alter_owner      ... ok (0.25 sec)
> test boolean              ... ok (3.18 sec)
> test char                 ... ok (2.58 sec)
> test name                 ... ok (2.29 sec)
> test varchar              ... ok (2.58 sec)
> test text                 ... ok (0.58 sec)
> test int2                 ... ok (4.35 sec)
> test int4                 ... ok (5.63 sec)
> test int8                 ... ok (4.17 sec)
> test oid                  ... ok (2.01 sec)
> test float4               ... ok (2.89 sec)
> test date                 ... ok (2.45 sec)
> test time                 ... ok (1.98 sec)
> test insert               ... ok (4.44 sec)
> test create_function_1    ... ok (0.01 sec)
> test function             ... ok (8.10 sec)
> test function_extensions  ... ok (0.03 sec)
> test subplan              ... FAILED (9.59 sec)
> test create_table_test    ... ok (0.25 sec)
> test create_table_distribution ... ok (3.20 sec)
> test copy                 ... ok (35.09 sec)
> test create_aggregate     ... ok (9.77 sec)
> test aggregate_with_groupingsets ... ok (0.81 sec)
> test information_schema   ... ok (0.09 sec)
> test transactions         ... ok (6.32 sec)
> test temp                 ... ok (4.09 sec)
> test set_functions        ... FAILED (5.86 sec)
> test sequence             ... ok (1.19 sec)
> test polymorphism         ... ok (3.99 sec)
> test rowtypes             ... ok (2.67 sec)
> test exttab1              ... FAILED (13.85 sec)
> test gpcopy               ... ok (29.14 sec)
> test madlib_svec_test     ... ok (1.57 sec)
> test agg_derived_win      ... ok (3.18 sec)
> test parquet_ddl          ... ok (8.29 sec)
> test parquet_multipletype ... ok (2.81 sec)
> test parquet_pagerowgroup_size ... ok (14.40 sec)
> test parquet_compression  ... ok (13.93 sec)
> test parquet_subpartition ... ok (7.24 sec)
> test caqlinmem            ... ok (0.14 sec)
> test hcatalog_lookup      ... ok (2.02 sec)
> test json_load            ... ok (0.42 sec)
> test external_oid         ... ok (0.79 sec)
> test validator_function   ... ok (0.03 sec)
> =======================
>  3 of 55 tests failed.
> =======================
> The differences that caused some tests to fail can be viewed in the
> file "./regression.diffs".  A copy of the test summary that you see
> above is saved in the file "./regression.out".
> {noformat}
> {noformat}
> [gpadmin@localhost incubator-hawq]$ cat src/test/regress/regression.diffs
> *** ./expected/subplan.out	2016-01-18 05:36:05.000680391 -0800
> --- ./results/subplan.out	2016-01-18 05:36:05.048608087 -0800
> ***************
> *** 20,25 ****
> --- 20,26 ----
>   insert into i4 select i, i-10 from generate_series(-5,0)i;
>   DROP LANGUAGE IF EXISTS plpythonu CASCADE;
>   CREATE LANGUAGE plpythonu;
> + ERROR:  could not access file "$libdir/plpython": No such file or directory
>   create or replace function twice(int) returns int as $$
>          select 2 * $1;
>   $$ language sql;
> ***************
> *** 34,56 ****
>       else:
>           return x * 3
>   $$ language plpythonu;
>   select t1.* from t1 where (t1.a, t1.b) not in
>      (select twice(i3.a), i3.b from i3 union select i4.a, thrice(i4.b) from i4);
> !  a  | b
> ! ----+----
> !   0 | 10
> !   1 | 11
> !   2 | 12
> !   3 | 13
> !   4 | 14
> !   5 | 15
> !  -1 |  9
> !  -2 |  8
> !  -3 |  7
> !  -4 |  6
> !  -5 |  5
> ! (11 rows)
> !
>   select t1.* from t1 where (t1.a, half(t1.b)) not in
>      (select twice(i3.a), i3.b from i3 union all select i4.a, i4.b from i4);
>    a | b
> --- 35,48 ----
>       else:
>           return x * 3
>   $$ language plpythonu;
> + ERROR:  language "plpythonu" does not exist
> + HINT:  Use CREATE LANGUAGE to load the language into the database.
>   select t1.* from t1 where (t1.a, t1.b) not in
>      (select twice(i3.a), i3.b from i3 union select i4.a, thrice(i4.b) from i4);
> ! ERROR:  function thrice(integer) does not exist
> ! LINE 2: ...lect twice(i3.a), i3.b from i3 union select i4.a, thrice(i4....
> !                                                              ^
> ! HINT:  No function matches the given name and argument types. You may need to add explicit type casts.
>   select t1.* from t1 where (t1.a, half(t1.b)) not in
>      (select twice(i3.a), i3.b from i3 union all select i4.a, i4.b from i4);
>    a | b
> ***************
> *** 59,103 ****
>   select t1.a, half(t1.b) from t1 where (t1.a, t1.b) not in
>      (select 1, thrice(2) union select 3, 4);
> !  a  | half
> ! ----+------
> !   0 |    5
> !   1 |    5
> !   2 |    6
> !   3 |    6
> !   4 |    7
> !   5 |    7
> !  -1 |    4
> !  -2 |    4
> !  -3 |    3
> !  -4 |    3
> !  -5 |    2
> ! (11 rows)
> !
>   select t1.* from t1 where (half(t1.a), t1.b) not in
>      (select thrice(i3.a), i3.b from i3 union select i4.a, i4.b from i4);
> !  a | b
> ! ---+---
> ! (0 rows)
> !
>   select t1.* from t1 where (t1.a, t1.b) not in
>      (select i3.a, half(i3.b) from i3 union all
>         select i4.a, thrice(i4.b) from i4);
> !  a  | b
> ! ----+----
> !   0 | 10
> !   1 | 11
> !   2 | 12
> !   3 | 13
> !   4 | 14
> !   5 | 15
> !  -1 |  9
> !  -2 |  8
> !  -3 |  7
> !  -4 |  6
> !  -5 |  5
> ! (11 rows)
> !
>   -- Two SubPlan nodes
>   select t1.* from t1 where (t1.a, t1.b) not in (select i3.a, i3.b from i3) or
>      (t1.a, t1.b) not in (select i4.a, i4.b from i4);
> --- 51,73 ----
>   select t1.a, half(t1.b) from t1 where (t1.a, t1.b) not in
>      (select 1, thrice(2) union select 3, 4);
> ! ERROR:  function thrice(integer) does not exist
> ! LINE 2:    (select 1, thrice(2) union select 3, 4);
> !                       ^
> ! HINT:  No function matches the given name and argument types. You may need to add explicit type casts.
>   select t1.* from t1 where (half(t1.a), t1.b) not in
>      (select thrice(i3.a), i3.b from i3 union select i4.a, i4.b from i4);
> ! ERROR:  function thrice(integer) does not exist
> ! LINE 2:    (select thrice(i3.a), i3.b from i3 union select i4.a, i4....
> !                    ^
> ! HINT:  No function matches the given name and argument types. You may need to add explicit type casts.
>   select t1.* from t1 where (t1.a, t1.b) not in
>      (select i3.a, half(i3.b) from i3 union all
>         select i4.a, thrice(i4.b) from i4);
> ! ERROR:  function thrice(integer) does not exist
> ! LINE 3:       select i4.a, thrice(i4.b) from i4);
> !                            ^
> ! HINT:  No function matches the given name and argument types. You may need to add explicit type casts.
>   -- Two SubPlan nodes
>   select t1.* from t1 where (t1.a, t1.b) not in (select i3.a, i3.b from i3) or
>      (t1.a, t1.b) not in (select i4.a, i4.b from i4);
> ***************
> *** 120,158 ****
>   select t1.* from t1 where
>      (t1.a, twice(t1.b)) not in (select thrice(i3.a), i3.b from i3) or
>         (t1.a, half(t1.b)) not in (select i4.a, i4.b from i4);
> !  a  | b
> ! ----+----
> !   0 | 10
> !   1 | 11
> !   2 | 12
> !   3 | 13
> !   4 | 14
> !   5 | 15
> !  -1 |  9
> !  -2 |  8
> !  -3 |  7
> !  -4 |  6
> !  -5 |  5
> ! (11 rows)
> !
>   -- Two SubPlan nodes
>   select t1.* from t1 where (t1.a, t1.b) not in (select i3.a,i3.b from i3) or
>      (t1.a, half(t1.b)) not in (select thrice(i4.a), i4.b from i4);
> !  a  | b
> ! ----+----
> !   0 | 10
> !   1 | 11
> !   2 | 12
> !   3 | 13
> !   4 | 14
> !   5 | 15
> !  -1 |  9
> !  -2 |  8
> !  -3 |  7
> !  -4 |  6
> !  -5 |  5
> ! (11 rows)
> !
>   -- SUITE: diff-rel-cols-not-in
>   truncate table t1;
>   create table t2(a int, b int) distributed by (a);
> --- 90,106 ----
>   select t1.* from t1 where
>      (t1.a, twice(t1.b)) not in (select thrice(i3.a), i3.b from i3) or
>         (t1.a, half(t1.b)) not in (select i4.a, i4.b from i4);
> ! ERROR:  function thrice(integer) does not exist
> ! LINE 2:    (t1.a, twice(t1.b)) not in (select thrice(i3.a), i3.b fro...
> !                                               ^
> ! HINT:  No function matches the given name and argument types. You may need to add explicit type casts.
>   -- Two SubPlan nodes
>   select t1.* from t1 where (t1.a, t1.b) not in (select i3.a,i3.b from i3) or
>      (t1.a, half(t1.b)) not in (select thrice(i4.a), i4.b from i4);
> ! ERROR:  function thrice(integer) does not exist
> ! LINE 2:    (t1.a, half(t1.b)) not in (select thrice(i4.a), i4.b from...
> !                                              ^
> ! HINT:  No function matches the given name and argument types. You may need to add explicit type casts.
>   -- SUITE: diff-rel-cols-not-in
>   truncate table t1;
>   create table t2(a int, b int) distributed by (a);
> ***************
> *** 173,204 ****
>           return x * 3
>       return 0
>   $$ language plpythonu;
>   select t1.a, twice(t2.b) from t1, t2 where t1.a = half(t2.a) or
>      ((t1.a, t2.b) not in (select i1.a, thrice(i1.b) from i1));
> !  a  | twice
> ! ----+-------
> !   0 |   -10
> !   0 |   -12
> !   0 |   -14
> !   0 |   -16
> !   1 |   -10
> !   1 |   -12
> !   1 |   -14
> !   1 |   -16
> !   2 |   -10
> !   2 |   -12
> !   2 |   -14
> !   2 |   -16
> !   3 |   -10
> !   3 |   -12
> !   3 |   -14
> !   3 |   -16
> !  -1 |   -10
> !  -1 |   -12
> !  -1 |   -14
> !  -1 |   -16
> ! (20 rows)
> !
>   select t1.a, t2.b from t1 left join t2 on
>      (t1.a = t2.a and ((t1.a, half(t2.b)) not in (select i1.a, i1.b from i1)));
>    a  | b
> --- 121,134 ----
>           return x * 3
>       return 0
>   $$ language plpythonu;
> + ERROR:  language "plpythonu" does not exist
> + HINT:  Use CREATE LANGUAGE to load the language into the database.
>   select t1.a, twice(t2.b) from t1, t2 where t1.a = half(t2.a) or
>      ((t1.a, t2.b) not in (select i1.a, thrice(i1.b) from i1));
> ! ERROR:  function thrice(integer) does not exist
> ! LINE 2:    ((t1.a, t2.b) not in (select i1.a, thrice(i1.b) from i1))...
> !                                               ^
> ! HINT:  No function matches the given name and argument types. You may need to add explicit type casts.
>   select t1.a, t2.b from t1 left join t2 on
>      (t1.a = t2.a and ((t1.a, half(t2.b)) not in (select i1.a, i1.b from i1)));
>    a  | b
> ***************
> *** 212,253 ****
>   select t1.a, t2.b from t1, t2 where t1.a = t2.a or
>      ((t1.a, t2.b) not in (select thrice(i1.a), i1.b from i1));
> !  a  | b
> ! ----+----
> !   0 | -5
> !   0 | -6
> !   0 | -7
> !   0 | -8
> !   1 | -5
> !   1 | -6
> !   1 | -7
> !   1 | -8
> !   2 | -5
> !   2 | -6
> !   2 | -7
> !   2 | -8
> !   3 | -5
> !   3 | -6
> !   3 | -7
> !   3 | -8
> !  -1 | -5
> !  -1 | -6
> !  -1 | -7
> !  -1 | -8
> ! (20 rows)
> !
>   select t1.a, t2.b from t1 left join t2 on
>      (thrice(t1.a) = thrice(t2.a) and
>         ((t1.a, t2.b) not in (select i1.a, i1.b from i1)));
> !  a  | b
> ! ----+----
> !   0 |
> !   1 |
> !   2 | -8
> !   3 |
> !  -1 |
> ! (5 rows)
> !
>   select t1.a, t2.b from t1, t2 where t1.a = t2.a or
>      ((t1.a, t2.b) not in (select i1.a, half(i1.b) from i1));
>    a  | b
> --- 142,158 ----
>   select t1.a, t2.b from t1, t2 where t1.a = t2.a or
>      ((t1.a, t2.b) not in (select thrice(i1.a), i1.b from i1));
> ! ERROR:  function thrice(integer) does not exist
> ! LINE 2:    ((t1.a, t2.b) not in (select thrice(i1.a), i1.b from i1))...
> !                                         ^
> ! HINT:  No function matches the given name and argument types. You may need to add explicit type casts.
>   select t1.a, t2.b from t1 left join t2 on
>      (thrice(t1.a) = thrice(t2.a) and
>         ((t1.a, t2.b) not in (select i1.a, i1.b from i1)));
> ! ERROR:  function thrice(integer) does not exist
> ! LINE 2:    (thrice(t1.a) = thrice(t2.a) and
> !             ^
> ! HINT:  No function matches the given name and argument types. You may need to add explicit type casts.
>   select t1.a, t2.b from t1, t2 where t1.a = t2.a or
>      ((t1.a, t2.b) not in (select i1.a, half(i1.b) from i1));
>    a  | b
> ***************
> *** 277,291 ****
>   select t1.a, t2.b from t1 left join t2 on
>      (t1.a = t2.a and
>         ((t1.a, twice(t2.b)) not in (select i1.a, thrice(i1.b) from i1)));
> !  a  | b
> ! ----+----
> !   0 |
> !   1 |
> !   2 | -8
> !   3 | -7
> !  -1 |
> ! (5 rows)
> !
>   -- From MPP-2869
>   create table bug_data (domain integer, class integer, attr text, value integer)
>      distributed by (domain);
> --- 182,191 ----
>   select t1.a, t2.b from t1 left join t2 on
>      (t1.a = t2.a and
>         ((t1.a, twice(t2.b)) not in (select i1.a, thrice(i1.b) from i1)));
> ! ERROR:  function thrice(integer) does not exist
> ! LINE 3:       ((t1.a, twice(t2.b)) not in (select i1.a, thrice(i1.b)...
> !                                                         ^
> ! HINT:  No function matches the given name and argument types. You may need to add explicit type casts.
>   -- From MPP-2869
>   create table bug_data (domain integer, class integer, attr text, value integer)
>      distributed by (domain);
> ***************
> *** 296,304 ****
> --- 196,210 ----
>   create table foo as
>   SELECT attr, class, (select thrice(count(distinct class)::int) from bug_data)
>      as dclass FROM bug_data GROUP BY attr, class distributed by (attr);
> + ERROR:  function thrice(integer) does not exist
> + LINE 2: SELECT attr, class, (select thrice(count(distinct class)::in...
> +                                     ^
> + HINT:  No function matches the given name and argument types. You may need to add explicit type casts.
>   -- Query from GPSQL-1260, produces InitPlan and a SubPlan.
>   create or replace function nop(a int) returns int as $$ return a $$
>   language plpythonu;
> + ERROR:  language "plpythonu" does not exist
> + HINT:  Use CREATE LANGUAGE to load the language into the database.
>   create table toy as select generate_series(1, 10) i distributed by (i);
>   select * from toy; -- only for debugging
>    i
> ***************
> *** 316,326 ****
>   (10 rows)
>   select array(select nop(i) from toy order by i);
> !         ?column?
> ! ------------------------
> !  {1,2,3,4,5,6,7,8,9,10}
> ! (1 row)
> !
>   GP_IGNORE:-- start_ignore
>   GP_IGNORE:drop schema subplan_tests cascade;
>   GP_IGNORE:NOTICE:  drop cascades to append only table toy
> --- 222,231 ----
>   (10 rows)
>   select array(select nop(i) from toy order by i);
> ! ERROR:  function nop(integer) does not exist
> ! LINE 1: select array(select nop(i) from toy order by i);
> !                             ^
> ! HINT:  No function matches the given name and argument types. You may need to add explicit type casts.
>   GP_IGNORE:-- start_ignore
>   GP_IGNORE:drop schema subplan_tests cascade;
>   GP_IGNORE:NOTICE:  drop cascades to append only table toy
> ======================================================================
> *** ./expected/set_functions.out	2016-01-18 05:37:12.899006690 -0800
> --- ./results/set_functions.out	2016-01-18 05:37:12.944966492 -0800
> ***************
> *** 7,12 ****
> --- 7,13 ----
>   set search_path=set_functions;
>   DROP LANGUAGE IF EXISTS plpythonu CASCADE;
>   CREATE LANGUAGE plpythonu;
> + ERROR:  could not access file "$libdir/plpython": No such file or directory
>   CREATE TABLE foo2(fooid int, f2 int);
>   INSERT INTO foo2 VALUES(1, 11);
>   INSERT INTO foo2 VALUES(2, 22);
> ***************
> *** 68,143 ****
>   for i in range(1, (1 << len(x)) - 2):
>      yield subset(x, i)
>   $$ language plpythonu strict;
>   select x[1] || ' => ' || x[2] from combination('a,b,c,d') x;
> !    ?column?
> ! --------------
> !  a => b, c, d
> !  a, b => c, d
> !  a, b, c => d
> !  a, b, d => c
> !  a, c => b, d
> !  a, c, d => b
> !  a, d => b, c
> !  b => a, c, d
> !  b, c => a, d
> !  b, d => a, c
> !  c => a, b, d
> !  c, d => a, b
> !  d => a, b, c
> ! (13 rows)
> !
>   CREATE TABLE rules(rule text) distributed by (rule);
>   insert into rules values('a,b,c');
>   insert into rules values('d,e');
>   insert into rules values('f,g,h,i,j');
>   insert into rules values('k,l,m');
>   SELECT rule, combination(rule) from rules order by 1,2;
> !    rule    |    combination
> ! -----------+--------------------
> !  a,b,c     | {a,"b, c"}
> !  a,b,c     | {"a, b",c}
> !  a,b,c     | {"a, c",b}
> !  a,b,c     | {b,"a, c"}
> !  a,b,c     | {c,"a, b"}
> !  d,e       | {d,e}
> !  f,g,h,i,j | {f,"g, h, i, j"}
> !  f,g,h,i,j | {"f, g","h, i, j"}
> !  f,g,h,i,j | {"f, g, h","i, j"}
> !  f,g,h,i,j | {"f, g, h, i",j}
> !  f,g,h,i,j | {"f, g, h, j",i}
> !  f,g,h,i,j | {"f, g, i","h, j"}
> !  f,g,h,i,j | {"f, g, i, j",h}
> !  f,g,h,i,j | {"f, g, j","h, i"}
> !  f,g,h,i,j | {"f, h","g, i, j"}
> !  f,g,h,i,j | {"f, h, i","g, j"}
> !  f,g,h,i,j | {"f, h, i, j",g}
> !  f,g,h,i,j | {"f, h, j","g, i"}
> !  f,g,h,i,j | {"f, i","g, h, j"}
> !  f,g,h,i,j | {"f, i, j","g, h"}
> !  f,g,h,i,j | {"f, j","g, h, i"}
> !  f,g,h,i,j | {g,"f, h, i, j"}
> !  f,g,h,i,j | {"g, h","f, i, j"}
> !  f,g,h,i,j | {"g, h, i","f, j"}
> !  f,g,h,i,j | {"g, h, j","f, i"}
> !  f,g,h,i,j | {"g, i","f, h, j"}
> !  f,g,h,i,j | {"g, i, j","f, h"}
> !  f,g,h,i,j | {"g, j","f, h, i"}
> !  f,g,h,i,j | {h,"f, g, i, j"}
> !  f,g,h,i,j | {"h, i","f, g, j"}
> !  f,g,h,i,j | {"h, i, j","f, g"}
> !  f,g,h,i,j | {"h, j","f, g, i"}
> !  f,g,h,i,j | {i,"f, g, h, j"}
> !  f,g,h,i,j | {"i, j","f, g, h"}
> !  f,g,h,i,j | {j,"f, g, h, i"}
> !  k,l,m     | {k,"l, m"}
> !  k,l,m     | {"k, l",m}
> !  k,l,m     | {"k, m",l}
> !  k,l,m     | {l,"k, m"}
> !  k,l,m     | {m,"k, l"}
> ! (40 rows)
> !
>   DROP TABLE IF EXISTS foo;
>   CREATE TABLE foo AS SELECT rule, combination(rule) from rules distributed by (rule);
>   -- UDT as argument/return type of set returning UDF
>   CREATE TYPE r_type as (a int, b text);
>   CREATE FUNCTION f1(x r_type) returns setof text as $$ SELECT $1.b from generate_series(1, $1.a) $$ language sql;
> --- 69,97 ----
>   for i in range(1, (1 << len(x)) - 2):
>      yield subset(x, i)
>   $$ language plpythonu strict;
> + ERROR:  language "plpythonu" does not exist
> + HINT:  Use CREATE LANGUAGE to load the language into the database.
>   select x[1] || ' => ' || x[2] from combination('a,b,c,d') x;
> ! ERROR:  function combination(unknown) does not exist
> ! LINE 1: select x[1] || ' => ' || x[2] from combination('a,b,c,d') x;
> !                                            ^
> ! HINT:  No function matches the given name and argument types. You may need to add explicit type casts.
>   CREATE TABLE rules(rule text) distributed by (rule);
>   insert into rules values('a,b,c');
>   insert into rules values('d,e');
>   insert into rules values('f,g,h,i,j');
>   insert into rules values('k,l,m');
>   SELECT rule, combination(rule) from rules order by 1,2;
> ! ERROR:  function combination(text) does not exist
> ! LINE 1: SELECT rule, combination(rule) from rules order by 1,2;
> !                      ^
> ! HINT:  No function matches the given name and argument types. You may need to add explicit type casts.
>   DROP TABLE IF EXISTS foo;
>   CREATE TABLE foo AS SELECT rule, combination(rule) from rules distributed by (rule);
> + ERROR:  function combination(text) does not exist
> + LINE 1: CREATE TABLE foo AS SELECT rule, combination(rule) from rule...
> +                                          ^
> + HINT:  No function matches the given name and argument types. You may need to add explicit type casts.
>   -- UDT as argument/return type of set returning UDF
>   CREATE TYPE r_type as (a int, b text);
>   CREATE FUNCTION f1(x r_type) returns setof text as $$ SELECT $1.b from generate_series(1, $1.a) $$ language sql;
> ======================================================================
> *** ./expected/exttab1.out	2016-01-18 05:37:35.792982848 -0800
> --- ./results/exttab1.out	2016-01-18 05:37:35.859924298 -0800
> ***************
> *** 608,615 ****
>   --drop foreign table ext; -- should fail (wrong object)
>   --drop external table ext;
>   ----------------------------------------------------------------------
> !           r_name
> !  MIDDLE EAST
>   --
>   --
>   --
> --- 609,616 ----
>   --drop foreign table ext; -- should fail (wrong object)
>   --drop external table ext;
>   ----------------------------------------------------------------------
> !                                       x
> !  Okay, gpfdist version "2.0.0.0_beta build dev" is running on localhost:7070.
>   --
>   --
>   --
> ***************
> *** 671,681 ****
>   -- in between runs, so we don't check for count(*), and instead check for distinct.
>   -- negative
>   -- positive
> ! ---------------------------
>   ----------------------------------------------------------------------
> ! ERROR:  ON clause may not be used with a writable external table
>   ERROR:  it is not possible to read from a WRITABLE external table.
>   ERROR:  location uri "gpfdist://localhost:7070/wet.out" appears more than once
>   ERROR:  the file protocol for external tables is deprecated
>   HINT:  Create the table as READABLE instead
>   HINT:  use the gpfdist protocol or COPY FROM instead
> --- 672,683 ----
>   -- in between runs, so we don't check for count(*), and instead check for distinct.
>   -- negative
>   -- positive
> ! -- start_ignore
>   ----------------------------------------------------------------------
> ! ------------------------------------------------------------------------------
>   ERROR:  it is not possible to read from a WRITABLE external table.
>   ERROR:  location uri "gpfdist://localhost:7070/wet.out" appears more than once
> + ERROR:  the ON segment syntax for writable external tables is deprecated
>   ERROR:  the file protocol for external tables is deprecated
>   HINT:  Create the table as READABLE instead
>   HINT:  use the gpfdist protocol or COPY FROM instead
> ***************
> *** 690,720 ****
>   create writable external table wet_pos3(like wet_pos2) location('gpfdist://localhost:7070/wet.out') format 'text' distributed by(a,b);
>   create writable external table wet_region(like reg_region) location('gpfdist://localhost:7070/wet_region.out') format 'text';
>   create writable external web table wet_pos5(a text, b text) execute 'some command' on segment 0 format 'text';
>   select * from wet_pos1;
>   (1 row)
> ! GP_IGNORE:-- start_ignore
> ! GP_IGNORE:select * from gpfdist_status;
> ! GP_IGNORE:                                    x
> ! GP_IGNORE:-------------------------------------------------------------------------
> ! GP_IGNORE: Okay, gpfdist version "2.0.0.0 build dev" is running on localhost:7070.
> ! GP_IGNORE:(1 row)
> ! GP_IGNORE:
> ! GP_IGNORE:select * from gpfdist_stop;
> ! GP_IGNORE:      x
> ! GP_IGNORE:-------------
> ! GP_IGNORE: stopping...
> ! GP_IGNORE:(1 row)
> ! GP_IGNORE:
> ! GP_IGNORE:select * from gpfdist_status;
> ! GP_IGNORE:                          x
> ! GP_IGNORE:------------------------------------------------------
> ! GP_IGNORE: Error: gpfdist is not running (reason: socket error)
> ! GP_IGNORE: Exit: 1
> ! GP_IGNORE:
> ! GP_IGNORE:(3 rows)
> ! GP_IGNORE:
> ! GP_IGNORE:-- end_ignore
>   --
>   -- get an error for missing gpfdist
>   --
> --- 692,716 ----
>   create writable external table wet_pos3(like wet_pos2) location('gpfdist://localhost:7070/wet.out') format 'text' distributed by(a,b);
>   create writable external table wet_region(like reg_region) location('gpfdist://localhost:7070/wet_region.out') format 'text';
>   create writable external web table wet_pos5(a text, b text) execute 'some command' on segment 0 format 'text';
> + select * from gpfdist_status;
>   select * from wet_pos1;
>   (1 row)
> ! select * from gpfdist_stop;
> !       x
> ! -------------
> !  stopping...
> ! (1 row)
> !
> ! select * from gpfdist_status;
> !                           x
> ! ------------------------------------------------------
> !
> !  Error: gpfdist is not running (reason: socket error)
> !  Exit: 1
> ! (3 rows)
> !
> ! -- end_ignore
>   --
>   -- get an error for missing gpfdist
>   --
> ======================================================================
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)