Skip to content

fix build for PG12 #5

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 73 additions & 0 deletions doc/export_effective_stats-12.sql.sample
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
/*
* If you want the statistics of per-relation or per-column, please modify
* nspname, relname, and attname in 'WHERE' clause.
*/

BEGIN TRANSACTION ISOLATION LEVEL SERIALIZABLE;
/*
* If you want to chage the output file name, please modify the following name.
*/
\o export_stats.dmp

COPY (SELECT n2.nspname,
cl.relname,
r.relpages,
r.reltuples,
r.relallvisible,
r.curpages,
r.last_analyze,
r.last_autoanalyze,
COALESCE(a.attname, ''),
n1.nspname AS schemaname_of_atttype,
t.typname,
a.atttypmod,
co.stainherit,
co.stanullfrac,
co.stawidth,
co.stadistinct,
co.stakind1,
co.stakind2,
co.stakind3,
co.stakind4,
co.stakind5,
co.staop1,
co.staop2,
co.staop3,
co.staop4,
co.staop5,
co.stacoll1,
co.stacoll2,
co.stacoll3,
co.stacoll4,
co.stacoll5,
co.stanumbers1,
co.stanumbers2,
co.stanumbers3,
co.stanumbers4,
co.stanumbers5,
co.stavalues1,
co.stavalues2,
co.stavalues3,
co.stavalues4,
co.stavalues5
FROM dbms_stats.column_stats_effective co
JOIN pg_attribute a
ON (co.starelid = a.attrelid AND co.staattnum = a.attnum)
JOIN pg_type t
ON a.atttypid = t.oid
JOIN pg_namespace n1
ON t.typnamespace = n1.oid
RIGHT JOIN dbms_stats.relation_stats_effective r
ON co.starelid = r.relid
JOIN pg_catalog.pg_class cl
ON r.relid = cl.oid
JOIN pg_catalog.pg_namespace n2
ON cl.relnamespace = n2.oid
-- WHERE n2.nspname = 'public'
-- AND cl.relname = 'test'
-- AND a.attname = 'id'
ORDER BY starelid, staattnum)
TO STDOUT
(FORMAT 'binary');
\o
COMMIT;
79 changes: 79 additions & 0 deletions doc/export_plain_stats-12.sql.sample
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
/*
* If you want the statistics of per-relation or per-column, please modify
* nspname, relname, and attname in 'WHERE' clause.
*/

BEGIN TRANSACTION ISOLATION LEVEL SERIALIZABLE;
/*
* If you want to chage the output file name, please modify the following name.
*/
\o export_stats.dmp

