This is normaol behavior. > I belive that I have found a bug - or maybe it was done on purpose. Have > a look at this query: > > > SELECT integer_field FROM bugtable WHERE (CASE WHEN '' <> '' THEN > integer_field = '' ELSE integer_field = 0 END); > Result: ERROR: invalid input syntax for integer: ""
Here CASE have int type and you are trying to cast '' to int. Error. > > > SELECT text_field FROM bugtable WHERE (CASE WHEN '' <> '' THEN > text_field = '' ELSE text_field = '1' END); > Result: 1 rows fetched (0,02 sec) Here CASE have text type. Everything is fine. ---------------------------(end of broadcast)--------------------------- TIP 9: the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match