You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by Mamta Satoor <ms...@gmail.com> on 2005/08/01 21:57:44 UTC
Re: [PATCH] (DERBY-7) Bug in NULLIF Function
Hi,
Just got back from 3-weeks vacation and I see that patch for Derby-7 NULLIF
function is still waiting to be committed/reviewed for a long time now. I
was wondering if someone can take a look and see if it is all ready to be
committed.
thanks,
Mamta
On 6/12/05, Mamta Satoor <ms...@gmail.com> wrote:
>
> Hi,
> I have attached a patch in JIRA to Derby-7 to fix the NULLIF problem. The
> test suites have run fine with the exception of miserrors. Since the time I
> posted the patch, I saw subsequent emails about miscerror failure possibly
> related to checkin from David Van Couvering. David I think has already
> posted a patch on the list to fix the failure.
> I have copied the description of the fix from the JIRA here for
> reference.
> "Following is a brief description of what the proposed fix involves.
> For NULLIF(L,R), parser will generate CASE L=R then untyped NULL else L.
> Notice that the NULL does not have any type associated with it during
> parsing. This change went into sqlgrammar.jj
> The existing code in ConditionalNode.bindExpression first binds the
> condition L=R. At the end of L=R condition binding, we will have determined
> the type of operand L. I have added cod into ConditionalNode to CAST untyped
> NULL to the type of L. The exisiting code for L=R binding enforces the
> Reference Guide Table 1. Comparisons allowed by Derby on page 111 and 112.
> So answers for what datatypes can be combined in NULLIF can be explained
> by that table.
> I have added some tests to see what the return type of NULLIF would be for
> various combinations of :L and R datatypes. I have also added test cases
> where the first operand to NULLIF is a parameter.
>
> All the tests pass except one failure below which I don't think is related
> to my changes
> *** Start: miscerrors jdk1.4.2_07 derbyall:derbylang 2005-06-10 01:43:31
> ***
> 35 del
> < xxxxxxFILTERED-TIMESTAMPxxxxx|main,5,main |92 |0 | wombat | null
> |Cleanup action starting
> 36 del
> < xxxxxxFILTERED-TIMESTAMPxxxxx|main,5,main |92 |0 | wombat | null |Failed
> Statement is: --
> 37 del
> < xxxxxxFILTERED-TIMESTAMPxxxxx|main,5,main |97 |0 | wombat | null
> |Cleanup action starting
> 38 del
> < xxxxxxFILTERED-TIMESTAMPxxxxx|main,5,main |97 |0 | wombat | null |Failed
> Statement is: create table a (one int, two int)
> 39 del
> < xxxxxxFILTERED-TIMESTAMPxxxxx|main,5,main |100 |0 | wombat | null
> |Cleanup action starting
> 40 del
> < xxxxxxFILTERED-TIMESTAMPxxxxx|main,5,main |100 |0 | wombat | null
> |Failed Statement is: create table a (one int)
> 40a35,40
> > xxxxxxFILTERED-TIMESTAMPxxxxx|main,5,main |91 |0 | wombat | null
> |Cleanup action starting
> > xxxxxxFILTERED-TIMESTAMPxxxxx|main,5,main |91 |0 | wombat | null |Failed
> Statement is: --
> > xxxxxxFILTERED-TIMESTAMPxxxxx|main,5,main |96 |0 | wombat | null
> |Cleanup action starting
> > xxxxxxFILTERED-TIMESTAMPxxxxx|main,5,main |96 |0 | wombat | null |Failed
> Statement is: create table a (one int, two int)
> > xxxxxxFILTERED-TIMESTAMPxxxxx|main,5,main |99 |0 | wombat | null
> |Cleanup action starting
> > xxxxxxFILTERED-TIMESTAMPxxxxx|main,5,main |99 |0 | wombat | null |Failed
> Statement is: create table a (one int)
> Test Failed.
> *** End: miscerrors jdk1.4.2_07 derbyall:derbylang 2005-06-10 01:43:48 ***
>
>
>
> Output of svn stat
> M java\engine\org\apache\derby\impl\sql\compile\ConditionalNode.java
> M java\engine\org\apache\derby\impl\sql\compile\sqlgrammar.jj
> M
> java\testing\org\apache\derbyTesting\functionTests\tests\lang\coalesceTests.java
>
> M
> java\testing\org\apache\derbyTesting\functionTests\tests\jdbcapi\resultset.java
>
> M
> java\testing\org\apache\derbyTesting\functionTests\master\DerbyNet\resultset.out
>
> M
> java\testing\org\apache\derbyTesting\functionTests\master\DerbyNetClient\resultset.out
>
> M java\testing\org\apache\derbyTesting\functionTests\master\resultset.out
> If everything looks good and no one has comments, can a commiter please
> commit this patch?
> Mamta
>