Re: SELECT CAST(123 AS char) -> 1 - Mailing list pgsql-general

From Dean Gibson (DB Administrator)
Subject Re: SELECT CAST(123 AS char) -> 1
Date
Msg-id 47B1EAA5.8060203@ultimeth.com
Whole thread Raw
In response to Re: SELECT CAST(123 AS char) -> 1  (Ken Johanson <pg-user@kensystem.com>)
Responses Re: SELECT CAST(123 AS char) -> 1
List pgsql-general
On 2008-02-12 07:30, Ken Johanson wrote:

Sure, but you're a prime candidate for understanding the value of following the spec if you're trying to write software that works with multiple databases.

The spec has diminished in this (CAST without length) context:
a) following it produces an output which has no usefulness whatsoever (123 != 1)
I OFTEN use a cast of CHAR to get just the first character.

b) all the other databases chose to not follow the spec in the context of cast and char with implicit length.

I doubt that:

http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=/com.ibm.db2.doc.sqlref/castsp.htm
http://msdn2.microsoft.com/en-us/library/aa258242(SQL.80).aspx

Your specific example is covered here:
http://vista.intersystems.com/csp/docbook/DocBook.UI.Page.cls?KEY=RSQL_cast

and here:
http://answers.yahoo.com/question/index?qid=20071017084134AA4mCJC


When the length is unqualified, a cast to char should one of:

1) failfast
2) auto-size to char-count (de facto)
3) pad to the max-length

What is wrong with using VARCHAR for your purpose????????????????????????????  If you want the string auto-sized, that is what VARCHAR is for.

CHAR is, BY DEFINITION, a DECLARED fixed length.


pgsql-general by date:

Previous
From: Lew
Date:
Subject: Re: "advanced" database design (long)
Next
From: Alvaro Herrera
Date:
Subject: Re: end of life for pg versions...