This is an automated email from the ASF dual-hosted git repository.

chenjinbao1989 pushed a commit to branch cbdb-postgres-merge
in repository https://gitbox.apache.org/repos/asf/cloudberry.git


The following commit(s) were added to refs/heads/cbdb-postgres-merge by this 
push:
     new d0a08fc6bca Fix errors on create_view
d0a08fc6bca is described below

commit d0a08fc6bcac84ad1d9a437d524429e010e462b4
Author: Jinbao Chen <[email protected]>
AuthorDate: Sat Nov 8 18:36:58 2025 +0800

    Fix errors on create_view
---
 src/backend/nodes/outfast.c               |  12 --
 src/backend/nodes/outfuncs.c              |  15 +++
 src/backend/nodes/readfast.c              |  19 ---
 src/backend/nodes/readfuncs.c             |  21 +++
 src/backend/parser/parse_clause.c         |  14 --
 src/backend/utils/adt/ruleutils.c         |   1 +
 src/test/regress/expected/create_view.out | 209 ++++++++----------------------
 src/test/regress/serial_schedule          |   2 +-
 src/test/regress/sql/create_view.sql      |  98 +++++++-------
 9 files changed, 142 insertions(+), 249 deletions(-)

diff --git a/src/backend/nodes/outfast.c b/src/backend/nodes/outfast.c
index f1437ae8cf9..e7f71879c22 100644
--- a/src/backend/nodes/outfast.c
+++ b/src/backend/nodes/outfast.c
@@ -817,18 +817,6 @@ _outAccessPriv(StringInfo str, AccessPriv *node)
        WRITE_NODE_FIELD(cols);
 }
 
-static void
-_outGpPolicy(StringInfo str, GpPolicy *node)
-{
-       WRITE_NODE_TYPE("GPPOLICY");
-
-       WRITE_ENUM_FIELD(ptype, GpPolicyType);
-       WRITE_INT_FIELD(numsegments);
-       WRITE_INT_FIELD(nattrs);
-       WRITE_ATTRNUMBER_ARRAY(attrs, node->nattrs);
-       WRITE_OID_ARRAY(opclasses, node->nattrs);
-}
-
 static void
 _outAlterTableMoveAllStmt(StringInfo str, AlterTableMoveAllStmt *node)
 {
diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c
index b2e20548bb5..02f6ffad40b 100644
--- a/src/backend/nodes/outfuncs.c
+++ b/src/backend/nodes/outfuncs.c
@@ -4288,6 +4288,18 @@ _outRTEPermissionInfo(StringInfo str, const 
RTEPermissionInfo *node)
        WRITE_BITMAPSET_FIELD(updatedCols);
 }
 
+static void
+_outGpPolicy(StringInfo str, const GpPolicy *node)
+{
+       WRITE_NODE_TYPE("GPPOLICY");
+
+       WRITE_ENUM_FIELD(ptype, GpPolicyType);
+       WRITE_INT_FIELD(numsegments);
+       WRITE_INT_FIELD(nattrs);
+       WRITE_ATTRNUMBER_ARRAY(attrs, node->nattrs);
+       WRITE_OID_ARRAY(opclasses, node->nattrs);
+}
+
 #include "outfuncs_common.c"
 #ifndef COMPILING_BINARY_FUNCS
 /*
@@ -5484,6 +5496,9 @@ outNode(StringInfo str, const void *obj)
                        case T_RTEPermissionInfo:
                                _outRTEPermissionInfo(str, obj);
                                break;
+                       case T_GpPolicy:
+                               _outGpPolicy(str, obj);
+                               break;
                        default:
 
                                /*
diff --git a/src/backend/nodes/readfast.c b/src/backend/nodes/readfast.c
index ed47f31ee38..c35af7d4e69 100644
--- a/src/backend/nodes/readfast.c
+++ b/src/backend/nodes/readfast.c
@@ -1736,25 +1736,6 @@ _readGpDropPartitionCmd(void)
        READ_DONE();
 }
 
-/*
- * _readGpPolicy
- */
-static GpPolicy *
-_readGpPolicy(void)
-{
-       READ_LOCALS(GpPolicy);
-
-       READ_ENUM_FIELD(ptype, GpPolicyType);
-
-       READ_INT_FIELD(numsegments);
-
-       READ_INT_FIELD(nattrs);
-       READ_ATTRNUMBER_ARRAY(attrs, local_node->nattrs);
-       READ_OID_ARRAY(opclasses, local_node->nattrs);
-
-       READ_DONE();
-}
-
 static GpSplitPartitionCmd *
 _readGpSplitPartitionCmd(void)
 {
diff --git a/src/backend/nodes/readfuncs.c b/src/backend/nodes/readfuncs.c
index abec9fdf369..ec71a331390 100644
--- a/src/backend/nodes/readfuncs.c
+++ b/src/backend/nodes/readfuncs.c
@@ -2917,6 +2917,25 @@ _readRTEPermissionInfo(void)
        READ_DONE();
 }
 
