Michael J. Carey created ASTERIXDB-2601:
-------------------------------------------

             Summary: Misleading/perplexing aggregate-related error message
                 Key: ASTERIXDB-2601
                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-2601
             Project: Apache AsterixDB
          Issue Type: Bug
          Components: *DB - AsterixDB, SQL - Translator SQL++
    Affects Versions: 0.9.4.1
            Reporter: Michael J. Carey
            Assignee: Dmitry Lychagin
             Fix For: 0.9.5


The following illegal aggregate query has a confusing error message that leaves 
the user having no idea what's wrong:

SELECT a.handle, SUM(a.result)
FROM [ \{"handle": "one", "result": 23},
 \{"handle": "two", "result": 64},
 \{"handle": "two", "result": 6},
 \{"handle": "four", "result": 34},
 \{"handle": "two", "result": 3} ] AS a;

The error message is:

ASX1073: Cannot resolve alias reference for undefined identifier a (in line 1, 
at column 8)

Note that the following query works fine, which leads to serious 
head-scratching by the user:

SELECT a.handle, to_string(a.result)
FROM [ \{"handle": "one", "result": 23},
 \{"handle": "two", "result": 64},
 \{"handle": "two", "result": 6},
 \{"handle": "four", "result": 34},
 \{"handle": "two", "result": 3} ] AS a;

The real problem is the inappropriate use of an aggregate function (SUM) - but 
the alias error gives no clue!  Here is how MySQL complains about this:

Error Code: 1140. In aggregated query without GROUP BY, expression #1 of SELECT 
list contains nonaggregated column 'a.handle';

Can we do something similar?  I think the problem is that we rewrite the query 
internally and then something about the rewritten internal query leads to the 
error we currently produce.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to