Обсуждение: More char()/ascii()

Поиск
Список
Период
Сортировка

More char()/ascii()

От
Gregory Stark
Дата:
Also, I thought we said this would be an error:

postgres=# select length("char"(0));length 
--------     0
(1 row)


--  Gregory Stark EnterpriseDB          http://www.enterprisedb.com Get trained by Bruce Momjian - ask me about
EnterpriseDB'sPostgreSQL training!
 


Re: More char()/ascii()

От
Andrew Dunstan
Дата:

Gregory Stark wrote:
> Also, I thought we said this would be an error:
>
> postgres=# select length("char"(0));
>  length 
> --------
>       0
> (1 row)
>
>   

IIRC, we said chr(0) would give you an error, and it does. I don't 
recall any discussion of "char"(0), but no doubt a few brain cells have 
died since then.

Fixing it would be trivial, I'm sure, but is it really a problem?

cheers

andrew


Re: More char()/ascii()

От
Gregory Stark
Дата:
"Andrew Dunstan" <andrew@dunslane.net> writes:

> Gregory Stark wrote:
>> Also, I thought we said this would be an error:
>>
>> postgres=# select length("char"(0));
>>  length --------
>>       0
>> (1 row)
>>
>>   
>
> IIRC, we said chr(0) would give you an error, and it does. I don't recall any
> discussion of "char"(0), but no doubt a few brain cells have died since then.

Ah, that explains my confusion. I knew it seemed weird to have to quote it.

> Fixing it would be trivial, I'm sure, but is it really a problem?

The "char" data type which I was mistakenly using is enough of a wart that it
probably doesn't matter what we do with it. There aren't any security holes
with the current behaviour (I don't think).



--  Gregory Stark EnterpriseDB          http://www.enterprisedb.com Get trained by Bruce Momjian - ask me about
EnterpriseDB'sPostgreSQL training!
 


Re: More char()/ascii()

От
Tom Lane
Дата:
Gregory Stark <stark@enterprisedb.com> writes:
> "Andrew Dunstan" <andrew@dunslane.net> writes:
>> Fixing it would be trivial, I'm sure, but is it really a problem?

> The "char" data type which I was mistakenly using is enough of a wart that it
> probably doesn't matter what we do with it. There aren't any security holes
> with the current behaviour (I don't think).

The "char" type seems to be partly intended to serve as a poor man's
int1 --- at one time it even had arithmetic operators, if memory serves.
So we shouldn't disallow zero or mess with the fact that it's a signed
rather than unsigned byte.
        regards, tom lane