You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@drill.apache.org by "Chun Chang (JIRA)" <ji...@apache.org> on 2014/04/22 01:36:15 UTC
[jira] [Closed] (DRILL-420) float literal is interpreted as BigInt
[ https://issues.apache.org/jira/browse/DRILL-420?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Chun Chang closed DRILL-420.
----------------------------
verified.
0: jdbc:drill:schema=dfs> select 1.1+2.6 from customer limit 1;
+------------+
| EXPR$0 |
+------------+
| 3.7 |
+------------+
> float literal is interpreted as BigInt
> --------------------------------------
>
> Key: DRILL-420
> URL: https://issues.apache.org/jira/browse/DRILL-420
> Project: Apache Drill
> Issue Type: Bug
> Affects Versions: 1.0.0-rc1
> Reporter: Chun Chang
>
> From sqlline, issue the following:
> 0: jdbc:drill:> select 1.1+2.6 from `customer.json` limit 1;
> +------------+
> | EXPR$0 |
> +------------+
> | 3 |
> +------------+
> Notice the result is 3 instead of 3.7.
> sqlline log shows we are taking in the value as BigInt:
> 11:42:05.223 [Client-1] DEBUG o.a.d.e.rpc.user.QueryResultHandler - Received QueryId part1: -4656127306686443884
> part2: -8283317532111349525
> succesfully. Adding listener org.apache.drill.jdbc.DrillResultSet$Listener@5cd38dd
> 11:42:05.915 [Client-1] DEBUG org.apache.drill.jdbc.DrillResultSet - Result arrived QueryResultBatch [header=query_id {
> part1: -4656127306686443884
> part2: -8283317532111349525
> }
> is_last_chunk: false
> row_count: 1
> def {
> field {
> def {
> name {
> type: NAME
> name: "EXPR$0"
> }
> major_type {
> minor_type: BIGINT
> mode: REQUIRED
> }
> }
> value_count: 1
> buffer_length: 8
> }
> record_count: 1
> is_selection_vector_2: false
> }
> , data=SlicedByteBuf(ridx: 0, widx: 8, cap: 8/8, unwrapped: AccountingByteBuf [Inner buffer=PooledUnsafeDirectByteBufL(ridx: 76, widx: 76, cap: 76), size=76])]
> 11:42:05.917 [Client-1] DEBUG org.apache.drill.jdbc.DrillResultSet - Result arrived QueryResultBatch [header=query_id {
> part1: -4656127306686443884
> part2: -8283317532111349525
> }
> is_last_chunk: true
> row_count: 0
> def {
> }
> , data=null]
> drillbit log confirms that:
> 11:42:05.226 [WorkManager Event Thread] DEBUG o.apache.drill.exec.work.WorkManager - Starting pending task org.apache.drill.exec.work.foreman.Foreman@4c097753
> 11:42:05.238 [WorkManager-3] DEBUG o.a.d.e.planner.logical.DrillOptiq - RexCall +(1.1, 2.6), {}
> 11:42:05.238 [WorkManager-3] DEBUG o.a.d.e.planner.logical.DrillOptiq - Binary
> 11:42:05.242 [WorkManager-3] DEBUG o.a.drill.exec.work.foreman.Foreman - Converting logical plan {
> "head" : {
> "version" : 1,
> "generator" : {
> "type" : "org.apache.drill.exec.planner.logical.DrillImplementor",
> "info" : ""
> },
> "type" : "APACHE_DRILL_LOGICAL",
> "resultMode" : "EXEC"
> },
> "storage" : {
> "cp" : {
> "type" : "file",
> "connection" : "classpath:///",
> "workspaces" : null,
> "formats" : null
> }
> },
> "query" : [ {
> "op" : "scan",
> "@id" : 1,
> "storageengine" : "cp",
> "selection" : {
> "format" : {
> "type" : "json"
> },
> "files" : [ "/customer.json" ]
> },
> "ref" : null
> }, {
> "op" : "project",
> "@id" : 2,
> "input" : 1,
> "projections" : [ {
> "ref" : "output.EXPR$0",
> "expr" : " (1) + (2) "
> } ]
> }, {
> "op" : "limit",
> "@id" : 3,
> "input" : 2,
> "first" : 0,
> "last" : 1
> }, {
> "op" : "store",
> "@id" : 4,
> "input" : 3,
> "target" : null,
> "storageEngine" : "--SCREEN--"
> } ]
> }.
> 11:42:05.244 [WorkManager-3] DEBUG o.a.drill.common.config.DrillConfig - Loading configs at the following URLs [jar:file:/opt/drill/jars/drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar!/drill-module.conf, jar:file:/opt/drill/jars/drill-common-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar!/drill-module.conf]
> 11:42:05.250 [WorkManager-3] DEBUG o.a.d.c.l.data.LogicalOperatorBase - Adding Logical Operator sub types: [class org.apache.drill.common.logical.data.Transform, class org.apache.drill.common.logical.data.Limit, class org.apache.drill.common.logical.data.Union, class org.apache.drill.common.logical.data.Sequence, class org.apache.drill.common.logical.data.Scan, class org.apache.drill.common.logical.data.Order, class org.apache.drill.common.logical.data.WindowFrame, class org.apache.drill.common.logical.data.Constant, class org.apache.drill.common.logical.data.Project, class org.apache.drill.common.logical.data.Join, class org.apache.drill.common.logical.data.GroupingAggregate, class org.apache.drill.common.logical.data.Store, class org.apache.drill.common.logical.data.Filter, class org.apache.drill.common.logical.data.RunningAggregate, class org.apache.drill.common.logical.data.Flatten]
> 11:42:05.251 [WorkManager-3] DEBUG o.a.d.c.l.StoragePluginConfigBase - Adding Storage Engine Configs including [class org.apache.drill.exec.store.ischema.InfoSchemaConfig, class org.apache.drill.exec.store.mock.MockStorageEngineConfig, class org.apache.drill.exec.store.dfs.FileSystemConfig, class org.apache.drill.exec.store.NamedStoragePluginConfig, class org.apache.drill.exec.store.dfs.FileSystemFormatConfig, class org.apache.drill.exec.store.hive.HiveStoragePluginConfig]
> 11:42:05.252 [WorkManager-3] DEBUG o.a.d.c.l.FormatPluginConfigBase - Adding Format Plugin Configs including [class org.apache.drill.exec.store.dfs.NamedFormatPluginConfig, class org.apache.drill.exec.store.parquet.ParquetFormatConfig, class org.apache.drill.exec.store.easy.json.JSONFormatPlugin$JSONFormatConfig]
> 11:42:05.269 [WorkManager-3] DEBUG o.a.d.e.s.schedule.BlockMapBuilder - Took 0 ms to build endpoint map
> 11:42:05.271 [WorkManager-3] DEBUG o.a.d.e.s.schedule.BlockMapBuilder - Failure finding Drillbit running on host localhost. Skipping affinity to that host.
> 11:42:05.271 [WorkManager-3] DEBUG o.a.d.e.s.schedule.BlockMapBuilder - FileWork group (/customer.json,0) max bytes 0
> 11:42:05.271 [WorkManager-3] DEBUG o.a.d.e.s.schedule.BlockMapBuilder - Took 0 ms to set endpoint bytes
> 11:42:05.272 [WorkManager-3] DEBUG o.a.d.e.s.schedule.AffinityCreator - Took 0 ms to get operator affinity
> 11:42:05.273 [WorkManager-3] DEBUG o.a.d.e.s.schedule.AssignmentCreator - Took 0 ms to apply assignments
> 11:42:05.276 [WorkManager-3] DEBUG o.a.d.e.p.f.SimpleParallelizer - Root fragment:
> handle {
> query_id {
> part1: -4656127306686443884
> part2: -8283317532111349525
> }
> major_fragment_id: 0
> minor_fragment_id: 0
> }
> network_cost: 0.0
> cpu_cost: 0.0
> disk_cost: 0.0
> memory_cost: 0.0
> fragment_json: "{\n \"pop\" : \"screen\",\n \"@id\" : 1,\n \"child\" : {\n \"pop\" : \"selection-vector-remover\",\n \"@id\" : 2,\n \"child\" : {\n \"pop\" : \"limit\",\n \"@id\" : 3,\n \"child\" : {\n \"pop\" : \"project\",\n \"@id\" : 4,\n \"exprs\" : [ {\n \"ref\" : \"output.EXPR$0\",\n \"expr\" : \" (1) + (2) \"\n } ],\n \"child\" : {\n \"pop\" : \"fs-sub-scan\",\n \"@id\" : 5,\n \"files\" : [ {\n \"start\" : 0,\n \"length\" : 1,\n \"path\" : \"/customer.json\"\n } ],\n \"storage\" : {\n \"type\" : \"file\",\n \"connection\" : \"classpath:///\",\n \"workspaces\" : null,\n \"formats\" : null\n },\n \"format\" : {\n \"type\" : \"json\"\n }\n }\n },\n \"first\" : 0,\n \"last\" : 1\n }\n }\n}"
> leaf_fragment: true
> assignment {
> address: "qa-node118.qa.lab"
> user_port: 31010
> control_port: 31011
> data_port: 31012
> }
> foreman {
> address: "qa-node118.qa.lab"
> user_port: 31010
> control_port: 31011
> data_port: 31012
> }
> 11:42:05.277 [WorkManager-3] DEBUG o.a.d.exec.rpc.control.WorkEventBus - Adding fragment status listener for queryId part1: -4656127306686443884
> part2: -8283317532111349525
> .
> 11:42:05.277 [WorkManager-3] DEBUG o.a.drill.exec.work.foreman.Foreman - Storing fragments
> 11:42:05.277 [WorkManager-3] DEBUG o.a.drill.exec.work.foreman.Foreman - Fragments stored.
> 11:42:05.278 [WorkManager-3] DEBUG o.a.drill.exec.work.foreman.Foreman - Submitting fragments to run.
> 11:42:05.278 [WorkManager-3] DEBUG o.a.d.exec.work.foreman.QueryManager - Setting up fragment runs.
> 11:42:05.278 [WorkManager-3] DEBUG o.a.d.exec.work.foreman.QueryManager - Setting up root context.
> 11:42:05.279 [WorkManager-3] DEBUG o.a.drill.exec.ops.FragmentContext - Getting initial memory allocation of 20000000
> 11:42:05.279 [WorkManager-3] DEBUG o.a.d.exec.work.foreman.QueryManager - Setting up incoming buffers
> 11:42:05.280 [WorkManager-3] DEBUG o.a.d.e.work.batch.IncomingBuffers - Came up with a list of 0 required fragments. Fragments {}
> 11:42:05.280 [WorkManager-3] DEBUG o.a.d.exec.work.foreman.QueryManager - Setting buffers on root context.
> 11:42:05.281 [WorkManager-3] DEBUG o.a.d.exec.work.foreman.QueryManager - Generating Exec tree
> 11:42:05.313 [WorkManager-3] DEBUG o.a.d.e.p.i.s.RemovingRecordBatch - Created.
> 11:42:05.314 [WorkManager-3] DEBUG o.a.d.exec.work.foreman.QueryManager - Exec tree generated.
> 11:42:05.314 [WorkManager-3] DEBUG o.a.d.exec.work.foreman.QueryManager - Fragment added to local node.
> 11:42:05.315 [WorkManager-3] DEBUG o.apache.drill.exec.work.WorkManager - Adding pending task org.apache.drill.exec.work.fragment.FragmentExecutor@4ea74049
> 11:42:05.315 [WorkManager-3] DEBUG o.a.d.exec.work.foreman.QueryManager - Fragment runs setup is complete.
> 11:42:05.315 [WorkManager Event Thread] DEBUG o.apache.drill.exec.work.WorkManager - Starting pending task org.apache.drill.exec.work.fragment.FragmentExecutor@4ea74049
> 11:42:05.316 [WorkManager-3] DEBUG o.a.drill.exec.work.foreman.Foreman - Fragments running.
> 11:42:05.316 [WorkManager-4] DEBUG o.a.d.e.w.fragment.FragmentExecutor - Starting fragment runner. 0:0
> 11:42:05.316 [WorkManager-4] DEBUG o.a.d.exec.work.foreman.QueryManager - New fragment status was provided to Foreman of memory_use: 0
> batches_completed: 0
> records_completed: 0
> state: RUNNING
> data_processed: 0
> handle {
> query_id {
> part1: -4656127306686443884
> part2: -8283317532111349525
> }
> major_fragment_id: 0
> minor_fragment_id: 0
> }
> running_time: 10523888674029567
> 11:42:05.889 [WorkManager-4] DEBUG o.a.d.e.p.i.p.ProjectRecordBatch - Added eval.
> 11:42:05.891 [WorkManager-4] DEBUG o.a.d.e.compile.JaninoClassCompiler - Compiling:
> 1:
> 2: package org.apache.drill.exec.test.generated;
> 3:
> 4: import org.apache.drill.exec.exception.SchemaChangeException;
> 5: import org.apache.drill.exec.expr.holders.BigIntHolder;
> 6: import org.apache.drill.exec.ops.FragmentContext;
> 7: import org.apache.drill.exec.record.RecordBatch;
> 8: import org.apache.drill.exec.vector.BigIntVector;
> 9:
> 10: public class ProjectorGen29 {
> 11:
> 12: BigIntVector vv3;
> 13:
> 14: public void doSetup(FragmentContext context, RecordBatch incoming, RecordBatch outgoing)
> 15: throws SchemaChangeException
> 16: {
> 17: {
> 18: /** start SETUP for function add **/
> 19: {
> 20: {}
> 21: }
> 22: /** end SETUP for function add **/
> 23: Object tmp4 = (outgoing).getValueAccessorById(0, BigIntVector.class).getValueVector();
> 24: if (tmp4 == null) {
> 25: throw new SchemaChangeException("Failure while loading vector vv3 with id: TypedFieldId [type=minor_type: BIGINT\nmode: REQUIRED\n, fieldId=0, isSuperReader=false].");
> 26: }
> 27: vv3 = ((BigIntVector) tmp4);
> 28: }
> 29: }
> 30:
> 31: public void doEval(int inIndex, int outIndex)
> 32: throws SchemaChangeException
> 33: {
> 34: {
> 35: BigIntHolder out0 = new BigIntHolder();
> 36: out0 .value = 1L;
> 37: BigIntHolder out1 = new BigIntHolder();
> 38: out1 .value = 2L;
> 39: BigIntHolder out2 = new BigIntHolder();
> 40: {
> 41: final BigIntHolder out = new BigIntHolder();
> 42: BigIntHolder in1 = out0;
> 43: BigIntHolder in2 = out1;
> 44:
> 45: out.value = (long) (in1.value + in2.value);
> 46:
> 47: out2 = out;
> 48: }
> 49: vv3 .getMutator().set((outIndex), out2 .value);
> 50: }
> 51: }
> 52:
> 53: }
> 11:42:05.900 [WorkManager-4] DEBUG o.a.drill.exec.compile.MergeAdapter - Skipping copy of 'doSetup()' since it is abstract or listed elsewhere.
> 11:42:05.901 [WorkManager-4] DEBUG o.a.drill.exec.compile.MergeAdapter - Skipping copy of 'doEval()' since it is abstract or listed elsewhere.
> 11:42:05.903 [WorkManager-4] DEBUG o.a.drill.exec.ops.FragmentContext - Compile time: 13 millis.
> 11:42:05.909 [WorkManager-4] DEBUG o.a.d.e.compile.JaninoClassCompiler - Compiling:
> 1:
> 2: package org.apache.drill.exec.test.generated;
> 3:
> 4: import org.apache.drill.exec.exception.SchemaChangeException;
> 5: import org.apache.drill.exec.ops.FragmentContext;
> 6: import org.apache.drill.exec.record.RecordBatch;
> 7: import org.apache.drill.exec.vector.BigIntVector;
> 8:
> 9: public class CopierGen30 {
> 10:
> 11: BigIntVector vv0;
> 12: BigIntVector vv2;
> 13:
> 14: public void doSetup(FragmentContext context, RecordBatch incoming, RecordBatch outgoing)
> 15: throws SchemaChangeException
> 16: {
> 17: {
> 18: Object tmp1 = (incoming).getValueAccessorById(0, BigIntVector.class).getValueVector();
> 19: if (tmp1 == null) {
> 20: throw new SchemaChangeException("Failure while loading vector vv0 with id: TypedFieldId [type=minor_type: BIGINT\nmode: REQUIRED\n, fieldId=0, isSuperReader=false].");
> 21: }
> 22: vv0 = ((BigIntVector) tmp1);
> 23: Object tmp3 = (outgoing).getValueAccessorById(0, BigIntVector.class).getValueVector();
> 24: if (tmp3 == null) {
> 25: throw new SchemaChangeException("Failure while loading vector vv2 with id: TypedFieldId [type=minor_type: BIGINT\nmode: REQUIRED\n, fieldId=0, isSuperReader=false].");
> 26: }
> 27: vv2 = ((BigIntVector) tmp3);
> 28: }
> 29: }
> 30:
> 31: public void doEval(int inIndex, int outIndex)
> 32: throws SchemaChangeException
> 33: {
> 34: {
> 35: vv2 .copyFrom((inIndex), (outIndex), vv0);
> 36: }
> 37: }
> 38:
> 39: }
> 11:42:05.914 [WorkManager-4] DEBUG o.a.drill.exec.compile.MergeAdapter - Skipping copy of 'doSetup()' since it is abstract or listed elsewhere.
> 11:42:05.914 [WorkManager-4] DEBUG o.a.drill.exec.compile.MergeAdapter - Skipping copy of 'doEval()' since it is abstract or listed elsewhere.
> 11:42:05.916 [WorkManager-4] DEBUG o.a.drill.exec.ops.FragmentContext - Compile time: 7 millis.
> 11:42:05.918 [WorkManager-4] DEBUG o.a.d.exec.work.foreman.QueryManager - New fragment status was provided to Foreman of memory_use: 0
> batches_completed: 2
> records_completed: 1
> state: FINISHED
> data_processed: 0
> handle {
> query_id {
> part1: -4656127306686443884
> part2: -8283317532111349525
> }
> major_fragment_id: 0
> minor_fragment_id: 0
> }
> running_time: 601395390
> 11:42:05.921 [WorkManager-4] DEBUG o.a.d.e.w.fragment.FragmentExecutor - Fragment runner complete. 0:0
--
This message was sent by Atlassian JIRA
(v6.2#6252)