James Harper <james.harper@bendigoit.com.au> writes:
>> regression=# create table t1 (f1 float(5), f2 float(30));
>> CREATE TABLE
>> regression=# \d t1
>> Table "public.t1"
>> Column | Type | Modifiers
>> --------+------------------+-----------
>> f1 | real |
>> f2 | double precision |
>>
>> Other than the fact that we don't remember whether you asked for 5 bits
>> or 24, I think this meets the spec requirements.
> Is the 4 byte or 8 byte decision based on (n) implemented in the parser? I can't see a 'float' type in pg_type.
Yeah, gram.y is hard-wired to produce either "float4" or "float8" from
float(N) (see the opt_float production).
Ordinarily I'd think that that was a pretty sucky implementation
technique, but since this is implementing behavior called for in
the SQL standard, it's probably not worth trying to make it
any more flexible.
regards, tom lane