+/*
+ * _readGpPolicy
+ */
+static GpPolicy *
+_readGpPolicy(void)
+{
+       READ_LOCALS(GpPolicy);
+
+       READ_ENUM_FIELD(ptype, GpPolicyType);
+
+       READ_INT_FIELD(numsegments);
+
+       READ_INT_FIELD(nattrs);
+       READ_ATTRNUMBER_ARRAY(attrs, local_node->nattrs);
+       READ_OID_ARRAY(opclasses, local_node->nattrs);
+
+       READ_DONE();
+}
+
 #include "readfuncs_common.c"
 #ifndef COMPILING_BINARY_FUNCS
 /*
@@ -3436,6 +3455,8 @@ parseNodeString(void)
                return_value = _readDropDirectoryTableStmt();
        else if (MATCHX("RTEPERMISSIONINFO"))
                return_value = _readRTEPermissionInfo();
+       else if (MATCHX("GPPOLICY"))
+               return_value = _readGpPolicy();
        else
        {
         ereport(ERROR,
diff --git a/src/backend/parser/parse_clause.c 
b/src/backend/parser/parse_clause.c
index f96caa0dce8..4179aaad30c 100644
--- a/src/backend/parser/parse_clause.c
+++ b/src/backend/parser/parse_clause.c
@@ -351,20 +351,6 @@ setTargetTable(ParseState *pstate, RangeVar *relation,
        /* remember the RTE/nsitem as being the query target */
        pstate->p_target_nsitem = nsitem;
 
