Re: BUG #17258: Unexpected results in CHAR(1) data type
От | Tom Lane |
---|---|
Тема | Re: BUG #17258: Unexpected results in CHAR(1) data type |
Дата | |
Msg-id | 758069.1635546207@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: BUG #17258: Unexpected results in CHAR(1) data type (Mark Dilger <mark.dilger@enterprisedb.com>) |
Ответы |
RE: BUG #17258: Unexpected results in CHAR(1) data type
|
Список | pgsql-bugs |
Mark Dilger <mark.dilger@enterprisedb.com> writes: > I haven't studied the behavior of char(n) on other RDBMS products. I'd be curious if the SQL spec says anything that we'reviolating in this regard. It's not a great approximation to the spec. Postgres views trailing spaces in a char(n) value as always being semantically insignificant, where I think the spec treats them as insignificant only for purposes of comparisons. Even more to the point, the spec considers that PAD SPACE is an attribute of *collations* not data types. Back in the day we didn't have collations, so the only way to even approximate that behavior was to make it a data type property. Now that we do have collations, it'd be conceivable to reimplement all this in something closer to the way the spec describes it. But it'd be a lot of work, and I'm not sure we'd accept such a patch even if somebody wrote it. It'd almost inevitably break applications that are relying on the existing behavior. > I tend to think of char(n) as a misfeature and avoid using it. Yeah, that. I haven't seen any reason to use char(n) rather than varchar(n) since punched cards stopped being a thing. So it's hard to summon the motivation to do a lot of work on that data type. Perhaps somebody else will feel more motivated, but nobody's stepped forward, and I wouldn't counsel holding your breath for it. regards, tom lane
В списке pgsql-bugs по дате отправления: