Обсуждение: More char()/ascii()
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!
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
"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!
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