db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Satheesh Bandaram <sathe...@Sourcery.Org>
Subject Re: [PATCH] Derby-156
Date Wed, 08 Jun 2005 02:06:28 GMT
Hi Shreyas,

Sorry for the delay with this patch... Once I catup to all the previous
discussions about this patch, I will commit it.

Of course, if any other committer is ready to commit, that would be good
too.

Satheesh

Shreyas Kaushik wrote:

> If everybody is fine, can someone commit this?
>
> ~Shreyas
>
> Shreyas Kaushik wrote:
>
>> Hi Mamta,
>>   As I said in one of earlier mails.
>> >     I still feel the insatnceof checking is necessary because I
>> want to get
>> >     the correlation name from the FromBaseTable node and not a
>> >     FromSubQuery
>> >     node.
>>
>> I would not want to get/assign a correlation name where it would be
>> meaningless.
>>
>> ~ Shreyas
>>
>> Mamta Satoor wrote:
>>
>>> Hi Shreyas,
>>>  
>>> I definitely agree that just changing sqlgrammar.jj is not enough.
>>> There are indeed changes required in DeleteNode. I am just curious
>>> though if it will be sufficient to just have fbt.correlationName =
>>> targetTable.correlationName; in DeleteNode. You sure know this code
>>> more than me and chances are we need the if statements and I am
>>> trying to understand the rationale behind it.
>>>  
>>> thanks for your patience,
>>> Mamta
>>>
>>>  
>>> On 6/2/05, *Shreyas Kaushik* <Shreyas.Kaushik@sun.com
>>> <mailto:Shreyas.Kaushik@sun.com>> wrote:
>>>
>>>     Hi Mamta,
>>>
>>>        Couple of tests in refactions1.sql were failing. There is an
>>>     earlier
>>>     mail I sent out that had the failures when I just did the
>>> changes to
>>>     sqlgrammar.jj.
>>>     I will forward that mail to you.
>>>
>>>     thanks
>>>     Shreyas
>>>
>>>     Mamta Satoor wrote:
>>>
>>>     > Hi Shreyas,
>>>     >
>>>     > Can you please give an example delete sql where not having
>>>     instanceof
>>>     > check will cause a problem?
>>>     >
>>>     > thanks,
>>>     > Mamta
>>>     >
>>>     >
>>>     > On 6/2/05, *Shreyas Kaushik* <Shreyas.Kaushik@sun.com
>>>     <mailto:Shreyas.Kaushik@sun.com>
>>>     > <mailto: Shreyas.Kaushik@sun.com
>>>     <mailto:Shreyas.Kaushik@sun.com>>> wrote:
>>>     >
>>>     >     Hi Mamta,
>>>     >
>>>     >     I still feel th insatnceof checking is necessary because I
>>>     want to get
>>>     >     the correlation name from the FroomBaseTable node and not a
>>>     >     FromSubQuery
>>>     >     node.
>>>     >
>>>     >     thanks
>>>     >     Shreyas
>>>     >
>>>     >     Mamta Satoor wrote:
>>>     >
>>>     >     > Hi Shreyas,
>>>     >     >
>>>     >     > In order to avoid one assignment, the code is having to
>>>     >     instantiate a
>>>     >     > new object and do an if check on it and then do the
>>>     assignment.
>>>     >     I am
>>>     >     > not sure if we should go through all this extra code
>>> when an
>>>     >     > additional comment can describe what is the assignment for.
>>>     >     >
>>>     >     > Also, the code checks for FromVTI because it needs to do
>>>     special
>>>     >     > coding for FromVTI. But, to me, it looks like that is
>>> not the
>>>     >     case for
>>>     >     > the check that you have.
>>>     >     >
>>>     >     > Does anyone else on the list have comments on the 2 if
>>>     statements in
>>>     >     > DeleteNode?
>>>     >     >
>>>     >     > thanks,
>>>     >     > Mamta
>>>     >     > On 6/1/05, *Shreyas Kaushik* < Shreyas.Kaushik@sun.com
>>>     <mailto:Shreyas.Kaushik@sun.com>
>>>     >     <mailto:Shreyas.Kaushik@sun.com
>>>     <mailto:Shreyas.Kaushik@sun.com>>
>>>     >     > <mailto: Shreyas.Kaushik@sun.com
>>>     <mailto:Shreyas.Kaushik@sun.com>
>>>     >     <mailto:Shreyas.Kaushik@sun.com
>>>     <mailto:Shreyas.Kaushik@sun.com>>>> wrote:
>>>     >     >
>>>     >     >     Hi Mamta,
>>>     >     >
>>>     >     >     Thanks for your comments. Please see inline.
>>>     >     >
>>>     >     >     ~Shreyas
>>>     >     >
>>>     >     >     Mamta Satoor wrote:
>>>     >     >
>>>     >     >     > Hi Shreyas,
>>>     >     >     >
>>>     >     >     > I reviewed your code briefly and it looks good.
>>> Couple
>>>     >     comments
>>>     >     >     >
>>>     >     >     > 1)In DeleteNode.java, you check if correlationName
>>>     is not null
>>>     >     >     (copied
>>>     >     >     > your code below for reference)
>>>     >     >     >>+                        if(targetTable instanceof
>>>     >     FromBaseTable) {
>>>     >     >     >>+                            String correlationName;
>>>     >     >     >>+                            correlationName =
>>>     >     >     > ((FromBaseTable)targetTable).correlationName;
>>>     >     >     >>+                            if(correlationName !=
>>> null)
>>>     >     >     >>+                                
>>> fbt.correlationName =
>>>     >     >     correlationName;
>>>     >     >     >>+                        }
>>>     >     >     >
>>>     >     >     > Is that check necessary? Is it possible to replace
>>>     the code
>>>     >     >     above with
>>>     >     >     > following?
>>>     >     >     >>+                        if(targetTable instanceof
>>>     >     FromBaseTable)
>>>     >     >     >>+                             fbt.correlationName =
>>>     >     >     > ((FromBaseTable)targetTable).correlationName ;
>>>     >     >
>>>     >     >     Yes the check is necessary, if a normal delete is
>>> called
>>>     >     without the
>>>     >     >     correlation name it will be null , in "fbt" also it
>>>     will be
>>>     >     null. By
>>>     >     >     checking I am avoiding an assignment.
>>>     >     >
>>>     >     >     >
>>>     >     >     > Taking one step further, is it possible to also
>>> skip the
>>>     >     check for
>>>     >     >     > instanceof FromBaseTable and just have following
>>>     assignment?
>>>     >     >     >>+                         fbt.correlationName =
>>>     >     >     > targetTable.correlationName;
>>>     >     >     > I have only briefly looked at the changes and it is
>>>     possible
>>>     >     >     that we do in
>>>     >     >
>>>     >     >     Yes this check is necessary as the FromTable node in
>>>     the method
>>>     >     >     deleteBody() in SQLParser.java is an instance of a
>>>     >     FromBaseTable. The
>>>     >     >     code already there checks whether targetTable
>>>     >     >     is an instance of FromVTI maintaining consistency this
>>>     >     should also
>>>     >     >     check
>>>     >     >     for the instance of FromBaseTable.
>>>     >     >
>>>     >     >     > deed need the checks you have but I thought I would
>>>     check
>>>     >     in any
>>>     >     >     case.
>>>     >     >     >
>>>     >     >     > 2)Rather than a completely new sql test file, I
>>>     think you
>>>     >     could use
>>>     >     >     > existing lang/derived.sql which tests correlation
>>>     names as
>>>     >     well.
>>>     >     >
>>>     >     >     Ok I can do this.
>>>     >     >
>>>     >     >     >
>>>     >     >     > 3)You might need to generate a new patch(because
>>> it has
>>>     >     been quite
>>>     >     >     > sometime since you submitted the patch), rerun the
>>> tests
>>>     >     and submit
>>>     >     >     > the patch based on latest codeline.
>>>     >     >
>>>     >     >     Sure.
>>>     >     >
>>>     >     >     >
>>>     >     >     > You sure are becoming correlation name expert :)
>>>     >     >
>>>     >     >     I am looking into Derby-84 as well ;-)
>>>     >     >
>>>     >     >     > Mamta
>>>     >     >     >
>>>     >     >     > On 6/1/05, *Shreyas Kaushik* <
>>>     Shreyas.Kaushik@sun.com <mailto:Shreyas.Kaushik@sun.com>
>>>     >     <mailto:Shreyas.Kaushik@sun.com
>>>     <mailto:Shreyas.Kaushik@sun.com>>
>>>     >     >     <mailto:Shreyas.Kaushik@sun.com
>>>     <mailto:Shreyas.Kaushik@sun.com>
>>>     >     <mailto:Shreyas.Kaushik@sun.com
>>>     <mailto:Shreyas.Kaushik@sun.com>>>
>>>     >     >     > <mailto: Shreyas.Kaushik@sun.com
>>>     <mailto:Shreyas.Kaushik@sun.com>
>>>     >     <mailto:Shreyas.Kaushik@sun.com
>>>     <mailto:Shreyas.Kaushik@sun.com>>
>>>     >     >     <mailto: Shreyas.Kaushik@sun.com
>>>     <mailto:Shreyas.Kaushik@sun.com>
>>>     >     <mailto:Shreyas.Kaushik@sun.com
>>>     <mailto:Shreyas.Kaushik@sun.com>>>>> wrote:
>>>     >     >     >
>>>     >     >     >     Did anyone get a chance to review this?
>>>     >     >     >
>>>     >     >     >     thanks
>>>     >     >     >     Shreyas
>>>     >     >     >
>>>     >     >     >     Shreyas Kaushik wrote:
>>>     >     >     >
>>>     >     >     >     > Attached is the latest patch. Ran derbylang
>>> suite
>>>     >     successfully
>>>     >     >     >     without
>>>     >     >     >     > any failures.
>>>     >     >     >     >
>>>     >     >     >     > ~ Shreyas
>>>     >     >     >     >
>>>     >     >     >     > Satheesh Bandaram wrote:
>>>     >     >     >     >
>>>     >     >     >     >> Is this patch ready for review? Still any
>>> pending
>>>     >     issues
>>>     >     >     here?
>>>     >     >     >     >>
>>>     >     >     >     >> Satheesh
>>>     >     >     >     >>
>>>     >     >     >     >> Shreyas Kaushik wrote:
>>>     >     >     >     >>
>>>     >     >     >     >>
>>>     >     >     >     >>
>>>     >     >     >     >>> Hi Dan,
>>>     >     >     >     >>>
>>>     >     >     >     >>> If you are ok with this, I can add the
>>>     comments to
>>>     >     the
>>>     >     >     patch
>>>     >     >     >     and send
>>>     >     >     >     >>> it out on the alias.
>>>     >     >     >     >>>
>>>     >     >     >     >>> thanks
>>>     >     >     >     >>> Shreyas
>>>     >     >     >     >>>
>>>     >     >     >     >>> Shreyas Kaushik wrote:
>>>     >     >     >     >>>
>>>     >     >     >     >>>
>>>     >     >     >     >>>
>>>     >     >     >     >>>> Ok. Thanks for your suggestions I will do
>>> it.
>>>     >     >     >     >>>>
>>>     >     >     >     >>>> The idea behibd adding that peice of code
>>> is:
>>>     >     >     >     >>>>
>>>     >     >     >     >>>> The *delete from* did not have support for
>>>     handling
>>>     >     >     correlation
>>>     >     >     >     >>>> names. So when we are creating a fresh
>>>     >     ResultColumnList
>>>     >     >     >     >>>> and the FromBaseTable we need to pass the
>>>     correlation
>>>     >     >     name to
>>>     >     >     >     this
>>>     >     >     >     >>>> newly created FromBaseTable object from the
>>>     target
>>>     >     >     table where it
>>>     >     >     >     >>>> will stored.
>>>     >     >     >     >>>>
>>>     >     >     >     >>>> thanks
>>>     >     >     >     >>>> Shreyas
>>>     >     >     >     >>>>
>>>     >     >     >     >>>> Daniel John Debrunner wrote:
>>>     >     >     >     >>>>
>>>     >     >     >     >>>>
>>>     >     >     >     >>>>
>>>     >     >     >     >>>>> Shreyas Kaushik wrote:
>>>     >     >     >     >>>>>
>>>     >     >     >     >>>>>
>>>     >     >     >     >>>>>
>>>     >     >     >     >>>>>
>>>     >     >     >     >>>>>> Did anyone gfo through this?
>>>     >     >     >     >>>>>>
>>>     >     >     >     >>>>>>
>>>     >     >     >     >>>>>
>>>     >     >     >     >>>>>
>>>     >     >     >     >>>>> I looked briefly. Do you have an
>>>     explanation of your
>>>     >     >     changes?
>>>     >     >     >     >>>>> Adding comments to the code you added in
>>>     >     DeleteNode,
>>>     >     >     >     explaining what
>>>     >     >     >     >>>>> exactly that new block is doing would be
>>>     really
>>>     >     useful.
>>>     >     >     >     >>>>>
>>>     >     >     >     >>>>> I would say the chance of a fix being
>>>     committed
>>>     >     quickly
>>>     >     >     >     increases
>>>     >     >     >     >>>>> significantly if it is well explained
>>> and well
>>>     >     commented.
>>>     >     >     >     The code
>>>     >     >     >     >>>>> changes really need to stand alone, ie. be
>>>     >     understandable
>>>     >     >     >     through
>>>     >     >     >     >>>>> comments, as anyone looking through the
>>>     code in
>>>     >     the future
>>>     >     >     >     will not
>>>     >     >     >     >>>>> have
>>>     >     >     >     >>>>> a link to any e-mail discussion to help
>>>     them along.
>>>     >     >     Though a
>>>     >     >     >     >>>>> summary of
>>>     >     >     >     >>>>> the changes with the contribution can be
>>>     useful.
>>>     >     Such a
>>>     >     >     >     summary is
>>>     >     >     >     >>>>> also
>>>     >     >     >     >>>>> a useful commit comment for the svn
>>>     history of
>>>     >     changes
>>>     >     >     to the
>>>     >     >     >     >>>>> codeline.
>>>     >     >     >     >>>>>
>>>     >     >     >     >>>>> Writing code comments is also very helpful
>>>     to the
>>>     >     >     writer of
>>>     >     >     >     the code,
>>>     >     >     >     >>>>> helps to cement the mental ideas into
>>>     code. A good
>>>     >     >     practise
>>>     >     >     >     is to
>>>     >     >     >     >>>>> write
>>>     >     >     >     >>>>> the comments first and then the code.
>>>     >     >     >     >>>>>
>>>     >     >     >     >>>>> Dan.
>>>     >     >     >     >>>>>
>>>     >     >     >     >>>>>
>>>     >     >     >     >>>>>
>>>     >     >     >     >>>>>
>>>     >     >     >     >>>>>
>>>     >     >     >     >>>>>>>>> Index:
>>>     >     >     >     >>>>>>>>>
>>>     >     >     >
>>>     >     java/engine/org/apache/derby/impl/sql/compile/DeleteNode.java
>>>     >     >     >     >>>>>>>>>
>>>     >     >     >
>>>     >     >
>>>     >       
>>> ===================================================================
>>>     >     >     >     >>>>>>>>>
>>>     >     >     >     >>>>>>>>> ---
>>>     >     >     >     >>>>>>>>>
>>>     >     >     >
>>>     >     java/engine/org/apache/derby/impl/sql/compile/DeleteNode.java
>>>     >     >     >     >>>>>>>>> (revision 161449)
>>>     >     >     >     >>>>>>>>> +++
>>>     >     >     >     >>>>>>>>>
>>>     >     >     >
>>>     >     java/engine/org/apache/derby/impl/sql/compile/DeleteNode.java
>>>     >     >     >     >>>>>>>>> (working copy)
>>>     >     >     >     >>>>>>>>> @@ -241,6 +241,13 @@
>>>     >     >     >     >>>>>>>>>                     resultColumnList
>>> = new
>>>     >     >     >     ResultColumnList();
>>>     >     >     >     >>>>>>>>>
>>>     >     >     >     >>>>>>>>>                     FromBaseTable fbt =
>>>     >     >     >     >>>>>>>>> getResultColumnList(resultColumnList);
>>>     >     >     >     >>>>>>>>> +
>>>     >     >     >     >>>>>>>>> +                        if(targetTable
>>>     >     instanceof
>>>     >     >     >     >>>>>>>>> FromBaseTable) {
>>>     >     >     >     >>>>>>>>> +                            String
>>>     >     correlationName;
>>>     >     >     >     >>>>>>>>>
>>>     +                            correlationName =
>>>     >     >     >     >>>>>>>>>
>>>     ((FromBaseTable)targetTable).correlationName;
>>>     >     >     >     >>>>>>>>>
>>>     >     +                            if(correlationName !=
>>>     >     >     null)
>>>     >     >     >     >>>>>>>>>
>>>     >     +                                fbt.correlationName =
>>>     >     >     >     >>>>>>>>> correlationName;
>>>     >     >     >     >>>>>>>>> +                        }
>>>     >     >     >     >>>>>>>>>
>>>     >     >     >     >>>>>>>>>                     readColsBitSet =
>>>     >     >     >     getReadMap(dataDictionary,
>>>     >     >     >     >>>>>>>>>
>>>     >     >     >     >>>>>>>>> targetTableDescriptor);
>>>     >     >     >     >>>>>>>>>
>>>     >     >     >     >>>>>>>>
>>>     >     >     >     >>>>>>>>
>>>     >     >     >     >>>>>>>
>>>     >     >     >     >>>>>
>>>     >     >     >     >>>>>
>>>     >     >     >     >>>>>
>>>     >     >     >     >>>>>
>>>     >     >     >     >>>>>
>>>     >     >     >     >>>>>
>>>     >     >     >     >>>>>
>>>     >     >     >     >>>>
>>>     >     >     >     >>>
>>>     >     >     >     >>>
>>>     >     >     >     >>
>>>     >     >     >     >>
>>>     >     >     >     >>
>>>     >     >     >     >>
>>>     >     >     >
>>>     >     >
>>>     >       
>>> >------------------------------------------------------------------------
>>>
>>>
>>>     >     >
>>>     >     >     >     >
>>>     >     >     >     >Index:
>>>     >     >       
>>> java/engine/org/apache/derby/impl/sql/compile/DeleteNode.java
>>>     >     >     >
>>>     >     >
>>>     >       
>>> >===================================================================
>>>     >     >     >     >---
>>>     >     >     >
>>>     >     >
>>>     >       
>>> java/engine/org/apache/derby/impl/sql/compile/DeleteNode.java     
>>> (revision
>>>
>>>     >
>>>     >     >
>>>     >     >     >     178358)
>>>     >     >     >     >+++
>>>     >     >     >
>>>     >     >
>>>     >       
>>> java/engine/org/apache/derby/impl/sql/compile/DeleteNode.java     
>>> (working
>>>
>>>     >     >     >     copy)
>>>     >     >     >     >@@ -241,6 +241,18 @@
>>>     >     >     >     >                       resultColumnList = new
>>>     >     >     ResultColumnList();
>>>     >     >     >     >
>>>     >     >     >     >                       FromBaseTable fbt =
>>>     >     >     >     getResultColumnList(resultColumnList);
>>>     >     >     >     >+
>>>     >     >     >     >+                        /* When we are
>>>     creating a fresh
>>>     >     >     >     ResultColumnList
>>>     >     >     >     >+                         * and the
>>>     FromBaseTable we
>>>     >     need
>>>     >     >     to pass
>>>     >     >     >     the correlation name
>>>     >     >     >     >+                         * to this newly
>>> created
>>>     >     FromBaseTable
>>>     >     >     >     object from the target table
>>>     >     >     >     >+                         * where it will be
>>>     stored.
>>>     >     >     >     >+                         */
>>>     >     >     >     >+                        if(targetTable
>>> instanceof
>>>     >     >     FromBaseTable) {
>>>     >     >     >     >+                            String
>>>     correlationName;
>>>     >     >     >     >+                            correlationName =
>>>     >     >     >     ((FromBaseTable)targetTable).correlationName;
>>>     >     >     >     >+                            if(correlationName
>>>     != null)
>>>     >     >     >        >+                               
>>> fbt.correlationName =
>>>     >     >     >     correlationName;
>>>     >     >     >     >+                        }
>>>     >     >     >     >
>>>     >     >     >     >                       readColsBitSet =
>>>     >     >     getReadMap(dataDictionary,
>>>     >     >     >     >
>>>     >     >     >     targetTableDescriptor);
>>>     >     >     >     >Index:
>>>     >     >       
>>> java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj
>>>     >     >     >
>>>     >     >
>>>     >       
>>> >===================================================================
>>>     >     >     >     >---
>>>     >     >     >
>>>     >     >
>>>     >       
>>> java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj       
>>> (revision
>>>     >     >     >     178358)
>>>     >     >     >     >+++
>>>     >     >     >
>>>     >     >
>>>     >       
>>> java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj       
>>> (working
>>>     >     >
>>>     >     >     >     copy)
>>>     >     >     >     >@@ -2582,16 +2582,27 @@
>>>     >     >     >     >       QueryTreeNode retval;
>>>     >     >     >     >       Properties targetProperties = null;
>>>     >     >     >     >       Token      whereToken = null;
>>>     >     >     >     >+        String correlationName = null;
>>>     >     >     >     >+        Object []objArr = null;
>>>     >     >     >     > }
>>>     >     >     >     > {
>>>     >     >     >     >       LOOKAHEAD( {
>>> fromNewInvocationFollows() } )
>>>     >     >     >     >       <FROM> javaToSQLNode = newInvocation()
>>>     >     >     >     >+      /**
>>>     >     >     >     >+        * Get the correlation name if there
>>> is any
>>>     >     in the SQL
>>>     >     >     >     statement
>>>     >     >     >     >+        * Extract the correlation name and
>>> pass it
>>>     >     on to the
>>>     >     >     >     FromTable Node
>>>     >     >     >     >+        * for binding
>>>     >     >     >     >+        */
>>>     >     >     >     >+        {
>>>     >     >     >     >+           objArr = optionalTableClauses();
>>>     >     >     >     >+           correlationName =
>>>     >     >     >       
>>> (String)objArr[OPTIONAL_TABLE_CLAUSES_CORRELATION_NAME];
>>>     >     >     >     >+        }
>>>     >     >     >     >       [ whereToken = <WHERE> whereClause =
>>>     >     >     whereClause(whereToken) ]
>>>     >     >     >     >       {
>>>     >     >     >     >               fromTable =  (FromTable)
>>>     >     nodeFactory.getNode(
>>>     >     >     >     >
>>>     >     >     >     C_NodeTypes.FROM_VTI,
>>>     >     >     >     >
>>>     >     >     >     javaToSQLNode.getJavaValueNode(),
>>>     >     >     >
>>>     >     >
>>>     >       
>>> >-                                                                     
>>> (String)
>>>
>>>     >     >     >     null,
>>>     >     >     >
>>>     >     >
>>>     >       
>>> >+                                                                     
>>> correlationName,
>>>     >     >     >
>>>     >     >     >     >
>>>     >     >     >     null,
>>>     >     >     >     >
>>>     >     >     >     (Properties) null,
>>>     >     >     >     >
>>>     >     >     >     getContextManager());
>>>     >     >     >     >@@ -2600,6 +2611,15 @@
>>>     >     >     >     >       }
>>>     >     >     >     > |
>>>     >     >     >     >       <FROM> tableName =
>>>     >     >     qualifiedName(Limits.MAX_IDENTIFIER_LENGTH)
>>>     >     >     >     >+      /**
>>>     >     >     >     >+        * Get the correlation name if there
>>> is any
>>>     >     in the SQL
>>>     >     >     >     statement
>>>     >     >     >     >+        * Extract the correlation name and
>>>     pass it
>>>     >     on to the
>>>     >     >     >     FromTable Node
>>>     >     >     >     >+        * for binding
>>>     >     >     >     >+        */
>>>     >     >     >     >+        {
>>>     >     >     >     >+           objArr = optionalTableClauses();
>>>     >     >     >     >+           correlationName =
>>>     >     >     >       
>>> (String)objArr[OPTIONAL_TABLE_CLAUSES_CORRELATION_NAME];
>>>     >     >     >     >+        }
>>>     >     >     >     >           [targetProperties = propertyList() ]
>>>     >     >     >     >               [
>>>     >     >     >     >                       whereToken = <WHERE>
>>>     >     >     >     >@@ -2631,7 +2651,7 @@
>>>     >     >     >     >                       fromTable = (FromTable)
>>>     >     >     nodeFactory.getNode(
>>>     >     >     >     >
>>>     >     >     >     C_NodeTypes.FROM_BASE_TABLE,
>>>     >     >     >     >
>>>     >     >     >     tableName,
>>>     >     >     >
>>>     >     >
>>>     >       
>>> >-                                                                             
>>> null,
>>>     >
>>>     >     >     >
>>>     >     >
>>>     >       
>>> >+                                                                             
>>> correlationName,
>>>
>>>     >     >
>>>     >     >     >     >
>>>     >     >     >     ReuseFactory.getInteger(
>>>     >     >     >     >
>>>     >     >     >     FromBaseTable.DELETE),
>>>     >     >     >     >
>>>     >     >     >     null,
>>>     >     >     >     >Index:
>>>     >     >     >
>>>     >     >
>>>     >       
>>> java/testing/org/apache/derbyTesting/functionTests/tests/lang/corrDelete.sql
>>>
>>>     >
>>>     >     >
>>>     >     >     >
>>>     >     >
>>>     >       
>>> >===================================================================
>>>     >     >     >     >---
>>>     >     >     >
>>>     >     >
>>>     >       
>>> java/testing/org/apache/derbyTesting/functionTests/tests/lang/corrDelete.sql
>>>
>>>     >
>>>     >     >     >     (revision 0)
>>>     >     >     >     >+++
>>>     >     >     >
>>>     >     >
>>>     >       
>>> java/testing/org/apache/derbyTesting/functionTests/tests/lang/corrDelete.sql
>>>
>>>     >     >     >     (revision 0)
>>>     >     >     >     >@@ -0,0 +1,24 @@
>>>     >     >     >     >+-- This tests the delete functionality with
>>>     >     correlation name
>>>     >     >     >     >+
>>>     >     >     >     >+create table corrDelete(ival int, cval
>>>     varchar(10));
>>>     >     >     >     >+insert into corrDelete values(1,'test1');
>>>     >     >     >     >+insert into corrDelete values(2,'test2');
>>>     >     >     >     >+insert into corrDelete values(3,'test3');
>>>     >     >     >     >+insert into corrDelete values(4,'test4');
>>>     >     >     >     >+insert into corrDelete values(5,'test5');
>>>     >     >     >     >+insert into corrDelete values(6,'test6');
>>>     >     >     >     >+
>>>     >     >     >     >+select * from corrDelete;
>>>     >     >     >     >+
>>>     >     >     >     >+delete from corrDelete d where ival=3;
>>>     >     >     >     >+
>>>     >     >     >     >+select * from corrDelete;
>>>     >     >     >     >+
>>>     >     >     >     >+delete from corrDelete as d where d.ival=5;
>>>     >     >     >     >+
>>>     >     >     >     >+select * from corrDelete;
>>>     >     >     >     >+
>>>     >     >     >     >+delete from corrDelete d;
>>>     >     >     >     >+
>>>     >     >     >     >+select * from corrDelete;
>>>     >     >     >     >+
>>>     >     >     >     >Index:
>>>     >     >     >
>>>     >     >
>>>     >       
>>> java/testing/org/apache/derbyTesting/functionTests/tests/lang/refActions1.sql
>>>
>>>     >     >
>>>     >     >     >
>>>     >     >     >
>>>     >     >
>>>     >       
>>> >===================================================================
>>>     >     >     >     >---
>>>     >     >     >
>>>     >     >
>>>     >       
>>> java/testing/org/apache/derbyTesting/functionTests/tests/lang/refActions1.sql     
>>> (revision
>>>     >     >     >     178358)
>>>     >     >     >     >+++
>>>     >     >     >
>>>     >     >
>>>     >       
>>> java/testing/org/apache/derbyTesting/functionTests/tests/lang/refActions1.sql     
>>> (working
>>>     >     >     >     copy)
>>>     >     >     >     >@@ -719,6 +719,14 @@
>>>     >     >     >     > select * from db2test.emp13 order by dno,
>>>     name, mgrname;
>>>     >     >     >     > select * from db2test.emp14 order by dno,
>>>     name, mgrname;
>>>     >     >     >     > select * from db2test.emp15 order by dno,
>>>     name, mgrname;
>>>     >     >     >     >+delete from db2test.dept d where
>>>     >     >     >     >+  dno in (select dno from db2test.emp e where
>>>     >     >     >     >+ e.dno = d.dno and e.dno in (select dno from
>>>     >     db2test.emp2
>>>     >     >     e2 where
>>>     >     >     >     >+ e2.dno = e.dno and e2.dno in (select dno from
>>>     >     >     db2test.emp3 e3 where
>>>     >     >     >     >+ e3.dno = e2.dno and e3.dno in (select dno from
>>>     >     >     db2test.emp4 e4
>>>     >     >     >     where
>>>     >     >     >     >+ e4.dno = e3.dno and e4.dno in (select dno from
>>>     >     >     db2test.emp5 e5
>>>     >     >     >     where
>>>     >     >     >     >+ e5.dno = e4.dno and e5.dno in (select dno from
>>>     >     >     db2test.emp6 e6
>>>     >     >     >     where
>>>     >     >     >     >+ e6.dno = e5.dno and e6.dno in ('K55',
>>>     'K52')))))));
>>>     >     >     >     > -- "END OF TESTUNIT: 11";
>>>     >     >     >     >
>>>     >     >     >     >
>>>     >     >     >     >@@ -2306,14 +2314,6 @@
>>>     >     >     >     >  e5.dno = e4.dno and e5.dno in (select dno from
>>>     >     >     db2test.emp6 e6
>>>     >     >     >     where
>>>     >     >     >     >  e6.dno = e5.dno and e6.dno in ('K55',
>>>     'K52')))))))
>>>     >     >     >     >  order by 2, 3;
>>>     >     >     >     >-delete from db2test.dept d where
>>>     >     >     >     >-  dno in (select dno from db2test.emp e where
>>>     >     >     >     >- e.dno = d.dno and e.dno in (select dno from
>>>     >     db2test.emp2
>>>     >     >     e2 where
>>>     >     >     >     >- e2.dno = e.dno and e2.dno in (select dno from
>>>     >     >     db2test.emp3 e3 where
>>>     >     >     >     >- e3.dno = e2.dno and e3.dno in (select dno from
>>>     >     >     db2test.emp4 e4
>>>     >     >     >     where
>>>     >     >     >     >- e4.dno = e3.dno and e4.dno in (select dno from
>>>     >     >     db2test.emp5 e5
>>>     >     >     >     where
>>>     >     >     >     >- e5.dno = e4.dno and e5.dno in (select dno from
>>>     >     >     db2test.emp6 e6
>>>     >     >     >     where
>>>     >     >     >     >- e6.dno = e5.dno and e6.dno in ('K55',
>>>     'K52')))))));
>>>     >     >     >     > select * from db2test.dept order by dno, dname;
>>>     >     >     >     > select * from db2test.emp order by dno, name,
>>>     mgrname;
>>>     >     >     >     > select * from db2test.secondemp order by dno,
>>>     name,
>>>     >     mgrname;
>>>     >     >     >     >Index:
>>>     >     >     >
>>>     >     >
>>>     >       
>>> java/testing/org/apache/derbyTesting/functionTests/tests/lang/copyfiles.ant
>>>
>>>     >
>>>     >     >     >
>>>     >     >     >
>>>     >     >
>>>     >       
>>> >===================================================================
>>>     >     >     >     >---
>>>     >     >     >
>>>     >     >
>>>     >       
>>> java/testing/org/apache/derbyTesting/functionTests/tests/lang/copyfiles.ant       
>>> (revision
>>>     >
>>>     >     >
>>>     >     >     >     178358)
>>>     >     >     >     >+++
>>>     >     >     >
>>>     >     >
>>>     >       
>>> java/testing/org/apache/derbyTesting/functionTests/tests/lang/copyfiles.ant       
>>> (working
>>>     >     >     >     copy)
>>>     >     >     >     >@@ -209,3 +209,4 @@
>>>     >     >     >     > wisconsin_app.properties
>>>     >     >     >     > wisconsin_derby.properties
>>>     >     >     >     > wisconsin_sed.properties
>>>     >     >     >     >+corrDelete.sql
>>>     >     >     >     >Index:
>>>     >     >     >
>>>     >     >
>>>     >       
>>> java/testing/org/apache/derbyTesting/functionTests/master/corrDelete.out
>>>
>>>     >     >
>>>     >     >     >
>>>     >     >     >
>>>     >     >
>>>     >       
>>> >===================================================================
>>>     >     >     >     >---
>>>     >     >     >
>>>     >     >
>>>     >       
>>> java/testing/org/apache/derbyTesting/functionTests/master/corrDelete.out
>>>
>>>     >     >     >     (revision 0)
>>>     >     >     >     >+++
>>>     >     >     >
>>>     >     >
>>>     >       
>>> java/testing/org/apache/derbyTesting/functionTests/master/corrDelete.out
>>>
>>>     >
>>>     >     >     >     (revision 0)
>>>     >     >     >     >@@ -0,0 +1,49 @@
>>>     >     >     >     >+ij> -- This tests the delete functionality with
>>>     >     >     correlation name
>>>     >     >     >     >+create table corrDelete(ival int, cval
>>>     varchar(10));
>>>     >     >     >     >+0 rows inserted/updated/deleted
>>>     >     >     >     >+ij> insert into corrDelete values(1,'test1');
>>>     >     >     >     >+1 row inserted/updated/deleted
>>>     >     >     >     >+ij> insert into corrDelete values(2,'test2');
>>>     >     >     >     >+1 row inserted/updated/deleted
>>>     >     >     >     >+ij> insert into corrDelete values(3,'test3');
>>>     >     >     >     >+1 row inserted/updated/deleted
>>>     >     >     >     >+ij> insert into corrDelete values(4,'test4');
>>>     >     >     >     >+1 row inserted/updated/deleted
>>>     >     >     >     >+ij> insert into corrDelete values(5,'test5');
>>>     >     >     >     >+1 row inserted/updated/deleted
>>>     >     >     >     >+ij> insert into corrDelete values(6,'test6');
>>>     >     >     >     >+1 row inserted/updated/deleted
>>>     >     >     >     >+ij> select * from corrDelete;
>>>     >     >     >     >+IVAL       |CVAL
>>>     >     >     >     >+----------------------
>>>     >     >     >     >+1          |test1
>>>     >     >     >     >+2          |test2
>>>     >     >     >     >+3          |test3
>>>     >     >     >     >+4          |test4
>>>     >     >     >     >+5          |test5
>>>     >     >     >     >+6          |test6
>>>     >     >     >     >+ij> delete from corrDelete d where ival=3;
>>>     >     >     >     >+1 row inserted/updated/deleted
>>>     >     >     >     >+ij> select * from corrDelete;
>>>     >     >     >     >+IVAL       |CVAL
>>>     >     >     >     >+----------------------
>>>     >     >     >     >+1          |test1
>>>     >     >     >     >+2          |test2
>>>     >     >     >     >+4          |test4
>>>     >     >     >     >+5          |test5
>>>     >     >     >     >+6          |test6
>>>     >     >     >     >+ij> delete from corrDelete as d where d.ival=5;
>>>     >     >     >     >+1 row inserted/updated/deleted
>>>     >     >     >     >+ij> select * from corrDelete;
>>>     >     >     >     >+IVAL       |CVAL
>>>     >     >     >     >+----------------------
>>>     >     >     >     >+1          |test1
>>>     >     >     >     >+2          |test2
>>>     >     >     >     >+4          |test4
>>>     >     >     >     >+6          |test6
>>>     >     >     >     >+ij> delete from corrDelete d;
>>>     >     >     >     >+4 rows inserted/updated/deleted
>>>     >     >     >     >+ij> select * from corrDelete;
>>>     >     >     >     >+IVAL       |CVAL
>>>     >     >     >     >+----------------------
>>>     >     >     >     >+ij>
>>>     >     >     >     >Index:
>>>     >     >     >
>>>     >     >
>>>     >       
>>> java/testing/org/apache/derbyTesting/functionTests/master/refActions1.out
>>>
>>>     >
>>>     >     >     >
>>>     >     >     >
>>>     >     >
>>>     >       
>>> >===================================================================
>>>     >     >     >     >---
>>>     >     >     >
>>>     >     >
>>>     >       
>>> java/testing/org/apache/derbyTesting/functionTests/master/refActions1.out 
>>> (revision
>>>     >
>>>     >     >     >     178358)
>>>     >     >     >     >+++
>>>     >     >     >
>>>     >     >
>>>     >       
>>> java/testing/org/apache/derbyTesting/functionTests/master/refActions1.out 
>>> (working
>>>     >     >
>>>     >     >     >     copy)
>>>     >     >     >     >@@ -1733,6 +1733,15 @@
>>>     >     >     >     > 5          |JOE2      |ASHOK     |K51
>>>     >     >     >     > 2          |JOHN      |ASHOK     |K51
>>>     >     >     >     > 3          |ROBIN     |ASHOK     |K51
>>>     >     >     >     >+ij> delete from db2test.dept d where
>>>     >     >     >     >+  dno in (select dno from db2test.emp e where
>>>     >     >     >     >+ e.dno = d.dno and e.dno in (select dno from
>>>     >     db2test.emp2
>>>     >     >     e2 where
>>>     >     >     >     >+ e2.dno = e.dno and e2.dno in (select dno from
>>>     >     >     db2test.emp3 e3 where
>>>     >     >     >     >+ e3.dno = e2.dno and e3.dno in (select dno from
>>>     >     >     db2test.emp4 e4
>>>     >     >     >     where
>>>     >     >     >     >+ e4.dno = e3.dno and e4.dno in (select dno from
>>>     >     >     db2test.emp5 e5
>>>     >     >     >     where
>>>     >     >     >     >+ e5.dno = e4.dno and e5.dno in (select dno from
>>>     >     >     db2test.emp6 e6
>>>     >     >     >     where
>>>     >     >     >     >+ e6.dno = e5.dno and e6.dno in ('K55',
>>>     'K52')))))));
>>>     >     >     >     >+0 rows inserted/updated/deleted
>>>     >     >     >     > ij> -- "END OF TESTUNIT: 11";
>>>     >     >     >     > --
>>>     >     >     >
>>>     >     >
>>>     >       
>>> *************************************************************************
>>>
>>>     >     >     >     > -- TESTUNIT         : 12
>>>     >     >     >     >@@ -5998,15 +6007,6 @@
>>>     >     >     >     > --------------------------
>>>     >     >     >     > 2          |K52|OFC
>>>     >     >     >     > 1          |K55|DB
>>>     >     >     >     >-ij> delete from db2test.dept d where
>>>     >     >     >     >-  dno in (select dno from db2test.emp e where
>>>     >     >     >     >- e.dno = d.dno and e.dno in (select dno from
>>>     >     db2test.emp2
>>>     >     >     e2 where
>>>     >     >     >     >- e2.dno = e.dno and e2.dno in (select dno from
>>>     >     >     db2test.emp3 e3 where
>>>     >     >     >     >- e3.dno = e2.dno and e3.dno in (select dno from
>>>     >     >     db2test.emp4 e4
>>>     >     >     >     where
>>>     >     >     >     >- e4.dno = e3.dno and e4.dno in (select dno from
>>>     >     >     db2test.emp5 e5
>>>     >     >     >     where
>>>     >     >     >     >- e5.dno = e4.dno and e5.dno in (select dno from
>>>     >     >     db2test.emp6 e6
>>>     >     >     >     where
>>>     >     >     >     >- e6.dno = e5.dno and e6.dno in ('K55',
>>>     'K52')))))));
>>>     >     >     >     >-ERROR 42X01: Syntax error: Encountered "d" at
>>>     line 1,
>>>     >     >     column 26.
>>>     >     >     >     > ij> select * from db2test.dept order by dno,
>>>     dname;
>>>     >     >     >     > C0         |DNO|DNAME
>>>     >     >     >     > --------------------------
>>>     >     >     >     >@@ -7585,7 +7585,7 @@
>>>     >     >     >     >                   where e3.name
>>>     <http://e3.name> <http://e3.name>
>>>     >     < http://e3.name <http://e3.name>>
>>>     >     >     <http://e3.name> = e2.mgrname
>>>     >     >     >     group by dno having
>>>     >     >     >     >                   e2.dno in (select dno from
>>>     >     db2test.emp  e1
>>>     >     >     >     >                   where e1.name
>>>     <http://e1.name> < http://e1.name>
>>>     >     <http://e1.name>
>>>     >     >     <http://e1.name> = e.mgrname and
>>>     >     >     >     e1.mgrname = 'JOHN')))));
>>>     >     >     >     >-ERROR 42X01: Syntax error: Encountered "e" at
>>>     line 1,
>>>     >     >     column 25.
>>>     >     >     >     >+ERROR 42X04: Column 'E5.NAME <http://E5.NAME>
>>>     <http://E5.NAME>
>>>     >     <http://E5.NAME>
>>>     >     >     <http://E5.NAME>' is not in any
>>>     >     >     >     table in the FROM list or it appears within a
>>> join
>>>     >     specification
>>>     >     >     >     and is outside the scope of the join
>>>     specification or
>>>     >     it appears
>>>     >     >     >     in a HAVING clause and is not in the GROUP BY
>>>     >     list.  If this
>>>     >     >     is a
>>>     >     >     >     CREATE or ALTER TABLE statement then ' E5.NAME
>>>     <http://E5.NAME>
>>>     >     <http://E5.NAME>
>>>     >     >     < http://E5.NAME> <http://E5.NAME <http://E5.NAME>>'
>>>     >     >     >     is not a column in the target table.
>>>     >     >     >     > ij> select * from db2test.emp order by dno,
>>> name,
>>>     >     mgrname;
>>>     >     >     >     > C0         |NAME      |MGRNAME   |DNO
>>>     >     >     >     > --------------------------------------
>>>     >     >     >     >@@ -7753,7 +7753,7 @@
>>>     >     >     >     >                   where e.name <http://e.name>
>>>     <http://e.name> <
>>>     >     http://e.name>
>>>     >     >     <http://e.name> = e2.mgrname
>>>     >     >     >     group by dno having
>>>     >     >     >     >                   e2.dno in (select dno from
>>>     >     db2test.emp  e1
>>>     >     >     >     >                    where e.mgrname =
>>> 'JOHN')))));
>>>     >     >     >     >-ERROR 42X01: Syntax error: Encountered "e" at
>>>     line 1,
>>>     >     >     column 25.
>>>     >     >     >     >+ERROR 42X04: Column ' E.NAME <http://E.NAME>
>>>     <http://E.NAME>
>>>     >     <http://E.NAME>
>>>     >     >     < http://E.NAME>' is not in any table
>>>     >     >     >     in the FROM list or it appears within a join
>>>     >     specification
>>>     >     >     and is
>>>     >     >     >     outside the scope of the join specification or it
>>>     >     appears in a
>>>     >     >     >     HAVING clause and is not in the GROUP BY
>>> list.  If
>>>     >     this is a
>>>     >     >     >     CREATE or ALTER TABLE statement then ' E.NAME
>>>     <http://E.NAME>
>>>     >     <http://E.NAME>
>>>     >     >     <http://E.NAME> <http://E.NAME>' is
>>>     >     >     >     not a column in the target table.
>>>     >     >     >     > ij> select * from db2test.emp order by dno,
>>> name,
>>>     >     mgrname;
>>>     >     >     >     > C0         |NAME      |MGRNAME   |DNO
>>>     >     >     >     > --------------------------------------
>>>     >     >     >     >Index:
>>>     >     >     >
>>>     >     >
>>>     >       
>>> java/testing/org/apache/derbyTesting/functionTests/suites/derbylang.runall
>>>
>>>     >     >     >
>>>     >     >
>>>     >       
>>> >===================================================================
>>>     >     >     >     >---
>>>     >     >     >
>>>     >     >
>>>     >       
>>> java/testing/org/apache/derbyTesting/functionTests/suites/derbylang.runall
>>>
>>>     >     >     >     (revision 178358)
>>>     >     >     >     >+++
>>>     >     >     >
>>>     >     >
>>>     >       
>>> java/testing/org/apache/derbyTesting/functionTests/suites/derbylang.runall
>>>
>>>     >
>>>     >     >
>>>     >     >     >     (working copy)
>>>     >     >     >     >@@ -31,6 +31,7 @@
>>>     >     >     >     > lang/connect.sql
>>>     >     >     >     > lang/consistencyChecker.sql
>>>     >     >     >     > lang/constantExpression.sql
>>>     >     >     >     >+lang/corrDelete.sql
>>>     >     >     >     > lang/currentSchema.sql
>>>     >     >     >     > lang/currentof.java
>>>     >     >     >     > lang/cursor.java
>>>     >     >     >     >
>>>     >     >     >     >
>>>     >     >     >
>>>     >     >     >
>>>     >     >
>>>     >     >
>>>     >
>>>     >
>>>
>>>
>
>
>


Mime
View raw message