Re: BUG #4939: error query result - Mailing list pgsql-bugs

From Itagaki Takahiro
Subject Re: BUG #4939: error query result
Date
Msg-id 20090724122233.93EC.52131E4D@oss.ntt.co.jp
Whole thread Raw
In response to BUG #4939: error query result  ("limaozeng" <limaozeng@163.com>)
Responses Re: BUG #4939: error query result
List pgsql-bugs
"limaozeng" <limaozeng@163.com> wrote:

> select * from t where str in (user, 'abc...ijk');
>     str
> -----------
>  mzli
>  abc...xyz
> (2 rows)
>
> only 'mzli' ought to be appeared in the result list.

Your query is interpreted as
  select * from t::name where str in (user::name, 'abc...ijk'::name);

Strings are truncated in 63 bytes by casting to "name" type,
and the first 63 bytes of unexpected row matched the head
of values in the IN clause.

It should work if you cast "user" to text type.
=# select * from t where str in (user::text, 'abc...ijk');

The result might be a designed behavior, but is very surprising.
What should we care for it?

Regards,
---
ITAGAKI Takahiro
NTT Open Source Software Center

pgsql-bugs by date:

Previous
From: "limaozeng"
Date:
Subject: BUG #4939: error query result
Next
From: Tom Lane
Date:
Subject: Re: BUG #4939: error query result