Hello, I've run into an interesting problem with using compiled queries to search for values that are not equal to null.
Our goal is to run a query like this: SELECT * FROM MyTable WHERE MyValue IS NOT NULL. If I build the query like this, everything works perfectly: Query query = context.query().from(schema, "MyTable").select("*").toQuery(); SelectItem manufacturer = new SelectItem(schema.getTableByName("MyTable ").getColumnByName("MyValue")); query.where(new FilterItem(manufacturer, OperatorType.DIFFERENT_FROM, null)); DataSet dataSet = context.executeQuery(query); However, if I do the same thing with a compiled query, I get into trouble: Query query2 = context.query().from(schema, "MyTable").select("*").toQuery(); query2.where(new FilterItem(manufacturer, OperatorType.DIFFERENT_FROM, new QueryParameter())); CompiledQuery compiled = context.compileQuery(query2); Object[] params = new Object[1]; params[0] = null; DataSet dataSet2 = context.executeQuery(compiled, params); In this case, the generated SQL is: SELECT . . . FROM "MySchema"."MyTable" WHERE ("MyTable"."MyValue" <> ? OR "MyTable"."MyValue" IS NULL) If the input parameter is a NULL, this where clause is not helpful. "<> NULL" is likely to be invalid and "IS NULL" is the wrong thing. The goal is "IS NOT NULL" The generated query would make perfect sense if the input parameter was a value like "foo", but this approach falls apart with null input parameters. Any suggestions for a workaround would be greatly appreciated! Tim Kingsbury