COPY (SELECT n2.nspname,
c.relname,
c.relpages,
c.reltuples,
c.relallvisible,
(pg_relation_size(c.oid) / current_setting('block_size')::int4)::int4
AS curpages,
pg_catalog.pg_stat_get_last_analyze_time(c.oid)
AS last_analyze,
pg_catalog.pg_stat_get_last_autoanalyze_time(c.oid)
AS last_autoanalyze,
COALESCE(a.attname, ''),
n1.nspname AS schemaname_of_atttype,
t.typname,
a.atttypmod,
s.stainherit,
s.stanullfrac,
s.stawidth,
s.stadistinct,
s.stakind1,
s.stakind2,
s.stakind3,
s.stakind4,
s.stakind5,
s.staop1,
s.staop2,
s.staop3,
s.staop4,
s.staop5,
s.stacoll1,
s.stacoll2,
s.stacoll3,
s.stacoll4,
s.stacoll5,
s.stanumbers1,
s.stanumbers2,
s.stanumbers3,
s.stanumbers4,
s.stanumbers5,
s.stavalues1,
s.stavalues2,
s.stavalues3,
s.stavalues4,
s.stavalues5
FROM pg_statistic s
JOIN pg_attribute a
ON (s.starelid = a.attrelid AND s.staattnum = a.attnum)
JOIN pg_type t
ON a.atttypid = t.oid
JOIN pg_namespace n1
ON t.typnamespace = n1.oid
RIGHT JOIN pg_catalog.pg_class c
ON s.starelid = c.oid
JOIN pg_catalog.pg_namespace n2
ON c.relnamespace = n2.oid
WHERE c.relkind IN ('r', 'i', 'f', 'm')
AND NOT n2.nspname IN ('pg_catalog',
'pg_toast',
'information_schema',
'dbms_stats')
-- AND n2.nspname = 'public'
-- AND c.relname = 'test'
-- AND a.attname = 'id'
ORDER BY starelid, staattnum)
TO STDOUT
(FORMAT 'binary');
\o
COMMIT;
122 changes: 122 additions & 0 deletions expected/init-12.out
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
CREATE MATERIALIZED VIEW s0.smv0 AS
SELECT st0.id,
st0.num,
st2.txt
FROM s0.st0,s0.st2
WHERE st0.id = st2.id
ORDER BY id;
CREATE VIEW plain_relations_statistic_v AS
SELECT oid::regclass,
relpages,
reltuples,
relallvisible,
pg_relation_size(oid) / 8192 curpages
FROM pg_class
ORDER BY oid::regclass::text;
CREATE VIEW relations_locked_v AS
SELECT relid::regclass,
relname,
relpages,
reltuples,
relallvisible,
curpages
FROM dbms_stats.relation_stats_locked
ORDER BY relid;
CREATE VIEW relations_backup_v AS
SELECT id,
relid::regclass,
relname,
relpages,
reltuples,
relallvisible,
curpages
FROM dbms_stats.relation_stats_backup
ORDER BY id, relid;
CREATE VIEW plain_columns_statistic_v AS
SELECT starelid::regclass, staattnum, stainherit,
stanullfrac, stawidth, stadistinct,
stakind1, stakind2, stakind3, stakind4, stakind5,
staop1, staop2, staop3, staop4, staop5,
stacoll1, stacoll2, stacoll3, stacoll4, stacoll5,
stanumbers1, stanumbers2, stanumbers3, stanumbers4, stanumbers5,
stavalues1::text, stavalues2::text, stavalues3::text, stavalues4::text, stavalues5::text
FROM pg_statistic
ORDER BY starelid, staattnum, stainherit;
CREATE VIEW columns_locked_v AS
SELECT starelid::regclass, staattnum, attname, stainherit,
stanullfrac, stawidth, stadistinct,
stakind1, stakind2, stakind3, stakind4, stakind5,
staop1, staop2, staop3, staop4, staop5,
stacoll1, stacoll2, stacoll3, stacoll4, stacoll5,
stanumbers1, stanumbers2, stanumbers3, stanumbers4, stanumbers5,
stavalues1, stavalues2, stavalues3, stavalues4, stavalues5
FROM dbms_stats.column_stats_locked c
JOIN pg_attribute a
ON (c.starelid = a.attrelid AND c.staattnum = a.attnum)
ORDER BY starelid, staattnum, stainherit;
CREATE VIEW columns_backup_v AS
SELECT id, statypid,
starelid::regclass, staattnum, stainherit,
stanullfrac, stawidth, stadistinct,
stakind1, stakind2, stakind3, stakind4, stakind5,
staop1, staop2, staop3, staop4, staop5,
stacoll1, stacoll2, stacoll3, stacoll4, stacoll5,
stanumbers1, stanumbers2, stanumbers3, stanumbers4, stanumbers5,
stavalues1, stavalues2, stavalues3, stavalues4, stavalues5
FROM dbms_stats.column_stats_backup
ORDER BY id, starelid, staattnum, stainherit;
CREATE TABLE dbms_stats.work (
nspname name NOT NULL,
relname name NOT NULL,
relpages int4 NOT NULL,
reltuples float4 NOT NULL,
relallvisible int4 NOT NULL,
curpages int4 NOT NULL,
last_analyze timestamp with time zone,
last_autoanalyze timestamp with time zone,
attname name,
nspname_of_typename name,
typname name,
atttypmod int4,
stainherit bool,
stanullfrac float4,
stawidth int4,
stadistinct float4,
stakind1 int2,
stakind2 int2,
stakind3 int2,
stakind4 int2,
stakind5 int2,
staop1 oid,
staop2 oid,
staop3 oid,
staop4 oid,
staop5 oid,
stacoll1 oid,
stacoll2 oid,
stacoll3 oid,
stacoll4 oid,
stacoll5 oid,
stanumbers1 float4[],
stanumbers2 float4[],
stanumbers3 float4[],
stanumbers4 float4[],
stanumbers5 float4[],
stavalues1 dbms_stats.anyarray,
stavalues2 dbms_stats.anyarray,
stavalues3 dbms_stats.anyarray,
stavalues4 dbms_stats.anyarray
,stavalues5 dbms_stats.anyarray
) WITH (autovacuum_enabled = 'false');
CREATE VIEW work_v AS
SELECT nspname, relname, relpages, reltuples, relallvisible,
curpages, attname, nspname_of_typename, typname, atttypmod,
stainherit, stanullfrac, stawidth, stadistinct,
stakind1, stakind2, stakind3, stakind4, stakind5,
staop1, staop2, staop3, staop4, staop5,
stacoll1, stacoll2, stacoll3, stacoll4, stacoll5,
stanumbers1, stanumbers2, stanumbers3, stanumbers4, stanumbers5,
stavalues1, stavalues2, stavalues3, stavalues4, stavalues5
FROM dbms_stats.work
ORDER BY nspname, relname, attname, stainherit;
ANALYZE s0.sft0;
1 change: 0 additions & 1 deletion expected/init-common.out
Original file line number Diff line number Diff line change
@@ -10,7 +10,6 @@ CREATE EXTENSION pg_dbms_stats;
SET client_min_messages = warning;
DROP ROLE IF EXISTS regular_user;
CREATE ROLE regular_user LOGIN;
SET client_min_messages = fatal;
DROP ROLE IF EXISTS super_user;
CREATE ROLE super_user SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN;
-- create object
Loading