RE: Raw constraint & pg_relcheck.rcsrc
От | Hiroshi Inoue |
---|---|
Тема | RE: Raw constraint & pg_relcheck.rcsrc |
Дата | |
Msg-id | 000201bffda7$4a427ba0$2801007e@tpf.co.jp обсуждение исходный текст |
Ответ на | Raw constraint & pg_relcheck.rcsrc ("Hiroshi Inoue" <Inoue@tpf.co.jp>) |
Ответы |
Re: Raw constraint & pg_relcheck.rcsrc
|
Список | pgsql-hackers |
> -----Original Message----- > From: Hiroshi Inoue [mailto:Inoue@tpf.co.jp] > > > -----Original Message----- > > From: Tom Lane [mailto:tgl@sss.pgh.pa.us] > > > > "Hiroshi Inoue" <Inoue@tpf.co.jp> writes: > > > Is pg_relcheck.rcsrc equivalent to the original raw constraint ? > > > > To the best of deparse_expression()'s ability, it should be. > > I'm not real sure why we bother to store it, rather than deparsing > > rcbin on-the-fly on demand... > > > > I'm looking at DefineRelation() in commands/creartinh.c. > In case of inheritance,constraints of super classes are > stored using their pg_relcheck.rcbin-s. It seems bad > in case of multiple inheritance. rcsrc-s may be available > instead. > Oops,I've been completely off the point. The raw expression of constraints seems to be really needed. Is there any way to convert rcbin(cooked text format) to the raw(pre-cooked) Node expression ? Or is there a way to convert rcsrc to the pre-cooked Node expression ? Or is there a way to convert rcsrc to the cooked expression ? Here's a simple bug case. =# create table p1 (id int4); CREATE =# create table p2 (dt text check (dt = 'a')); CREATE =# create table inh () inherits (p1,p2); CREATE =# \d inh Table "inh"Attribute | Type | Modifier -----------+---------+----------id | integer |dt | text | Constraint: (id = 'a'::text) Regards. Hiroshi Inoue Inoue@tpf.co.jp
В списке pgsql-hackers по дате отправления: