[
https://issues.apache.org/jira/browse/ASTERIXDB-2446?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16612506#comment-16612506
]
ASF subversion and git services commented on ASTERIXDB-2446:
------------------------------------------------------------
Commit 3a6846942cde2f6e97ab53e01e14a7025ca04814 in asterixdb's branch
refs/heads/master from [~dlychagin-cb]
[ https://git-wip-us.apache.org/repos/asf?p=asterixdb.git;h=3a68469 ]
[ASTERIXDB-2446][COMP] Detect duplicate field names in select clause
- user model changes: no
- storage format changes: no
- interface changes: no
Details:
- Throw compile-time error if select clause has duplicate projection names
Change-Id: Idd97c2edd6b4a627ad1a0225d95c26915d4ad5f7
Reviewed-on: https://asterix-gerrit.ics.uci.edu/2951
Sonar-Qube: Jenkins <[email protected]>
Tested-by: Jenkins <[email protected]>
Integration-Tests: Jenkins <[email protected]>
Reviewed-by: Till Westmann <[email protected]>
Contrib: Till Westmann <[email protected]>
> Improve exception thrown for duplicate column names in SELECT clause
> --------------------------------------------------------------------
>
> Key: ASTERIXDB-2446
> URL: https://issues.apache.org/jira/browse/ASTERIXDB-2446
> Project: Apache AsterixDB
> Issue Type: Improvement
> Components: COMP - Compiler
> Reporter: Dmitry Lychagin
> Assignee: Dmitry Lychagin
> Priority: Minor
>
> The error message thrown when there're duplicate column names in the select
> clause is confusing. It's IllegalStateException inside HyracksDataException
> Query: select t as a, 2 as a from range(1,10) t
> Exception:
> org.apache.hyracks.api.exceptions.HyracksDataException:
> java.lang.IllegalStateException: ASX0013: Duplicate field name "a"
> at
> org.apache.hyracks.api.exceptions.HyracksDataException.create(HyracksDataException.java:51)
> ~[classes/:?]
> at
> org.apache.hyracks.algebricks.runtime.operators.base.AbstractOneInputOneOutputOneFramePushRuntime.close(AbstractOneInputOneOutputOneFramePushRuntime.java:68)
> ~[classes/:?]
> at
> org.apache.hyracks.api.dataflow.EnforceFrameWriter.close(EnforceFrameWriter.java:113)
> ~[classes/:?]
> at org.apache.hyracks.api.util.CleanupUtils.close(CleanupUtils.java:66)
> ~[classes/:?]
> at
> org.apache.hyracks.algebricks.runtime.operators.base.AbstractOneInputOneOutputOneFramePushRuntime.close(AbstractOneInputOneOutputOneFramePushRuntime.java:65)
> ~[classes/:?]
> at
> org.apache.hyracks.algebricks.runtime.operators.std.StreamLimitRuntimeFactory$1.close(StreamLimitRuntimeFactory.java:131)
> ~[classes/:?]
> at
> org.apache.hyracks.api.dataflow.EnforceFrameWriter.close(EnforceFrameWriter.java:113)
> ~[classes/:?]
> at
> org.apache.hyracks.algebricks.runtime.operators.std.EmptyTupleSourceRuntimeFactory$1.close(EmptyTupleSourceRuntimeFactory.java:61)
> ~[classes/:?]
> at
> org.apache.hyracks.api.dataflow.EnforceFrameWriter.close(EnforceFrameWriter.java:113)
> ~[classes/:?]
> at
> org.apache.hyracks.algebricks.runtime.operators.meta.AlgebricksMetaOperatorDescriptor$SourcePushRuntime.initialize(AlgebricksMetaOperatorDescriptor.java:111)
> ~[classes/:?]
> at
> org.apache.hyracks.api.rewriter.runtime.SuperActivityOperatorNodePushable.lambda$runInParallel$0(SuperActivityOperatorNodePushable.java:212)
> ~[classes/:?]
> at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_161]
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> [?:1.8.0_161]
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> [?:1.8.0_161]
> at java.lang.Thread.run(Thread.java:748) [?:1.8.0_161]
> Caused by: java.lang.IllegalStateException: ASX0013: Duplicate field name "a"
> at
> org.apache.asterix.om.types.runtime.RuntimeRecordTypeInfo.reset(RuntimeRecordTypeInfo.java:108)
> ~[classes/:?]
> at org.apache.asterix.builders.RecordBuilder.reset(RecordBuilder.java:113)
> ~[classes/:?]
> at
> org.apache.asterix.runtime.evaluators.common.ClosedRecordConstructorEvalFactory$ClosedRecordConstructorEval.evaluate(ClosedRecordConstructorEvalFactory.java:77)
> ~[classes/:?]
> at
> org.apache.hyracks.algebricks.runtime.operators.std.AssignRuntimeFactory$1.produceTuple(AssignRuntimeFactory.java:159)
> ~[classes/:?]
> at
> org.apache.hyracks.algebricks.runtime.operators.std.AssignRuntimeFactory$1.nextFrame(AssignRuntimeFactory.java:128)
> ~[classes/:?]
> at
> org.apache.hyracks.api.dataflow.EnforceFrameWriter.nextFrame(EnforceFrameWriter.java:76)
> ~[classes/:?]
> at
> org.apache.hyracks.dataflow.common.comm.io.AbstractFrameAppender.write(AbstractFrameAppender.java:93)
> ~[classes/:?]
> at
> org.apache.hyracks.algebricks.runtime.operators.base.AbstractOneInputOneOutputOneFramePushRuntime.flushAndReset(AbstractOneInputOneOutputOneFramePushRuntime.java:74)
> ~[classes/:?]
> at
> org.apache.hyracks.algebricks.runtime.operators.base.AbstractOneInputOneOutputOneFramePushRuntime.flushIfNotFailed(AbstractOneInputOneOutputOneFramePushRuntime.java:80)
> ~[classes/:?]
> at
> org.apache.hyracks.algebricks.runtime.operators.base.AbstractOneInputOneOutputOneFramePushRuntime.close(AbstractOneInputOneOutputOneFramePushRuntime.java:60)
> ~[classes/:?]
> ... 13 more
> Caused by: org.apache.asterix.common.exceptions.RuntimeDataException:
> ASX0013: Duplicate field name "a"
> at
> org.apache.asterix.om.types.runtime.RuntimeRecordTypeInfo.reset(RuntimeRecordTypeInfo.java:104)
> ~[classes/:?]
> at org.apache.asterix.builders.RecordBuilder.reset(RecordBuilder.java:113)
> ~[classes/:?]
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)