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

A B commented on DERBY-2986:
----------------------------

Thank you for running the regression tests, James.  Since everything ran 
cleanly I committed the patch to trunk with svn # 566217:

  URL: http://svn.apache.org/viewvc?view=rev&rev=566217

The merge command for porting back to 10.3 executed cleanly:

  svn merge -r 566216:566217 
https://svn.apache.org/repos/asf/db/derby/code/trunk

so it should hopefully be straightforward enough.  If no problems show up in 
the nightlies from the commit to trunk, and if 10.3 tests run cleanly with the 
changes, then I'll commit there, as well.

Note that I didn't include any new tests with my changes as the regression is 
performance only (query plan and results stay the same), and thus I don't think 
there's a good way to test for it.  (A variation of 60 seconds is probably not 
going to be noticed in the scope of the full regression suites).  If anyone 
disagrees with this I can add the repro shown above to 
lang/CaseExpressionTest.java with a follow-on commit.

> Query involving CASE statement significantly slower in 10.3.1.4 than in 
> 10.2.2.0
> --------------------------------------------------------------------------------
>
>                 Key: DERBY-2986
>                 URL: https://issues.apache.org/jira/browse/DERBY-2986
>             Project: Derby
>          Issue Type: Bug
>          Components: Performance
>    Affects Versions: 10.3.1.4
>         Environment: Windows XP
>            Reporter: James F. Adams
>         Attachments: d2986_notTested_v1.patch
>
>
> A select of a CASE statement that performed acceptably in 10.2.2.0 is very 
> slow in 10.3.1.4 the first time it is executed.
> The following example ij script:
> ELAPSEDTIME ON;
> CREATE table test1(id integer);
> CREATE table test2(id varchar(10));
> SELECT CASE  WHEN t.id = 1 THEN 'a'
>              WHEN t.id = 2 THEN 'b'
>              WHEN t.id = 3 THEN 'c'
>              WHEN t.id = 4 THEN 'd'
>              WHEN t.id = 5 THEN 'e'
>              WHEN t.id = 6 THEN 'f'
>              WHEN t.id = 7 THEN 'g'
>              WHEN t.id = 8 THEN 'h'
>              WHEN t.id = 11 THEN 'i'
>              WHEN t.id = 12 THEN 'j' 
>              WHEN t.id = 15 THEN 'k'
>              WHEN t.id = 16 THEN 'l'
>              WHEN t.id = 23 THEN 'm' 
>              WHEN t.id = 24 THEN 'n'
>              WHEN t.id = 27 THEN 'o'
>              WHEN t.id = 31 THEN 'p'
>              WHEN t.id = 41 THEN 'q'
>              WHEN t.id = 42 THEN 'r'
>              WHEN t.id = 50 THEN 's'
>              ELSE (SELECT t2.id
>                      FROM test2 t2
>                   )
>        END
> FROM test1 t;
> When run on 10.2.2.0 the select results in ELAPSED TIME = 187 milliseconds.
> When run on 10.3.1.4 the select results in ELAPSED TIME = 62281 milliseconds.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to