[
https://issues.apache.org/jira/browse/DERBY-4406?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12764722#action_12764722
]
Knut Anders Hatlen commented on DERBY-4406:
-------------------------------------------
See SQL:2003, part 2, section 14.1 <declare cursor>. Under syntax rules:
18) If an <order by clause> is specified, then:
(...)
d) Case:
i) If <sort specification list> contains any <sort key> Ki that contains a
column reference to a column that is not a column of T, then:
(...)
6) For each i between 1 (one) and NSK, if KTi has the same left normal
form derivation as the <value expression> immediately contained in
some <derived column> DC of SLT, then:
(...)
A) Case:
I) If DC simply contains an <as clause>, then let CN be the
<column name> contained in the <as clause>.
II) Otherwise, let CN be an implementation-dependent <column name>
that is not equivalent to the explicit or implicit <column
name> of any other <derived column> contained in SLT. Let VE
be the <value expression> simply contained in DC. DC is
replaced in SLT by VE AS CN
B) KTi is replaced in OBCT by CN
> Wrong order when using ORDER BY on non-deterministic function
> -------------------------------------------------------------
>
> Key: DERBY-4406
> URL: https://issues.apache.org/jira/browse/DERBY-4406
> Project: Derby
> Issue Type: Bug
> Components: SQL
> Affects Versions: 10.5.3.0, 10.6.0.0
> Reporter: Knut Anders Hatlen
>
> If I read the SQL standard correctly, a statement such as "select random() as
> r from t order by random()" should be treated as "select random() as r from t
> order by r". Derby does however generate a second, hidden random() column by
> which the rows are ordered.
> ij> create table t(x int);
> 0 rows inserted/updated/deleted
> ij> insert into t values 1,2,3,4,5;
> 5 rows inserted/updated/deleted
> ij> -- wrong result, not ordered by r
> ij> select random() as r from t order by random();
> R
> ----------------------
> 0.1285512465366495
> 0.5116860880915798
> 0.21060042130229073
> 0.2506706923680875
> 0.6378857329935494
> 5 rows selected
> ij> -- correct result, ordered by r
> ij> select random() as r from t order by r;
> R
> ----------------------
> 0.0749025910679918
> 0.07694931688380491
> 0.1724114605785414
> 0.2268758969382877
> 0.31900450349277965
> 5 rows selected
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.