From: | Hannu Krosing <hannu(at)tm(dot)ee> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Shachar Shemesh <psql(at)shemesh(dot)biz>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Custom type with width specifier |
Date: | 2004-06-29 10:19:36 |
Message-ID: | 1088504376.2680.4.camel@fuji.krosing.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On P, 2004-06-27 at 17:53, Tom Lane wrote:
> Shachar Shemesh <psql(at)shemesh(dot)biz> writes:
> > What do I need to do in order to get the width specifier into my type?
>
> Rewrite the grammar. Width modifiers are only supported on types that
> are hard-wired into the grammar, mainly because they look way too much
> like function calls to be distinguished without special hacking.
>
> Consider for example the implications of the fact that this works:
>
> regression=# select numeric(17,10) '1.23';
> numeric
> --------------
> 1.2300000000
> (1 row)
>
> bison has to decide *before scanning beyond the left parenthesis*
> whether "numeric" is a function name or a type name.
>
> If you can think of a more general solution, I'm all ears, but it looks
> like a hard problem that would require considerable rethinking of the
> present grammar for these things.
can't we make type(width) an actual function which returns another type
?
this would make it even possible to add support for things like
NUMBER(17,10) as an alias for NUMERIC(17,10) as an user-level addon.
---------------
Hannu
From | Date | Subject | |
---|---|---|---|
Next Message | Darko Prenosil | 2004-06-29 10:51:19 | INSERT rule |
Previous Message | jacob koehler (RRes-Roth) | 2004-06-29 10:11:22 | Re: recursive SQL |