join-indentation-fix-2.patch
text/x-diff
Filename: join-indentation-fix-2.patch
Type: text/x-diff
Part: 1
Message:
Re: pg_dump --pretty-print-views
Patch
Format: unified
| File | + | − |
|---|---|---|
| src/backend/utils/adt/ruleutils.c | 0 | 0 |
| src/test/regress/expected/create_view.out | 0 | 0 |
| src/test/regress/expected/rangefuncs.out | 0 | 0 |
| src/test/regress/expected/rules.out | 0 | 0 |
diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c
index ea7b8c5..27db21e 100644
*** a/src/backend/utils/adt/ruleutils.c
--- b/src/backend/utils/adt/ruleutils.c
***************
*** 68,75 ****
/* Indent counts */
#define PRETTYINDENT_STD 8
! #define PRETTYINDENT_JOIN 13
! #define PRETTYINDENT_JOIN_ON (PRETTYINDENT_JOIN-PRETTYINDENT_STD)
#define PRETTYINDENT_VAR 4
/* Pretty flags */
--- 68,74 ----
/* Indent counts */
#define PRETTYINDENT_STD 8
! #define PRETTYINDENT_JOIN 7
#define PRETTYINDENT_VAR 4
/* Pretty flags */
*************** get_from_clause_item(Node *jtnode, Query
*** 8378,8404 ****
case JOIN_INNER:
if (j->quals)
appendContextKeyword(context, " JOIN ",
! -PRETTYINDENT_JOIN,
! PRETTYINDENT_JOIN, 2);
else
appendContextKeyword(context, " CROSS JOIN ",
! -PRETTYINDENT_JOIN,
! PRETTYINDENT_JOIN, 1);
break;
case JOIN_LEFT:
appendContextKeyword(context, " LEFT JOIN ",
! -PRETTYINDENT_JOIN,
! PRETTYINDENT_JOIN, 2);
break;
case JOIN_FULL:
appendContextKeyword(context, " FULL JOIN ",
! -PRETTYINDENT_JOIN,
! PRETTYINDENT_JOIN, 2);
break;
case JOIN_RIGHT:
appendContextKeyword(context, " RIGHT JOIN ",
! -PRETTYINDENT_JOIN,
! PRETTYINDENT_JOIN, 2);
break;
default:
elog(ERROR, "unrecognized join type: %d",
--- 8377,8408 ----
case JOIN_INNER:
if (j->quals)
appendContextKeyword(context, " JOIN ",
! -PRETTYINDENT_STD,
! PRETTYINDENT_STD,
! PRETTYINDENT_JOIN);
else
appendContextKeyword(context, " CROSS JOIN ",
! -PRETTYINDENT_STD,
! PRETTYINDENT_STD,
! PRETTYINDENT_JOIN);
break;
case JOIN_LEFT:
appendContextKeyword(context, " LEFT JOIN ",
! -PRETTYINDENT_STD,
! PRETTYINDENT_STD,
! PRETTYINDENT_JOIN);
break;
case JOIN_FULL:
appendContextKeyword(context, " FULL JOIN ",
! -PRETTYINDENT_STD,
! PRETTYINDENT_STD,
! PRETTYINDENT_JOIN);
break;
case JOIN_RIGHT:
appendContextKeyword(context, " RIGHT JOIN ",
! -PRETTYINDENT_STD,
! PRETTYINDENT_STD,
! PRETTYINDENT_JOIN);
break;
default:
elog(ERROR, "unrecognized join type: %d",
*************** get_from_clause_item(Node *jtnode, Query
*** 8411,8418 ****
if (need_paren_on_right)
appendStringInfoChar(buf, ')');
- context->indentLevel -= PRETTYINDENT_JOIN_ON;
-
if (j->usingClause)
{
ListCell *lc;
--- 8415,8420 ----
diff --git a/src/test/regress/expected/create_view.out b/src/test/regress/expected/create_view.out
index f6db582..d29d0c1 100644
*** a/src/test/regress/expected/create_view.out
--- b/src/test/regress/expected/create_view.out
*************** create view v2 as select * from tt2 join
*** 706,1064 ****
create view v2a as select * from (tt2 join tt3 using (b,c) join tt4 using (b)) j;
create view v3 as select * from tt2 join tt3 using (b,c) full join tt4 using (b);
select pg_get_viewdef('v1', true);
! pg_get_viewdef
! ---------------------------
! SELECT tt2.b, +
! tt3.c, +
! tt2.a, +
! tt3.ax +
! FROM tt2 +
! JOIN tt3 USING (b, c);
(1 row)
select pg_get_viewdef('v1a', true);
! pg_get_viewdef
! ------------------------------
! SELECT j.b, +
! j.c, +
! j.a, +
! j.ax +
! FROM (tt2 +
! JOIN tt3 USING (b, c)) j;
(1 row)
select pg_get_viewdef('v2', true);
! pg_get_viewdef
! --------------------------
! SELECT tt2.b, +
! tt3.c, +
! tt2.a, +
! tt3.ax, +
! tt4.ay, +
! tt4.q +
! FROM tt2 +
! JOIN tt3 USING (b, c)+
! JOIN tt4 USING (b);
(1 row)
select pg_get_viewdef('v2a', true);
! pg_get_viewdef
! ---------------------------
! SELECT j.b, +
! j.c, +
! j.a, +
! j.ax, +
! j.ay, +
! j.q +
! FROM (tt2 +
! JOIN tt3 USING (b, c) +
! JOIN tt4 USING (b)) j;
(1 row)
select pg_get_viewdef('v3', true);
! pg_get_viewdef
! -----------------------------
! SELECT b, +
! tt3.c, +
! tt2.a, +
! tt3.ax, +
! tt4.ay, +
! tt4.q +
! FROM tt2 +
! JOIN tt3 USING (b, c) +
! FULL JOIN tt4 USING (b);
(1 row)
alter table tt2 add column d int;
alter table tt2 add column e int;
select pg_get_viewdef('v1', true);
! pg_get_viewdef
! ---------------------------
! SELECT tt2.b, +
! tt3.c, +
! tt2.a, +
! tt3.ax +
! FROM tt2 +
! JOIN tt3 USING (b, c);
(1 row)
select pg_get_viewdef('v1a', true);
! pg_get_viewdef
! ------------------------------
! SELECT j.b, +
! j.c, +
! j.a, +
! j.ax +
! FROM (tt2 +
! JOIN tt3 USING (b, c)) j;
(1 row)
select pg_get_viewdef('v2', true);
! pg_get_viewdef
! --------------------------
! SELECT tt2.b, +
! tt3.c, +
! tt2.a, +
! tt3.ax, +
! tt4.ay, +
! tt4.q +
! FROM tt2 +
! JOIN tt3 USING (b, c)+
! JOIN tt4 USING (b);
(1 row)
select pg_get_viewdef('v2a', true);
! pg_get_viewdef
! ---------------------------
! SELECT j.b, +
! j.c, +
! j.a, +
! j.ax, +
! j.ay, +
! j.q +
! FROM (tt2 +
! JOIN tt3 USING (b, c) +
! JOIN tt4 USING (b)) j;
(1 row)
select pg_get_viewdef('v3', true);
! pg_get_viewdef
! -----------------------------
! SELECT b, +
! tt3.c, +
! tt2.a, +
! tt3.ax, +
! tt4.ay, +
! tt4.q +
! FROM tt2 +
! JOIN tt3 USING (b, c) +
! FULL JOIN tt4 USING (b);
(1 row)
alter table tt3 rename c to d;
select pg_get_viewdef('v1', true);
! pg_get_viewdef
! -----------------------------------------
! SELECT tt2.b, +
! tt3.c, +
! tt2.a, +
! tt3.ax +
! FROM tt2 +
! JOIN tt3 tt3(ax, b, c) USING (b, c);
(1 row)
select pg_get_viewdef('v1a', true);
! pg_get_viewdef
! --------------------------------------------
! SELECT j.b, +
! j.c, +
! j.a, +
! j.ax +
! FROM (tt2 +
! JOIN tt3 tt3(ax, b, c) USING (b, c)) j;
(1 row)
select pg_get_viewdef('v2', true);
! pg_get_viewdef
! ----------------------------------------
! SELECT tt2.b, +
! tt3.c, +
! tt2.a, +
! tt3.ax, +
! tt4.ay, +
! tt4.q +
! FROM tt2 +
! JOIN tt3 tt3(ax, b, c) USING (b, c)+
! JOIN tt4 USING (b);
(1 row)
select pg_get_viewdef('v2a', true);
! pg_get_viewdef
! ----------------------------------------
! SELECT j.b, +
! j.c, +
! j.a, +
! j.ax, +
! j.ay, +
! j.q +
! FROM (tt2 +
! JOIN tt3 tt3(ax, b, c) USING (b, c)+
! JOIN tt4 USING (b)) j;
(1 row)
select pg_get_viewdef('v3', true);
! pg_get_viewdef
! ----------------------------------------
! SELECT b, +
! tt3.c, +
! tt2.a, +
! tt3.ax, +
! tt4.ay, +
! tt4.q +
! FROM tt2 +
! JOIN tt3 tt3(ax, b, c) USING (b, c)+
! FULL JOIN tt4 USING (b);
(1 row)
alter table tt3 add column c int;
alter table tt3 add column e int;
select pg_get_viewdef('v1', true);
! pg_get_viewdef
! -------------------------------------------------
! SELECT tt2.b, +
! tt3.c, +
! tt2.a, +
! tt3.ax +
! FROM tt2 +
! JOIN tt3 tt3(ax, b, c, c_1, e) USING (b, c);
(1 row)
select pg_get_viewdef('v1a', true);
! pg_get_viewdef
! ---------------------------------------------------------------------------------
! SELECT j.b, +
! j.c, +
! j.a, +
! j.ax +
! FROM (tt2 +
! JOIN tt3 tt3(ax, b, c, c_1, e) USING (b, c)) j(b, c, a, d, e, ax, c_1, e_1);
(1 row)
select pg_get_viewdef('v2', true);
! pg_get_viewdef
! ------------------------------------------------
! SELECT tt2.b, +
! tt3.c, +
! tt2.a, +
! tt3.ax, +
! tt4.ay, +
! tt4.q +
! FROM tt2 +
! JOIN tt3 tt3(ax, b, c, c_1, e) USING (b, c)+
! JOIN tt4 USING (b);
(1 row)
select pg_get_viewdef('v2a', true);
! pg_get_viewdef
! ---------------------------------------------------------------
! SELECT j.b, +
! j.c, +
! j.a, +
! j.ax, +
! j.ay, +
! j.q +
! FROM (tt2 +
! JOIN tt3 tt3(ax, b, c, c_1, e) USING (b, c) +
! JOIN tt4 USING (b)) j(b, c, a, d, e, ax, c_1, e_1, ay, q);
(1 row)
select pg_get_viewdef('v3', true);
! pg_get_viewdef
! ------------------------------------------------
! SELECT b, +
! tt3.c, +
! tt2.a, +
! tt3.ax, +
! tt4.ay, +
! tt4.q +
! FROM tt2 +
! JOIN tt3 tt3(ax, b, c, c_1, e) USING (b, c)+
! FULL JOIN tt4 USING (b);
(1 row)
alter table tt2 drop column d;
select pg_get_viewdef('v1', true);
! pg_get_viewdef
! -------------------------------------------------
! SELECT tt2.b, +
! tt3.c, +
! tt2.a, +
! tt3.ax +
! FROM tt2 +
! JOIN tt3 tt3(ax, b, c, c_1, e) USING (b, c);
(1 row)
select pg_get_viewdef('v1a', true);
! pg_get_viewdef
! ------------------------------------------------------------------------------
! SELECT j.b, +
! j.c, +
! j.a, +
! j.ax +
! FROM (tt2 +
! JOIN tt3 tt3(ax, b, c, c_1, e) USING (b, c)) j(b, c, a, e, ax, c_1, e_1);
(1 row)
select pg_get_viewdef('v2', true);
! pg_get_viewdef
! ------------------------------------------------
! SELECT tt2.b, +
! tt3.c, +
! tt2.a, +
! tt3.ax, +
! tt4.ay, +
! tt4.q +
! FROM tt2 +
! JOIN tt3 tt3(ax, b, c, c_1, e) USING (b, c)+
! JOIN tt4 USING (b);
(1 row)
select pg_get_viewdef('v2a', true);
! pg_get_viewdef
! ------------------------------------------------------------
! SELECT j.b, +
! j.c, +
! j.a, +
! j.ax, +
! j.ay, +
! j.q +
! FROM (tt2 +
! JOIN tt3 tt3(ax, b, c, c_1, e) USING (b, c) +
! JOIN tt4 USING (b)) j(b, c, a, e, ax, c_1, e_1, ay, q);
(1 row)
select pg_get_viewdef('v3', true);
! pg_get_viewdef
! ------------------------------------------------
! SELECT b, +
! tt3.c, +
! tt2.a, +
! tt3.ax, +
! tt4.ay, +
! tt4.q +
! FROM tt2 +
! JOIN tt3 tt3(ax, b, c, c_1, e) USING (b, c)+
! FULL JOIN tt4 USING (b);
(1 row)
create table tt5 (a int, b int);
create table tt6 (c int, d int);
create view vv1 as select * from (tt5 cross join tt6) j(aa,bb,cc,dd);
select pg_get_viewdef('vv1', true);
! pg_get_viewdef
! --------------------------------------
! SELECT j.aa, +
! j.bb, +
! j.cc, +
! j.dd +
! FROM (tt5 +
! CROSS JOIN tt6) j(aa, bb, cc, dd);
(1 row)
alter table tt5 add column c int;
select pg_get_viewdef('vv1', true);
- pg_get_viewdef
- -----------------------------------------
- SELECT j.aa, +
- j.bb, +
- j.cc, +
- j.dd +
- FROM (tt5 +
- CROSS JOIN tt6) j(aa, bb, c, cc, dd);
- (1 row)
-
- alter table tt5 add column cc int;
- select pg_get_viewdef('vv1', true);
pg_get_viewdef
-----------------------------------------------
SELECT j.aa, +
--- 706,1052 ----
create view v2a as select * from (tt2 join tt3 using (b,c) join tt4 using (b)) j;
create view v3 as select * from tt2 join tt3 using (b,c) full join tt4 using (b);
select pg_get_viewdef('v1', true);
! pg_get_viewdef
! --------------------------------
! SELECT tt2.b, +
! tt3.c, +
! tt2.a, +
! tt3.ax +
! FROM tt2 +
! JOIN tt3 USING (b, c);
(1 row)
select pg_get_viewdef('v1a', true);
! pg_get_viewdef
! -----------------------------------
! SELECT j.b, +
! j.c, +
! j.a, +
! j.ax +
! FROM (tt2 +
! JOIN tt3 USING (b, c)) j;
(1 row)
select pg_get_viewdef('v2', true);
! pg_get_viewdef
! -------------------------------
! SELECT tt2.b, +
! tt3.c, +
! tt2.a, +
! tt3.ax, +
! tt4.ay, +
! tt4.q +
! FROM tt2 +
! JOIN tt3 USING (b, c)+
! JOIN tt4 USING (b);
(1 row)
select pg_get_viewdef('v2a', true);
! pg_get_viewdef
! --------------------------------
! SELECT j.b, +
! j.c, +
! j.a, +
! j.ax, +
! j.ay, +
! j.q +
! FROM (tt2 +
! JOIN tt3 USING (b, c) +
! JOIN tt4 USING (b)) j;
(1 row)
select pg_get_viewdef('v3', true);
! pg_get_viewdef
! ----------------------------------
! SELECT b, +
! tt3.c, +
! tt2.a, +
! tt3.ax, +
! tt4.ay, +
! tt4.q +
! FROM tt2 +
! JOIN tt3 USING (b, c) +
! FULL JOIN tt4 USING (b);
(1 row)
alter table tt2 add column d int;
alter table tt2 add column e int;
select pg_get_viewdef('v1', true);
! pg_get_viewdef
! --------------------------------
! SELECT tt2.b, +
! tt3.c, +
! tt2.a, +
! tt3.ax +
! FROM tt2 +
! JOIN tt3 USING (b, c);
(1 row)
select pg_get_viewdef('v1a', true);
! pg_get_viewdef
! -----------------------------------
! SELECT j.b, +
! j.c, +
! j.a, +
! j.ax +
! FROM (tt2 +
! JOIN tt3 USING (b, c)) j;
(1 row)
select pg_get_viewdef('v2', true);
! pg_get_viewdef
! -------------------------------
! SELECT tt2.b, +
! tt3.c, +
! tt2.a, +
! tt3.ax, +
! tt4.ay, +
! tt4.q +
! FROM tt2 +
! JOIN tt3 USING (b, c)+
! JOIN tt4 USING (b);
(1 row)
select pg_get_viewdef('v2a', true);
! pg_get_viewdef
! --------------------------------
! SELECT j.b, +
! j.c, +
! j.a, +
! j.ax, +
! j.ay, +
! j.q +
! FROM (tt2 +
! JOIN tt3 USING (b, c) +
! JOIN tt4 USING (b)) j;
(1 row)
select pg_get_viewdef('v3', true);
! pg_get_viewdef
! ----------------------------------
! SELECT b, +
! tt3.c, +
! tt2.a, +
! tt3.ax, +
! tt4.ay, +
! tt4.q +
! FROM tt2 +
! JOIN tt3 USING (b, c) +
! FULL JOIN tt4 USING (b);
(1 row)
alter table tt3 rename c to d;
select pg_get_viewdef('v1', true);
! pg_get_viewdef
! ----------------------------------------------
! SELECT tt2.b, +
! tt3.c, +
! tt2.a, +
! tt3.ax +
! FROM tt2 +
! JOIN tt3 tt3(ax, b, c) USING (b, c);
(1 row)
select pg_get_viewdef('v1a', true);
! pg_get_viewdef
! -------------------------------------------------
! SELECT j.b, +
! j.c, +
! j.a, +
! j.ax +
! FROM (tt2 +
! JOIN tt3 tt3(ax, b, c) USING (b, c)) j;
(1 row)
select pg_get_viewdef('v2', true);
! pg_get_viewdef
! ---------------------------------------------
! SELECT tt2.b, +
! tt3.c, +
! tt2.a, +
! tt3.ax, +
! tt4.ay, +
! tt4.q +
! FROM tt2 +
! JOIN tt3 tt3(ax, b, c) USING (b, c)+
! JOIN tt4 USING (b);
(1 row)
select pg_get_viewdef('v2a', true);
! pg_get_viewdef
! ---------------------------------------------
! SELECT j.b, +
! j.c, +
! j.a, +
! j.ax, +
! j.ay, +
! j.q +
! FROM (tt2 +
! JOIN tt3 tt3(ax, b, c) USING (b, c)+
! JOIN tt4 USING (b)) j;
(1 row)
select pg_get_viewdef('v3', true);
! pg_get_viewdef
! ---------------------------------------------
! SELECT b, +
! tt3.c, +
! tt2.a, +
! tt3.ax, +
! tt4.ay, +
! tt4.q +
! FROM tt2 +
! JOIN tt3 tt3(ax, b, c) USING (b, c)+
! FULL JOIN tt4 USING (b);
(1 row)
alter table tt3 add column c int;
alter table tt3 add column e int;
select pg_get_viewdef('v1', true);
! pg_get_viewdef
! ------------------------------------------------------
! SELECT tt2.b, +
! tt3.c, +
! tt2.a, +
! tt3.ax +
! FROM tt2 +
! JOIN tt3 tt3(ax, b, c, c_1, e) USING (b, c);
(1 row)
select pg_get_viewdef('v1a', true);
! pg_get_viewdef
! --------------------------------------------------------------------------------------
! SELECT j.b, +
! j.c, +
! j.a, +
! j.ax +
! FROM (tt2 +
! JOIN tt3 tt3(ax, b, c, c_1, e) USING (b, c)) j(b, c, a, d, e, ax, c_1, e_1);
(1 row)
select pg_get_viewdef('v2', true);
! pg_get_viewdef
! -----------------------------------------------------
! SELECT tt2.b, +
! tt3.c, +
! tt2.a, +
! tt3.ax, +
! tt4.ay, +
! tt4.q +
! FROM tt2 +
! JOIN tt3 tt3(ax, b, c, c_1, e) USING (b, c)+
! JOIN tt4 USING (b);
(1 row)
select pg_get_viewdef('v2a', true);
! pg_get_viewdef
! --------------------------------------------------------------------
! SELECT j.b, +
! j.c, +
! j.a, +
! j.ax, +
! j.ay, +
! j.q +
! FROM (tt2 +
! JOIN tt3 tt3(ax, b, c, c_1, e) USING (b, c) +
! JOIN tt4 USING (b)) j(b, c, a, d, e, ax, c_1, e_1, ay, q);
(1 row)
select pg_get_viewdef('v3', true);
! pg_get_viewdef
! -----------------------------------------------------
! SELECT b, +
! tt3.c, +
! tt2.a, +
! tt3.ax, +
! tt4.ay, +
! tt4.q +
! FROM tt2 +
! JOIN tt3 tt3(ax, b, c, c_1, e) USING (b, c)+
! FULL JOIN tt4 USING (b);
(1 row)
alter table tt2 drop column d;
select pg_get_viewdef('v1', true);
! pg_get_viewdef
! ------------------------------------------------------
! SELECT tt2.b, +
! tt3.c, +
! tt2.a, +
! tt3.ax +
! FROM tt2 +
! JOIN tt3 tt3(ax, b, c, c_1, e) USING (b, c);
(1 row)
select pg_get_viewdef('v1a', true);
! pg_get_viewdef
! -----------------------------------------------------------------------------------
! SELECT j.b, +
! j.c, +
! j.a, +
! j.ax +
! FROM (tt2 +
! JOIN tt3 tt3(ax, b, c, c_1, e) USING (b, c)) j(b, c, a, e, ax, c_1, e_1);
(1 row)
select pg_get_viewdef('v2', true);
! pg_get_viewdef
! -----------------------------------------------------
! SELECT tt2.b, +
! tt3.c, +
! tt2.a, +
! tt3.ax, +
! tt4.ay, +
! tt4.q +
! FROM tt2 +
! JOIN tt3 tt3(ax, b, c, c_1, e) USING (b, c)+
! JOIN tt4 USING (b);
(1 row)
select pg_get_viewdef('v2a', true);
! pg_get_viewdef
! -----------------------------------------------------------------
! SELECT j.b, +
! j.c, +
! j.a, +
! j.ax, +
! j.ay, +
! j.q +
! FROM (tt2 +
! JOIN tt3 tt3(ax, b, c, c_1, e) USING (b, c) +
! JOIN tt4 USING (b)) j(b, c, a, e, ax, c_1, e_1, ay, q);
(1 row)
select pg_get_viewdef('v3', true);
! pg_get_viewdef
! -----------------------------------------------------
! SELECT b, +
! tt3.c, +
! tt2.a, +
! tt3.ax, +
! tt4.ay, +
! tt4.q +
! FROM tt2 +
! JOIN tt3 tt3(ax, b, c, c_1, e) USING (b, c)+
! FULL JOIN tt4 USING (b);
(1 row)
create table tt5 (a int, b int);
create table tt6 (c int, d int);
create view vv1 as select * from (tt5 cross join tt6) j(aa,bb,cc,dd);
select pg_get_viewdef('vv1', true);
! pg_get_viewdef
! --------------------------------------------
! SELECT j.aa, +
! j.bb, +
! j.cc, +
! j.dd +
! FROM (tt5 +
! CROSS JOIN tt6) j(aa, bb, cc, dd);
(1 row)
alter table tt5 add column c int;
select pg_get_viewdef('vv1', true);
pg_get_viewdef
-----------------------------------------------
SELECT j.aa, +
*************** select pg_get_viewdef('vv1', true);
*** 1066,1084 ****
j.cc, +
j.dd +
FROM (tt5 +
! CROSS JOIN tt6) j(aa, bb, c, cc_1, cc, dd);
(1 row)
alter table tt5 drop column c;
select pg_get_viewdef('vv1', true);
! pg_get_viewdef
! --------------------------------------------
! SELECT j.aa, +
! j.bb, +
! j.cc, +
! j.dd +
! FROM (tt5 +
! CROSS JOIN tt6) j(aa, bb, cc_1, cc, dd);
(1 row)
-- Unnamed FULL JOIN USING is lots of fun too
--- 1054,1084 ----
j.cc, +
j.dd +
FROM (tt5 +
! CROSS JOIN tt6) j(aa, bb, c, cc, dd);
! (1 row)
!
! alter table tt5 add column cc int;
! select pg_get_viewdef('vv1', true);
! pg_get_viewdef
! -----------------------------------------------------
! SELECT j.aa, +
! j.bb, +
! j.cc, +
! j.dd +
! FROM (tt5 +
! CROSS JOIN tt6) j(aa, bb, c, cc_1, cc, dd);
(1 row)
alter table tt5 drop column c;
select pg_get_viewdef('vv1', true);
! pg_get_viewdef
! --------------------------------------------------
! SELECT j.aa, +
! j.bb, +
! j.cc, +
! j.dd +
! FROM (tt5 +
! CROSS JOIN tt6) j(aa, bb, cc_1, cc, dd);
(1 row)
-- Unnamed FULL JOIN USING is lots of fun too
*************** select pg_get_viewdef('vv2', true);
*** 1105,1112 ****
tt8x.x_1 AS d, +
tt8x.z AS e +
FROM tt7 +
! FULL JOIN tt8 USING (x), +
! tt8 tt8x(x_1, z);
(1 row)
create view vv3 as
--- 1105,1112 ----
tt8x.x_1 AS d, +
tt8x.z AS e +
FROM tt7 +
! FULL JOIN tt8 USING (x), +
! tt8 tt8x(x_1, z);
(1 row)
create view vv3 as
*************** select pg_get_viewdef('vv3', true);
*** 1133,1141 ****
tt7x.y AS e, +
tt8x.z AS f +
FROM tt7 +
! FULL JOIN tt8 USING (x), +
! tt7 tt7x(x_1, y) +
! FULL JOIN tt8 tt8x(x_1, z) USING (x_1);
(1 row)
create view vv4 as
--- 1133,1141 ----
tt7x.y AS e, +
tt8x.z AS f +
FROM tt7 +
! FULL JOIN tt8 USING (x), +
! tt7 tt7x(x_1, y) +
! FULL JOIN tt8 tt8x(x_1, z) USING (x_1);
(1 row)
create view vv4 as
*************** select pg_get_viewdef('vv4', true);
*** 1164,1173 ****
tt8x.z AS f, +
tt8y.z AS g +
FROM tt7 +
! FULL JOIN tt8 USING (x), +
! tt7 tt7x(x_1, y) +
! FULL JOIN tt8 tt8x(x_1, z) USING (x_1) +
! FULL JOIN tt8 tt8y(x_1, z) USING (x_1);
(1 row)
alter table tt7 add column zz int;
--- 1164,1173 ----
tt8x.z AS f, +
tt8y.z AS g +
FROM tt7 +
! FULL JOIN tt8 USING (x), +
! tt7 tt7x(x_1, y) +
! FULL JOIN tt8 tt8x(x_1, z) USING (x_1) +
! FULL JOIN tt8 tt8y(x_1, z) USING (x_1);
(1 row)
alter table tt7 add column zz int;
*************** select pg_get_viewdef('vv2', true);
*** 1190,1197 ****
tt8x.x_1 AS d, +
tt8x.z AS e +
FROM tt7 +
! FULL JOIN tt8 USING (x), +
! tt8 tt8x(x_1, z, z2);
(1 row)
select pg_get_viewdef('vv3', true);
--- 1190,1197 ----
tt8x.x_1 AS d, +
tt8x.z AS e +
FROM tt7 +
! FULL JOIN tt8 USING (x), +
! tt8 tt8x(x_1, z, z2);
(1 row)
select pg_get_viewdef('vv3', true);
*************** select pg_get_viewdef('vv3', true);
*** 1212,1220 ****
tt7x.y AS e, +
tt8x.z AS f +
FROM tt7 +
! FULL JOIN tt8 USING (x), +
! tt7 tt7x(x_1, y, z) +
! FULL JOIN tt8 tt8x(x_1, z, z2) USING (x_1);
(1 row)
select pg_get_viewdef('vv4', true);
--- 1212,1220 ----
tt7x.y AS e, +
tt8x.z AS f +
FROM tt7 +
! FULL JOIN tt8 USING (x), +
! tt7 tt7x(x_1, y, z) +
! FULL JOIN tt8 tt8x(x_1, z, z2) USING (x_1);
(1 row)
select pg_get_viewdef('vv4', true);
*************** select pg_get_viewdef('vv4', true);
*** 1237,1246 ****
tt8x.z AS f, +
tt8y.z AS g +
FROM tt7 +
! FULL JOIN tt8 USING (x), +
! tt7 tt7x(x_1, y, z) +
! FULL JOIN tt8 tt8x(x_1, z, z2) USING (x_1) +
! FULL JOIN tt8 tt8y(x_1, z, z2) USING (x_1);
(1 row)
-- Implicit coercions in a JOIN USING create issues similar to FULL JOIN
--- 1237,1246 ----
tt8x.z AS f, +
tt8y.z AS g +
FROM tt7 +
! FULL JOIN tt8 USING (x), +
! tt7 tt7x(x_1, y, z) +
! FULL JOIN tt8 tt8x(x_1, z, z2) USING (x_1) +
! FULL JOIN tt8 tt8y(x_1, z, z2) USING (x_1);
(1 row)
-- Implicit coercions in a JOIN USING create issues similar to FULL JOIN
*************** select pg_get_viewdef('vv2a', true);
*** 1267,1274 ****
tt8ax.x_1 AS d, +
tt8ax.z AS e +
FROM tt7a +
! LEFT JOIN tt8a USING (x), +
! tt8a tt8ax(x_1, z);
(1 row)
--
--- 1267,1274 ----
tt8ax.x_1 AS d, +
tt8ax.z AS e +
FROM tt7a +
! LEFT JOIN tt8a USING (x), +
! tt8a tt8ax(x_1, z);
(1 row)
--
*************** create table tt9 (x int, xx int, y int);
*** 1278,1301 ****
create table tt10 (x int, z int);
create view vv5 as select x,y,z from tt9 join tt10 using(x);
select pg_get_viewdef('vv5', true);
! pg_get_viewdef
! -------------------------
! SELECT tt9.x, +
! tt9.y, +
! tt10.z +
! FROM tt9 +
! JOIN tt10 USING (x);
(1 row)
alter table tt9 drop column xx;
select pg_get_viewdef('vv5', true);
! pg_get_viewdef
! -------------------------
! SELECT tt9.x, +
! tt9.y, +
! tt10.z +
! FROM tt9 +
! JOIN tt10 USING (x);
(1 row)
-- clean up all the random objects we made above
--- 1278,1301 ----
create table tt10 (x int, z int);
create view vv5 as select x,y,z from tt9 join tt10 using(x);
select pg_get_viewdef('vv5', true);
! pg_get_viewdef
! ------------------------------
! SELECT tt9.x, +
! tt9.y, +
! tt10.z +
! FROM tt9 +
! JOIN tt10 USING (x);
(1 row)
alter table tt9 drop column xx;
select pg_get_viewdef('vv5', true);
! pg_get_viewdef
! ------------------------------
! SELECT tt9.x, +
! tt9.y, +
! tt10.z +
! FROM tt9 +
! JOIN tt10 USING (x);
(1 row)
-- clean up all the random objects we made above
diff --git a/src/test/regress/expected/rangefuncs.out b/src/test/regress/expected/rangefuncs.out
index 9d40510..cb20b6b 100644
*** a/src/test/regress/expected/rangefuncs.out
--- b/src/test/regress/expected/rangefuncs.out
*************** select * from vw_ord;
*** 85,98 ****
(1 row)
select definition from pg_views where viewname='vw_ord';
! definition
! -------------------------------------------------------------------
! SELECT v.n, +
! z.a, +
! z.b, +
! z.ord +
! FROM (( VALUES (1)) v(n) +
! JOIN foot(1) WITH ORDINALITY z(a, b, ord) ON ((v.n = z.ord)));
(1 row)
drop view vw_ord;
--- 85,98 ----
(1 row)
select definition from pg_views where viewname='vw_ord';
! definition
! ------------------------------------------------------------------------
! SELECT v.n, +
! z.a, +
! z.b, +
! z.ord +
! FROM (( VALUES (1)) v(n) +
! JOIN foot(1) WITH ORDINALITY z(a, b, ord) ON ((v.n = z.ord)));
(1 row)
drop view vw_ord;
*************** select * from vw_ord;
*** 112,127 ****
(1 row)
select definition from pg_views where viewname='vw_ord';
! definition
! ---------------------------------------------------------------------------------------------
! SELECT v.n, +
! z.a, +
! z.b, +
! z.c, +
! z.d, +
! z.ord +
! FROM (( VALUES (1)) v(n) +
! JOIN ROWS FROM(foot(1), foot(2)) WITH ORDINALITY z(a, b, c, d, ord) ON ((v.n = z.ord)));
(1 row)
drop view vw_ord;
--- 112,127 ----
(1 row)
select definition from pg_views where viewname='vw_ord';
! definition
! --------------------------------------------------------------------------------------------------
! SELECT v.n, +
! z.a, +
! z.b, +
! z.c, +
! z.d, +
! z.ord +
! FROM (( VALUES (1)) v(n) +
! JOIN ROWS FROM(foot(1), foot(2)) WITH ORDINALITY z(a, b, c, d, ord) ON ((v.n = z.ord)));
(1 row)
drop view vw_ord;
diff --git a/src/test/regress/expected/rules.out b/src/test/regress/expected/rules.out
index 6c51d0d..da5c836 100644
*** a/src/test/regress/expected/rules.out
--- b/src/test/regress/expected/rules.out
*************** pg_available_extension_versions| SELECT
*** 1294,1306 ****
e.requires,
e.comment
FROM (pg_available_extension_versions() e(name, version, superuser, relocatable, schema, requires, comment)
! LEFT JOIN pg_extension x ON (((e.name = x.extname) AND (e.version = x.extversion))));
pg_available_extensions| SELECT e.name,
e.default_version,
x.extversion AS installed_version,
e.comment
FROM (pg_available_extensions() e(name, default_version, comment)
! LEFT JOIN pg_extension x ON ((e.name = x.extname)));
pg_cursors| SELECT c.name,
c.statement,
c.is_holdable,
--- 1294,1306 ----
e.requires,
e.comment
FROM (pg_available_extension_versions() e(name, version, superuser, relocatable, schema, requires, comment)
! LEFT JOIN pg_extension x ON (((e.name = x.extname) AND (e.version = x.extversion))));
pg_available_extensions| SELECT e.name,
e.default_version,
x.extversion AS installed_version,
e.comment
FROM (pg_available_extensions() e(name, default_version, comment)
! LEFT JOIN pg_extension x ON ((e.name = x.extname)));
pg_cursors| SELECT c.name,
c.statement,
c.is_holdable,
*************** pg_indexes| SELECT n.nspname AS schemana
*** 1321,1330 ****
t.spcname AS tablespace,
pg_get_indexdef(i.oid) AS indexdef
FROM ((((pg_index x
! JOIN pg_class c ON ((c.oid = x.indrelid)))
! JOIN pg_class i ON ((i.oid = x.indexrelid)))
! LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace)))
! LEFT JOIN pg_tablespace t ON ((t.oid = i.reltablespace)))
WHERE ((c.relkind = ANY (ARRAY['r'::"char", 'm'::"char"])) AND (i.relkind = 'i'::"char"));
pg_locks| SELECT l.locktype,
l.database,
--- 1321,1330 ----
t.spcname AS tablespace,
pg_get_indexdef(i.oid) AS indexdef
FROM ((((pg_index x
! JOIN pg_class c ON ((c.oid = x.indrelid)))
! JOIN pg_class i ON ((i.oid = x.indexrelid)))
! LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace)))
! LEFT JOIN pg_tablespace t ON ((t.oid = i.reltablespace)))
WHERE ((c.relkind = ANY (ARRAY['r'::"char", 'm'::"char"])) AND (i.relkind = 'i'::"char"));
pg_locks| SELECT l.locktype,
l.database,
*************** pg_matviews| SELECT n.nspname AS scheman
*** 1350,1357 ****
c.relispopulated AS ispopulated,
pg_get_viewdef(c.oid) AS definition
FROM ((pg_class c
! LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace)))
! LEFT JOIN pg_tablespace t ON ((t.oid = c.reltablespace)))
WHERE (c.relkind = 'm'::"char");
pg_prepared_statements| SELECT p.name,
p.statement,
--- 1350,1357 ----
c.relispopulated AS ispopulated,
pg_get_viewdef(c.oid) AS definition
FROM ((pg_class c
! LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace)))
! LEFT JOIN pg_tablespace t ON ((t.oid = c.reltablespace)))
WHERE (c.relkind = 'm'::"char");
pg_prepared_statements| SELECT p.name,
p.statement,
*************** pg_prepared_xacts| SELECT p.transaction,
*** 1365,1372 ****
u.rolname AS owner,
d.datname AS database
FROM ((pg_prepared_xact() p(transaction, gid, prepared, ownerid, dbid)
! LEFT JOIN pg_authid u ON ((p.ownerid = u.oid)))
! LEFT JOIN pg_database d ON ((p.dbid = d.oid)));
pg_replication_slots| SELECT l.slot_name,
l.plugin,
l.slot_type,
--- 1365,1372 ----
u.rolname AS owner,
d.datname AS database
FROM ((pg_prepared_xact() p(transaction, gid, prepared, ownerid, dbid)
! LEFT JOIN pg_authid u ON ((p.ownerid = u.oid)))
! LEFT JOIN pg_database d ON ((p.dbid = d.oid)));
pg_replication_slots| SELECT l.slot_name,
l.plugin,
l.slot_type,
*************** pg_replication_slots| SELECT l.slot_name
*** 1377,1383 ****
l.catalog_xmin,
l.restart_lsn
FROM (pg_get_replication_slots() l(slot_name, plugin, slot_type, datoid, active, xmin, catalog_xmin, restart_lsn)
! LEFT JOIN pg_database d ON ((l.datoid = d.oid)));
pg_roles| SELECT pg_authid.rolname,
pg_authid.rolsuper,
pg_authid.rolinherit,
--- 1377,1383 ----
l.catalog_xmin,
l.restart_lsn
FROM (pg_get_replication_slots() l(slot_name, plugin, slot_type, datoid, active, xmin, catalog_xmin, restart_lsn)
! LEFT JOIN pg_database d ON ((l.datoid = d.oid)));
pg_roles| SELECT pg_authid.rolname,
pg_authid.rolsuper,
pg_authid.rolinherit,
*************** pg_roles| SELECT pg_authid.rolname,
*** 1392,1405 ****
s.setconfig AS rolconfig,
pg_authid.oid
FROM (pg_authid
! LEFT JOIN pg_db_role_setting s ON (((pg_authid.oid = s.setrole) AND (s.setdatabase = (0)::oid))));
pg_rules| SELECT n.nspname AS schemaname,
c.relname AS tablename,
r.rulename,
pg_get_ruledef(r.oid) AS definition
FROM ((pg_rewrite r
! JOIN pg_class c ON ((c.oid = r.ev_class)))
! LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace)))
WHERE (r.rulename <> '_RETURN'::name);
pg_seclabels| ( ( ( ( ( ( ( ( ( SELECT l.objoid,
l.classoid,
--- 1392,1405 ----
s.setconfig AS rolconfig,
pg_authid.oid
FROM (pg_authid
! LEFT JOIN pg_db_role_setting s ON (((pg_authid.oid = s.setrole) AND (s.setdatabase = (0)::oid))));
pg_rules| SELECT n.nspname AS schemaname,
c.relname AS tablename,
r.rulename,
pg_get_ruledef(r.oid) AS definition
FROM ((pg_rewrite r
! JOIN pg_class c ON ((c.oid = r.ev_class)))
! LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace)))
WHERE (r.rulename <> '_RETURN'::name);
pg_seclabels| ( ( ( ( ( ( ( ( ( SELECT l.objoid,
l.classoid,
*************** pg_seclabels| ( ( (
*** 1420,1428 ****
l.provider,
l.label
FROM ((pg_seclabel l
! JOIN pg_class rel ON (((l.classoid = rel.tableoid) AND (l.objoid = rel.oid))))
! JOIN pg_namespace nsp ON ((rel.relnamespace = nsp.oid)))
! WHERE (l.objsubid = 0)
UNION ALL
SELECT l.objoid,
l.classoid,
--- 1420,1428 ----
l.provider,
l.label
FROM ((pg_seclabel l
! JOIN pg_class rel ON (((l.classoid = rel.tableoid) AND (l.objoid = rel.oid))))
! JOIN pg_namespace nsp ON ((rel.relnamespace = nsp.oid)))
! WHERE (l.objsubid = 0)
UNION ALL
SELECT l.objoid,
l.classoid,
*************** pg_seclabels| ( ( (
*** 1437,1446 ****
l.provider,
l.label
FROM (((pg_seclabel l
! JOIN pg_class rel ON (((l.classoid = rel.tableoid) AND (l.objoid = rel.oid))))
! JOIN pg_attribute att ON (((rel.oid = att.attrelid) AND (l.objsubid = att.attnum))))
! JOIN pg_namespace nsp ON ((rel.relnamespace = nsp.oid)))
! WHERE (l.objsubid <> 0))
UNION ALL
SELECT l.objoid,
l.classoid,
--- 1437,1446 ----
l.provider,
l.label
FROM (((pg_seclabel l
! JOIN pg_class rel ON (((l.classoid = rel.tableoid) AND (l.objoid = rel.oid))))
! JOIN pg_attribute att ON (((rel.oid = att.attrelid) AND (l.objsubid = att.attnum))))
! JOIN pg_namespace nsp ON ((rel.relnamespace = nsp.oid)))
! WHERE (l.objsubid <> 0))
UNION ALL
SELECT l.objoid,
l.classoid,
*************** pg_seclabels| ( ( (
*** 1459,1467 ****
l.provider,
l.label
FROM ((pg_seclabel l
! JOIN pg_proc pro ON (((l.classoid = pro.tableoid) AND (l.objoid = pro.oid))))
! JOIN pg_namespace nsp ON ((pro.pronamespace = nsp.oid)))
! WHERE (l.objsubid = 0))
UNION ALL
SELECT l.objoid,
l.classoid,
--- 1459,1467 ----
l.provider,
l.label
FROM ((pg_seclabel l
! JOIN pg_proc pro ON (((l.classoid = pro.tableoid) AND (l.objoid = pro.oid))))
! JOIN pg_namespace nsp ON ((pro.pronamespace = nsp.oid)))
! WHERE (l.objsubid = 0))
UNION ALL
SELECT l.objoid,
l.classoid,
*************** pg_seclabels| ( ( (
*** 1478,1486 ****
l.provider,
l.label
FROM ((pg_seclabel l
! JOIN pg_type typ ON (((l.classoid = typ.tableoid) AND (l.objoid = typ.oid))))
! JOIN pg_namespace nsp ON ((typ.typnamespace = nsp.oid)))
! WHERE (l.objsubid = 0))
UNION ALL
SELECT l.objoid,
l.classoid,
--- 1478,1486 ----
l.provider,
l.label
FROM ((pg_seclabel l
! JOIN pg_type typ ON (((l.classoid = typ.tableoid) AND (l.objoid = typ.oid))))
! JOIN pg_namespace nsp ON ((typ.typnamespace = nsp.oid)))
! WHERE (l.objsubid = 0))
UNION ALL
SELECT l.objoid,
l.classoid,
*************** pg_seclabels| ( ( (
*** 1491,1498 ****
l.provider,
l.label
FROM (pg_seclabel l
! JOIN pg_largeobject_metadata lom ON ((l.objoid = lom.oid)))
! WHERE ((l.classoid = ('pg_largeobject'::regclass)::oid) AND (l.objsubid = 0)))
UNION ALL
SELECT l.objoid,
l.classoid,
--- 1491,1498 ----
l.provider,
l.label
FROM (pg_seclabel l
! JOIN pg_largeobject_metadata lom ON ((l.objoid = lom.oid)))
! WHERE ((l.classoid = ('pg_largeobject'::regclass)::oid) AND (l.objsubid = 0)))
UNION ALL
SELECT l.objoid,
l.classoid,
*************** pg_seclabels| ( ( (
*** 1503,1510 ****
l.provider,
l.label
FROM (pg_seclabel l
! JOIN pg_language lan ON (((l.classoid = lan.tableoid) AND (l.objoid = lan.oid))))
! WHERE (l.objsubid = 0))
UNION ALL
SELECT l.objoid,
l.classoid,
--- 1503,1510 ----
l.provider,
l.label
FROM (pg_seclabel l
! JOIN pg_language lan ON (((l.classoid = lan.tableoid) AND (l.objoid = lan.oid))))
! WHERE (l.objsubid = 0))
UNION ALL
SELECT l.objoid,
l.classoid,
*************** pg_seclabels| ( ( (
*** 1515,1522 ****
l.provider,
l.label
FROM (pg_seclabel l
! JOIN pg_namespace nsp ON (((l.classoid = nsp.tableoid) AND (l.objoid = nsp.oid))))
! WHERE (l.objsubid = 0))
UNION ALL
SELECT l.objoid,
l.classoid,
--- 1515,1522 ----
l.provider,
l.label
FROM (pg_seclabel l
! JOIN pg_namespace nsp ON (((l.classoid = nsp.tableoid) AND (l.objoid = nsp.oid))))
! WHERE (l.objsubid = 0))
UNION ALL
SELECT l.objoid,
l.classoid,
*************** pg_seclabels| ( ( (
*** 1527,1534 ****
l.provider,
l.label
FROM (pg_seclabel l
! JOIN pg_event_trigger evt ON (((l.classoid = evt.tableoid) AND (l.objoid = evt.oid))))
! WHERE (l.objsubid = 0))
UNION ALL
SELECT l.objoid,
l.classoid,
--- 1527,1534 ----
l.provider,
l.label
FROM (pg_seclabel l
! JOIN pg_event_trigger evt ON (((l.classoid = evt.tableoid) AND (l.objoid = evt.oid))))
! WHERE (l.objsubid = 0))
UNION ALL
SELECT l.objoid,
l.classoid,
*************** pg_seclabels| ( ( (
*** 1539,1545 ****
l.provider,
l.label
FROM (pg_shseclabel l
! JOIN pg_database dat ON (((l.classoid = dat.tableoid) AND (l.objoid = dat.oid)))))
UNION ALL
SELECT l.objoid,
l.classoid,
--- 1539,1545 ----
l.provider,
l.label
FROM (pg_shseclabel l
! JOIN pg_database dat ON (((l.classoid = dat.tableoid) AND (l.objoid = dat.oid)))))
UNION ALL
SELECT l.objoid,
l.classoid,
*************** pg_seclabels| ( ( (
*** 1550,1556 ****
l.provider,
l.label
FROM (pg_shseclabel l
! JOIN pg_tablespace spc ON (((l.classoid = spc.tableoid) AND (l.objoid = spc.oid)))))
UNION ALL
SELECT l.objoid,
l.classoid,
--- 1550,1556 ----
l.provider,
l.label
FROM (pg_shseclabel l
! JOIN pg_tablespace spc ON (((l.classoid = spc.tableoid) AND (l.objoid = spc.oid)))))
UNION ALL
SELECT l.objoid,
l.classoid,
*************** UNION ALL
*** 1561,1567 ****
l.provider,
l.label
FROM (pg_shseclabel l
! JOIN pg_authid rol ON (((l.classoid = rol.tableoid) AND (l.objoid = rol.oid))));
pg_settings| SELECT a.name,
a.setting,
a.unit,
--- 1561,1567 ----
l.provider,
l.label
FROM (pg_shseclabel l
! JOIN pg_authid rol ON (((l.classoid = rol.tableoid) AND (l.objoid = rol.oid))));
pg_settings| SELECT a.name,
a.setting,
a.unit,
*************** pg_shadow| SELECT pg_authid.rolname AS u
*** 1589,1595 ****
(pg_authid.rolvaliduntil)::abstime AS valuntil,
s.setconfig AS useconfig
FROM (pg_authid
! LEFT JOIN pg_db_role_setting s ON (((pg_authid.oid = s.setrole) AND (s.setdatabase = (0)::oid))))
WHERE pg_authid.rolcanlogin;
pg_stat_activity| SELECT s.datid,
d.datname,
--- 1589,1595 ----
(pg_authid.rolvaliduntil)::abstime AS valuntil,
s.setconfig AS useconfig
FROM (pg_authid
! LEFT JOIN pg_db_role_setting s ON (((pg_authid.oid = s.setrole) AND (s.setdatabase = (0)::oid))))
WHERE pg_authid.rolcanlogin;
pg_stat_activity| SELECT s.datid,
d.datname,
*************** pg_stat_all_indexes| SELECT c.oid AS rel
*** 1622,1630 ****
pg_stat_get_tuples_returned(i.oid) AS idx_tup_read,
pg_stat_get_tuples_fetched(i.oid) AS idx_tup_fetch
FROM (((pg_class c
! JOIN pg_index x ON ((c.oid = x.indrelid)))
! JOIN pg_class i ON ((i.oid = x.indexrelid)))
! LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace)))
WHERE (c.relkind = ANY (ARRAY['r'::"char", 't'::"char", 'm'::"char"]));
pg_stat_all_tables| SELECT c.oid AS relid,
n.nspname AS schemaname,
--- 1622,1630 ----
pg_stat_get_tuples_returned(i.oid) AS idx_tup_read,
pg_stat_get_tuples_fetched(i.oid) AS idx_tup_fetch
FROM (((pg_class c
! JOIN pg_index x ON ((c.oid = x.indrelid)))
! JOIN pg_class i ON ((i.oid = x.indexrelid)))
! LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace)))
WHERE (c.relkind = ANY (ARRAY['r'::"char", 't'::"char", 'm'::"char"]));
pg_stat_all_tables| SELECT c.oid AS relid,
n.nspname AS schemaname,
*************** pg_stat_all_tables| SELECT c.oid AS reli
*** 1649,1656 ****
pg_stat_get_analyze_count(c.oid) AS analyze_count,
pg_stat_get_autoanalyze_count(c.oid) AS autoanalyze_count
FROM ((pg_class c
! LEFT JOIN pg_index i ON ((c.oid = i.indrelid)))
! LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace)))
WHERE (c.relkind = ANY (ARRAY['r'::"char", 't'::"char", 'm'::"char"]))
GROUP BY c.oid, n.nspname, c.relname;
pg_stat_archiver| SELECT s.archived_count,
--- 1649,1656 ----
pg_stat_get_analyze_count(c.oid) AS analyze_count,
pg_stat_get_autoanalyze_count(c.oid) AS autoanalyze_count
FROM ((pg_class c
! LEFT JOIN pg_index i ON ((c.oid = i.indrelid)))
! LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace)))
WHERE (c.relkind = ANY (ARRAY['r'::"char", 't'::"char", 'm'::"char"]))
GROUP BY c.oid, n.nspname, c.relname;
pg_stat_archiver| SELECT s.archived_count,
*************** pg_stat_user_functions| SELECT p.oid AS
*** 1761,1767 ****
pg_stat_get_function_total_time(p.oid) AS total_time,
pg_stat_get_function_self_time(p.oid) AS self_time
FROM (pg_proc p
! LEFT JOIN pg_namespace n ON ((n.oid = p.pronamespace)))
WHERE ((p.prolang <> (12)::oid) AND (pg_stat_get_function_calls(p.oid) IS NOT NULL));
pg_stat_user_indexes| SELECT pg_stat_all_indexes.relid,
pg_stat_all_indexes.indexrelid,
--- 1761,1767 ----
pg_stat_get_function_total_time(p.oid) AS total_time,
pg_stat_get_function_self_time(p.oid) AS self_time
FROM (pg_proc p
! LEFT JOIN pg_namespace n ON ((n.oid = p.pronamespace)))
WHERE ((p.prolang <> (12)::oid) AND (pg_stat_get_function_calls(p.oid) IS NOT NULL));
pg_stat_user_indexes| SELECT pg_stat_all_indexes.relid,
pg_stat_all_indexes.indexrelid,
*************** pg_stat_xact_all_tables| SELECT c.oid AS
*** 1809,1816 ****
pg_stat_get_xact_tuples_deleted(c.oid) AS n_tup_del,
pg_stat_get_xact_tuples_hot_updated(c.oid) AS n_tup_hot_upd
FROM ((pg_class c
! LEFT JOIN pg_index i ON ((c.oid = i.indrelid)))
! LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace)))
WHERE (c.relkind = ANY (ARRAY['r'::"char", 't'::"char", 'm'::"char"]))
GROUP BY c.oid, n.nspname, c.relname;
pg_stat_xact_sys_tables| SELECT pg_stat_xact_all_tables.relid,
--- 1809,1816 ----
pg_stat_get_xact_tuples_deleted(c.oid) AS n_tup_del,
pg_stat_get_xact_tuples_hot_updated(c.oid) AS n_tup_hot_upd
FROM ((pg_class c
! LEFT JOIN pg_index i ON ((c.oid = i.indrelid)))
! LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace)))
WHERE (c.relkind = ANY (ARRAY['r'::"char", 't'::"char", 'm'::"char"]))
GROUP BY c.oid, n.nspname, c.relname;
pg_stat_xact_sys_tables| SELECT pg_stat_xact_all_tables.relid,
*************** pg_stat_xact_user_functions| SELECT p.oi
*** 1833,1839 ****
pg_stat_get_xact_function_total_time(p.oid) AS total_time,
pg_stat_get_xact_function_self_time(p.oid) AS self_time
FROM (pg_proc p
! LEFT JOIN pg_namespace n ON ((n.oid = p.pronamespace)))
WHERE ((p.prolang <> (12)::oid) AND (pg_stat_get_xact_function_calls(p.oid) IS NOT NULL));
pg_stat_xact_user_tables| SELECT pg_stat_xact_all_tables.relid,
pg_stat_xact_all_tables.schemaname,
--- 1833,1839 ----
pg_stat_get_xact_function_total_time(p.oid) AS total_time,
pg_stat_get_xact_function_self_time(p.oid) AS self_time
FROM (pg_proc p
! LEFT JOIN pg_namespace n ON ((n.oid = p.pronamespace)))
WHERE ((p.prolang <> (12)::oid) AND (pg_stat_get_xact_function_calls(p.oid) IS NOT NULL));
pg_stat_xact_user_tables| SELECT pg_stat_xact_all_tables.relid,
pg_stat_xact_all_tables.schemaname,
*************** pg_statio_all_indexes| SELECT c.oid AS r
*** 1856,1864 ****
(pg_stat_get_blocks_fetched(i.oid) - pg_stat_get_blocks_hit(i.oid)) AS idx_blks_read,
pg_stat_get_blocks_hit(i.oid) AS idx_blks_hit
FROM (((pg_class c
! JOIN pg_index x ON ((c.oid = x.indrelid)))
! JOIN pg_class i ON ((i.oid = x.indexrelid)))
! LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace)))
WHERE (c.relkind = ANY (ARRAY['r'::"char", 't'::"char", 'm'::"char"]));
pg_statio_all_sequences| SELECT c.oid AS relid,
n.nspname AS schemaname,
--- 1856,1864 ----
(pg_stat_get_blocks_fetched(i.oid) - pg_stat_get_blocks_hit(i.oid)) AS idx_blks_read,
pg_stat_get_blocks_hit(i.oid) AS idx_blks_hit
FROM (((pg_class c
! JOIN pg_index x ON ((c.oid = x.indrelid)))
! JOIN pg_class i ON ((i.oid = x.indexrelid)))
! LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace)))
WHERE (c.relkind = ANY (ARRAY['r'::"char", 't'::"char", 'm'::"char"]));
pg_statio_all_sequences| SELECT c.oid AS relid,
n.nspname AS schemaname,
*************** pg_statio_all_sequences| SELECT c.oid AS
*** 1866,1872 ****
(pg_stat_get_blocks_fetched(c.oid) - pg_stat_get_blocks_hit(c.oid)) AS blks_read,
pg_stat_get_blocks_hit(c.oid) AS blks_hit
FROM (pg_class c
! LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace)))
WHERE (c.relkind = 'S'::"char");
pg_statio_all_tables| SELECT c.oid AS relid,
n.nspname AS schemaname,
--- 1866,1872 ----
(pg_stat_get_blocks_fetched(c.oid) - pg_stat_get_blocks_hit(c.oid)) AS blks_read,
pg_stat_get_blocks_hit(c.oid) AS blks_hit
FROM (pg_class c
! LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace)))
WHERE (c.relkind = 'S'::"char");
pg_statio_all_tables| SELECT c.oid AS relid,
n.nspname AS schemaname,
*************** pg_statio_all_tables| SELECT c.oid AS re
*** 1880,1889 ****
(sum((pg_stat_get_blocks_fetched(x.indexrelid) - pg_stat_get_blocks_hit(x.indexrelid))))::bigint AS tidx_blks_read,
(sum(pg_stat_get_blocks_hit(x.indexrelid)))::bigint AS tidx_blks_hit
FROM ((((pg_class c
! LEFT JOIN pg_index i ON ((c.oid = i.indrelid)))
! LEFT JOIN pg_class t ON ((c.reltoastrelid = t.oid)))
! LEFT JOIN pg_index x ON ((t.oid = x.indrelid)))
! LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace)))
WHERE (c.relkind = ANY (ARRAY['r'::"char", 't'::"char", 'm'::"char"]))
GROUP BY c.oid, n.nspname, c.relname, t.oid, x.indrelid;
pg_statio_sys_indexes| SELECT pg_statio_all_indexes.relid,
--- 1880,1889 ----
(sum((pg_stat_get_blocks_fetched(x.indexrelid) - pg_stat_get_blocks_hit(x.indexrelid))))::bigint AS tidx_blks_read,
(sum(pg_stat_get_blocks_hit(x.indexrelid)))::bigint AS tidx_blks_hit
FROM ((((pg_class c
! LEFT JOIN pg_index i ON ((c.oid = i.indrelid)))
! LEFT JOIN pg_class t ON ((c.reltoastrelid = t.oid)))
! LEFT JOIN pg_index x ON ((t.oid = x.indrelid)))
! LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace)))
WHERE (c.relkind = ANY (ARRAY['r'::"char", 't'::"char", 'm'::"char"]))
GROUP BY c.oid, n.nspname, c.relname, t.oid, x.indrelid;
pg_statio_sys_indexes| SELECT pg_statio_all_indexes.relid,
*************** pg_stats| SELECT n.nspname AS schemaname
*** 2008,2016 ****
ELSE NULL::real[]
END AS elem_count_histogram
FROM (((pg_statistic s
! JOIN pg_class c ON ((c.oid = s.starelid)))
! JOIN pg_attribute a ON (((c.oid = a.attrelid) AND (a.attnum = s.staattnum))))
! LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace)))
WHERE ((NOT a.attisdropped) AND has_column_privilege(c.oid, a.attnum, 'select'::text));
pg_tables| SELECT n.nspname AS schemaname,
c.relname AS tablename,
--- 2008,2016 ----
ELSE NULL::real[]
END AS elem_count_histogram
FROM (((pg_statistic s
! JOIN pg_class c ON ((c.oid = s.starelid)))
! JOIN pg_attribute a ON (((c.oid = a.attrelid) AND (a.attnum = s.staattnum))))
! LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace)))
WHERE ((NOT a.attisdropped) AND has_column_privilege(c.oid, a.attnum, 'select'::text));
pg_tables| SELECT n.nspname AS schemaname,
c.relname AS tablename,
*************** pg_tables| SELECT n.nspname AS schemanam
*** 2020,2027 ****
c.relhasrules AS hasrules,
c.relhastriggers AS hastriggers
FROM ((pg_class c
! LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace)))
! LEFT JOIN pg_tablespace t ON ((t.oid = c.reltablespace)))
WHERE (c.relkind = 'r'::"char");
pg_timezone_abbrevs| SELECT pg_timezone_abbrevs.abbrev,
pg_timezone_abbrevs.utc_offset,
--- 2020,2027 ----
c.relhasrules AS hasrules,
c.relhastriggers AS hastriggers
FROM ((pg_class c
! LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace)))
! LEFT JOIN pg_tablespace t ON ((t.oid = c.reltablespace)))
WHERE (c.relkind = 'r'::"char");
pg_timezone_abbrevs| SELECT pg_timezone_abbrevs.abbrev,
pg_timezone_abbrevs.utc_offset,
*************** pg_user_mappings| SELECT u.oid AS umid,
*** 2055,2068 ****
ELSE NULL::text[]
END AS umoptions
FROM ((pg_user_mapping u
! LEFT JOIN pg_authid a ON ((a.oid = u.umuser)))
! JOIN pg_foreign_server s ON ((u.umserver = s.oid)));
pg_views| SELECT n.nspname AS schemaname,
c.relname AS viewname,
pg_get_userbyid(c.relowner) AS viewowner,
pg_get_viewdef(c.oid) AS definition
FROM (pg_class c
! LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace)))
WHERE (c.relkind = 'v'::"char");
rtest_v1| SELECT rtest_t1.a,
rtest_t1.b
--- 2055,2068 ----
ELSE NULL::text[]
END AS umoptions
FROM ((pg_user_mapping u
! LEFT JOIN pg_authid a ON ((a.oid = u.umuser)))
! JOIN pg_foreign_server s ON ((u.umserver = s.oid)));
pg_views| SELECT n.nspname AS schemaname,
c.relname AS viewname,
pg_get_userbyid(c.relowner) AS viewowner,
pg_get_viewdef(c.oid) AS definition
FROM (pg_class c
! LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace)))
WHERE (c.relkind = 'v'::"char");
rtest_v1| SELECT rtest_t1.a,
rtest_t1.b