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

Robert Hou commented on DRILL-5754:
-----------------------------------

The Drill QA test framework enforces column order.  So an interim solution 
could be to make sure desired tests are incorporated in the QA test suites.

> Test framework does not enforce column orders
> ---------------------------------------------
>
>                 Key: DRILL-5754
>                 URL: https://issues.apache.org/jira/browse/DRILL-5754
>             Project: Apache Drill
>          Issue Type: Bug
>            Reporter: Jinfeng Ni
>
> Drill has provided a test framework to submit SQL statements and verify the 
> query results against expected results.  For instance 
> {code}
>     final String query = "select n_nationkey, n_regionkey from 
> cp.`tpch/nation.parquet` where n_nationkey = 5 and n_regionkey = 0";
>     testBuilder()
>         .sqlQuery(query)
>         .unOrdered()
>         .baselineColumns("n_nationkey", "n_regionkey")
>         .baselineValues(5, 0)
>         .build()
>         .run();
> {code} 
> However, it seems that the test framework only do result match based on 
> column name, without enforcing the column order in the output result set. The 
> missing of column order verification  may be different from what people 
> typically expect, and hide some code bugs. 
> The following test specify the expected output columns in a reverse order. 
> However, the current test framework would still pass the test.
> {code}
>     final String query = "select n_nationkey, n_regionkey from 
> cp.`tpch/nation.parquet` where n_nationkey = 5 and n_regionkey = 0";
>     testBuilder()
>         .sqlQuery(query)
>         .unOrdered()
>         .baselineColumns("n_regionkey", "n_nationkey")
>         .baselineValues(0, 5)
>         .build()
>         .run();
> {code}
> For now, to check the column order in query output,  people should use 
> SchemaTestBuilder.  The problem is SchemaTestBuilder only allows to verify 
> schema, without allowing to specify base line values. This means people has 
> to write two tests if they want to verify schema & values. 
> {code}
>      final List<Pair<SchemaPath, TypeProtos.MajorType>> expectedSchema = 
> Lists.newArrayList(
>         Pair.of(SchemaPath.getSimplePath("n_nationkey"), 
> Types.required(TypeProtos.MinorType.INT)),
>         Pair.of(SchemaPath.getSimplePath("n_regionkey"), 
> Types.required(TypeProtos.MinorType.INT)));
>     testBuilder()
>         .sqlQuery(query)
>         .schemaBaseLine(expectedSchema)
>         .go();
> {code}
> This JIRA is opened to ask for enhance test framework to make it enforce 
> column order as well. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to