You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Chun Chang (JIRA)" <ji...@apache.org> on 2015/04/02 19:40:53 UTC

[jira] [Commented] (DRILL-2163) Projecting nested types past join returns invalid result

    [ https://issues.apache.org/jira/browse/DRILL-2163?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14393018#comment-14393018 ] 

Chun Chang commented on DRILL-2163:
-----------------------------------

The original issue is fixed. However, I encounter the following error which I already filed a separate bug DRILL-2598. Close this one.

{code}
0: jdbc:drill:schema=dfs.drillTestDirComplexJ> select a.id, a.soa, b.sfa[0], b.soa[1] from `complex.json` a inner join `complex.json` b on a.sia[0]=b.sia[0] order by a.id limit 20;
+------------+------------+------------+------------+
|     id     |    soa     |   EXPR$2   |   EXPR$3   |
+------------+------------+------------+------------+
Query failed: RemoteRpcException: Failure while running fragment., Attempted to close accountor with 25 buffer(s) still allocatedfor QueryId: 2ae282e6-a838-99a7-ba75-f5aa18902922, MajorFragmentId: 0, MinorFragmentId: 0.


	Total 25 allocation(s) of byte size(s): 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, at stack location:
		org.apache.drill.exec.memory.TopLevelAllocator$ChildAllocator.buffer(TopLevelAllocator.java:234)
		org.apache.drill.exec.vector.BitVector.allocateNewSafe(BitVector.java:101)
		org.apache.drill.exec.vector.BitVector.allocateNew(BitVector.java:84)
		org.apache.drill.exec.vector.NullableBitVector.allocateNew(NullableBitVector.java:172)
		org.apache.drill.exec.vector.complex.RepeatedMapVector$RepeatedMapTransferPair.<init>(RepeatedMapVector.java:308)
		org.apache.drill.exec.vector.complex.RepeatedMapVector$RepeatedMapTransferPair.<init>(RepeatedMapVector.java:286)
		org.apache.drill.exec.vector.complex.RepeatedMapVector.getTransferPair(RepeatedMapVector.java:132)
		org.apache.drill.exec.physical.impl.sort.RecordBatchData.<init>(RecordBatchData.java:57)
		org.apache.drill.exec.physical.impl.TopN.TopNBatch.innerNext(TopNBatch.java:222)
		org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:142)
		org.apache.drill.exec.physical.impl.validate.IteratorValidatorBatchIterator.next(IteratorValidatorBatchIterator.java:118)
		org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:99)
		org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:89)
		org.apache.drill.exec.record.AbstractSingleRecordBatch.innerNext(AbstractSingleRecordBatch.java:51)
		org.apache.drill.exec.physical.impl.svremover.RemovingRecordBatch.innerNext(RemovingRecordBatch.java:96)
		org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:142)
		org.apache.drill.exec.physical.impl.validate.IteratorValidatorBatchIterator.next(IteratorValidatorBatchIterator.java:118)
		org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:99)
		org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:89)
		org.apache.drill.exec.record.AbstractSingleRecordBatch.innerNext(AbstractSingleRecordBatch.java:51)
		org.apache.drill.exec.physical.impl.limit.LimitRecordBatch.innerNext(LimitRecordBatch.java:113)
		org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:142)
		org.apache.drill.exec.physical.impl.validate.IteratorValidatorBatchIterator.next(IteratorValidatorBatchIterator.java:118)
		org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:99)
		org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:89)
		org.apache.drill.exec.record.AbstractSingleRecordBatch.innerNext(AbstractSingleRecordBatch.java:51)
		org.apache.drill.exec.physical.impl.svremover.RemovingRecordBatch.innerNext(RemovingRecordBatch.java:96)
		org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:142)
		org.apache.drill.exec.physical.impl.validate.IteratorValidatorBatchIterator.next(IteratorValidatorBatchIterator.java:118)
		org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:99)
		org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:89)
		org.apache.drill.exec.record.AbstractSingleRecordBatch.innerNext(AbstractSingleRecordBatch.java:51)
		org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.innerNext(ProjectRecordBatch.java:134)
		org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:142)
		org.apache.drill.exec.physical.impl.validate.IteratorValidatorBatchIterator.next(IteratorValidatorBatchIterator.java:118)
		org.apache.drill.exec.physical.impl.BaseRootExec.next(BaseRootExec.java:68)
		org.apache.drill.exec.physical.impl.ScreenCreator$ScreenRoot.innerNext(ScreenCreator.java:96)
		org.apache.drill.exec.physical.impl.BaseRootExec.next(BaseRootExec.java:58)
		org.apache.drill.exec.work.fragment.FragmentExecutor.run(FragmentExecutor.java:163)
		org.apache.drill.common.SelfCleaningRunnable.run(SelfCleaningRunnable.java:38)
		java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
		java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
		java.lang.Thread.run(Thread.java:744)
 [ c627a645-a1a0-4173-bf04-b412190f0376 on qa-node120.qa.lab:31010 ]
