Thread: zpbit_in does not receive correct atttypmod

zpbit_in does not receive correct atttypmod

From
Peter Eisentraut
Date:
When I create a table

create table test (a bit(4));

and insert a value

insert into test values (b'1000000001');

the zpbit_in() function gets an atttypmod (arg 2 (of 2)) of -1.  Is there
somewhere the system needs to be told that "this type uses the atttypmod
field"?

-- 
Peter Eisentraut   peter_e@gmx.net   http://funkturm.homeip.net/~peter



Re: zpbit_in does not receive correct atttypmod

From
Tom Lane
Date:
Peter Eisentraut <peter_e@gmx.net> writes:
> When I create a table
> create table test (a bit(4));
> and insert a value
> insert into test values (b'1000000001');
> the zpbit_in() function gets an atttypmod (arg 2 (of 2)) of -1.  Is there
> somewhere the system needs to be told that "this type uses the atttypmod
> field"?

No.  I don't believe this is broken, either --- the call is coming from
make_const() which has no reason to try to coerce the constant to a
particular length.  Coercion to the target column width will happen
later (quite a bit later), when zpbit() is called.  See
coerce_type_typmod in parse_coerce.c.
        regards, tom lane