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* <[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>> 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* <[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
> <mailto: [EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>>> 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* < [EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
> <mailto:[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>>
> > <mailto: [EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
> <mailto:[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>>>> 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* <
[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
> <mailto:[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>>
> > <mailto:[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
> <mailto:[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>>>
> > > <mailto: [EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
> <mailto:[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>>
> > <mailto: [EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
> <mailto:[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>>>>> 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
> > > >
> > > >
> > >
> > >
> >
> >
>
>