[
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)