From: | phb(dot)emaj(at)free(dot)fr |
---|---|
To: | pgsql-bugs(at)postgresql(dot)org |
Subject: | BUG #6681: pg_extension.extconfig after alter sequence drop table |
Date: | 2012-06-09 06:52:24 |
Message-ID: | E1SdFX6-0006GO-8a@wrigleys.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
The following bug has been logged on the website:
Bug reference: 6681
Logged by: Philippe BEAUDOIN
Email address: phb(dot)emaj(at)free(dot)fr
PostgreSQL version: 9.1.4
Operating system: Linux
Description:
When a table has been registered as an extension configuration table, it's
oid is reported in the extconfig column of the pg_extension table. But once
the table is dropped from the extension, it is still referenced in
pg_extension.extconfig.
Here is a test case to easily reproduce this issue.
Just copy/paste and adjust initial parameters.
#!/bin/sh
export PGINST=/usr/local/pg913
export PGBIN=$PGINST/bin
export PGEXT=$PGINST/share/postgresql/extension
export PGHOST=localhost
export PGPORT=5913
export PGUSER=postgres
export PGDATABASE=phb
echo
"-----------------------------------------------------------------------"
echo " Issue: extconfig from pg_extension after alter sequence drop table"
echo
"-----------------------------------------------------------------------"
echo Connection parameters: $PGHOST - $PGPORT - $PGUSER - $PGDATABASE
# Build the extension control file
cat >$PGINST/share/postgresql/extension/phb.control <<EOF
default_version = '1.0.0'
schema = phb
EOF
# Create a test database
$PGBIN/psql template1 -ac "drop database phb;"
$PGBIN/psql template1 -ac "create database phb;"
# create the create extension script
cat >$PGEXT/phb--1.0.0.sql <<EOF
create table tbl1 (col1 int not null primary key, col2 int);
select pg_catalog.pg_extension_config_dump('tbl1','');
EOF
echo "--> Create the extension"
$PGBIN/psql -ac "create extension phb;"
$PGBIN/psql -ac "\dx+ phb"
$PGBIN/psql -ac "select oid from pg_class where relname = 'tbl1';"
$PGBIN/psql -ac "select * from pg_extension;"
echo "--> OK, tbl1 is correctly referenced as a configuration tables"
echo "--> Now remove tbl1 from the extension and look at the result"
$PGBIN/psql -ac "alter extension phb drop table phb.tbl1;"
$PGBIN/psql -ac "select * from pg_extension;"
echo "--> Surprisingly, extconfig references tbl1 !!!"
echo "--> However, tbl1 is really out of the extension."
$PGBIN/psql -ac "\dx+ phb"
echo "--> This is confirmed by a pg_dump output"
$PGBIN/pg_dump -Fp
echo "--> And the extension and the table can be dropped separately"
$PGBIN/psql -ac "drop extension phb;"
$PGBIN/psql -ac "\d phb.tbl1"
$PGBIN/psql -ac "drop table phb.tbl1;"
# cleanup the environment
$PGBIN/psql template1 -ac "drop database phb;"
rm $PGINST/share/postgresql/extension/phb*
From | Date | Subject | |
---|---|---|---|
Next Message | phb.emaj | 2012-06-09 06:57:22 | BUG #6682: pg_dump and sequence values of serial columns for extension configuration tables |
Previous Message | jeremy_2595 | 2012-06-08 23:02:54 | BUG #6680: error para ingresar |