Re: [COMMITTERS] pgsql-server: Clean up generation of default
От | Christopher Kings-Lynne |
---|---|
Тема | Re: [COMMITTERS] pgsql-server: Clean up generation of default |
Дата | |
Msg-id | 40CAD715.9050606@familyhealth.com.au обсуждение исходный текст |
Ответ на | Re: [COMMITTERS] pgsql-server: Clean up generation of default (Darcy Buskermolen <darcy@wavefire.com>) |
Ответы |
Re: [COMMITTERS] pgsql-server: Clean up generation of default
|
Список | pgsql-hackers |
> I'd be inclined to make it only take 2 args, table, col where table can be > namespace qualified. This allows people who arn't namespace aware to just do > SELECT pg_get_serial_sequence('mytable','mycol') and have it return the > correct item following searchpath.. I would think this would then become > consistant with the standard behavior. Not to mention it would also allow > for easier moving schema form one namespace to another.. OK, attached is a file with the original function, and an overloaded one that just takes table and column. It searches your current search_path to find the first matching table. Tom, do you have any opinion on whether the former or latter function would be a good solution to the pg_dump issue? Chris CREATE FUNCTION pg_get_serial_sequence(name, name, name) RETURNS text AS ' SELECT pg_catalog.quote_ident(pn_seq.nspname) || ''.'' || pg_catalog.quote_ident(seq.relname) FROM pg_catalog.pg_namespace pn, pg_catalog.pg_class pc, pg_catalog.pg_attribute pa, pg_catalog.pg_depend pd, pg_catalog.pg_class seq, pg_catalog.pg_namespace pn_seq WHERE pn.nspname=$1 AND pc.relname=$2 AND pa.attname=$3 AND pn.oid=pc.relnamespace AND pc.oid=pa.attrelid AND pd.objid=seq.oid AND pd.classid=seq.tableoid AND pd.refclassid=seq.tableoid AND pd.refobjid=pc.oid AND pd.refobjsubid=pa.attnum AND pd.deptype=''i'' AND seq.relkind=''S'' AND seq.relnamespace=pn_seq.oid ' LANGUAGE sql; CREATE FUNCTION pg_get_serial_sequence(name, name) RETURNS text AS ' SELECT pg_catalog.quote_ident(pn_seq.nspname) || ''.'' || pg_catalog.quote_ident(seq.relname) FROM pg_catalog.pg_class pc, pg_catalog.pg_attribute pa, pg_catalog.pg_depend pd, pg_catalog.pg_class seq, pg_catalog.pg_namespace pn_seq WHERE pg_catalog.pg_table_is_visible(pc.oid) AND pc.relname=$1 AND pa.attname=$2 AND pc.oid=pa.attrelid AND pd.objid=seq.oid AND pd.classid=seq.tableoid AND pd.refclassid=seq.tableoid AND pd.refobjid=pc.oid AND pd.refobjsubid=pa.attnum AND pd.deptype=''i'' AND seq.relkind=''S'' AND seq.relnamespace=pn_seq.oid ' LANGUAGE sql;
В списке pgsql-hackers по дате отправления: