TAJO-1247: Store type 'TEXTFILE' should be TEXT while keeping enum 'TEXTFILE' in protobuf. (DaeMyung Kang via hyunsik)
Closes #302 Project: http://git-wip-us.apache.org/repos/asf/tajo/repo Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/b7c8cf72 Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/b7c8cf72 Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/b7c8cf72 Branch: refs/heads/index_support Commit: b7c8cf7239483c6b44925175658f21dbbf252665 Parents: af4083b Author: Hyunsik Choi <[email protected]> Authored: Fri Dec 19 10:07:53 2014 +0900 Committer: Hyunsik Choi <[email protected]> Committed: Fri Dec 19 10:10:52 2014 +0900 ---------------------------------------------------------------------- CHANGES | 3 +++ .../org/apache/tajo/catalog/CatalogUtil.java | 24 ++++++++++++++++---- .../org/apache/tajo/catalog/DDLBuilder.java | 6 ++--- .../apache/tajo/catalog/store/HCatalogUtil.java | 3 ++- .../TestSelectQuery/datetime_table_ddl.sql | 2 +- .../datetime_table_timezoned_ddl.sql | 2 +- .../src/main/sphinx/table_management/csv.rst | 4 ++-- .../sphinx/table_management/table_overview.rst | 4 ++-- tajo-docs/src/main/sphinx/time_zone.rst | 6 ++--- 9 files changed, 37 insertions(+), 17 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tajo/blob/b7c8cf72/CHANGES ---------------------------------------------------------------------- diff --git a/CHANGES b/CHANGES index 29b66d1..54a4ef4 100644 --- a/CHANGES +++ b/CHANGES @@ -24,6 +24,9 @@ Release 0.9.1 - unreleased IMPROVEMENT + TAJO-1247: Store type 'TEXTFILE' should be TEXT while keeping enum 'TEXTFILE' in protobuf. + (DaeMyung Kang via hyunsik) + TAJO-1221: HA TajoClient should not connect TajoMaster at the first. (jaehwa) http://git-wip-us.apache.org/repos/asf/tajo/blob/b7c8cf72/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java ---------------------------------------------------------------------- diff --git a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java index cbcac63..bb15ec1 100644 --- a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java +++ b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java @@ -18,7 +18,6 @@ package org.apache.tajo.catalog; -import com.google.common.base.Preconditions; import com.google.common.collect.Maps; import org.apache.hadoop.fs.Path; import org.apache.tajo.DataTypeUtil; @@ -32,11 +31,9 @@ import org.apache.tajo.common.TajoDataTypes; import org.apache.tajo.common.TajoDataTypes.DataType; import org.apache.tajo.exception.InvalidOperationException; import org.apache.tajo.storage.StorageConstants; -import org.apache.tajo.unit.StorageUnit; import org.apache.tajo.util.KeyValueSet; import org.apache.tajo.util.StringUtils; import org.apache.tajo.util.TUtil; -import org.mortbay.util.ajax.JSON; import java.sql.Connection; import java.sql.ResultSet; @@ -52,6 +49,7 @@ import static org.apache.tajo.common.TajoDataTypes.Type; public class CatalogUtil { + public static final String TEXTFILE_NAME = "TEXT"; /** * Normalize an identifier. Normalization means a translation from a identifier to be a refined identifier name. * @@ -264,6 +262,24 @@ public class CatalogUtil { return sb.toString(); } + public static String getStoreTypeString(final StoreType type) { + if (type == StoreType.TEXTFILE) { + return TEXTFILE_NAME; + } else if (type == StoreType.CSV || + type == StoreType.RAW || + type == StoreType.ROWFILE || + type == StoreType.RCFILE || + type == StoreType.PARQUET || + type == StoreType.SEQUENCEFILE || + type == StoreType.AVRO || + type == StoreType.JSON || + type == StoreType.HBASE) { + return type.name(); + } else { + return null; + } + } + public static StoreType getStoreType(final String typeStr) { if (typeStr.equalsIgnoreCase(StoreType.CSV.name())) { return StoreType.CSV; @@ -279,7 +295,7 @@ public class CatalogUtil { return StoreType.SEQUENCEFILE; } else if (typeStr.equalsIgnoreCase(StoreType.AVRO.name())) { return StoreType.AVRO; - } else if (typeStr.equalsIgnoreCase(StoreType.TEXTFILE.name())) { + } else if (typeStr.equalsIgnoreCase(TEXTFILE_NAME)) { return StoreType.TEXTFILE; } else if (typeStr.equalsIgnoreCase(StoreType.JSON.name())) { return StoreType.JSON; http://git-wip-us.apache.org/repos/asf/tajo/blob/b7c8cf72/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java ---------------------------------------------------------------------- diff --git a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java index bd7364a..978092a 100644 --- a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java +++ b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java @@ -31,7 +31,7 @@ public class DDLBuilder { sb.append("--\n") .append("-- Name: ").append(CatalogUtil.denormalizeIdentifier(desc.getName())).append("; Type: TABLE;") - .append(" Storage: ").append(desc.getMeta().getStoreType().name()); + .append(" Storage: ").append(CatalogUtil.getStoreTypeString(desc.getMeta().getStoreType())); sb.append("\n-- Path: ").append(desc.getPath()); sb.append("\n--\n"); sb.append("CREATE EXTERNAL TABLE ").append(CatalogUtil.denormalizeIdentifier(desc.getName())); @@ -54,7 +54,7 @@ public class DDLBuilder { sb.append("--\n") .append("-- Name: ").append(CatalogUtil.denormalizeIdentifier(desc.getName())).append("; Type: TABLE;") - .append(" Storage: ").append(desc.getMeta().getStoreType().name()); + .append(" Storage: ").append(CatalogUtil.getStoreTypeString(desc.getMeta().getStoreType())); sb.append("\n--\n"); sb.append("CREATE TABLE ").append(CatalogUtil.denormalizeIdentifier(desc.getName())); buildSchema(sb, desc.getSchema()); @@ -91,7 +91,7 @@ public class DDLBuilder { } private static void buildUsingClause(StringBuilder sb, TableMeta meta) { - sb.append(" USING " + meta.getStoreType().name()); + sb.append(" USING " + CatalogUtil.getStoreTypeString(meta.getStoreType())); } private static void buildWithClause(StringBuilder sb, TableMeta meta) { http://git-wip-us.apache.org/repos/asf/tajo/blob/b7c8cf72/tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogUtil.java ---------------------------------------------------------------------- diff --git a/tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogUtil.java b/tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogUtil.java index c7f2590..ff2a2c4 100644 --- a/tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogUtil.java +++ b/tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/src/main/java/org/apache/tajo/catalog/store/HCatalogUtil.java @@ -31,6 +31,7 @@ import org.apache.hcatalog.data.schema.HCatFieldSchema; import org.apache.hcatalog.data.schema.HCatSchema; import org.apache.tajo.catalog.exception.CatalogException; import org.apache.tajo.catalog.proto.CatalogProtos; +import org.apache.tajo.catalog.CatalogUtil; import org.apache.tajo.common.TajoDataTypes; import org.apache.thrift.TException; import parquet.hadoop.mapred.DeprecatedParquetOutputFormat; @@ -128,7 +129,7 @@ public class HCatalogUtil { String outputFormatClass = fileFormatArrary[fileFormatArrary.length-1]; if(outputFormatClass.equals(HiveIgnoreKeyTextOutputFormat.class.getSimpleName())) { - return CatalogProtos.StoreType.TEXTFILE.name(); + return CatalogUtil.TEXTFILE_NAME; } else if(outputFormatClass.equals(HiveSequenceFileOutputFormat.class.getSimpleName())) { return CatalogProtos.StoreType.SEQUENCEFILE.name(); } else if(outputFormatClass.equals(RCFileOutputFormat.class.getSimpleName())) { http://git-wip-us.apache.org/repos/asf/tajo/blob/b7c8cf72/tajo-core/src/test/resources/queries/TestSelectQuery/datetime_table_ddl.sql ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/queries/TestSelectQuery/datetime_table_ddl.sql b/tajo-core/src/test/resources/queries/TestSelectQuery/datetime_table_ddl.sql index beb19b7..d2c97c5 100644 --- a/tajo-core/src/test/resources/queries/TestSelectQuery/datetime_table_ddl.sql +++ b/tajo-core/src/test/resources/queries/TestSelectQuery/datetime_table_ddl.sql @@ -1,4 +1,4 @@ CREATE EXTERNAL TABLE ${0} ( t_timestamp TIMESTAMP, t_date DATE -) USING TEXTFILE LOCATION ${table.path} \ No newline at end of file +) USING TEXT LOCATION ${table.path} http://git-wip-us.apache.org/repos/asf/tajo/blob/b7c8cf72/tajo-core/src/test/resources/queries/TestSelectQuery/datetime_table_timezoned_ddl.sql ---------------------------------------------------------------------- diff --git a/tajo-core/src/test/resources/queries/TestSelectQuery/datetime_table_timezoned_ddl.sql b/tajo-core/src/test/resources/queries/TestSelectQuery/datetime_table_timezoned_ddl.sql index 11014d8..131e619 100644 --- a/tajo-core/src/test/resources/queries/TestSelectQuery/datetime_table_timezoned_ddl.sql +++ b/tajo-core/src/test/resources/queries/TestSelectQuery/datetime_table_timezoned_ddl.sql @@ -1,4 +1,4 @@ CREATE EXTERNAL TABLE ${0} ( t_timestamp TIMESTAMP, t_date DATE -) USING TEXTFILE WITH ('timezone' = 'GMT+9') LOCATION ${table.path} \ No newline at end of file +) USING TEXT WITH ('timezone' = 'GMT+9') LOCATION ${table.path} http://git-wip-us.apache.org/repos/asf/tajo/blob/b7c8cf72/tajo-docs/src/main/sphinx/table_management/csv.rst ---------------------------------------------------------------------- diff --git a/tajo-docs/src/main/sphinx/table_management/csv.rst b/tajo-docs/src/main/sphinx/table_management/csv.rst index 37dc2ba..53c6e1d 100644 --- a/tajo-docs/src/main/sphinx/table_management/csv.rst +++ b/tajo-docs/src/main/sphinx/table_management/csv.rst @@ -110,6 +110,6 @@ clause in a Hive's ``CREATE TABLE`` statement as follows: CREATE TABLE table1 (id int, name string, score float, type string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' - STORED AS TEXTFILE + STORED AS TEXT -To the best of our knowledge, there is not way to specify a custom NULL character in Hive. \ No newline at end of file +To the best of our knowledge, there is not way to specify a custom NULL character in Hive. http://git-wip-us.apache.org/repos/asf/tajo/blob/b7c8cf72/tajo-docs/src/main/sphinx/table_management/table_overview.rst ---------------------------------------------------------------------- diff --git a/tajo-docs/src/main/sphinx/table_management/table_overview.rst b/tajo-docs/src/main/sphinx/table_management/table_overview.rst index 704d6aa..3d933c2 100644 --- a/tajo-docs/src/main/sphinx/table_management/table_overview.rst +++ b/tajo-docs/src/main/sphinx/table_management/table_overview.rst @@ -57,7 +57,7 @@ You can specify a table time zone as follows: CREATE EXTERNAL TABLE table1 ( t_timestamp TIMESTAMP, t_date DATE - ) USING TEXTFILE WITH('timezone'='ASIA/Seoul') LOCATION '/path-to-table/' + ) USING TEXT WITH('timezone'='ASIA/Seoul') LOCATION '/path-to-table/' -In order to learn time zone, please refer to :doc:`/time_zone`. \ No newline at end of file +In order to learn time zone, please refer to :doc:`/time_zone`. http://git-wip-us.apache.org/repos/asf/tajo/blob/b7c8cf72/tajo-docs/src/main/sphinx/time_zone.rst ---------------------------------------------------------------------- diff --git a/tajo-docs/src/main/sphinx/time_zone.rst b/tajo-docs/src/main/sphinx/time_zone.rst index 8225dee..101012f 100644 --- a/tajo-docs/src/main/sphinx/time_zone.rst +++ b/tajo-docs/src/main/sphinx/time_zone.rst @@ -36,7 +36,7 @@ You can specify a table time zone as follows: CREATE EXTERNAL TABLE table1 ( t_timestamp TIMESTAMP, t_date DATE - ) USING TEXTFILE WITH('timezone'='ASIA/Seoul') LOCATION '/path-to-table/' + ) USING TEXT WITH('timezone'='ASIA/Seoul') LOCATION '/path-to-table/' In order to learn table properties, please refer to :doc:`/table_management/table_overview`. @@ -102,7 +102,7 @@ In order to register the table, we should put a table property ``'timezone'='Asi CREATE EXTERNAL TABLE table1 ( t_timestamp TIMESTAMP, t_date DATE - ) USING TEXTFILE WITH('text.delimiter'='|', 'timezone'='ASIA/Seoul') LOCATION '/path-to-table/' + ) USING TEXT WITH('text.delimiter'='|', 'timezone'='ASIA/Seoul') LOCATION '/path-to-table/' By default, ``tsql`` and ``TajoClient`` API use UTC time zone. So, timestamp values in the result are adjusted by the time zone offset. But, date is not adjusted because date type does not consider time zone. @@ -126,4 +126,4 @@ In addition, users can set client-side time zone by setting a session variable ' ---------------------------------- 1980-04-01 01:50:30.01, 1980-04-01 1980-04-01 01:50:30 , 1980-04-01 - 1980-04-01 01:50:30 , 1980-04-01 \ No newline at end of file + 1980-04-01 01:50:30 , 1980-04-01
