[ http://issues.apache.org/jira/browse/DERBY-1315?page=all ]
Rajesh Kartha updated DERBY-1315:
---------------------------------
Attachment: 1315-comparison.html
largeCodeGen.java
I ran the largeCodeGen test as a stand alone application in Embedded mode
against:
10.0.2.2.349072
10.1.2.4.384995
10.1.3.2.424154
10.2.0.5 alpha.424456
While 10.2 now works in more number of complex cases (Logical operators with
800 parameters, IN clause with 98000 parameters) in comparision to 10.0 and
10.1, there has been a regression.
- The scenario with SELECT with 800 and 900 unions used to PASS in 10.0 and
10.1 now FAILs in 10.2
- The scenario with SELECT with 10000 unions used to fail after compilation
in 10.0 and 10.1.2. But with 10.1.3 and 10.2
the statement fails during compile with OutOfMemory error.
In addition, under default settings, I noticed that in Derby 10.0, 10.1 if the
exception (SQLSTATE= XBCM1, SQL Exception: Java linkage error thrown during
load of generated class ) occurs during execution of the generated class, the
generated file is left behind on the file system.
For example:
-rwxrwxrwa 1 Administrators None 172052 Aug 8 10:53
ace5214067x010cxeeebx20c8x00001f6fcec04.class
-rwxrwxrwa 1 Administrators None 5082617 Aug 8 10:53
ace5214067x010cxeeebx20c8x00001f6fcec05.class
Whereas with 10.2, no files are left behind, which I think should be the right
behaviour.
Attaching the html file of my findings and the largeCodeGen.java
> largeCodeGen fails with embedded and framework DerbyNetClient
> -------------------------------------------------------------
>
> Key: DERBY-1315
> URL: http://issues.apache.org/jira/browse/DERBY-1315
> Project: Derby
> Issue Type: Bug
> Components: Test
> Affects Versions: 10.2.0.0
> Environment: Linux - Suse 2.6.5-7.252
> Reporter: Ramandeep Kaur
> Priority: Minor
> Attachments: 1315-comparison.html, largeCodeGen.java,
> largeCodeGen.out, largeCodeGen.sql, largeCodeGen.tmp, largeCodeGen.tmpmstr
>
>
> The test case lang/largeCodeGen.java was run as is without giving any
> -Djvmflags="-mx512M -ms512M" and gave the following error:
> *** Start: largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29
> 08:30:04 ***
> 27a28
> > JVMST109: Insufficient space in Javaheap to satisfy allocation request
> Test Failed.
> *** End: largeCodeGen jdk1.4.2 largeDataTests:largeDataTests 2006-04-29
> 08:32:01 ***
>
> Then the test case lang/largeCodeGen.java was run with -Djvmflags="-mx512M
> -ms512M", and it gave the following error:
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters.
> 22a19
> > FAILED QUERY: IN clause with 97000 parameters.
> Test Failed.
> Then I modified test case lang/largeCodeGen.java to set
> PRINT_FAILURE_EXCEPTION to true and ran the test again. This time I got the
> following error and stack trace:
> MasterFileName = master/largeCodeGen.out
> 15a16,18
> > java.sql.SQLException: Statement too complex. Try rewriting the query to
> > remove
> complexity. Eliminating many duplicate expressions or breaking up the query
> and
> storing interim results in a temporary table can often help resolve this error
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded: method:e1
> code_leng
> th (65577 > 65535) in generated class
> org.apache.derby.exe.ac46a08075x010bx203ax
> d010x000050a9065e9.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex.
> > Try
> rewriting the query to remove complexity. Eliminating many duplicate
> expression
> s or breaking up the query and storing interim results in a temporary table
> can
> often help resolve this error. SQLSTATE: XBCM4: Java class file format
> limit(s)
> exceeded: method:e1 code_length (65577 > 65535) in generated class
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e9 .
> > ... 4 more
> 19 del
> < PASS: IN clause with 97000 parameters
> 20 del
> < PASS: PREPARE: IN clause with 98000 parameters
> 21 del
> < PASS: IN clause with 98000 parameters
> 22 del
> < FAILED QUERY: IN clause with 99000 parameters.
> 22a22,29
> > FAILED QUERY: IN clause with 97000 parameters.
> > java.sql.SQLException: The parameter position '31,465' is out of range.
> > The
> number of parameters for this prepared statement is '31,464'.
> > at
> > org.apache.derby.client.am.PreparedStatement.setInt(PreparedStatement
> .java(Compiled Code))
> > Caused by: org.apache.derby.client.am.SqlException: The parameter position
> > '31
> ,465' is out of range. The number of parameters for this prepared statement
> is
> '31,464'.
> > at
> > org.apache.derby.client.am.PreparedStatement.checkForValidParameterIn
> dex(PreparedStatement.java(Compiled Code))
> > at
> > org.apache.derby.client.am.PreparedStatement.checkSetterPreconditions
> (PreparedStatement.java(Inlined Compiled Code))
> > at
> > org.apache.derby.client.am.PreparedStatement.setIntX(PreparedStatemen
> t.java(Inlined Compiled Code))
> > ... 5 more
> 27a35,37
> > java.sql.SQLException : Statement too complex. Try rewriting the query to
> > remove
> complexity. Eliminating many duplicate expressions or breaking up the query
> and
> storing interim results in a temporary table can often help resolve this
> error
> . SQLSTATE: XBCM4: Java class file format limit(s) exceeded:
> method:fillResultSe
> t code_length (69127 > 65535) in generated class
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11.
> > Caused by: org.apache.derby.client.am.SqlException: Statement too complex.
> > Try
> rewriting the query to remove complexity. Eliminating many duplicate
> expression
> s or breaking up the query and storing interim results in a temporary table
> can
> often help resolve this error. SQLSTATE: XBCM4: Java class file format
> limit(s)
> exceeded: method:fillResultSet code_length (69127 > 65535) in generated class
> org.apache.derby.exe.ac46a08075x010bx203axd010x000050a9065e11 .
> > ... 3 more
> 28 add
> > java.sql.SQLException: Java exception: ': java.lang.OutOfMemoryError'.
> > Caused by: org.apache.derby.client.am.SqlException: Java exception: ':
> java.lang.OutOfMemoryError '.
> > ... 3 more
> Test Failed.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira