[
https://issues.apache.org/jira/browse/DERBY-3279?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12561935#action_12561935
]
Bryan Pendleton commented on DERBY-3279:
----------------------------------------
Hopefully this isn't possible, but I thought I'd ask:
What if there was a multi-column index, for example,
CREATE INDEX NAME_IDX ON EMPLOYEE(LAST_NAME,FIRST_NAME),
and I had a query that was something like:
SELECT LAST_NAME,FIRST_NAME FROM EMPLOYEE
WHERE LAST_NAME IN ('REAGAN', 'CLINTON', 'BUSH')
AND FIRST_NAME IN ('RONALD', 'WILLIAM', 'GEORGE')
ORDER BY LAST_NAME ASC, FIRST_NAME DESC
In such a case, if we decided to do in-list multi-probing
against the NAME_IDX, would we have an ambiguity about
whether we wanted to sort the (LAST_NAME,FIRST_NAME)
values in ASC or DESC order?
> 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.
> -------------------------------------------------------------------------------------------------------------
>
> Key: DERBY-3279
> URL: https://issues.apache.org/jira/browse/DERBY-3279
> Project: Derby
> Issue Type: Bug
> Components: SQL
> Affects Versions: 10.3.1.4, 10.3.2.1
> Environment: Rational Application Developer 7.0.0.2 (Eclipse 3.2.2),
> J2RE 1.5.0 IBM J9 2.3 Windows XP
> Reporter: Ajay Bhala
> Assignee: A B
> Attachments: d3279_v1.patch
>
>
> 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;
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.