Re: [HACKERS] Moving sequences to another schema
--On Dienstag, Juni 28, 2005 01:43:27 +0200 Bernd Helmle [EMAIL PROTECTED] wrote: When altering a sequence created by a SERIAL column type (i do this by examining pg_depend to avoid moving any other sequences that are 'foreign'), i need to recreate the default expression for the SERIAL column (stored in pg_attrdef.adbin). I currently recognized that a SERIAL column doesn't only create an implicit sequence, it creates an implicit composite type with the same name, too. I think this is the same for CREATE SEQUENCE? -- Bernd ---(end of broadcast)--- TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]
Re: [HACKERS] Moving sequences to another schema
On Jun 30, 2005, at 8:13 PM, Bernd Helmle wrote: I currently recognized that a SERIAL column doesn't only create an implicit sequence, it creates an implicit composite type with the same name, too. I think this is the same for CREATE SEQUENCE? Sequences are just special types of tables. All tables have a corresponding composite type, so sequences do as well. CREATE TABLE foo (foo_id serial); is a shorthand for CREATE SEQUENCE foo_foo_id_seq; CREATE TABLE foo (foo_id integer default nextval ('foo_foo_id_seq'::text)); Using SERIAL implies CREATE SEQUENCE. Does this help? Michael Glaesemann grzm myrealbox com ---(end of broadcast)--- TIP 6: Have you searched our list archives? http://archives.postgresql.org
Re: [HACKERS] Moving sequences to another schema
Alvaro Herrera [EMAIL PROTECTED] writes: I think this is done by AddRelationRawConstraints. You'd have to get the parsetree of the default expression. I think you could get that by applying raw_parser() to pg_attrdef.adsrc. Not adsrc --- that's not trustworthy. In practice I think you could just assume you know what the default expression ought to be, and store a new one without looking at the old. regards, tom lane ---(end of broadcast)--- TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]
Re: [HACKERS] Moving sequences to another schema
--On Dienstag, Juni 28, 2005 09:38:56 +0800 Christopher Kings-Lynne [EMAIL PROTECTED] wrote: Does ALTER TABLE/RENAME code help you? You can rename sequences with that... Hmm, that doesn't cover pg_attrdef.adbin. I think the best way is to create the default expressions from scratch, as Tom already mentioned. -- Bernd ---(end of broadcast)--- TIP 7: don't forget to increase your free space map settings
Re: [HACKERS] Moving sequences to another schema
--On Dienstag, Juni 28, 2005 02:01:33 -0400 Tom Lane [EMAIL PROTECTED] wrote: Not adsrc --- that's not trustworthy. Yes, that's documented in the docs, too. In practice I think you could just assume you know what the default expression ought to be, and store a new one without looking at the old. I think i'll go for that (need to figure out how to do that first, but it shouldn't be so hard). Whats the least that should go to -patches for feature release on 1 July (only to know, if i can hold timeline or not).?? -- Bernd ---(end of broadcast)--- TIP 6: Have you searched our list archives? http://archives.postgresql.org
Re: [HACKERS] Moving sequences to another schema
Bernd Helmle [EMAIL PROTECTED] writes: Whats the least that should go to -patches for feature release on 1 July (only to know, if i can hold timeline or not).?? Something reasonably complete, working, credible. We'll cut you slack on documentation changes and regression tests, and if it has a bug or three that's what beta testing is for; but it has to at least look like it will work. regards, tom lane ---(end of broadcast)--- TIP 5: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faq
[HACKERS] Moving sequences to another schema
I'm still playing around with the ALTER OBJECT SET SCHEMA stuff. I managed to alter indexes and constraints as well for tables, but with SERIAL sequences there is one little problem: When altering a sequence created by a SERIAL column type (i do this by examining pg_depend to avoid moving any other sequences that are 'foreign'), i need to recreate the default expression for the SERIAL column (stored in pg_attrdef.adbin). Is there an API to do that, or do i have to recreate the executable expression tree from scratch? Or am i missing something completely... TIA -- Bernd ---(end of broadcast)--- TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]
Re: [HACKERS] Moving sequences to another schema
On Tue, Jun 28, 2005 at 01:43:27AM +0200, Bernd Helmle wrote: When altering a sequence created by a SERIAL column type (i do this by examining pg_depend to avoid moving any other sequences that are 'foreign'), i need to recreate the default expression for the SERIAL column (stored in pg_attrdef.adbin). Is there an API to do that, or do i have to recreate the executable expression tree from scratch? Or am i missing something completely... I think this is done by AddRelationRawConstraints. You'd have to get the parsetree of the default expression. I think you could get that by applying raw_parser() to pg_attrdef.adsrc. -- Alvaro Herrera (alvherre[a]surnet.cl) The Postgresql hackers have what I call a NASA space shot mentality. Quite refreshing in a world of weekend drag racer developers. (Scott Marlowe) ---(end of broadcast)--- TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]
Re: [HACKERS] Moving sequences to another schema
When altering a sequence created by a SERIAL column type (i do this by examining pg_depend to avoid moving any other sequences that are 'foreign'), i need to recreate the default expression for the SERIAL column (stored in pg_attrdef.adbin). Is there an API to do that, or do i have to recreate the executable expression tree from scratch? Or am i missing something completely... Does ALTER TABLE/RENAME code help you? You can rename sequences with that... Chris ---(end of broadcast)--- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match