[ 
https://issues.apache.org/jira/browse/DERBY-5728?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16985289#comment-16985289
 ] 

Bernard commented on DERBY-5728:
--------------------------------

Please let me add some context. It might be helpful, or even encouraging.

I am not an expert on the JDBC spec. However, during research, I found that 
from the very start, the JDBC setNull with sql type parameter is a fallback for 
legacy JDBC drivers that do not pass the JDBC Driver Test Suite. This was many 
years ago, but it is still relevant for the very few databases that are still 
in this fallback situation.

Meanwhile we have moved on and high popularity of abstractions like JPA make it 
difficult to figure out where the origin of some of these the problem is. This 
issue is only one manifestation of it. If this issue gets fixed, then 
automatically some other legacy / maintenance issues will go away.

 

It is a hard pill to swallow that a type parameter must be passed alongside 
with null.

 

JPQL does not even have a concept for that. This is such a good example where 
we should follow the trend as technology has clearly moved on, leaving the 
legacy behind.

> Add Support for NULL IS NULL
> ----------------------------
>
>                 Key: DERBY-5728
>                 URL: https://issues.apache.org/jira/browse/DERBY-5728
>             Project: Derby
>          Issue Type: Improvement
>          Components: SQL
>    Affects Versions: 10.8.2.2
>         Environment: Windows XP
> java version "1.6.0_31"
> Java(TM) SE Runtime Environment (build 1.6.0_31-b05)
> Java HotSpot(TM) Client VM (build 20.6-b01, mixed mode, sharing)
>            Reporter: bernard
>            Priority: Critical
>              Labels: derby_triage10_10
>         Attachments: Bug5728.java, NullParameterEclipseLinkDerbyMaven.zip, 
> NullParameterHibernateDerbyMaven.zip
>
>
> The following query fails:
> SELECT ID FROM CUSTOMER WHERE ((NULL IS NULL) OR (NAME = NULL))
> Why this is an issue?
> At least two major Java ORMs, Hibernate JPA and EclipseLink JPA have isues 
> with generating SQL for trivial JPQL queries such as:
> select object(c) from Customer c where ((name: is null) or (c.name = name:))
> where name: is a parameter
> For why this is a fundamental issue, please see a minimalistic JPQL query at
> http://en.wikipedia.org/wiki/Java_Persistence_Query_Language#Examples 
> Part of this has already been resolved by issue "Add support for 
> setObject(<arg>, null)"
> https://issues.apache.org/jira/browse/DERBY-1938
> Please see EclipseLink and Hibernate test cases for verification.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to