[ c627a645-a1a0-4173-bf04-b412190f0376 on qa-node120.qa.lab:31010 ]


| 1          | [{"in":1},{"in":1,"fl":1.12345},{"in":1,"fl":10.12345},{"in":1,"fl":10.6789,"bool":true,"str":"here is a string at row 1"}] | 0.0        | {"in":1,"fl":1.12345} |
| 2          | [{"in":2},{"in":2,"fl":2.12345},{"in":2,"fl":20.12345},{"in":2,"fl":20.6789,"bool":true,"str":"here is a string at row 2","nul":"not null"}] | 0.0        | {"in":2,"fl":2.12345} |
| 3          | [{"in":3},{"in":3,"fl":3.12345},{"in":3,"fl":30.12345,"nul":"not null"},{"in":3,"fl":30.6789,"bool":true,"str":"here is a string at row 3"}] | 0.0        | {"in":3,"fl":3.12345} |
| 4          | [{"in":4},{"in":4,"fl":4.12345},{"in":4,"fl":40.12345,"nul":"not null"},{"in":4,"fl":40.6789,"bool":false,"str":"here is a string at row 4","nul":"not null"}] | 0.0        | {"in":4,"fl":4.12345} |
| 5          | [{"in":5},{"in":5,"fl":5.12345},{"in":5,"fl":50.12345,"nul":"not null"},{"in":5,"fl":50.6789,"bool":false,"str":"here is a string at row 5"}] | 0.0        | {"in":5,"fl":5.12345} |
| 6          | [{"in":6},{"in":6,"fl":6.12345},{"in":6,"fl":60.12345,"nul":"not null"},{"in":6,"fl":60.6789,"bool":false,"str":"here is a string at row 6"}] | 0.0        | {"in":6,"fl":6.12345} |
| 7          | [{"in":7},{"in":7,"fl":7.12345},{"in":7,"fl":70.12345,"nul":"not null"},{"in":7,"fl":70.6789,"bool":false,"str":"here is a string at row 7","nul":"not null"}] | 0.0        | {"in":7,"fl":7.12345} |
| 8          | [{"in":8},{"in":8,"fl":8.12345},{"in":8,"fl":80.12345,"nul":"not null"},{"in":8,"fl":80.6789,"bool":true,"str":"here is a string at row 8","nul":"not null"}] | 0.0        | {"in":8,"fl":8.12345} |
| 9          | [{"in":9},{"in":9,"fl":9.12345},{"in":9,"fl":90.12345,"nul":"not null"},{"in":9,"fl":90.6789,"bool":true,"str":"here is a string at row 9"}] | 0.0        | {"in":9,"fl":9.12345} |
| 10         | [{"in":10},{"in":10,"fl":10.12345},{"in":10,"fl":100.12345,"nul":"not null"},{"in":10,"fl":100.6789,"bool":false,"str":"here is a string at row 10","nul":"not null"}] | 0.0        | {"in":10,"fl":10.12345} |
| 11         | [{"in":11},{"in":11,"fl":11.12345},{"in":11,"fl":110.12345,"nul":"not null"},{"in":11,"fl":110.6789,"bool":true,"str":"here is a string at row 11","nul":"not null"}] | 0.0        | {"in":11,"fl":11.12345} |
| 12         | [{"in":12},{"in":12,"fl":12.12345},{"in":12,"fl":120.12345},{"in":12,"fl":120.6789,"bool":false,"str":"here is a string at row 12","nul":"not null"}] | 0.0        | {"in":12,"fl":12.12345} |
| 13         | [{"in":13},{"in":13,"fl":13.12345},{"in":13,"fl":130.12345},{"in":13,"fl":130.6789,"bool":true,"str":"here is a string at row 13"}] | 0.0        | {"in":13,"fl":13.12345} |
| 14         | [{"in":14},{"in":14,"fl":14.12345},{"in":14,"fl":140.12345},{"in":14,"fl":140.6789,"bool":false,"str":"here is a string at row 14","nul":"not null"}] | 0.0        | {"in":14,"fl":14.12345} |
| 15         | [{"in":15},{"in":15,"fl":15.12345},{"in":15,"fl":150.12345,"nul":"not null"},{"in":15,"fl":150.6789,"bool":true,"str":"here is a string at row 15","nul":"not null"}] | 0.0        | {"in":15,"fl":15.12345} |
| 16         | [{"in":16},{"in":16,"fl":16.12345},{"in":16,"fl":160.12345},{"in":16,"fl":160.6789,"bool":false,"str":"here is a string at row 16","nul":"not null"}] | 0.0        | {"in":16,"fl":16.12345} |
| 17         | [{"in":17},{"in":17,"fl":17.12345},{"in":17,"fl":170.12345,"nul":"not null"},{"in":17,"fl":170.6789,"bool":true,"str":"here is a string at row 17"}] | 0.0        | {"in":17,"fl":17.12345} |
| 18         | [{"in":18},{"in":18,"fl":18.12345},{"in":18,"fl":180.12345},{"in":18,"fl":180.6789,"bool":false,"str":"here is a string at row 18"}] | 0.0        | {"in":18,"fl":18.12345} |
| 19         | [{"in":19},{"in":19,"fl":19.12345},{"in":19,"fl":190.12345},{"in":19,"fl":190.6789,"bool":false,"str":"here is a string at row 19"}] | 0.0        | {"in":19,"fl":19.12345} |
| 20         | [{"in":20},{"in":20,"fl":20.12345},{"in":20,"fl":200.12345,"nul":"not null"},{"in":20,"fl":200.6789,"bool":false,"str":"here is a string at row 20"}] | 0.0        | {"in":20,"fl":20.12345} |
java.lang.RuntimeException: java.sql.SQLException: Failure while executing query.
	at sqlline.SqlLine$IncrementalRows.hasNext(SqlLine.java:2514)
	at sqlline.SqlLine$TableOutputFormat.print(SqlLine.java:2148)
	at sqlline.SqlLine.print(SqlLine.java:1809)
	at sqlline.SqlLine$Commands.execute(SqlLine.java:3766)
	at sqlline.SqlLine$Commands.sql(SqlLine.java:3663)
	at sqlline.SqlLine.dispatch(SqlLine.java:889)
	at sqlline.SqlLine.begin(SqlLine.java:763)
	at sqlline.SqlLine.start(SqlLine.java:498)
	at sqlline.SqlLine.main(SqlLine.java:460)
{code}

> Projecting nested types past join returns invalid result
> --------------------------------------------------------
>
>                 Key: DRILL-2163
>                 URL: https://issues.apache.org/jira/browse/DRILL-2163
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Execution - Data Types
>            Reporter: Hanifi Gunes
>            Assignee: Chun Chang
>            Priority: Critical
>             Fix For: 0.8.0
>
>         Attachments: DRILL-2163.1.patch.txt
>
>
> Take the following data files and query:
> {code:title=a.json}
> {
>   "uid": 1,
>   "events" : [
>     { "evnt_id":"e1"}
>   ]
> }
> {code}
> {code:title=b.json}
> {
>   "uid": 1,
>   "transactions" : [
>     { "trans_id":"t1"}
>   ]
> }
> {code}
> {code}
> select t1.events, t2.transactions from dfs.`local`.`2122/a.json` t1, dfs.`local`.`2122/b.json` t2 where t1.uid = t2.uid
> {code}
> The projection of a nested value -coming out of right side of join-, {{transactions}} as of b6a3878, reports empty result. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)