As far as I am aware these statements are true.  If you have a specific example 
you could provide to the contrary that would be interesting.
 
Even if there are such conditions it does not change the fact that libpq and/or 
postgresql is deficient in this area.
 
For any query, the database should be capable of describing the metadata for 
the columns, which includes
1) the column type
and
2) the column maximum length.
 
This is such a basic database interface principle that I very disappointed that 
someone has not recognized this and simply said " yes, we see the issue we will 
work on it".
 
Again, *all* other major relational databases do this ...  even blob fields 
have a maximum length reported from the database.
 
I hope someone who truly understands database interfaces will read this thread 
and address the issue.
For now we will have to "special case" postgres in our application until it is 
addressed.
 
Thanks
lm

________________________________

From: Tom Lane [mailto:[EMAIL PROTECTED]
Sent: Mon 6/11/2007 5:32 PM
To: Larry McGhaw
Cc: Alvaro Herrera; Dann Corbit; Gregory Stark; Martijn van Oosterhout; 
pgsql-hackers@postgresql.org
Subject: Re: [HACKERS] Selecting a constant question 



"Larry McGhaw" <[EMAIL PROTECTED]> writes:
> I think perhaps we have lost sight of the main issue:
> 1) libpq can properly describe the maximum internal data size of any
> numeric or char column in a table via Pqfsize
> 2) libpq can properly describe the maximum internal data size of any
> varchar column via Pqfmod
> 3) libpq can properly describe the maximum internal data size of any
> numeric constant in a SQL statement via Pqfsize

None of the above statements are actually true, at least not when you
take off your blinders and note the existence of unconstrained-width
numeric and text columns.

> The database *knows* this size of the char constant (obviously),

No, what it knows (and reports) is type information.  There are a small
number of datatypes where you can infer a maximum width from knowledge
of the datatype.  There are many others where you can't set an upper
bound from this knowledge --- at least not a usefully tight one.

Anyway, if we were to cast those constants to something other than
unknown, it would be text, not varchar, and you'd still have the same
issue.

                        regards, tom lane


Reply via email to