Re: [pgsql-advocacy] MySQL to PostgreSQL, was ENUM type - Mailing list pgsql-general

From Jim C. Nasby
Subject Re: [pgsql-advocacy] MySQL to PostgreSQL, was ENUM type
Date
Msg-id 20050729200348.GI95931@decibel.org
Whole thread Raw
In response to Re: [pgsql-advocacy] MySQL to PostgreSQL, was ENUM type  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general
On Fri, Jul 29, 2005 at 03:57:48PM -0400, Tom Lane wrote:
> "Jim C. Nasby" <decibel@decibel.org> writes:
> > Is there any serious impediment to adding unsigned types to PostgreSQL?
>
> Quick, what's the datatype of 12345?  And why?
>
> My guess is that transparent support for such a thing would require some
> tricky and fragile compromises in the numeric hierarchy's promotion
> rules.  The handling of smallint is already pretty unsatisfactory
> because "12345" is considered int not smallint; adding three or four
> unsigned types would make that problem many times worse.

ISTM that so long as you don't overflow or lose precision it shouldn't
really matter what datatype is used to represent a number, until you use
it someplace that specifies a datatype to use (such as a function or a
table). I realize that function overloading gums this up a bit, but I
don't think it's unreasonable to require the user to explicitly cast if
they want an explicit function out of the overloaded set to be used
(though throwing a warning if they don't cast might be a good idea).

> > I don't think these would even have to be in core, if that's a
> > concern.
>
> Sure, if you don't need it to work reasonably nicely --- although the
> promotion rules are now embedded in pg_cast and hence modifiable, the
> initial determination of a datatype for a numeric literal is still
> hard-wired in the grammar.

So what would those rules currently do when they find a value that
exceedes a signed int? Or a signed bigint?
--
Jim C. Nasby, Database Consultant               decibel@decibel.org
Give your computer some brain candy! www.distributed.net Team #1828

Windows: "Where do you want to go today?"
Linux: "Where do you want to go tomorrow?"
FreeBSD: "Are you guys coming, or what?"

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: [pgsql-advocacy] MySQL to PostgreSQL, was ENUM type
Next
From: Greg Stark
Date:
Subject: Re: Megabytes of stats saved after every connection