Issue Details (XML | Word | Printable)

Key: DERBY-3279
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Major Major
Assignee: A B
Reporter: Ajay Bhala
Votes: 0
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
Derby

Derby 10.3.X ignores ORDER BY DESC when target column has an index and is used in an OR clause or an IN list.

Created: 14/Dec/07 09:21 PM   Updated: 30/Jun/09 03:55 PM
Return to search
Component/s: SQL
Affects Version/s: 10.3.1.4, 10.3.2.1
Fix Version/s: 10.3.3.0, 10.4.1.3

Time Tracking:
Not Specified

File Attachments:
  Size
File Licensed for inclusion in ASF works cheese2.sql 2008-01-29 09:24 PM Ajay Bhala 2 kB
Text File Licensed for inclusion in ASF works d3279_10_3_merge.patch 2008-02-06 12:09 AM A B 44 kB
Text File Licensed for inclusion in ASF works d3279_ix2brnode_v1.patch 2008-01-30 09:38 PM A B 18 kB
Text File Licensed for inclusion in ASF works d3279_v1.patch 2008-01-23 10:05 PM A B 29 kB
HTML File Licensed for inclusion in ASF works releaseNote.html 2008-04-02 03:37 AM A B 7 kB
Environment: Rational Application Developer 7.0.0.2 (Eclipse 3.2.2), J2RE 1.5.0 IBM J9 2.3 Windows XP
Issue Links:
Reference
 

Urgency: Urgent
Bug behavior facts: Regression
Resolution Date: 07/Feb/08 07:03 PM


 Description  « Hide
Running the following produces the error seen in Derby 10.3.X but not in 10.2.X nor in 10.1.X.
Don't know if this related to DERBY-3231.

First query is incorrectly sorted whereas the second one is okay when there is an index on the table.
If the table is not indexed, the sort works correctly in DESC order.
------
create table CHEESE (
  CHEESE_CODE VARCHAR(5),
  CHEESE_NAME VARCHAR(20),
  CHEESE_COST DECIMAL(7,4)
);

create index cheese_index on CHEESE (CHEESE_CODE DESC, CHEESE_NAME DESC, CHEESE_COST DESC);

INSERT INTO CHEESE (
  CHEESE_CODE,
  CHEESE_NAME,
  CHEESE_COST)
VALUES ('00000', 'GOUDA', 001.1234),
       ('00000', 'EDAM', 002.1111),
       ('54321', 'EDAM', 008.5646),
       ('12345', 'GORGONZOLA', 888.2309),
       ('AAAAA', 'EDAM', 999.8888),
       ('54321', 'MUENSTER', 077.9545);

SELECT * FROM CHEESE
WHERE (CHEESE_CODE='00000' OR CHEESE_CODE='54321') AND CHEESE_NAME='EDAM'
ORDER BY CHEESE_CODE DESC, CHEESE_NAME DESC, CHEESE_COST DESC;

SELECT * FROM CHEESE
WHERE (CHEESE_CODE='AAAAA' OR CHEESE_CODE='54321') AND CHEESE_NAME='EDAM'
ORDER BY CHEESE_CODE DESC, CHEESE_NAME DESC, CHEESE_COST DESC;

 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
No work has yet been logged on this issue.