Re: "IS NOT NULL" != "NOT NULL"
| От | Tom Lane |
|---|---|
| Тема | Re: "IS NOT NULL" != "NOT NULL" |
| Дата | |
| Msg-id | 8536.1011380705@sss.pgh.pa.us обсуждение исходный текст |
| Ответ на | "IS NOT NULL" != "NOT NULL" (Sean Chittenden <sean@chittenden.org>) |
| Ответы |
Re: "IS NOT NULL" != "NOT NULL"
Re: "IS NOT NULL" != "NOT NULL" |
| Список | pgsql-general |
Sean Chittenden <sean@chittenden.org> writes:
> db=> SELECT COUNT(*) FROM pkg_hosts WHERE timestamp_col NOT NULL;
> count
> -------
> 0
> (1 row)
> db=> SELECT COUNT(*) FROM pkg_hosts WHERE timestamp_col IS NOT NULL;
> count
> -------
> 1242
> (1 row)
> Why aren't those the same? Seems like the IS would be an extra word
> that's not necessarily needed. ::shrug:: -sc
This is more than a tad hard to believe, considering that the parser
converts both of these constructs into the same internal representation:
| a_expr NOTNULL
{ $$ = makeA_Expr(NOTNULL, NULL, $1, NULL); }
| a_expr IS NOT NULL_P
{ $$ = makeA_Expr(NOTNULL, NULL, $1, NULL); }
Can you provide a reproducible example where the results are different?
regards, tom lane
В списке pgsql-general по дате отправления: