[
https://issues.apache.org/jira/browse/TAJO-666?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14068369#comment-14068369
]
Jihoon Son commented on TAJO-666:
---------------------------------
Hi [~mhthanh],
thanks for your patch. In overall, the patch looks good, but there is only one
thing which should be fixed.
In Tajo, null values in a tuple are not stored, but represented using bit flags.
That is, if a datum has the null value, the corresponding bit flag is set
instead of storing the value.
Thus, the estimated size should include the header size for null flags instead
of increasing 4 bytes for every column which has the null value (Line 245).
This is same for NULL_TYPE columns (Line 255).
> java.nio.BufferOverflowException occurs when the query includes an order by
> clause on a TEXT column
> ---------------------------------------------------------------------------------------------------
>
> Key: TAJO-666
> URL: https://issues.apache.org/jira/browse/TAJO-666
> Project: Tajo
> Issue Type: Bug
> Reporter: Jihoon Son
> Assignee: Mai Hai Thanh
> Attachments: TAJO-666.Mai.140721.0.patch.txt
>
>
> See the title.
> The query and the error log of the query master are as follows.
> The 'method' column type is TEXT.
> {noformat}
> tajo> select method, sum(totaltime) from logs_20130404 group by method order
> by method;
> 2014-03-06 11:26:03,432 ERROR querymaster.QueryUnitAttempt
> (QueryUnitAttempt.java:transition(409)) - FROM xxx.xxx.xxx.xxx >>
> java.nio.BufferOverflowException
> at java.nio.HeapByteBuffer.put(HeapByteBuffer.java:183)
> at java.nio.ByteBuffer.put(ByteBuffer.java:832)
> at
> org.apache.tajo.storage.RowStoreUtil$RowStoreEncoder.toBytes(RowStoreUtil.java:181)
> at
> org.apache.tajo.storage.index.bst.BSTIndex$BSTIndexWriter.writeHeader(BSTIndex.java:168)
> at
> org.apache.tajo.storage.index.bst.BSTIndex$BSTIndexWriter.close(BSTIndex.java:187)
> at org.apache.hadoop.io.IOUtils.cleanup(IOUtils.java:237)
> at
> org.apache.tajo.engine.planner.physical.RangeShuffleFileWriteExec.close(RangeShuffleFileWriteExec.java:123)
> at org.apache.tajo.worker.Task.run(Task.java:385)
> at org.apache.tajo.worker.TaskRunner$1.run(TaskRunner.java:395)
> at java.lang.Thread.run(Thread.java:744)
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.2#6252)