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

Hudson commented on TAJO-1359:
------------------------------

SUCCESS: Integrated in Tajo-master-build #700 (See 
[https://builds.apache.org/job/Tajo-master-build/700/])
TAJO-1359: Add nested field projector and language extension to project nested 
record. (hyunsik) (hyunsik: rev 0d1bf41f3aff119af5d95270d735101a81d5721c)
* 
tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/StorageManager.java
* 
tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/text/DelimitedTextFile.java
* 
tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/rcfile/RCFile.java
* 
tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/avro/AvroScanner.java
* tajo-plan/src/main/java/org/apache/tajo/plan/logical/EvalExprNode.java
* 
tajo-core/src/test/resources/dataset/TestSelectNestedRecord/tweets/sample1.json
* tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinGraph.java
* tajo-core/src/test/java/org/apache/tajo/engine/query/TestCTASQuery.java
* tajo-core/src/test/resources/queries/TestSelectNestedRecord/testSelect2.sql
* 
tajo-plan/src/main/java/org/apache/tajo/plan/nameresolver/ResolverByLegacy.java
* 
tajo-core/src/test/resources/queries/TestSelectNestedRecord/testNestedFieldAsJoinKey1.sql
* 
tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/json/JsonLineSerializer.java
* 
tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/AbstractHBaseAppender.java
* tajo-client/src/main/java/org/apache/tajo/storage/RowStoreUtil.java
* tajo-core/src/test/resources/queries/TestSelectNestedRecord/sample2_ddl.sql
* tajo-core/src/main/java/org/apache/tajo/engine/utils/TupleUtil.java
* 
tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/GreedyHeuristicJoinOrderAlgorithm.java
* tajo-core/src/main/resources/webapps/admin/catalogview.jsp
* 
tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/MergeScanner.java
* 
tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/CSVFile.java
* 
tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseScanner.java
* tajo-common/src/main/java/org/apache/tajo/util/TUtil.java
* tajo-plan/src/main/java/org/apache/tajo/plan/logical/DistinctGroupbyNode.java
* 
tajo-catalog/tajo-catalog-drivers/tajo-hive/src/main/java/org/apache/tajo/catalog/store/HiveCatalogStore.java
* 
tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/FileStorageManager.java
* 
tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/Schema.java
* 
tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/rules/PartitionedTableRewriter.java
* tajo-plan/src/main/java/org/apache/tajo/plan/joinorder/JoinEdge.java
* CHANGES
* 
tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestStorages.java
* 
tajo-core/src/test/java/org/apache/tajo/engine/function/TestFunctionLoader.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java
* 
tajo-core/src/test/resources/results/TestSelectNestedRecord/testNestedFieldAsJoinKey1.result
* tajo-common/src/main/java/org/apache/tajo/util/StringUtils.java
* tajo-plan/src/main/java/org/apache/tajo/plan/expr/RowConstantEval.java
* tajo-core/src/test/java/org/apache/tajo/engine/query/TestJoinBroadcast.java
* 
tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseBinarySerializerDeserializer.java
* 
tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/sequencefile/SequenceFileScanner.java
* tajo-plan/src/main/java/org/apache/tajo/plan/logical/ShuffleFileWriteNode.java
* 
tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/parquet/TajoRecordConverter.java
* tajo-cli/src/main/java/org/apache/tajo/cli/tsql/commands/DescTableCommand.java
* tajo-plan/src/main/java/org/apache/tajo/plan/expr/WindowFunctionEval.java
* 
tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/SchemaUtil.java
* 
tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/json/JsonLineSerDe.java
* tajo-plan/src/main/java/org/apache/tajo/plan/nameresolver/NameResolver.java
* 
tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestMergeScanner.java
* tajo-plan/src/main/java/org/apache/tajo/plan/logical/ProjectionNode.java
* tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanPreprocessor.java
* 
tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/FileScanner.java
* tajo-core/src/test/resources/dataset/TestSelectNestedRecord/sample1/table.json
* 
tajo-core/src/main/java/org/apache/tajo/master/exec/NonForwardQueryResultFileScanner.java
* tajo-core/src/main/java/org/apache/tajo/engine/utils/TupleCacheScanner.java
* 
tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/text/TextLineSerDe.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SeqScanExec.java
* tajo-core/src/test/resources/results/TestSelectNestedRecord/testSelect1.result
* tajo-plan/src/main/java/org/apache/tajo/plan/logical/WindowAggNode.java
* tajo-jdbc/src/main/java/org/apache/tajo/jdbc/TajoDatabaseMetaData.java
* tajo-core/src/main/java/org/apache/tajo/engine/planner/global/DataChannel.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/DistinctGroupbyThirdAggregationExec.java
* 
tajo-core/src/test/java/org/apache/tajo/ws/rs/resources/TestQueryResultResource.java
* tajo-plan/src/main/java/org/apache/tajo/plan/util/PlannerUtil.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/PhysicalPlanUtil.java
* 
tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/text/CSVLineSerDe.java
* 
tajo-plan/src/main/java/org/apache/tajo/plan/function/python/PythonScriptEngine.java
* tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanner.java
* tajo-core/src/test/resources/queries/TestSelectNestedRecord/tweets_ddl.sql
* 
tajo-plan/src/main/java/org/apache/tajo/plan/verifier/PreLogicalPlanVerifier.java
* tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/planner/PhysicalPlannerImpl.java
* 
tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/text/TextLineDeserializer.java
* tajo-common/src/main/java/org/apache/tajo/storage/Tuple.java
* 
tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseStorageManager.java
* tajo-plan/src/main/java/org/apache/tajo/plan/logical/GroupbyNode.java
* 
tajo-core/src/main/java/org/apache/tajo/master/exec/NonForwardQueryResultSystemScanner.java
* 
tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/ColumnMapping.java
* 
tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/rules/FilterPushDownRule.java
* tajo-core/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java
* 
tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/json/JsonLineDeserializer.java
* tajo-core/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4
* 
tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/NestedPathUtil.java
* tajo-plan/src/main/java/org/apache/tajo/plan/verifier/LogicalPlanVerifier.java
* 
tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java
* tajo-core/src/test/resources/queries/TestSelectNestedRecord/sample1_ddl.sql
* 
tajo-core/src/test/java/org/apache/tajo/engine/query/TestSelectNestedRecord.java
* 
tajo-core/src/test/resources/results/TestSelectNestedRecord/testNestedFieldAsGroupbyKey1.result
* 
tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/text/CSVLineDeserializer.java
* 
tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/RowStoreUtil.java
* 
tajo-core/src/test/resources/queries/TestSelectQuery/testSelectWithParentheses2.sql
* tajo-core/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java
* 
tajo-core/src/test/resources/queries/TestSelectNestedRecord/testNestedFieldAsGroupbyKey1.sql
* tajo-core/src/test/resources/queries/TestSelectNestedRecord/testSelect1.sql
* tajo-plan/src/main/java/org/apache/tajo/plan/logical/RelationNode.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/planner/global/builder/DistinctGroupbyBuilder.java
* tajo-core/src/test/resources/results/TestSelectNestedRecord/testSelect2.result
* 
tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/Scanner.java
* tajo-plan/src/main/java/org/apache/tajo/plan/logical/TruncateTableNode.java


> Add nested field projector and language extension to project nested record
> --------------------------------------------------------------------------
>
>                 Key: TAJO-1359
>                 URL: https://issues.apache.org/jira/browse/TAJO-1359
>             Project: Tajo
>          Issue Type: Sub-task
>          Components: parser, physical operator, planner/optimizer
>            Reporter: Hyunsik Choi
>            Assignee: Hyunsik Choi
>             Fix For: 0.11.0
>
>         Attachments: TAJO-1359.patch, TAJO-1359_2.patch, TAJO-1359_3.patch, 
> TAJO-1359_4.patch, TAJO-1359_5.patch, TAJO-1359_6.patch, TAJO-1359_7.patch, 
> TAJO-1359_8.patch, TAJO-1359_9.patch
>
>
> We need to improve Projector class to get nested record fields, and we also 
> add some language extension to specify certain nested records in table 
> schema. Both works should be done together. Otherwise, we need to test an 
> entire work process.
> Using dot '.' would be good for the syntax to specify nested fields. Many 
> systems (Hive, Google BigQuery, and Drill) already use this syntax. Probably, 
> many users are familiar with this form.
> For example, if *employee* is a root nested record field and it includes 
> *age* and *name* fields, consisting two fields lastname and firstname, we can 
> specify them individually as follows:
> {code}
> SELECT employee.age, employee.name.lastname, employee.name.firstname FROM ...
> {code}



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

Reply via email to