Re: BUG #8405: user can create a system table(eg, pg_class)
Re: BUG #8405: user can create a system table(eg, pg_class)
От:
Heikki Linnakangas <hlinnakangas@vmware.com>
Дата:
On 28.08.2013 05:01, syxjxia@gmail.com wrote: > postgres=# create table pg_class(a int); > CREATE TABLE > postgres=# insert into pg_class values (1); > ERROR: null value in column "relnamespace" violates not-null constraint > DETAIL: Failing row contains (1, null, null, null, null, null, null, null, > null, null, null, null, null, null, null, null, null, null, null, null, > null, null, null, null, null, null, null). That's not a bug. The table created is in the public schema, while all the system tables are in pg_catalog schema. Yes, it's possible to create a table in another schema with the same name. To avoid hijacking applications that access the system tables, pg_catalog is implicitly in front of search_path, if it's not listed there explicitly. So when you do the insert, it refers to pg_catalog.pg_class. - Heikki
BUG #8405: user can create a system table(eg, pg_class)
От:
syxjxia@gmail.com
Дата:
The following bug has been logged on the website: Bug reference: 8405 Logged by: xjxia Email address: syxjxia@gmail.com PostgreSQL version: 9.2.2 Operating system: ubuntu11.04 x86_64 Description: postgres=# create table pg_class(a int); CREATE TABLE postgres=# insert into pg_class values (1); ERROR: null value in column "relnamespace" violates not-null constraint DETAIL: Failing row contains (1, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null). postgres=#