OK, sequences removed from pg_tables. Regression updated. Patch
applied.
---------------------------------------------------------------------------
Mike Quinn wrote:
> The inclusion of the relkind='s' made me think that something other than tables
> were to be included as well. I don't see any problem with the original intention
> of returning only tables. The view now is operating "almost" as designed. It does
> return "pg_xactlock" which is a special relation. The relkind='s' should be removed
> in order to conform with the intention.
>
> Mike Quinn
>
> >>> Tom Lane <[EMAIL PROTECTED]> 7/10/03 8:24:43 AM >>>
> "Mike Quinn" <[EMAIL PROTECTED]> writes:
> > Given that 'S' => Sequence and 's' => special shouldn't the last condition in the
> > WHERE clause be:
> > c.relkind = 'S'::"char"
>
> Only if you suppose that pg_tables should show sequences, which was not
> the intention. (I'm not real sure why 's' relations are listed, since
> they're not really tables either, but the view is operating as
> designed.)
>
> I'm prepared to listen to an argument that pg_tables should show
> sequences, but that's a definition change not a bug fix. Want to
> bring it up on -general or -hackers?
>
> regards, tom lane
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
> (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])
>
--
Bruce Momjian | http://candle.pha.pa.us
[EMAIL PROTECTED] | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073
Index: src/bin/initdb/initdb.sh
===================================================================
RCS file: /cvsroot/pgsql-server/src/bin/initdb/initdb.sh,v
retrieving revision 1.196
diff -c -c -r1.196 initdb.sh
*** src/bin/initdb/initdb.sh 21 Jul 2003 15:20:27 -0000 1.196
--- src/bin/initdb/initdb.sh 21 Jul 2003 22:00:37 -0000
***************
*** 786,792 ****
C.relhasrules AS hasrules, \
(C.reltriggers > 0) AS hastriggers \
FROM pg_class C LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace) \
! WHERE C.relkind IN ('r', 'S');
CREATE VIEW pg_indexes AS \
SELECT \
--- 786,792 ----
C.relhasrules AS hasrules, \
(C.reltriggers > 0) AS hastriggers \
FROM pg_class C LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace) \
! WHERE C.relkind = 'r';
CREATE VIEW pg_indexes AS \
SELECT \
Index: src/test/regress/expected/rules.out
===================================================================
RCS file: /cvsroot/pgsql-server/src/test/regress/expected/rules.out,v
retrieving revision 1.76
diff -c -c -r1.76 rules.out
*** src/test/regress/expected/rules.out 19 Jul 2003 20:20:52 -0000 1.76
--- src/test/regress/expected/rules.out 21 Jul 2003 22:00:42 -0000
***************
*** 1292,1298 ****
pg_statio_user_sequences | SELECT pg_statio_all_sequences.relid,
pg_statio_all_sequences.schemaname, pg_statio_all_sequences.relname,
pg_statio_all_sequences.blks_read, pg_statio_all_sequences.blks_hit FROM
pg_statio_all_sequences WHERE ((pg_statio_all_sequences.schemaname <>
'pg_catalog'::name) AND (pg_statio_all_sequences.schemaname <> 'pg_toast'::name));
pg_statio_user_tables | SELECT pg_statio_all_tables.relid,
pg_statio_all_tables.schemaname, pg_statio_all_tables.relname,
pg_statio_all_tables.heap_blks_read, pg_statio_all_tables.heap_blks_hit,
pg_statio_all_tables.idx_blks_read, pg_statio_all_tables.idx_blks_hit,
pg_statio_all_tables.toast_blks_read, pg_statio_all_tables.toast_blks_hit,
pg_statio_all_tables.tidx_blks_read, pg_statio_all_tables.tidx_blks_hit FROM
pg_statio_all_tables WHERE ((pg_statio_all_tables.schemaname <> 'pg_catalog'::name)
AND (pg_statio_all_tables.schemaname <> 'pg_toast'::name));
pg_stats | SELECT nspname AS schemaname, relname AS tablename,
attname, stanullfrac AS null_frac, stawidth AS avg_width, stadistinct AS n_distinct,
CASE WHEN (1 = stakind1) THEN stavalues1 WHEN (1 = stakind2) THEN stavalues2 WHEN (1 =
stakind3) THEN stavalues3 WHEN (1 = stakind4) THEN stavalues4 ELSE NULL::anyarray END
AS most_common_vals, CASE WHEN (1 = stakind1) THEN stanumbers1 WHEN (1 = stakind2)
THEN stanumbers2 WHEN (1 = stakind3) THEN stanumbers3 WHEN (1 = stakind4) THEN
stanumbers4 ELSE NULL::real[] END AS most_common_freqs, CASE WHEN (2 = stakind1) THEN
stavalues1 WHEN (2 = stakind2) THEN stavalues2 WHEN (2 = stakind3) THEN stavalues3
WHEN (2 = stakind4) THEN stavalues4 ELSE NULL::anyarray END AS histogram_bounds, CASE
WHEN (3 = stakind1) THEN stanumbers1[1] WHEN (3 = stakind2) THEN stanumbers2[1] WHEN
(3 = stakind3) THEN stanumbers3[1] WHEN (3 = stakind4) THEN stanumbers4[1] ELSE
NULL::real END AS correlation 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
has_table_privilege(c.oid, 'select'::text);
! pg_tables | SELECT n.nspname AS schemaname, c.relname AS tablename,
pg_get_userbyid(c.relowner) AS tableowner, c.relhasindex AS hasindexes, c.relhasrules
AS hasrules, (c.reltriggers > 0) AS hastriggers FROM (pg_class c LEFT JOIN
pg_namespace n ON ((n.oid = c.relnamespace))) WHERE ((c.relkind = 'r'::"char") OR
(c.relkind = 's'::"char"));
pg_user | SELECT pg_shadow.usename, pg_shadow.usesysid,
pg_shadow.usecreatedb, pg_shadow.usesuper, pg_shadow.usecatupd, '********'::text AS
passwd, pg_shadow.valuntil, pg_shadow.useconfig FROM pg_shadow;
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 FROM rtest_t1;
--- 1292,1298 ----
pg_statio_user_sequences | SELECT pg_statio_all_sequences.relid,
pg_statio_all_sequences.schemaname, pg_statio_all_sequences.relname,
pg_statio_all_sequences.blks_read, pg_statio_all_sequences.blks_hit FROM
pg_statio_all_sequences WHERE ((pg_statio_all_sequences.schemaname <>
'pg_catalog'::name) AND (pg_statio_all_sequences.schemaname <> 'pg_toast'::name));
pg_statio_user_tables | SELECT pg_statio_all_tables.relid,
pg_statio_all_tables.schemaname, pg_statio_all_tables.relname,
pg_statio_all_tables.heap_blks_read, pg_statio_all_tables.heap_blks_hit,
pg_statio_all_tables.idx_blks_read, pg_statio_all_tables.idx_blks_hit,
pg_statio_all_tables.toast_blks_read, pg_statio_all_tables.toast_blks_hit,
pg_statio_all_tables.tidx_blks_read, pg_statio_all_tables.tidx_blks_hit FROM
pg_statio_all_tables WHERE ((pg_statio_all_tables.schemaname <> 'pg_catalog'::name)
AND (pg_statio_all_tables.schemaname <> 'pg_toast'::name));
pg_stats | SELECT nspname AS schemaname, relname AS tablename,
attname, stanullfrac AS null_frac, stawidth AS avg_width, stadistinct AS n_distinct,
CASE WHEN (1 = stakind1) THEN stavalues1 WHEN (1 = stakind2) THEN stavalues2 WHEN (1 =
stakind3) THEN stavalues3 WHEN (1 = stakind4) THEN stavalues4 ELSE NULL::anyarray END
AS most_common_vals, CASE WHEN (1 = stakind1) THEN stanumbers1 WHEN (1 = stakind2)
THEN stanumbers2 WHEN (1 = stakind3) THEN stanumbers3 WHEN (1 = stakind4) THEN
stanumbers4 ELSE NULL::real[] END AS most_common_freqs, CASE WHEN (2 = stakind1) THEN
stavalues1 WHEN (2 = stakind2) THEN stavalues2 WHEN (2 = stakind3) THEN stavalues3
WHEN (2 = stakind4) THEN stavalues4 ELSE NULL::anyarray END AS histogram_bounds, CASE
WHEN (3 = stakind1) THEN stanumbers1[1] WHEN (3 = stakind2) THEN stanumbers2[1] WHEN
(3 = stakind3) THEN stanumbers3[1] WHEN (3 = stakind4) THEN stanumbers4[1] ELSE
NULL::real END AS correlation 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
has_table_privilege(c.oid, 'select'::text);
! pg_tables | SELECT n.nspname AS schemaname, c.relname AS tablename,
pg_get_userbyid(c.relowner) AS tableowner, c.relhasindex AS hasindexes, c.relhasrules
AS hasrules, (c.reltriggers > 0) AS hastriggers FROM (pg_class c LEFT JOIN
pg_namespace n ON ((n.oid = c.relnamespace))) WHERE (c.relkind = 'r'::"char");
pg_user | SELECT pg_shadow.usename, pg_shadow.usesysid,
pg_shadow.usecreatedb, pg_shadow.usesuper, pg_shadow.usecatupd, '********'::text AS
passwd, pg_shadow.valuntil, pg_shadow.useconfig FROM pg_shadow;
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 FROM rtest_t1;
---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])