-       /*
-        * Special check for DML on system relations,
-        * allow DML when:
-        *      - in single user mode: initdb insert PIN entries to 
pg_depend,...
-        *      - in maintenance mode, upgrade mode or
-        *  - allow_system_table_mods = true
-        */
-       if (IsUnderPostmaster && !allowSystemTableMods
-               && IsSystemRelation(pstate->p_target_relation))
-               ereport(ERROR,
-                               (errcode(ERRCODE_WRONG_OBJECT_TYPE),
-                                errmsg("permission denied: \"%s\" is a system 
catalog",
-                                                
RelationGetRelationName(pstate->p_target_relation))));
-
        /*
         * Override addRangeTableEntry's default ACL_SELECT permissions check, 
and
         * instead mark target table as requiring exactly the specified
diff --git a/src/backend/utils/adt/ruleutils.c 
b/src/backend/utils/adt/ruleutils.c
index f2f1effe7e7..fd95fff5e09 100644
--- a/src/backend/utils/adt/ruleutils.c
+++ b/src/backend/utils/adt/ruleutils.c
@@ -8166,6 +8166,7 @@ get_name_for_var_field(Var *var, int fieldno,
                                                return dummy_name;
                                        }
                                        Assert(dpns->plan && (IsA(dpns->plan, 
CteScan) ||
+                                                                               
  IsA(dpns->plan, ShareInputScan) ||
                                                                                
  IsA(dpns->plan, WorkTableScan)));
 
                                        tle = 
get_tle_by_resno(dpns->inner_tlist, attnum);
diff --git a/src/test/regress/expected/create_view.out 
b/src/test/regress/expected/create_view.out
index de49178593a..d9f97043b64 100644
--- a/src/test/regress/expected/create_view.out
+++ b/src/test/regress/expected/create_view.out
@@ -1654,97 +1654,62 @@ alter table tt14t drop column f3;  -- fail, view has 
explicit reference to f3
 ERROR:  cannot drop column f3 of table tt14t because other objects depend on it
 DETAIL:  view tt14v depends on column f3 of table tt14t
 HINT:  Use DROP ... CASCADE to drop the dependent objects too.
+-- MERGE16_FIXME: delete command can only delete tuples from master, But we
+-- need to delete them from both master and segments
+    
 -- We used to have a bug that would allow the above to succeed, posing
 -- hazards for later execution of the view.  Check that the internal
 -- defenses for those hazards haven't bit-rotted, in case some other
 -- bug with similar symptoms emerges.
-begin;
--- destroy the dependency entry that prevents the DROP:
-delete from pg_depend where
-  objid = (select oid from pg_rewrite
-           where ev_class = 'tt14v'::regclass and rulename = '_RETURN')
-  and refobjsubid = 3
-returning pg_describe_object(classid, objid, objsubid) as obj,
-          pg_describe_object(refclassid, refobjid, refobjsubid) as ref,
-          deptype;
-            obj             |           ref            | deptype 
-----------------------------+--------------------------+---------
- rule _RETURN on view tt14v | column f3 of table tt14t | n
-(1 row)
-
--- this will now succeed:
-alter table tt14t drop column f3;
--- column f3 is still in the view, sort of ...
-select pg_get_viewdef('tt14v', true);
-        pg_get_viewdef         
--------------------------------
-  SELECT f1,                  +
-     "?dropped?column?" AS f3,+
-     f4                       +
-    FROM tt14f() t(f1, f4);
-(1 row)
-
--- ... and you can even EXPLAIN it ...
-explain (verbose, costs off) select * from tt14v;
-               QUERY PLAN               
-----------------------------------------
- Function Scan on testviewschm2.tt14f t
-   Output: t.f1, t.f3, t.f4
-   Function Call: tt14f()
-(3 rows)
-
--- but it will fail at execution
-select f1, f4 from tt14v;
- f1  | f4 
------+----
- foo | 42
-(1 row)
-
-select * from tt14v;
-ERROR:  attribute 3 of type record has been dropped
-rollback;
+-- begin;
+-- 
+-- -- destroy the dependency entry that prevents the DROP:
+-- delete from pg_depend where
+--   objid = (select oid from pg_rewrite
+--            where ev_class = 'tt14v'::regclass and rulename = '_RETURN')
+--   and refobjsubid = 3
+-- returning pg_describe_object(classid, objid, objsubid) as obj,
+--           pg_describe_object(refclassid, refobjid, refobjsubid) as ref,
+--           deptype;
+-- 
+-- -- this will now succeed:
+-- alter table tt14t drop column f3;
+-- 
+-- -- column f3 is still in the view, sort of ...
+-- select pg_get_viewdef('tt14v', true);
+-- -- ... and you can even EXPLAIN it ...
+-- explain (verbose, costs off) select * from tt14v;
+-- -- but it will fail at execution
+-- select f1, f4 from tt14v;
+-- select * from tt14v;
+-- 
+-- rollback;
 -- likewise, altering a referenced column's type is prohibited ...
 alter table tt14t alter column f4 type integer using f4::integer;  -- fail
 ERROR:  cannot alter type of a column used by a view or rule
 DETAIL:  rule _RETURN on view tt14v depends on column "f4"
 -- ... but some bug might let it happen, so check defenses
-begin;
--- destroy the dependency entry that prevents the ALTER:
-delete from pg_depend where
-  objid = (select oid from pg_rewrite
-           where ev_class = 'tt14v'::regclass and rulename = '_RETURN')
-  and refobjsubid = 4
-returning pg_describe_object(classid, objid, objsubid) as obj,
-          pg_describe_object(refclassid, refobjid, refobjsubid) as ref,
-          deptype;
-            obj             |           ref            | deptype 
-----------------------------+--------------------------+---------
- rule _RETURN on view tt14v | column f4 of table tt14t | n
-(1 row)
-
--- this will now succeed:
-alter table tt14t alter column f4 type integer using f4::integer;
--- f4 is still in the view ...
-select pg_get_viewdef('tt14v', true);
-         pg_get_viewdef         
---------------------------------
-  SELECT f1,                   +
-     f3,                       +
-     f4                        +
-    FROM tt14f() t(f1, f3, f4);
-(1 row)
-
--- but will fail at execution
-select f1, f3 from tt14v;
- f1  | f3  
------+-----
- foo | baz
-(1 row)
-
-select * from tt14v;
-ERROR:  attribute 4 of type record has wrong type
-DETAIL:  Table has type integer, but query expects text.
-rollback;
+-- begin;
+-- 
+-- -- destroy the dependency entry that prevents the ALTER:
+-- delete from pg_depend where
+--   objid = (select oid from pg_rewrite
+--            where ev_class = 'tt14v'::regclass and rulename = '_RETURN')
+--   and refobjsubid = 4
+-- returning pg_describe_object(classid, objid, objsubid) as obj,
+--           pg_describe_object(refclassid, refobjid, refobjsubid) as ref,
+--           deptype;
+-- 
+-- -- this will now succeed:
+-- alter table tt14t alter column f4 type integer using f4::integer;
+-- 
+-- -- f4 is still in the view ...
+-- select pg_get_viewdef('tt14v', true);
+-- -- but will fail at execution
+-- select f1, f3 from tt14v;
+-- select * from tt14v;
+-- 
+-- rollback;
 drop view tt14v;
 create view tt14v as select t.f1, t.f4 from tt14f() t;
 select pg_get_viewdef('tt14v', true);
@@ -2196,38 +2161,22 @@ select pg_get_viewdef('tt25v', true);
 -- also check cases seen only in EXPLAIN
 explain (verbose, costs off)
 select * from tt24v;
-                                            QUERY PLAN                         
                   
---------------------------------------------------------------------------------------------------
+                                              QUERY PLAN                       
                       
+------------------------------------------------------------------------------------------------------
  Hash Join
-<<<<<<< HEAD
-   Output: (share0_ref1.r).column2, ((ROW("*VALUES*".column1, 
"*VALUES*".column2))).column2
-   Hash Cond: (((ROW("*VALUES*".column1, "*VALUES*".column2))).column1 = 
(share0_ref1.r).column1)
-   ->  Limit
-         Output: (ROW("*VALUES*".column1, "*VALUES*".column2))
+   Output: (share0_ref1.r).column2, ((ROW("*VALUES*_1".column1, 
"*VALUES*_1".column2))).column2
+   Hash Cond: ((share0_ref1.r).column1 = ((ROW("*VALUES*_1".column1, 
"*VALUES*_1".column2))).column1)
+   ->  Shared Scan (share slice:id 0:0)
+         Output: share0_ref1.r
          ->  Values Scan on "*VALUES*"
                Output: ROW("*VALUES*".column1, "*VALUES*".column2)
    ->  Hash
-         Output: share0_ref1.r
-         ->  Shared Scan (share slice:id 0:0)
-               Output: share0_ref1.r
+         Output: (ROW("*VALUES*_1".column1, "*VALUES*_1".column2))
+         ->  Limit
+               Output: (ROW("*VALUES*_1".column1, "*VALUES*_1".column2))
                ->  Values Scan on "*VALUES*_1"
                      Output: ROW("*VALUES*_1".column1, "*VALUES*_1".column2)
  Optimizer: Postgres query optimizer
-=======
-   Output: (cte.r).column2, ((ROW("*VALUES*".column1, 
"*VALUES*".column2))).column2
-   Hash Cond: ((cte.r).column1 = ((ROW("*VALUES*".column1, 
"*VALUES*".column2))).column1)
-   CTE cte
-     ->  Values Scan on "*VALUES*_1"
-           Output: ROW("*VALUES*_1".column1, "*VALUES*_1".column2)
-   ->  CTE Scan on cte
-         Output: cte.r
-   ->  Hash
-         Output: (ROW("*VALUES*".column1, "*VALUES*".column2))
-         ->  Limit
-               Output: (ROW("*VALUES*".column1, "*VALUES*".column2))
-               ->  Values Scan on "*VALUES*"
-                     Output: ROW("*VALUES*".column1, "*VALUES*".column2)
->>>>>>> REL_16_9
 (14 rows)
 
 explain (verbose, costs off)
@@ -2259,40 +2208,6 @@ select x + y + z as c1,
        (x,y) <= ANY (values(1,2),(3,4)) as c11
 from (values(1,2,3)) v(x,y,z);
 select pg_get_viewdef('tt26v', true);
-<<<<<<< HEAD
-                     pg_get_viewdef                     
---------------------------------------------------------
-  SELECT v.x + v.y + v.z AS c1,                        +
-     v.x * v.y + v.z AS c2,                            +
-     v.x + v.y * v.z AS c3,                            +
-     (v.x + v.y) * v.z AS c4,                          +
-     v.x * (v.y + v.z) AS c5,                          +
-     v.x + (v.y + v.z) AS c6,                          +
-     v.x + (v.y # v.z) AS c7,                          +
-     v.x > v.y AND (v.y > v.z OR v.x > v.z) AS c8,     +
-     v.x > v.y OR (v.y > v.z AND NOT v.x > v.z) AS c9, +
-     ((v.x, v.y) <> ALL ( VALUES (1,2), (3,4))) AS c10,+
-     ((v.x, v.y) <= ANY ( VALUES (1,2), (3,4))) AS c11 +
-    FROM ( VALUES (1,2,3)) v(x, y, z);
-(1 row)
-
--- test display negative operator of const-folder expression
-create table tdis(a int, b int, c int);
-NOTICE:  Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 'a' 
as the Greenplum Database data distribution key for this table.
-HINT:  The 'DISTRIBUTED BY' clause determines the distribution of data. Make 
sure column(s) chosen are the optimal data distribution key to minimize skew.
-create view tdis_v1 as select a,b,c, -1::int from tdis group by 1,2,3,4;
-select pg_get_viewdef('tdis_v1', true);
-                   pg_get_viewdef                    
------------------------------------------------------
-  SELECT tdis.a,                                    +
-     tdis.b,                                        +
-     tdis.c,                                        +
-     - 1 AS "?column?"                              +
-    FROM tdis                                       +
-   GROUP BY tdis.a, tdis.b, tdis.c, ('-1'::integer);
-(1 row)
-
-=======
                    pg_get_viewdef                   
 ----------------------------------------------------
   SELECT x + y + z AS c1,                          +
@@ -2303,7 +2218,7 @@ select pg_get_viewdef('tdis_v1', true);
      x + (y + z) AS c6,                            +
      x + (y # z) AS c7,                            +
      x > y AND (y > z OR x > z) AS c8,             +
-     x > y OR y > z AND NOT x > z AS c9,           +
+     x > y OR (y > z AND NOT x > z) AS c9,         +
      ((x, y) <> ALL ( VALUES (1,2), (3,4))) AS c10,+
      ((x, y) <= ANY ( VALUES (1,2), (3,4))) AS c11 +
     FROM ( VALUES (1,2,3)) v(x, y, z);
@@ -2324,7 +2239,6 @@ select viewname from pg_views where viewname = 'tt27v'; 
-- Ok to access a system
 (1 row)
 
 reset restrict_nonsystem_relation_kind;
->>>>>>> REL_16_9
 -- clean up all the random objects we made above
 DROP SCHEMA temp_view_test CASCADE;
 NOTICE:  drop cascades to 27 other objects
@@ -2356,11 +2270,7 @@ drop cascades to view aliased_view_2
 drop cascades to view aliased_view_3
 drop cascades to view aliased_view_4
 DROP SCHEMA testviewschm2 CASCADE;
-<<<<<<< HEAD
-NOTICE:  drop cascades to 76 other objects
-=======
 NOTICE:  drop cascades to 80 other objects
->>>>>>> REL_16_9
 DETAIL:  drop cascades to table t1
 drop cascades to view temporal1
 drop cascades to view temporal2
@@ -2439,10 +2349,5 @@ drop cascades to view tt23v
 drop cascades to view tt24v
 drop cascades to view tt25v
 drop cascades to view tt26v
-<<<<<<< HEAD
-drop cascades to table tdis
-drop cascades to view tdis_v1
-=======
 drop cascades to table tt27v_tbl
 drop cascades to view tt27v
->>>>>>> REL_16_9
diff --git a/src/test/regress/serial_schedule b/src/test/regress/serial_schedule
index 340912d0818..e6bd7cf898c 100644
--- a/src/test/regress/serial_schedule
+++ b/src/test/regress/serial_schedule
@@ -67,7 +67,7 @@ test: create_operator
 test: create_procedure
 test: create_index
 test: create_index_spgist
-# test: create_view
+test: create_view
 # test: index_including
 # test: index_including_gist
 # test: create_aggregate
diff --git a/src/test/regress/sql/create_view.sql 
b/src/test/regress/sql/create_view.sql
index 0f95be6cae3..9569e3a181d 100644
--- a/src/test/regress/sql/create_view.sql
+++ b/src/test/regress/sql/create_view.sql
@@ -600,59 +600,62 @@ select * from tt14v;
 
 alter table tt14t drop column f3;  -- fail, view has explicit reference to f3
 
+-- MERGE16_FIXME: delete command can only delete tuples from master, But we
+-- need to delete them from both master and segments
+    
 -- We used to have a bug that would allow the above to succeed, posing
 -- hazards for later execution of the view.  Check that the internal
 -- defenses for those hazards haven't bit-rotted, in case some other
 -- bug with similar symptoms emerges.
-begin;
-
--- destroy the dependency entry that prevents the DROP:
-delete from pg_depend where
-  objid = (select oid from pg_rewrite
-           where ev_class = 'tt14v'::regclass and rulename = '_RETURN')
-  and refobjsubid = 3
-returning pg_describe_object(classid, objid, objsubid) as obj,
-          pg_describe_object(refclassid, refobjid, refobjsubid) as ref,
-          deptype;
-
--- this will now succeed:
-alter table tt14t drop column f3;
-
--- column f3 is still in the view, sort of ...
-select pg_get_viewdef('tt14v', true);
--- ... and you can even EXPLAIN it ...
-explain (verbose, costs off) select * from tt14v;
--- but it will fail at execution
-select f1, f4 from tt14v;
-select * from tt14v;
-
-rollback;
+-- begin;
+-- 
+-- -- destroy the dependency entry that prevents the DROP:
+-- delete from pg_depend where
+--   objid = (select oid from pg_rewrite
+--            where ev_class = 'tt14v'::regclass and rulename = '_RETURN')
+--   and refobjsubid = 3
+-- returning pg_describe_object(classid, objid, objsubid) as obj,
+--           pg_describe_object(refclassid, refobjid, refobjsubid) as ref,
+--           deptype;
+-- 
+-- -- this will now succeed:
+-- alter table tt14t drop column f3;
+-- 
+-- -- column f3 is still in the view, sort of ...
+-- select pg_get_viewdef('tt14v', true);
+-- -- ... and you can even EXPLAIN it ...
+-- explain (verbose, costs off) select * from tt14v;
+-- -- but it will fail at execution
+-- select f1, f4 from tt14v;
+-- select * from tt14v;
+-- 
+-- rollback;
 
 -- likewise, altering a referenced column's type is prohibited ...
 alter table tt14t alter column f4 type integer using f4::integer;  -- fail
 
 -- ... but some bug might let it happen, so check defenses
-begin;
-
--- destroy the dependency entry that prevents the ALTER:
-delete from pg_depend where
-  objid = (select oid from pg_rewrite
-           where ev_class = 'tt14v'::regclass and rulename = '_RETURN')
-  and refobjsubid = 4
-returning pg_describe_object(classid, objid, objsubid) as obj,
-          pg_describe_object(refclassid, refobjid, refobjsubid) as ref,
-          deptype;
-
--- this will now succeed:
-alter table tt14t alter column f4 type integer using f4::integer;
-
--- f4 is still in the view ...
-select pg_get_viewdef('tt14v', true);
--- but will fail at execution
-select f1, f3 from tt14v;
-select * from tt14v;
-
-rollback;
+-- begin;
+-- 
+-- -- destroy the dependency entry that prevents the ALTER:
+-- delete from pg_depend where
+--   objid = (select oid from pg_rewrite
+--            where ev_class = 'tt14v'::regclass and rulename = '_RETURN')
+--   and refobjsubid = 4
+-- returning pg_describe_object(classid, objid, objsubid) as obj,
+--           pg_describe_object(refclassid, refobjid, refobjsubid) as ref,
+--           deptype;
+-- 
+-- -- this will now succeed:
+-- alter table tt14t alter column f4 type integer using f4::integer;
+-- 
+-- -- f4 is still in the view ...
+-- select pg_get_viewdef('tt14v', true);
+-- -- but will fail at execution
+-- select f1, f3 from tt14v;
+-- select * from tt14v;
+-- 
+-- rollback;
 
 drop view tt14v;
 
@@ -836,12 +839,6 @@ select x + y + z as c1,
 from (values(1,2,3)) v(x,y,z);
 select pg_get_viewdef('tt26v', true);
 
-<<<<<<< HEAD
--- test display negative operator of const-folder expression
-create table tdis(a int, b int, c int);
-create view tdis_v1 as select a,b,c, -1::int from tdis group by 1,2,3,4;
-select pg_get_viewdef('tdis_v1', true);
-=======
 -- test restriction on non-system view expansion.
 create table tt27v_tbl (a int);
 create view tt27v as select a from tt27v_tbl;
@@ -850,7 +847,6 @@ select a from tt27v where a > 0; -- Error
 insert into tt27v values (1); -- Error
 select viewname from pg_views where viewname = 'tt27v'; -- Ok to access a 
system view.
 reset restrict_nonsystem_relation_kind;
->>>>>>> REL_16_9
 
 -- clean up all the random objects we made above
 DROP SCHEMA temp_view_test CASCADE;


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to