You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@carbondata.apache.org by ch...@apache.org on 2017/04/19 15:40:20 UTC
[1/2] incubator-carbondata git commit: [CARBONDATA-935] Define
PartitionInfo model
Repository: incubator-carbondata
Updated Branches:
refs/heads/12-dev ebf70bca8 -> 1513700b5
[CARBONDATA-935] Define PartitionInfo model
fix javastyle error
modify partitioninfo and singlePartition
modify schema.thrift to add partitioningList
modify definition
Project: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/commit/ac978ad4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/tree/ac978ad4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/diff/ac978ad4
Branch: refs/heads/12-dev
Commit: ac978ad4b049d89c53e3904c9aa4f54f4e8abdaa
Parents: ebf70bc
Author: lucao <wh...@gmail.com>
Authored: Tue Apr 18 14:52:18 2017 +0800
Committer: chenliang613 <ch...@huawei.com>
Committed: Wed Apr 19 23:38:48 2017 +0800
----------------------------------------------------------------------
.../core/metadata/schema/PartitionInfo.java | 88 +++++++++++++++++++
.../metadata/schema/partition/Partitioning.java | 27 ++++++
.../schema/partition/SinglePartition.java | 92 ++++++++++++++++++++
.../core/metadata/schema/table/TableSchema.java | 14 +++
format/src/main/thrift/schema.thrift | 26 ++++++
5 files changed, 247 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/ac978ad4/core/src/main/java/org/apache/carbondata/core/metadata/schema/PartitionInfo.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/metadata/schema/PartitionInfo.java b/core/src/main/java/org/apache/carbondata/core/metadata/schema/PartitionInfo.java
new file mode 100644
index 0000000..a0b87cf
--- /dev/null
+++ b/core/src/main/java/org/apache/carbondata/core/metadata/schema/PartitionInfo.java
@@ -0,0 +1,88 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.carbondata.core.metadata.schema;
+
+import java.io.Serializable;
+import java.util.List;
+
+import org.apache.carbondata.core.metadata.schema.partition.Partitioning;
+import org.apache.carbondata.core.metadata.schema.partition.SinglePartition;
+import org.apache.carbondata.core.metadata.schema.table.column.ColumnSchema;
+
+/**
+ * Partition information
+ */
+public class PartitionInfo implements Serializable {
+
+ /**
+ * Partition numbers
+ */
+ private int numberOfPartitions;
+
+ /**
+ * Partition columns
+ */
+ private List<ColumnSchema> columnSchemaList;
+
+ /**
+ * partition type
+ */
+ private Partitioning partitioning;
+
+ /**
+ * Partition list
+ */
+ private List<SinglePartition> partitionList;
+
+ /**
+ * @param columnSchemaList
+ * @param partitioning
+ */
+ public PartitionInfo(List<ColumnSchema> columnSchemaList, Partitioning partitioning) {
+ this.columnSchemaList = columnSchemaList;
+ this.partitioning = partitioning;
+ }
+
+ /**
+ * @param columnSchemaList
+ * @param partitioning
+ * @param numberOfPartitions
+ */
+ public PartitionInfo(List<ColumnSchema> columnSchemaList, Partitioning partitioning,
+ int numberOfPartitions) {
+ this(columnSchemaList, partitioning);
+ this.numberOfPartitions = numberOfPartitions;
+ }
+
+ public List<ColumnSchema> getColumnSchemaList() {
+ return columnSchemaList;
+ }
+
+ public Partitioning getPartitioning() {
+ return partitioning;
+ }
+
+ public int getNumberOfPartitions() {
+ return numberOfPartitions;
+ }
+
+ public List<SinglePartition> getPartitionList() {
+ return partitionList;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/ac978ad4/core/src/main/java/org/apache/carbondata/core/metadata/schema/partition/Partitioning.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/metadata/schema/partition/Partitioning.java b/core/src/main/java/org/apache/carbondata/core/metadata/schema/partition/Partitioning.java
new file mode 100644
index 0000000..ca1d95b
--- /dev/null
+++ b/core/src/main/java/org/apache/carbondata/core/metadata/schema/partition/Partitioning.java
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.carbondata.core.metadata.schema.partition;
+
+/**
+ * Partition type supported in carbon
+ */
+public enum Partitioning {
+ RANGE,
+ RANGE_INTERVAL,
+ LIST,
+ HASH
+}
http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/ac978ad4/core/src/main/java/org/apache/carbondata/core/metadata/schema/partition/SinglePartition.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/metadata/schema/partition/SinglePartition.java b/core/src/main/java/org/apache/carbondata/core/metadata/schema/partition/SinglePartition.java
new file mode 100644
index 0000000..fe36e14
--- /dev/null
+++ b/core/src/main/java/org/apache/carbondata/core/metadata/schema/partition/SinglePartition.java
@@ -0,0 +1,92 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.carbondata.core.metadata.schema.partition;
+
+import java.io.Serializable;
+import java.util.List;
+
+public class SinglePartition implements Serializable {
+
+ /**
+ * partition id
+ */
+ private int partition_id;
+
+ /**
+ * partition name
+ */
+ private String partition_name;
+
+ /**
+ * boundary value list for multi-level partition
+ */
+ private List<String> boundary_value_list;
+
+ /**
+ *
+ * @param value_list
+ */
+ public SinglePartition(List<String> value_list) {
+ this.boundary_value_list = value_list;
+ }
+
+ /**
+ *
+ * @param partition_name
+ * @param value_list
+ */
+ public SinglePartition(String partition_name, List<String> value_list) {
+ this(value_list);
+ this.partition_name = partition_name;
+ }
+
+ /**
+ * @param id
+ */
+ public void setPartitionId(int id) {
+ this.partition_id = id;
+ }
+
+ public int getPartition_id() {
+ return partition_id;
+ }
+
+ /**
+ * @param value_list
+ */
+ public void setBoundaryValue(List<String> value_list) {
+ this.boundary_value_list = value_list;
+ }
+
+ /**
+ * @return boundary_value_list
+ */
+ public List<String> getBoundaryValue() {
+ return boundary_value_list;
+ }
+
+ /**
+ * @param partitionName
+ */
+ public void setPartitionName(String partitionName) {
+ this.partition_name = partitionName;
+ }
+
+ public String getPartitionName() {
+ return partition_name;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/ac978ad4/core/src/main/java/org/apache/carbondata/core/metadata/schema/table/TableSchema.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/carbondata/core/metadata/schema/table/TableSchema.java b/core/src/main/java/org/apache/carbondata/core/metadata/schema/table/TableSchema.java
index 179f4d4..ad2730b 100644
--- a/core/src/main/java/org/apache/carbondata/core/metadata/schema/table/TableSchema.java
+++ b/core/src/main/java/org/apache/carbondata/core/metadata/schema/table/TableSchema.java
@@ -23,6 +23,7 @@ import java.util.Map;
import org.apache.carbondata.core.constants.CarbonCommonConstants;
import org.apache.carbondata.core.metadata.schema.BucketingInfo;
+import org.apache.carbondata.core.metadata.schema.PartitionInfo;
import org.apache.carbondata.core.metadata.schema.SchemaEvolution;
import org.apache.carbondata.core.metadata.schema.table.column.ColumnSchema;
@@ -66,6 +67,11 @@ public class TableSchema implements Serializable {
*/
private BucketingInfo bucketingInfo;
+ /**
+ * Information about partition type, partition column, numbers
+ */
+ private PartitionInfo partitionInfo;
+
public TableSchema() {
this.listOfColumns = new ArrayList<ColumnSchema>(CarbonCommonConstants.DEFAULT_COLLECTION_SIZE);
}
@@ -184,4 +190,12 @@ public class TableSchema implements Serializable {
public void setBucketingInfo(BucketingInfo bucketingInfo) {
this.bucketingInfo = bucketingInfo;
}
+
+ public PartitionInfo getPartitionInfo() {
+ return partitionInfo;
+ }
+
+ public void setpartitionInfo(PartitionInfo partitionInfo) {
+ this.partitionInfo = partitionInfo;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/ac978ad4/format/src/main/thrift/schema.thrift
----------------------------------------------------------------------
diff --git a/format/src/main/thrift/schema.thrift b/format/src/main/thrift/schema.thrift
index fba70ea..91ff6e3 100644
--- a/format/src/main/thrift/schema.thrift
+++ b/format/src/main/thrift/schema.thrift
@@ -49,6 +49,12 @@ enum Encoding{
DIRECT_DICTIONARY = 5; // Identifies that a column is direct dictionary encoded
}
+enum Partitioning{
+ RANGE = 0;
+ RANGE_INTERVAL = 1;
+ LIST = 2;
+ HASH = 3;
+}
/**
* Description of a Column for both dimension and measure
@@ -121,6 +127,25 @@ struct SchemaEvolution{
}
/**
+ * One partition in table
+ */
+struct SinglePartition{
+ 1: optional i32 partition_id;
+ 2: required list<string> boundary_value_list;
+ 3: optional string partition_name;
+}
+
+/**
+ * Partition information of table
+ */
+struct PartitionInfo{
+ 1: required list<ColumnSchema> partition_columns;
+ 2: required Partitioning partitioning;
+ 3: optional list<SinglePartition> partition_list;
+ 4: optional i32 number_of_partitions;
+}
+
+/**
* Bucketing information of fields on table
*/
struct BucketingInfo{
@@ -137,6 +162,7 @@ struct TableSchema{
3: required SchemaEvolution schema_evolution; // History of schema evolution of this table
4: optional map<string,string> tableProperties; // Table properties configured by the user
5: optional BucketingInfo bucketingInfo; // Bucketing information
+ 6: optional PartitionInfo partitionInfo; // Partition information
}
struct TableInfo{
[2/2] incubator-carbondata git commit: [CARBONDATA-935] Define
PartitionInfo Model This closes #810
Posted by ch...@apache.org.
[CARBONDATA-935] Define PartitionInfo Model This closes #810
Project: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/commit/1513700b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/tree/1513700b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-carbondata/diff/1513700b
Branch: refs/heads/12-dev
Commit: 1513700b585c6826201bf935ad7b519c6050a364
Parents: ebf70bc ac978ad
Author: chenliang613 <ch...@huawei.com>
Authored: Wed Apr 19 23:39:46 2017 +0800
Committer: chenliang613 <ch...@huawei.com>
Committed: Wed Apr 19 23:39:46 2017 +0800
----------------------------------------------------------------------
.../core/metadata/schema/PartitionInfo.java | 88 +++++++++++++++++++
.../metadata/schema/partition/Partitioning.java | 27 ++++++
.../schema/partition/SinglePartition.java | 92 ++++++++++++++++++++
.../core/metadata/schema/table/TableSchema.java | 14 +++
format/src/main/thrift/schema.thrift | 26 ++++++
5 files changed, 247 insertions(+)
----------------------------------------------------------------------