TAJO-1758: Some TajoRuntimeException should be restored as TajoException in client side.
Closes #700 Project: http://git-wip-us.apache.org/repos/asf/tajo/repo Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/de1ca380 Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/de1ca380 Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/de1ca380 Branch: refs/heads/master Commit: de1ca380e599ec01a8dae673c36b496c5850c446 Parents: 2a850cf Author: Hyunsik Choi <[email protected]> Authored: Wed Aug 19 23:11:29 2015 +0900 Committer: Hyunsik Choi <[email protected]> Committed: Wed Aug 19 23:11:29 2015 +0900 ---------------------------------------------------------------------- CHANGES | 3 ++ .../tajo/catalog/store/HiveCatalogStore.java | 22 +++++++++------ .../tajo/catalog/store/HiveCatalogUtil.java | 19 ++++++------- .../apache/tajo/client/DummyServiceTracker.java | 11 ++++---- .../org/apache/tajo/client/ResultSetUtil.java | 3 +- .../tajo/client/v2/LegacyClientDelegate.java | 20 +++++++------- .../org/apache/tajo/storage/RowStoreUtil.java | 15 +++++----- .../apache/tajo/exception/ExceptionUtil.java | 9 ++---- .../exception/InvalidDataTypeException.java | 3 +- .../tajo/exception/NotImplementedException.java | 2 +- .../apache/tajo/exception/SQLSyntaxError.java | 2 +- .../tajo/exception/TajoRuntimeException.java | 20 ++++++++------ .../exception/UnsupportedDataTypeException.java | 2 +- .../tajo/exception/UnsupportedException.java | 10 +++---- .../java/org/apache/tajo/storage/VTuple.java | 5 ++-- .../tajo/cli/tsql/TestTajoCliNegatives.java | 9 ------ .../org/apache/tajo/client/TestTajoClient.java | 1 - .../tajo/engine/eval/TestEvalTreeUtil.java | 2 +- .../tajo/engine/query/TestInSubquery.java | 10 ++----- .../engine/codegen/TajoGeneratorAdapter.java | 3 +- .../apache/tajo/engine/parser/SQLAnalyzer.java | 13 +++++---- .../engine/planner/global/GlobalPlanner.java | 2 +- .../planner/physical/ComparableVector.java | 6 ++-- .../planner/physical/VectorizedSorter.java | 3 +- .../org/apache/tajo/master/GlobalEngine.java | 29 ++++++++++++-------- .../apache/tajo/master/exec/DDLExecutor.java | 6 ++-- .../tajo/session/InvalidSessionException.java | 3 +- .../org/apache/tajo/jdbc/MetaDataTuple.java | 16 +++++------ .../tajo/plan/expr/BasicEvalNodeVisitor.java | 3 +- .../org/apache/tajo/plan/expr/SubqueryEval.java | 7 +++-- .../tajo/plan/function/AggFunctionInvoke.java | 3 +- .../tajo/plan/function/FunctionInvoke.java | 3 +- .../plan/function/stream/CSVLineSerializer.java | 3 +- .../stream/TextFieldSerializerDeserializer.java | 3 +- .../tajo/plan/logical/SetSessionNode.java | 5 ++-- .../tajo/plan/nameresolver/NameResolver.java | 2 +- .../plan/serder/LogicalNodeDeserializer.java | 7 +++-- .../tajo/plan/serder/LogicalNodeSerializer.java | 4 ++- .../tajo/plan/verifier/LogicalPlanVerifier.java | 2 +- .../apache/tajo/storage/AbstractScanner.java | 23 ++++++++-------- .../org/apache/tajo/storage/FrameTuple.java | 17 ++++++------ .../java/org/apache/tajo/storage/LazyTuple.java | 3 +- .../org/apache/tajo/storage/MergeScanner.java | 3 +- .../org/apache/tajo/storage/NullScanner.java | 3 +- .../org/apache/tajo/storage/RowStoreUtil.java | 17 ++++++------ .../org/apache/tajo/storage/Tablespace.java | 3 +- .../apache/tajo/tuple/offheap/HeapTuple.java | 9 +++--- .../apache/tajo/tuple/offheap/UnSafeTuple.java | 9 +++--- .../apache/tajo/storage/hbase/HBaseScanner.java | 2 +- .../java/org/apache/tajo/storage/RawFile.java | 3 +- .../java/org/apache/tajo/storage/RowFile.java | 3 +- .../apache/tajo/storage/avro/AvroScanner.java | 3 +- .../tajo/storage/json/JsonLineDeserializer.java | 4 ++- .../tajo/storage/json/JsonLineSerializer.java | 4 ++- .../org/apache/tajo/storage/orc/ORCScanner.java | 6 ++-- .../tajo/storage/parquet/ParquetScanner.java | 3 +- .../org/apache/tajo/storage/rcfile/RCFile.java | 3 +- .../sequencefile/SequenceFileScanner.java | 3 +- .../tajo/storage/text/DelimitedLineReader.java | 6 ++-- .../tajo/storage/text/DelimitedTextFile.java | 3 +- 60 files changed, 230 insertions(+), 191 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/CHANGES ---------------------------------------------------------------------- diff --git a/CHANGES b/CHANGES index b77a3b0..fd8830b 100644 --- a/CHANGES +++ b/CHANGES @@ -499,6 +499,9 @@ Release 0.11.0 - unreleased SUB TASKS + TAJO-1758: Some TajoRuntimeException should be restored as TajoException + in client side. (hyunsik) + TAJO-1754: Implement several functions to handle json array. (jihoon) TAJO-1748: Refine client APIs to throw specific exceptions. (hyunsik) http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-catalog/tajo-catalog-drivers/tajo-hive/src/main/java/org/apache/tajo/catalog/store/HiveCatalogStore.java ---------------------------------------------------------------------- diff --git a/tajo-catalog/tajo-catalog-drivers/tajo-hive/src/main/java/org/apache/tajo/catalog/store/HiveCatalogStore.java b/tajo-catalog/tajo-catalog-drivers/tajo-hive/src/main/java/org/apache/tajo/catalog/store/HiveCatalogStore.java index b3e2b8e..2b03fec 100644 --- a/tajo-catalog/tajo-catalog-drivers/tajo-hive/src/main/java/org/apache/tajo/catalog/store/HiveCatalogStore.java +++ b/tajo-catalog/tajo-catalog-drivers/tajo-hive/src/main/java/org/apache/tajo/catalog/store/HiveCatalogStore.java @@ -190,7 +190,7 @@ public class HiveCatalogStore extends CatalogConstants implements CatalogStore { } else if (ColumnarSerDe.class.getName().equals(serde)) { options.set(StorageConstants.RCFILE_SERDE, StorageConstants.DEFAULT_TEXT_SERDE); } - } else if (storeType.equals("SEQUENCEFILE") ) { + } else if (storeType.equals("SEQUENCEFILE")) { options.set(StorageConstants.SEQUENCEFILE_DELIMITER, StringEscapeUtils.escapeJava(fieldDelimiter)); options.set(StorageConstants.SEQUENCEFILE_NULL, StringEscapeUtils.escapeJava(nullFormat)); String serde = properties.getProperty(serdeConstants.SERIALIZATION_LIB); @@ -244,6 +244,8 @@ public class HiveCatalogStore extends CatalogConstants implements CatalogStore { expressionSchema); } } + } catch (Throwable t) { + throw new TajoInternalError(t); } finally { if(client != null) client.release(); } @@ -314,7 +316,7 @@ public class HiveCatalogStore extends CatalogConstants implements CatalogStore { builder.setUri(defaultTableSpaceUri); return builder.build(); } else { - throw new UnsupportedException("Tablespace in HiveMeta"); + throw new TajoRuntimeException(new UnsupportedException("Tablespace in HiveMeta")); } } @@ -325,7 +327,7 @@ public class HiveCatalogStore extends CatalogConstants implements CatalogStore { @Override public void alterTablespace(CatalogProtos.AlterTablespaceProto alterProto) { - throw new UnsupportedException("Tablespace in HiveMeta"); + throw new TajoRuntimeException(new UnsupportedException("Tablespace in HiveMeta")); } @Override @@ -780,7 +782,7 @@ public class HiveCatalogStore extends CatalogConstants implements CatalogStore { FieldSchema fieldSchema = partitionKeys.get(i); TajoDataTypes.Type dataType = HiveCatalogUtil.getTajoFieldType(fieldSchema.getType().toString()); String fieldName = databaseName + CatalogConstants.IDENTIFIER_DELIMITER + tableName + - CatalogConstants.IDENTIFIER_DELIMITER + fieldSchema.getName(); + CatalogConstants.IDENTIFIER_DELIMITER + fieldSchema.getName(); expressionSchema.addColumn(new Column(fieldName, dataType)); if (i > 0) { sb.append(","); @@ -788,15 +790,17 @@ public class HiveCatalogStore extends CatalogConstants implements CatalogStore { sb.append(fieldSchema.getName()); } partitionMethodDesc = new PartitionMethodDesc( - databaseName, - tableName, - PartitionType.COLUMN, - sb.toString(), - expressionSchema); + databaseName, + tableName, + PartitionType.COLUMN, + sb.toString(), + expressionSchema); } } else { throw new UndefinedPartitionMethodException(tableName); } + } catch (Throwable t) { + throw new TajoInternalError(t); } finally { if(client != null) client.release(); } http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-catalog/tajo-catalog-drivers/tajo-hive/src/main/java/org/apache/tajo/catalog/store/HiveCatalogUtil.java ---------------------------------------------------------------------- diff --git a/tajo-catalog/tajo-catalog-drivers/tajo-hive/src/main/java/org/apache/tajo/catalog/store/HiveCatalogUtil.java b/tajo-catalog/tajo-catalog-drivers/tajo-hive/src/main/java/org/apache/tajo/catalog/store/HiveCatalogUtil.java index 7779b4f..67a1488 100644 --- a/tajo-catalog/tajo-catalog-drivers/tajo-hive/src/main/java/org/apache/tajo/catalog/store/HiveCatalogUtil.java +++ b/tajo-catalog/tajo-catalog-drivers/tajo-hive/src/main/java/org/apache/tajo/catalog/store/HiveCatalogUtil.java @@ -28,10 +28,7 @@ import org.apache.hadoop.hive.serde.serdeConstants; import org.apache.tajo.BuiltinStorages; import org.apache.tajo.catalog.proto.CatalogProtos; import org.apache.tajo.common.TajoDataTypes; -import org.apache.tajo.exception.ExceptionUtil; -import org.apache.tajo.exception.LMDNoMatchedDatatypeException; -import org.apache.tajo.exception.TajoException; -import org.apache.tajo.exception.TajoRuntimeException; +import org.apache.tajo.exception.*; import org.apache.thrift.TException; import parquet.hadoop.mapred.DeprecatedParquetOutputFormat; @@ -43,12 +40,12 @@ public class HiveCatalogUtil { String fieldType = fieldSchema.getType(); if (fieldType.equalsIgnoreCase("ARRAY") || fieldType.equalsIgnoreCase("STRUCT") || fieldType.equalsIgnoreCase("MAP")) { - throw makeNotSupported(fieldType.toUpperCase()); + throw new TajoRuntimeException(new UnsupportedException("data type '" + fieldType.toUpperCase() + "'")); } } } - public static TajoDataTypes.Type getTajoFieldType(String dataType) { + public static TajoDataTypes.Type getTajoFieldType(String dataType) throws LMDNoMatchedDatatypeException { Preconditions.checkNotNull(dataType); if(dataType.equalsIgnoreCase(serdeConstants.INT_TYPE_NAME)) { @@ -74,11 +71,11 @@ public class HiveCatalogUtil { } else if(dataType.equalsIgnoreCase(serdeConstants.DATE_TYPE_NAME)) { return TajoDataTypes.Type.DATE; } else { - throw new TajoRuntimeException(new LMDNoMatchedDatatypeException(dataType)); + throw new LMDNoMatchedDatatypeException(dataType); } } - public static String getHiveFieldType(TajoDataTypes.DataType dataType) { + public static String getHiveFieldType(TajoDataTypes.DataType dataType) throws LMDNoMatchedDatatypeException { Preconditions.checkNotNull(dataType); switch (dataType.getType()) { @@ -100,7 +97,7 @@ public class HiveCatalogUtil { case DATE: return serdeConstants.DATE_TYPE_NAME; case TIMESTAMP: return serdeConstants.TIMESTAMP_TYPE_NAME; default: - throw ExceptionUtil.makeInvalidDataType(dataType); + throw new LMDNoMatchedDatatypeException(dataType.getType().name()); } } @@ -109,7 +106,7 @@ public class HiveCatalogUtil { String[] fileFormatArrary = fileFormat.split("\\."); if(fileFormatArrary.length < 1) { - throw makeNotSupported(fileFormat); + throw new TajoRuntimeException(new UnknownDataFormatException(fileFormat)); } String outputFormatClass = fileFormatArrary[fileFormatArrary.length-1]; @@ -122,7 +119,7 @@ public class HiveCatalogUtil { } else if(outputFormatClass.equals(DeprecatedParquetOutputFormat.class.getSimpleName())) { return CatalogProtos.StoreType.PARQUET.name(); } else { - throw makeNotSupported(fileFormat); + throw new TajoRuntimeException(new UnknownDataFormatException(fileFormat)); } } http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-client/src/main/java/org/apache/tajo/client/DummyServiceTracker.java ---------------------------------------------------------------------- diff --git a/tajo-client/src/main/java/org/apache/tajo/client/DummyServiceTracker.java b/tajo-client/src/main/java/org/apache/tajo/client/DummyServiceTracker.java index cf826ea..fb2ba0c 100644 --- a/tajo-client/src/main/java/org/apache/tajo/client/DummyServiceTracker.java +++ b/tajo-client/src/main/java/org/apache/tajo/client/DummyServiceTracker.java @@ -19,6 +19,7 @@ package org.apache.tajo.client; import org.apache.tajo.conf.TajoConf; +import org.apache.tajo.exception.TajoRuntimeException; import org.apache.tajo.exception.UnsupportedException; import org.apache.tajo.service.ServiceTracker; import org.apache.tajo.service.ServiceTrackerException; @@ -43,7 +44,7 @@ public class DummyServiceTracker implements ServiceTracker { @Override public InetSocketAddress getUmbilicalAddress() { - throw new UnsupportedException(); + throw new TajoRuntimeException(new UnsupportedException()); } @Override @@ -53,17 +54,17 @@ public class DummyServiceTracker implements ServiceTracker { @Override public InetSocketAddress getResourceTrackerAddress() { - throw new UnsupportedException(); + throw new TajoRuntimeException(new UnsupportedException()); } @Override public InetSocketAddress getCatalogAddress() { - throw new UnsupportedException(); + throw new TajoRuntimeException(new UnsupportedException()); } @Override public InetSocketAddress getMasterHttpInfo() throws ServiceTrackerException { - throw new UnsupportedException(); + throw new TajoRuntimeException(new UnsupportedException()); } @Override @@ -96,6 +97,6 @@ public class DummyServiceTracker implements ServiceTracker { @Override public List<TajoMasterInfo> getMasters() throws IOException { - throw new UnsupportedException(); + throw new TajoRuntimeException(new UnsupportedException()); } } http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-client/src/main/java/org/apache/tajo/client/ResultSetUtil.java ---------------------------------------------------------------------- diff --git a/tajo-client/src/main/java/org/apache/tajo/client/ResultSetUtil.java b/tajo-client/src/main/java/org/apache/tajo/client/ResultSetUtil.java index 9211a1b..7f4746c 100644 --- a/tajo-client/src/main/java/org/apache/tajo/client/ResultSetUtil.java +++ b/tajo-client/src/main/java/org/apache/tajo/client/ResultSetUtil.java @@ -19,6 +19,7 @@ package org.apache.tajo.client; import org.apache.tajo.common.TajoDataTypes; +import org.apache.tajo.exception.TajoRuntimeException; import org.apache.tajo.exception.UnsupportedException; import java.sql.ResultSet; @@ -84,7 +85,7 @@ public class ResultSetUtil { case TEXT: return "varchar"; default: - throw new UnsupportedException("Unrecognized column type:" + type); + throw new TajoRuntimeException(new UnsupportedException("unknown data type '" + type.getType().name() + "'")); } } http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-client/src/main/java/org/apache/tajo/client/v2/LegacyClientDelegate.java ---------------------------------------------------------------------- diff --git a/tajo-client/src/main/java/org/apache/tajo/client/v2/LegacyClientDelegate.java b/tajo-client/src/main/java/org/apache/tajo/client/v2/LegacyClientDelegate.java index 12f8812..42edadf 100644 --- a/tajo-client/src/main/java/org/apache/tajo/client/v2/LegacyClientDelegate.java +++ b/tajo-client/src/main/java/org/apache/tajo/client/v2/LegacyClientDelegate.java @@ -434,52 +434,52 @@ public class LegacyClientDelegate extends SessionConnection implements ClientDel @Override public InetSocketAddress getResourceTrackerAddress() throws ServiceTrackerException { - throw new NotImplementedException(); + throw new TajoRuntimeException(new NotImplementedException()); } @Override public InetSocketAddress getCatalogAddress() throws ServiceTrackerException { - throw new NotImplementedException(); + throw new TajoRuntimeException(new NotImplementedException()); } @Override public InetSocketAddress getMasterHttpInfo() throws ServiceTrackerException { - throw new NotImplementedException(); + throw new TajoRuntimeException(new NotImplementedException()); } @Override public int getState(String masterName, TajoConf conf) throws ServiceTrackerException { - throw new NotImplementedException(); + throw new TajoRuntimeException(new NotImplementedException()); } @Override public int formatHA(TajoConf conf) throws ServiceTrackerException { - throw new NotImplementedException(); + throw new TajoRuntimeException(new NotImplementedException()); } @Override public List<String> getMasters(TajoConf conf) throws ServiceTrackerException { - throw new NotImplementedException(); + throw new TajoRuntimeException(new NotImplementedException()); } @Override public void register() throws IOException { - throw new NotImplementedException(); + throw new TajoRuntimeException(new NotImplementedException()); } @Override public void delete() throws IOException { - throw new NotImplementedException(); + throw new TajoRuntimeException(new NotImplementedException()); } @Override public boolean isActiveMaster() { - throw new NotImplementedException(); + throw new TajoRuntimeException(new NotImplementedException()); } @Override public List<TajoMasterInfo> getMasters() throws IOException { - throw new NotImplementedException(); + throw new TajoRuntimeException(new NotImplementedException()); } } http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-client/src/main/java/org/apache/tajo/storage/RowStoreUtil.java ---------------------------------------------------------------------- diff --git a/tajo-client/src/main/java/org/apache/tajo/storage/RowStoreUtil.java b/tajo-client/src/main/java/org/apache/tajo/storage/RowStoreUtil.java index 13b0201..4c7fe0a 100644 --- a/tajo-client/src/main/java/org/apache/tajo/storage/RowStoreUtil.java +++ b/tajo-client/src/main/java/org/apache/tajo/storage/RowStoreUtil.java @@ -23,7 +23,7 @@ import org.apache.tajo.catalog.Schema; import org.apache.tajo.common.TajoDataTypes; import org.apache.tajo.datum.DatumFactory; import org.apache.tajo.datum.IntervalDatum; -import org.apache.tajo.exception.UnsupportedDataTypeException; +import org.apache.tajo.exception.TajoRuntimeException; import org.apache.tajo.exception.UnsupportedException; import org.apache.tajo.exception.ValueTooLongForTypeCharactersException; import org.apache.tajo.util.BitArray; @@ -153,11 +153,10 @@ public class RowStoreUtil { bb.get(_ipv4); tuple.put(i, DatumFactory.createInet4(_ipv4)); break; - case INET6: - // TODO - to be implemented - throw new UnsupportedException(type.getType().name()); + default: - throw new RuntimeException(new UnsupportedDataTypeException(type.getType().name())); + throw new TajoRuntimeException( + new UnsupportedException("data type '" + col.getDataType().getType().name() + "'")); } } return tuple; @@ -258,7 +257,8 @@ public class RowStoreUtil { bb.put(tuple.getBytes(i)); break; default: - throw new RuntimeException(new UnsupportedDataTypeException(col.getDataType().getType().name())); + throw new TajoRuntimeException( + new UnsupportedException("data type '" + col.getDataType().getType().name() + "'")); } } @@ -319,7 +319,8 @@ public class RowStoreUtil { size += tuple.getBytes(i).length; break; default: - throw new RuntimeException(new UnsupportedDataTypeException(col.getDataType().getType().name())); + throw new TajoRuntimeException( + new UnsupportedException("data type '" + col.getDataType().getType().name() + "'")); } } http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-common/src/main/java/org/apache/tajo/exception/ExceptionUtil.java ---------------------------------------------------------------------- diff --git a/tajo-common/src/main/java/org/apache/tajo/exception/ExceptionUtil.java b/tajo-common/src/main/java/org/apache/tajo/exception/ExceptionUtil.java index 71dcfc4..2fd49ac 100644 --- a/tajo-common/src/main/java/org/apache/tajo/exception/ExceptionUtil.java +++ b/tajo-common/src/main/java/org/apache/tajo/exception/ExceptionUtil.java @@ -21,7 +21,6 @@ package org.apache.tajo.exception; import com.google.common.collect.Maps; import org.apache.commons.logging.Log; import org.apache.hadoop.util.StringUtils; -import org.apache.tajo.common.TajoDataTypes.DataType; import org.apache.tajo.error.Errors; import org.apache.tajo.rpc.protocolrecords.PrimitiveProtos.ReturnState; @@ -78,6 +77,7 @@ public class ExceptionUtil { ADD_EXCEPTION(UNAVAILABLE_TABLE_LOCATION, UnavailableTableLocationException.class); ADD_EXCEPTION(UNKNOWN_DATAFORMAT, UnknownDataFormatException.class); ADD_EXCEPTION(UNSUPPORTED_DATATYPE, UnsupportedDataTypeException.class); + ADD_EXCEPTION(INVALID_DATATYPE, InvalidDataTypeException.class); ADD_EXCEPTION(INVALID_TABLE_PROPERTY, InvalidTablePropertyException.class); ADD_EXCEPTION(MISSING_TABLE_PROPERTY, MissingTablePropertyException.class); } @@ -139,7 +139,8 @@ public class ExceptionUtil { } } else { - throw new TajoInternalError("Unknown exception: [" + state.getReturnCode().name() +"] " + state.getMessage()); + throw new TajoInternalError( + "Cannot restore the exception for [" + state.getReturnCode().name() +"] '" + state.getMessage() +"'"); } } @@ -188,8 +189,4 @@ public class ExceptionUtil { public static UnsupportedException makeNotSupported(String feature) { return new UnsupportedException(feature); } - - public static InvalidDataTypeException makeInvalidDataType(DataType dataType) { - return new InvalidDataTypeException(dataType); - } } http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-common/src/main/java/org/apache/tajo/exception/InvalidDataTypeException.java ---------------------------------------------------------------------- diff --git a/tajo-common/src/main/java/org/apache/tajo/exception/InvalidDataTypeException.java b/tajo-common/src/main/java/org/apache/tajo/exception/InvalidDataTypeException.java index fd2f0de..d231762 100644 --- a/tajo-common/src/main/java/org/apache/tajo/exception/InvalidDataTypeException.java +++ b/tajo-common/src/main/java/org/apache/tajo/exception/InvalidDataTypeException.java @@ -20,10 +20,9 @@ package org.apache.tajo.exception; import org.apache.tajo.common.TajoDataTypes.DataType; import org.apache.tajo.error.Errors; -import org.apache.tajo.rpc.protocolrecords.PrimitiveProtos; import org.apache.tajo.rpc.protocolrecords.PrimitiveProtos.ReturnState; -public class InvalidDataTypeException extends TajoRuntimeException { +public class InvalidDataTypeException extends TajoException { public InvalidDataTypeException(ReturnState state) { super(state); http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-common/src/main/java/org/apache/tajo/exception/NotImplementedException.java ---------------------------------------------------------------------- diff --git a/tajo-common/src/main/java/org/apache/tajo/exception/NotImplementedException.java b/tajo-common/src/main/java/org/apache/tajo/exception/NotImplementedException.java index 822eea1..3ba6739 100644 --- a/tajo-common/src/main/java/org/apache/tajo/exception/NotImplementedException.java +++ b/tajo-common/src/main/java/org/apache/tajo/exception/NotImplementedException.java @@ -21,7 +21,7 @@ package org.apache.tajo.exception; import org.apache.tajo.error.Errors; import org.apache.tajo.rpc.protocolrecords.PrimitiveProtos.ReturnState; -public class NotImplementedException extends TajoRuntimeException { +public class NotImplementedException extends TajoException { private static final long serialVersionUID = -5467580471721530536L; public NotImplementedException() { http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-common/src/main/java/org/apache/tajo/exception/SQLSyntaxError.java ---------------------------------------------------------------------- diff --git a/tajo-common/src/main/java/org/apache/tajo/exception/SQLSyntaxError.java b/tajo-common/src/main/java/org/apache/tajo/exception/SQLSyntaxError.java index 512ba36..8860321 100644 --- a/tajo-common/src/main/java/org/apache/tajo/exception/SQLSyntaxError.java +++ b/tajo-common/src/main/java/org/apache/tajo/exception/SQLSyntaxError.java @@ -22,7 +22,7 @@ package org.apache.tajo.exception; import org.apache.tajo.error.Errors; import org.apache.tajo.rpc.protocolrecords.PrimitiveProtos.ReturnState; -public class SQLSyntaxError extends TajoRuntimeException { +public class SQLSyntaxError extends TajoException { private static final long serialVersionUID = 5388279335175632067L; public SQLSyntaxError(ReturnState state) { http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-common/src/main/java/org/apache/tajo/exception/TajoRuntimeException.java ---------------------------------------------------------------------- diff --git a/tajo-common/src/main/java/org/apache/tajo/exception/TajoRuntimeException.java b/tajo-common/src/main/java/org/apache/tajo/exception/TajoRuntimeException.java index 071efa0..300f677 100644 --- a/tajo-common/src/main/java/org/apache/tajo/exception/TajoRuntimeException.java +++ b/tajo-common/src/main/java/org/apache/tajo/exception/TajoRuntimeException.java @@ -22,7 +22,7 @@ import org.apache.tajo.error.Errors.ResultCode; import org.apache.tajo.rpc.protocolrecords.PrimitiveProtos.ReturnState; /** - * It is used in unexpected cases or error that we know the cause. + * This is an runtime exception container to enclose a TajoException, an actual cause. * * @see @{link TajoException} */ @@ -30,22 +30,24 @@ public class TajoRuntimeException extends RuntimeException implements DefaultTaj private ResultCode code; public TajoRuntimeException(ReturnState state) { - super(state.getMessage()); + super(ExceptionUtil.toTajoException(state)); this.code = state.getReturnCode(); } - public TajoRuntimeException(ResultCode code) { - super(ErrorMessages.getMessage(code)); - this.code = code; - } - public TajoRuntimeException(ResultCode code, String ... args) { - super(ErrorMessages.getMessage(code, args)); + super( + ExceptionUtil.toTajoException( + ReturnState.newBuilder() + .setReturnCode(code) + .setMessage(ErrorMessages.getMessage(code, args)) + .build() + ) + ); this.code = code; } public TajoRuntimeException(TajoException e) { - super(e.getMessage()); + super(e); this.code = e.getErrorCode(); } http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-common/src/main/java/org/apache/tajo/exception/UnsupportedDataTypeException.java ---------------------------------------------------------------------- diff --git a/tajo-common/src/main/java/org/apache/tajo/exception/UnsupportedDataTypeException.java b/tajo-common/src/main/java/org/apache/tajo/exception/UnsupportedDataTypeException.java index 65ec777..b45199b 100644 --- a/tajo-common/src/main/java/org/apache/tajo/exception/UnsupportedDataTypeException.java +++ b/tajo-common/src/main/java/org/apache/tajo/exception/UnsupportedDataTypeException.java @@ -30,6 +30,6 @@ public class UnsupportedDataTypeException extends TajoException { } public UnsupportedDataTypeException(String dataType) { - super(Errors.ResultCode.UNKNOWN_DATAFORMAT, dataType); + super(Errors.ResultCode.UNSUPPORTED_DATATYPE, dataType); } } http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-common/src/main/java/org/apache/tajo/exception/UnsupportedException.java ---------------------------------------------------------------------- diff --git a/tajo-common/src/main/java/org/apache/tajo/exception/UnsupportedException.java b/tajo-common/src/main/java/org/apache/tajo/exception/UnsupportedException.java index a7a3915..6b98d9c 100644 --- a/tajo-common/src/main/java/org/apache/tajo/exception/UnsupportedException.java +++ b/tajo-common/src/main/java/org/apache/tajo/exception/UnsupportedException.java @@ -21,18 +21,18 @@ package org.apache.tajo.exception; import org.apache.tajo.error.Errors; import org.apache.tajo.rpc.protocolrecords.PrimitiveProtos.ReturnState; -public class UnsupportedException extends TajoRuntimeException { +public class UnsupportedException extends TajoException { private static final long serialVersionUID = 6702291354858193578L; public UnsupportedException(ReturnState state) { super(state); } - public UnsupportedException(String featureName) { - super(Errors.ResultCode.FEATURE_NOT_SUPPORTED, featureName); - } - public UnsupportedException() { super(Errors.ResultCode.FEATURE_NOT_SUPPORTED, Thread.currentThread().getStackTrace()[1].getClassName()); } + + public UnsupportedException(String featureName) { + super(Errors.ResultCode.FEATURE_NOT_SUPPORTED, featureName); + } } http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-common/src/main/java/org/apache/tajo/storage/VTuple.java ---------------------------------------------------------------------- diff --git a/tajo-common/src/main/java/org/apache/tajo/storage/VTuple.java b/tajo-common/src/main/java/org/apache/tajo/storage/VTuple.java index 90bb7fa..e8d0b05 100644 --- a/tajo-common/src/main/java/org/apache/tajo/storage/VTuple.java +++ b/tajo-common/src/main/java/org/apache/tajo/storage/VTuple.java @@ -25,6 +25,7 @@ import org.apache.tajo.datum.Inet4Datum; import org.apache.tajo.datum.IntervalDatum; import org.apache.tajo.datum.ProtobufDatum; import org.apache.tajo.exception.NotImplementedException; +import org.apache.tajo.exception.TajoRuntimeException; import org.apache.tajo.util.datetime.TimeMeta; import java.net.InetAddress; @@ -185,11 +186,11 @@ public class VTuple implements Tuple, Cloneable { } public InetAddress getIPv6(int fieldId) { - throw new NotImplementedException("IPv6 is unsupported yet"); + throw new TajoRuntimeException(new NotImplementedException()); } public byte[] getIPv6Bytes(int fieldId) { - throw new NotImplementedException("IPv6 is unsupported yet"); + throw new TajoRuntimeException(new NotImplementedException()); } @Override http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-core-tests/src/test/java/org/apache/tajo/cli/tsql/TestTajoCliNegatives.java ---------------------------------------------------------------------- diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/cli/tsql/TestTajoCliNegatives.java b/tajo-core-tests/src/test/java/org/apache/tajo/cli/tsql/TestTajoCliNegatives.java index edbeff6..c593859 100644 --- a/tajo-core-tests/src/test/java/org/apache/tajo/cli/tsql/TestTajoCliNegatives.java +++ b/tajo-core-tests/src/test/java/org/apache/tajo/cli/tsql/TestTajoCliNegatives.java @@ -56,15 +56,6 @@ public class TestTajoCliNegatives extends QueryTestCaseBase { out.reset(); } - public void assertMetaCommandFailures(String cmd) throws Exception { - Path resultFile = getResultFile(getMethodName() + ".result"); - String expected = FileUtil.readTextFile(new File(resultFile.toUri())); - - tajoCli.executeMetaCommand(cmd); - String consoleResult = new String(out.toByteArray()); - assertEquals(expected, consoleResult); - } - public void assertMetaCommandFailure(String cmd, String expectedMsg) throws Exception { tajoCli.executeMetaCommand(cmd); String consoleResult = new String(out.toByteArray()); http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-core-tests/src/test/java/org/apache/tajo/client/TestTajoClient.java ---------------------------------------------------------------------- diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/client/TestTajoClient.java b/tajo-core-tests/src/test/java/org/apache/tajo/client/TestTajoClient.java index 93a48f0..efadc7a 100644 --- a/tajo-core-tests/src/test/java/org/apache/tajo/client/TestTajoClient.java +++ b/tajo-core-tests/src/test/java/org/apache/tajo/client/TestTajoClient.java @@ -527,7 +527,6 @@ public class TestTajoClient { @Test public final void testFailCreateTablePartitionedOtherExceptColumn() throws IOException, TajoException { - TajoConf conf = cluster.getConfiguration(); final String tableName = "testFailCreateTablePartitionedOtherExceptColumn"; assertFalse(client.existTable(tableName)); http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-core-tests/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java ---------------------------------------------------------------------- diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java index 8c31550..5b6fda4 100644 --- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java +++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java @@ -136,9 +136,9 @@ public class TestEvalTreeUtil { } public static Target [] getRawTargets(String query) { - Expr expr = analyzer.parse(query); LogicalPlan plan = null; try { + Expr expr = analyzer.parse(query); plan = planner.createPlan(defaultContext, expr); } catch (TajoException e) { throw new RuntimeException(e); http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestInSubquery.java ---------------------------------------------------------------------- diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestInSubquery.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestInSubquery.java index fe465f1..3d7152a 100644 --- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestInSubquery.java +++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestInSubquery.java @@ -21,6 +21,7 @@ package org.apache.tajo.engine.query; import org.apache.tajo.IntegrationTest; import org.apache.tajo.NamedTest; import org.apache.tajo.error.Errors.ResultCode; +import org.apache.tajo.exception.NotImplementedException; import org.apache.tajo.exception.TajoRuntimeException; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -148,15 +149,10 @@ public class TestInSubquery extends TestJoinQuery { runSimpleTests(); } - @Test() + @Test(expected = NotImplementedException.class) public final void testCorrelatedSubQuery() throws Exception { // Use try-catch clause to verify the exact error message - try { - executeString("select * from nation where n_regionkey in (select r_regionkey from region where n_name > r_name)"); - fail("Correlated subquery must raise the UnimplementedException."); - } catch (TajoRuntimeException e) { - assertEquals(ResultCode.NOT_IMPLEMENTED, e.getErrorCode()); - } + executeString("select * from nation where n_regionkey in (select r_regionkey from region where n_name > r_name)"); } @Test http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-core/src/main/java/org/apache/tajo/engine/codegen/TajoGeneratorAdapter.java ---------------------------------------------------------------------- diff --git a/tajo-core/src/main/java/org/apache/tajo/engine/codegen/TajoGeneratorAdapter.java b/tajo-core/src/main/java/org/apache/tajo/engine/codegen/TajoGeneratorAdapter.java index 8c45fae..2fdafa0 100644 --- a/tajo-core/src/main/java/org/apache/tajo/engine/codegen/TajoGeneratorAdapter.java +++ b/tajo-core/src/main/java/org/apache/tajo/engine/codegen/TajoGeneratorAdapter.java @@ -23,6 +23,7 @@ import com.google.common.collect.Maps; import org.apache.tajo.common.TajoDataTypes; import org.apache.tajo.datum.*; import org.apache.tajo.exception.InvalidCastException; +import org.apache.tajo.exception.TajoRuntimeException; import org.apache.tajo.exception.UnsupportedException; import org.apache.tajo.org.objectweb.asm.Label; import org.apache.tajo.org.objectweb.asm.MethodVisitor; @@ -620,7 +621,7 @@ class TajoGeneratorAdapter { invokeVirtual(Datum.class, "asChars", String.class, new Class[]{}); break; default: - throw new UnsupportedException("Unsupported type: " + type); + throw new TajoRuntimeException(new UnsupportedException("data type '" + type + "'")); } pushNullFlag(true); http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-core/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java ---------------------------------------------------------------------- diff --git a/tajo-core/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java b/tajo-core/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java index 6d00dde..357c176 100644 --- a/tajo-core/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java +++ b/tajo-core/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java @@ -32,6 +32,7 @@ import org.apache.tajo.algebra.LiteralValue.LiteralType; import org.apache.tajo.algebra.Sort.SortSpec; import org.apache.tajo.engine.parser.SQLParser.*; import org.apache.tajo.exception.SQLSyntaxError; +import org.apache.tajo.exception.TajoRuntimeException; import org.apache.tajo.storage.StorageConstants; import org.apache.tajo.util.StringUtils; @@ -46,7 +47,7 @@ import static org.apache.tajo.engine.parser.SQLParser.*; public class SQLAnalyzer extends SQLParserBaseVisitor<Expr> { - public Expr parse(String sql) { + public Expr parse(String sql) throws SQLSyntaxError { ANTLRInputStream input = new ANTLRInputStream(sql); SQLLexer lexer = new SQLLexer(input); CommonTokenStream tokens = new CommonTokenStream(lexer); @@ -113,7 +114,7 @@ public class SQLAnalyzer extends SQLParserBaseVisitor<Expr> { return new SetSession(SessionVars.TIMEZONE.name(), value); } else { - throw new SQLSyntaxError("Unsupported session statement"); + throw new TajoRuntimeException(new SQLSyntaxError("Unsupported session statement")); } } @@ -1016,7 +1017,7 @@ public class SQLAnalyzer extends SQLParserBaseVisitor<Expr> { } else if (checkIfExist(matcher.REGEXP()) || checkIfExist(matcher.RLIKE())) { return new PatternMatchPredicate(OpType.Regexp, not, predicand, pattern); } else { - throw new SQLSyntaxError("Unsupported predicate: " + matcher.getText()); + throw new TajoRuntimeException(new SQLSyntaxError("Unsupported predicate: " + matcher.getText())); } } else if (checkIfExist(ctx.pattern_matcher().regex_matcher())) { Regex_matcherContext matcher = ctx.pattern_matcher().regex_matcher(); @@ -1029,10 +1030,10 @@ public class SQLAnalyzer extends SQLParserBaseVisitor<Expr> { } else if (checkIfExist(matcher.Not_Similar_To_Case_Insensitive())) { return new PatternMatchPredicate(OpType.Regexp, true, predicand, pattern, true); } else { - throw new SQLSyntaxError("Unsupported predicate: " + matcher.getText()); + throw new TajoRuntimeException(new SQLSyntaxError("Unsupported predicate: " + matcher.getText())); } } else { - throw new SQLSyntaxError("Unsupported predicate: " + ctx.pattern_matcher().getText()); + throw new TajoRuntimeException(new SQLSyntaxError("Unsupported predicate: " + ctx.pattern_matcher().getText())); } } @@ -1413,7 +1414,7 @@ public class SQLAnalyzer extends SQLParserBaseVisitor<Expr> { } else if (checkIfExist(ctx.column_partitions())) { // For Column Partition (Hive Style) return new CreateTable.ColumnPartition(getDefinitions(ctx.column_partitions().table_elements())); } else { - throw new SQLSyntaxError("Invalid Partition Type: " + ctx.toStringTree()); + throw new TajoRuntimeException(new SQLSyntaxError("Invalid Partition Type: " + ctx.toStringTree())); } } http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java ---------------------------------------------------------------------- diff --git a/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java b/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java index b10dd1b..8c6aa8c 100644 --- a/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java +++ b/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java @@ -474,7 +474,7 @@ public class GlobalPlanner { rewritten.secondStageEvals = createMinFunction(new EvalNode[]{fieldEval}); } else { - throw new UnsupportedException("Cannot support a mix of other functions"); + throw new UnsupportedException("a mix of other functions"); } return rewritten; http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/ComparableVector.java ---------------------------------------------------------------------- diff --git a/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/ComparableVector.java b/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/ComparableVector.java index a298564..7f39850 100644 --- a/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/ComparableVector.java +++ b/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/ComparableVector.java @@ -32,6 +32,7 @@ import org.apache.tajo.datum.Datum; import org.apache.tajo.datum.DatumFactory; import org.apache.tajo.datum.NullDatum; import org.apache.tajo.datum.TextDatum; +import org.apache.tajo.exception.TajoRuntimeException; import org.apache.tajo.exception.UnsupportedException; import org.apache.tajo.storage.Tuple; import org.apache.tajo.storage.VTuple; @@ -356,9 +357,10 @@ public class ComparableVector { case TEXT: case CHAR: case BLOB: return 7; case INET4: return 8; case NULL_TYPE: return -1; + default: + throw new TajoRuntimeException(new UnsupportedException("data type '" + type.name() + "'")); } - // todo - throw new UnsupportedException(type.name()); + } private static TupleType[] tupleTypes(Schema schema, int[] keyIndex) { http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/VectorizedSorter.java ---------------------------------------------------------------------- diff --git a/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/VectorizedSorter.java b/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/VectorizedSorter.java index d750f15..82f7153 100644 --- a/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/VectorizedSorter.java +++ b/tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/VectorizedSorter.java @@ -21,6 +21,7 @@ package org.apache.tajo.engine.planner.physical; import org.apache.hadoop.util.IndexedSortable; import org.apache.hadoop.util.QuickSort; import org.apache.tajo.catalog.SortSpec; +import org.apache.tajo.exception.TajoRuntimeException; import org.apache.tajo.exception.UnsupportedException; import org.apache.tajo.storage.Tuple; @@ -68,7 +69,7 @@ public class VectorizedSorter extends ComparableVector implements IndexedSortabl int index; public boolean hasNext() { return index < mappings.length; } public Tuple next() { return tuples[mappings[index++]]; } - public void remove() { throw new UnsupportedException(); } + public void remove() { throw new TajoRuntimeException(new UnsupportedException()); } }; } }; http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java ---------------------------------------------------------------------- diff --git a/tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java b/tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java index f1f1e3e..11bbe33 100644 --- a/tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java +++ b/tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java @@ -36,12 +36,8 @@ import org.apache.tajo.catalog.Schema; import org.apache.tajo.catalog.TableDesc; import org.apache.tajo.conf.TajoConf; import org.apache.tajo.engine.parser.SQLAnalyzer; -import org.apache.tajo.exception.SQLSyntaxError; +import org.apache.tajo.exception.*; import org.apache.tajo.engine.query.QueryContext; -import org.apache.tajo.exception.ExceptionUtil; -import org.apache.tajo.exception.ReturnStateUtil; -import org.apache.tajo.exception.TajoException; -import org.apache.tajo.exception.TajoRuntimeException; import org.apache.tajo.master.TajoMaster.MasterContext; import org.apache.tajo.master.exec.DDLExecutor; import org.apache.tajo.master.exec.QueryExecutor; @@ -64,6 +60,7 @@ import org.apache.tajo.util.CommonTestingUtil; import java.io.IOException; import java.sql.SQLException; +import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import static org.apache.tajo.ipc.ClientProtos.SubmitQueryResponse; @@ -215,19 +212,27 @@ public class GlobalEngine extends AbstractService { return JsonHelper.fromJson(json, Expr.class); } - public Expr buildExpressionFromSql(String sql, Session session) throws InterruptedException, IOException, - IllegalQueryStatusException { + public Expr buildExpressionFromSql(String sql, Session session) throws TajoException { try { + if (session.getQueryCache() == null) { return analyzer.parse(sql); + } else { - return (Expr) session.getQueryCache().get(sql.trim()).clone(); + try { + return (Expr) session.getQueryCache().get(sql.trim()).clone(); + } catch (ExecutionException e) { + throw e.getCause(); + } } - } catch (Exception e) { - if (e.getCause() instanceof SQLSyntaxError) { - throw (SQLSyntaxError) e.getCause(); + + } catch (Throwable t) { + if (t instanceof TajoException) { + throw (TajoException)t; + } else if (t instanceof TajoRuntimeException) { + throw (TajoException)t.getCause(); } else { - throw new SQLSyntaxError(e.getCause().getMessage()); + throw new TajoInternalError(t); } } } http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-core/src/main/java/org/apache/tajo/master/exec/DDLExecutor.java ---------------------------------------------------------------------- diff --git a/tajo-core/src/main/java/org/apache/tajo/master/exec/DDLExecutor.java b/tajo-core/src/main/java/org/apache/tajo/master/exec/DDLExecutor.java index f7e2fe9..09bef44 100644 --- a/tajo-core/src/main/java/org/apache/tajo/master/exec/DDLExecutor.java +++ b/tajo-core/src/main/java/org/apache/tajo/master/exec/DDLExecutor.java @@ -359,7 +359,8 @@ public class DDLExecutor { TableDesc tableDesc = catalog.getTableDesc(databaseName, simpleTableName); if (tableDesc.isExternal()) { - throw new UnsupportedException("table truncation on an external table '" + eachTableName + "'"); + throw new TajoRuntimeException( + new UnsupportedException("table truncation on an external table '" + eachTableName + "'")); } Tablespace space = TablespaceManager.get(tableDesc.getUri()).get(); @@ -367,7 +368,8 @@ public class DDLExecutor { if (space instanceof FileTablespace) { tableDescList.add(tableDesc); } else { - throw new UnsupportedException("table truncation on " + space.getName() + " storage"); + throw new TajoRuntimeException( + new UnsupportedException("table truncation on " + space.getName() + " storage")); } } http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-core/src/main/java/org/apache/tajo/session/InvalidSessionException.java ---------------------------------------------------------------------- diff --git a/tajo-core/src/main/java/org/apache/tajo/session/InvalidSessionException.java b/tajo-core/src/main/java/org/apache/tajo/session/InvalidSessionException.java index 5aedffb..00085e5 100644 --- a/tajo-core/src/main/java/org/apache/tajo/session/InvalidSessionException.java +++ b/tajo-core/src/main/java/org/apache/tajo/session/InvalidSessionException.java @@ -19,9 +19,10 @@ package org.apache.tajo.session; import org.apache.tajo.error.Errors; +import org.apache.tajo.exception.TajoException; import org.apache.tajo.exception.TajoRuntimeException; -public class InvalidSessionException extends TajoRuntimeException { +public class InvalidSessionException extends TajoException { public InvalidSessionException(String sessionId) { super(Errors.ResultCode.INVALID_SESSION, sessionId); } http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/MetaDataTuple.java ---------------------------------------------------------------------- diff --git a/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/MetaDataTuple.java b/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/MetaDataTuple.java index 28b6b3c..bd078f6 100644 --- a/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/MetaDataTuple.java +++ b/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/MetaDataTuple.java @@ -95,7 +95,7 @@ public class MetaDataTuple implements Tuple { @Override public void clearOffset() { - throw new UnsupportedException(); + throw new TajoRuntimeException(new UnsupportedException()); } @Override @@ -105,12 +105,12 @@ public class MetaDataTuple implements Tuple { @Override public void setOffset(long offset) { - throw new UnsupportedException(); + throw new TajoRuntimeException(new UnsupportedException()); } @Override public long getOffset() { - throw new UnsupportedException(); + throw new TajoRuntimeException(new UnsupportedException()); } @Override @@ -130,7 +130,7 @@ public class MetaDataTuple implements Tuple { @Override public byte [] getBytes(int fieldId) { - throw new UnsupportedException(); + throw new TajoRuntimeException(new UnsupportedException()); } @Override @@ -175,12 +175,12 @@ public class MetaDataTuple implements Tuple { @Override public ProtobufDatum getProtobufDatum(int fieldId) { - throw new UnsupportedException(); + throw new TajoRuntimeException(new UnsupportedException()); } @Override public IntervalDatum getInterval(int fieldId) { - throw new UnsupportedException(); + throw new TajoRuntimeException(new UnsupportedException()); } @Override @@ -190,11 +190,11 @@ public class MetaDataTuple implements Tuple { @Override public Tuple clone() throws CloneNotSupportedException { - throw new UnsupportedException(); + throw new TajoRuntimeException(new UnsupportedException()); } @Override public Datum[] getValues(){ - throw new UnsupportedException(); + throw new TajoRuntimeException(new UnsupportedException()); } } http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-plan/src/main/java/org/apache/tajo/plan/expr/BasicEvalNodeVisitor.java ---------------------------------------------------------------------- diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/expr/BasicEvalNodeVisitor.java b/tajo-plan/src/main/java/org/apache/tajo/plan/expr/BasicEvalNodeVisitor.java index 84da79e..b0df318 100644 --- a/tajo-plan/src/main/java/org/apache/tajo/plan/expr/BasicEvalNodeVisitor.java +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/expr/BasicEvalNodeVisitor.java @@ -18,6 +18,7 @@ package org.apache.tajo.plan.expr; +import org.apache.tajo.exception.TajoRuntimeException; import org.apache.tajo.exception.UnsupportedException; import java.util.Stack; @@ -141,7 +142,7 @@ public class BasicEvalNodeVisitor<CONTEXT, RESULT> implements EvalNodeVisitor2<C break; default: - throw new UnsupportedException("Unknown EvalType: " + evalNode); + throw new TajoRuntimeException(new UnsupportedException("EvalType '" + evalNode + "'")); } return result; http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-plan/src/main/java/org/apache/tajo/plan/expr/SubqueryEval.java ---------------------------------------------------------------------- diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/expr/SubqueryEval.java b/tajo-plan/src/main/java/org/apache/tajo/plan/expr/SubqueryEval.java index 98c36a1..f2af073 100644 --- a/tajo-plan/src/main/java/org/apache/tajo/plan/expr/SubqueryEval.java +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/expr/SubqueryEval.java @@ -22,6 +22,7 @@ import org.apache.tajo.annotation.Nullable; import org.apache.tajo.catalog.Schema; import org.apache.tajo.common.TajoDataTypes.DataType; import org.apache.tajo.datum.Datum; +import org.apache.tajo.exception.TajoRuntimeException; import org.apache.tajo.exception.UnsupportedException; import org.apache.tajo.plan.logical.TableSubQueryNode; import org.apache.tajo.storage.Tuple; @@ -54,12 +55,12 @@ public class SubqueryEval extends ValueSetEval { @Override public EvalNode bind(@Nullable EvalContext evalContext, Schema schema) { - throw new UnsupportedException("Cannot call bind()"); + throw new TajoRuntimeException(new UnsupportedException()); } @Override public Datum eval(Tuple tuple) { - throw new UnsupportedException("Cannot call eval()"); + throw new TajoRuntimeException(new UnsupportedException()); } public TableSubQueryNode getSubQueryNode() { @@ -94,6 +95,6 @@ public class SubqueryEval extends ValueSetEval { @Override public Datum[] getValues() { - throw new UnsupportedException("Cannot call getValues()"); + throw new TajoRuntimeException(new UnsupportedException()); } } http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-plan/src/main/java/org/apache/tajo/plan/function/AggFunctionInvoke.java ---------------------------------------------------------------------- diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/function/AggFunctionInvoke.java b/tajo-plan/src/main/java/org/apache/tajo/plan/function/AggFunctionInvoke.java index 4930938..bed7dd6 100644 --- a/tajo-plan/src/main/java/org/apache/tajo/plan/function/AggFunctionInvoke.java +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/function/AggFunctionInvoke.java @@ -22,6 +22,7 @@ import com.google.gson.annotations.Expose; import org.apache.tajo.catalog.FunctionDesc; import org.apache.tajo.common.TajoDataTypes; import org.apache.tajo.datum.Datum; +import org.apache.tajo.exception.TajoRuntimeException; import org.apache.tajo.exception.UnsupportedException; import org.apache.tajo.storage.Tuple; @@ -41,7 +42,7 @@ public abstract class AggFunctionInvoke implements Cloneable { } else if (desc.getInvocation().hasPythonAggregation()) { return new PythonAggFunctionInvoke(desc); } else { - throw new UnsupportedException(desc.getInvocation() + " is not supported"); + throw new TajoRuntimeException(new UnsupportedException(desc.getInvocation().toString())); } } http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-plan/src/main/java/org/apache/tajo/plan/function/FunctionInvoke.java ---------------------------------------------------------------------- diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/function/FunctionInvoke.java b/tajo-plan/src/main/java/org/apache/tajo/plan/function/FunctionInvoke.java index b591b0a..8db90ec 100644 --- a/tajo-plan/src/main/java/org/apache/tajo/plan/function/FunctionInvoke.java +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/function/FunctionInvoke.java @@ -21,6 +21,7 @@ package org.apache.tajo.plan.function; import com.google.gson.annotations.Expose; import org.apache.tajo.catalog.FunctionDesc; import org.apache.tajo.datum.Datum; +import org.apache.tajo.exception.TajoRuntimeException; import org.apache.tajo.exception.UnsupportedException; import org.apache.tajo.storage.Tuple; @@ -47,7 +48,7 @@ public abstract class FunctionInvoke implements Cloneable { } else if (desc.getInvocation().hasPython()) { return new PythonFunctionInvoke(desc); } else { - throw new UnsupportedException(desc.getInvocation() + " is not supported"); + throw new TajoRuntimeException(new UnsupportedException("function invocation '" + desc.getInvocation() + "'")); } } http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-plan/src/main/java/org/apache/tajo/plan/function/stream/CSVLineSerializer.java ---------------------------------------------------------------------- diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/function/stream/CSVLineSerializer.java b/tajo-plan/src/main/java/org/apache/tajo/plan/function/stream/CSVLineSerializer.java index 77f0a03..08874fd 100644 --- a/tajo-plan/src/main/java/org/apache/tajo/plan/function/stream/CSVLineSerializer.java +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/function/stream/CSVLineSerializer.java @@ -23,6 +23,7 @@ import org.apache.tajo.catalog.TableMeta; import org.apache.tajo.common.TajoDataTypes; import org.apache.tajo.datum.AnyDatum; import org.apache.tajo.datum.Datum; +import org.apache.tajo.exception.TajoRuntimeException; import org.apache.tajo.exception.UnsupportedException; import org.apache.tajo.plan.function.FunctionContext; import org.apache.tajo.plan.function.PythonAggFunctionInvoke.PythonAggFunctionContext; @@ -142,7 +143,7 @@ public class CSVLineSerializer extends TextLineSerializer { case INET6: return "A"; default: - throw new UnsupportedException(val.type().name()); + throw new TajoRuntimeException(new UnsupportedException("data type '" + val.type().name() + "'")); } } } http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-plan/src/main/java/org/apache/tajo/plan/function/stream/TextFieldSerializerDeserializer.java ---------------------------------------------------------------------- diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/function/stream/TextFieldSerializerDeserializer.java b/tajo-plan/src/main/java/org/apache/tajo/plan/function/stream/TextFieldSerializerDeserializer.java index c22a0f2..5bd157b 100644 --- a/tajo-plan/src/main/java/org/apache/tajo/plan/function/stream/TextFieldSerializerDeserializer.java +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/function/stream/TextFieldSerializerDeserializer.java @@ -28,6 +28,7 @@ import org.apache.tajo.catalog.TableMeta; import org.apache.tajo.common.TajoDataTypes; import org.apache.tajo.datum.*; import org.apache.tajo.datum.protobuf.ProtobufJsonFormat; +import org.apache.tajo.exception.TajoRuntimeException; import org.apache.tajo.exception.UnsupportedException; import org.apache.tajo.exception.ValueTooLongForTypeCharactersException; import org.apache.tajo.storage.StorageConstants; @@ -148,7 +149,7 @@ public class TextFieldSerializerDeserializer implements FieldSerializerDeseriali nullChars); break; default: - throw new UnsupportedException(dataType.getType().name()); + throw new TajoRuntimeException(new UnsupportedException("data type '" + dataType.getType().name() + "'")); } return length; } http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-plan/src/main/java/org/apache/tajo/plan/logical/SetSessionNode.java ---------------------------------------------------------------------- diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/logical/SetSessionNode.java b/tajo-plan/src/main/java/org/apache/tajo/plan/logical/SetSessionNode.java index 117315f..4876845 100644 --- a/tajo-plan/src/main/java/org/apache/tajo/plan/logical/SetSessionNode.java +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/logical/SetSessionNode.java @@ -19,7 +19,8 @@ package org.apache.tajo.plan.logical; import com.google.gson.annotations.Expose; -import org.apache.tajo.exception.UnsupportedException; +import org.apache.tajo.exception.NotImplementedException; +import org.apache.tajo.exception.TajoInternalError; import org.apache.tajo.plan.PlanString; public class SetSessionNode extends LogicalNode { @@ -61,7 +62,7 @@ public class SetSessionNode extends LogicalNode { @Override public LogicalNode getChild(int idx) { - throw new UnsupportedException(); + throw new TajoInternalError(new NotImplementedException()); } @Override http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-plan/src/main/java/org/apache/tajo/plan/nameresolver/NameResolver.java ---------------------------------------------------------------------- diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/nameresolver/NameResolver.java b/tajo-plan/src/main/java/org/apache/tajo/plan/nameresolver/NameResolver.java index f5b9c43..3b39a10 100644 --- a/tajo-plan/src/main/java/org/apache/tajo/plan/nameresolver/NameResolver.java +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/nameresolver/NameResolver.java @@ -163,7 +163,7 @@ public abstract class NameResolver { LogicalPlan.QueryBlock parentBlock = plan.getParentBlock(current); for (RelationNode relationNode : parentBlock.getRelations()) { if (relationNode.getLogicalSchema().containsByQualifiedName(columnRef.getCanonicalName())) { - throw new NotImplementedException("Correlated subquery"); + throw new TajoRuntimeException(new NotImplementedException("Correlated subquery")); } } current = parentBlock; http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-plan/src/main/java/org/apache/tajo/plan/serder/LogicalNodeDeserializer.java ---------------------------------------------------------------------- diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/serder/LogicalNodeDeserializer.java b/tajo-plan/src/main/java/org/apache/tajo/plan/serder/LogicalNodeDeserializer.java index 6ba525d..d90f1b0 100644 --- a/tajo-plan/src/main/java/org/apache/tajo/plan/serder/LogicalNodeDeserializer.java +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/serder/LogicalNodeDeserializer.java @@ -31,6 +31,7 @@ import org.apache.tajo.catalog.TableDesc; import org.apache.tajo.catalog.partition.PartitionMethodDesc; import org.apache.tajo.catalog.proto.CatalogProtos; import org.apache.tajo.exception.NotImplementedException; +import org.apache.tajo.exception.TajoRuntimeException; import org.apache.tajo.plan.Target; import org.apache.tajo.plan.expr.*; import org.apache.tajo.plan.logical.*; @@ -598,7 +599,8 @@ public class LogicalNodeDeserializer { alterTablespace.setLocation(alterTablespaceProto.getSetLocation().getLocation()); break; default: - throw new NotImplementedException("Unknown SET type in ALTER TABLE: " + alterTablespaceProto.getSetType().name()); + throw new TajoRuntimeException( + new NotImplementedException("Unknown SET type in ALTER TABLE: " + alterTablespaceProto.getSetType().name())); } return alterTablespace; @@ -647,7 +649,8 @@ public class LogicalNodeDeserializer { alterTable.setIfExists(alterPartition.getIfExists()); break; default: - throw new NotImplementedException("Unknown SET type in ALTER TABLE: " + alterTableProto.getSetType().name()); + throw new TajoRuntimeException( + new NotImplementedException("Unknown SET type in ALTER TABLE: " + alterTableProto.getSetType().name())); } return alterTable; http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-plan/src/main/java/org/apache/tajo/plan/serder/LogicalNodeSerializer.java ---------------------------------------------------------------------- diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/serder/LogicalNodeSerializer.java b/tajo-plan/src/main/java/org/apache/tajo/plan/serder/LogicalNodeSerializer.java index 13d6433..7e61f30 100644 --- a/tajo-plan/src/main/java/org/apache/tajo/plan/serder/LogicalNodeSerializer.java +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/serder/LogicalNodeSerializer.java @@ -26,6 +26,7 @@ import org.apache.tajo.catalog.proto.CatalogProtos; import org.apache.tajo.exception.TajoException; import org.apache.tajo.exception.TajoInternalError; import org.apache.tajo.exception.NotImplementedException; +import org.apache.tajo.exception.TajoRuntimeException; import org.apache.tajo.plan.LogicalPlan; import org.apache.tajo.plan.Target; import org.apache.tajo.plan.logical.*; @@ -633,7 +634,8 @@ public class LogicalNodeSerializer extends BasicLogicalPlanVisitor<LogicalNodeSe alterTableBuilder.setAlterPartition(partitionBuilder); break; default: - throw new NotImplementedException("Unknown SET type in ALTER TABLE: " + node.getAlterTableOpType().name()); + throw new TajoRuntimeException( + new NotImplementedException("Unknown SET type in ALTER TABLE: " + node.getAlterTableOpType().name())); } PlanProto.LogicalNode.Builder nodeBuilder = createNodeBuilder(context, node); http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-plan/src/main/java/org/apache/tajo/plan/verifier/LogicalPlanVerifier.java ---------------------------------------------------------------------- diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/verifier/LogicalPlanVerifier.java b/tajo-plan/src/main/java/org/apache/tajo/plan/verifier/LogicalPlanVerifier.java index 57e8e3e..0b0968e 100644 --- a/tajo-plan/src/main/java/org/apache/tajo/plan/verifier/LogicalPlanVerifier.java +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/verifier/LogicalPlanVerifier.java @@ -72,7 +72,7 @@ public class LogicalPlanVerifier extends BasicLogicalPlanVisitor<LogicalPlanVeri Column outputColumn = outputSchema.getColumn(i); if (outputColumn.getDataType().getType() == Type.RECORD) { - context.state.addVerification(new UnsupportedException("RECORD field projection")); + context.state.addVerification(new UnsupportedException("record field in select list")); } if (!outputColumn.getDataType().equals(targetSchema.getColumn(i).getDataType())) { http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/AbstractScanner.java ---------------------------------------------------------------------- diff --git a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/AbstractScanner.java b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/AbstractScanner.java index b57782c..c3dc959 100644 --- a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/AbstractScanner.java +++ b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/AbstractScanner.java @@ -22,6 +22,7 @@ import org.apache.tajo.catalog.Column; import org.apache.tajo.catalog.Schema; import org.apache.tajo.catalog.statistics.TableStats; import org.apache.tajo.exception.NotImplementedException; +import org.apache.tajo.exception.TajoRuntimeException; import org.apache.tajo.exception.UnsupportedException; import org.apache.tajo.plan.expr.EvalNode; @@ -34,56 +35,56 @@ public abstract class AbstractScanner implements Scanner { @Override public void init() throws IOException { - throw new NotImplementedException(); + throw new TajoRuntimeException(new NotImplementedException()); } @Override public void reset() throws IOException { - throw new NotImplementedException(); + throw new TajoRuntimeException(new NotImplementedException()); } @Override public void close() throws IOException { - throw new NotImplementedException(); + throw new TajoRuntimeException(new NotImplementedException()); } @Override public boolean isProjectable() { - throw new NotImplementedException(); + throw new TajoRuntimeException(new NotImplementedException()); } @Override public void setTarget(Column[] targets) { - throw new UnsupportedException(); + throw new TajoRuntimeException(new UnsupportedException()); } @Override public boolean isSelectable() { - throw new NotImplementedException(); + throw new TajoRuntimeException(new NotImplementedException()); } @Override public void setFilter(EvalNode filter) { - throw new UnsupportedException(); + throw new TajoRuntimeException(new UnsupportedException()); } @Override public boolean isSplittable() { - throw new NotImplementedException(); + throw new TajoRuntimeException(new NotImplementedException()); } @Override public float getProgress() { - throw new NotImplementedException(); + throw new TajoRuntimeException(new NotImplementedException()); } @Override public TableStats getInputStats() { - throw new NotImplementedException(); + throw new TajoRuntimeException(new NotImplementedException()); } @Override public Schema getSchema() { - throw new NotImplementedException(); + throw new TajoRuntimeException(new NotImplementedException()); } } http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/FrameTuple.java ---------------------------------------------------------------------- diff --git a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/FrameTuple.java b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/FrameTuple.java index de39d08..ce47337 100644 --- a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/FrameTuple.java +++ b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/FrameTuple.java @@ -26,6 +26,7 @@ import org.apache.tajo.common.TajoDataTypes; import org.apache.tajo.datum.Datum; import org.apache.tajo.datum.IntervalDatum; import org.apache.tajo.datum.ProtobufDatum; +import org.apache.tajo.exception.TajoRuntimeException; import org.apache.tajo.exception.UnsupportedException; import org.apache.tajo.util.datetime.TimeMeta; @@ -96,22 +97,22 @@ public class FrameTuple implements Tuple, Cloneable { @Override public void put(int fieldId, Tuple tuple) { - throw new UnsupportedException(); + throw new TajoRuntimeException(new UnsupportedException()); } @Override public void clear() { - throw new UnsupportedException(); + throw new TajoRuntimeException(new UnsupportedException()); } @Override public void put(int fieldId, Datum value) { - throw new UnsupportedException(); + throw new TajoRuntimeException(new UnsupportedException()); } @Override public void put(Datum[] values) { - throw new UnsupportedException(); + throw new TajoRuntimeException(new UnsupportedException()); } @Override @@ -126,17 +127,17 @@ public class FrameTuple implements Tuple, Cloneable { @Override public void clearOffset() { - throw new UnsupportedException(); + throw new TajoRuntimeException(new UnsupportedException()); } @Override public void setOffset(long offset) { - throw new UnsupportedException(); + throw new TajoRuntimeException(new UnsupportedException()); } @Override public long getOffset() { - throw new UnsupportedException(); + throw new TajoRuntimeException(new UnsupportedException()); } @Override @@ -235,7 +236,7 @@ public class FrameTuple implements Tuple, Cloneable { @Override public Datum[] getValues(){ - throw new UnsupportedException(); + throw new TajoRuntimeException(new UnsupportedException()); } public String toString() { http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/LazyTuple.java ---------------------------------------------------------------------- diff --git a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/LazyTuple.java b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/LazyTuple.java index d4597fa..819e4d0 100644 --- a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/LazyTuple.java +++ b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/LazyTuple.java @@ -24,6 +24,7 @@ import org.apache.tajo.datum.Datum; import org.apache.tajo.datum.IntervalDatum; import org.apache.tajo.datum.NullDatum; import org.apache.tajo.datum.ProtobufDatum; +import org.apache.tajo.exception.TajoRuntimeException; import org.apache.tajo.exception.UnsupportedException; import org.apache.tajo.util.datetime.TimeMeta; @@ -222,7 +223,7 @@ public class LazyTuple implements Tuple, Cloneable { @Override public ProtobufDatum getProtobufDatum(int fieldId) { - throw new UnsupportedException(); + throw new TajoRuntimeException(new UnsupportedException()); } @Override http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/MergeScanner.java ---------------------------------------------------------------------- diff --git a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/MergeScanner.java b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/MergeScanner.java index 87f0310..db64992 100644 --- a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/MergeScanner.java +++ b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/MergeScanner.java @@ -25,6 +25,7 @@ import org.apache.tajo.catalog.TableMeta; import org.apache.tajo.catalog.statistics.ColumnStats; import org.apache.tajo.catalog.statistics.TableStats; import org.apache.tajo.conf.TajoConf; +import org.apache.tajo.exception.TajoRuntimeException; import org.apache.tajo.exception.UnsupportedException; import org.apache.tajo.plan.expr.EvalNode; import org.apache.tajo.storage.fragment.Fragment; @@ -168,7 +169,7 @@ public class MergeScanner implements Scanner { @Override public void setFilter(EvalNode filter) { - throw new UnsupportedException(); + throw new TajoRuntimeException(new UnsupportedException()); } @Override http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/NullScanner.java ---------------------------------------------------------------------- diff --git a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/NullScanner.java b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/NullScanner.java index 46b1726..9c025f7 100644 --- a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/NullScanner.java +++ b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/NullScanner.java @@ -23,6 +23,7 @@ import org.apache.tajo.catalog.Column; import org.apache.tajo.catalog.Schema; import org.apache.tajo.catalog.TableMeta; import org.apache.tajo.catalog.statistics.TableStats; +import org.apache.tajo.exception.TajoRuntimeException; import org.apache.tajo.exception.UnsupportedException; import org.apache.tajo.plan.expr.EvalNode; import org.apache.tajo.storage.fragment.Fragment; @@ -88,7 +89,7 @@ public class NullScanner implements Scanner { @Override public void setFilter(EvalNode filter) { - throw new UnsupportedException(); + throw new TajoRuntimeException(new UnsupportedException()); } @Override http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/RowStoreUtil.java ---------------------------------------------------------------------- diff --git a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/RowStoreUtil.java b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/RowStoreUtil.java index 42c015e..7708d52 100644 --- a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/RowStoreUtil.java +++ b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/RowStoreUtil.java @@ -24,7 +24,7 @@ import org.apache.tajo.common.TajoDataTypes; import org.apache.tajo.datum.DatumFactory; import org.apache.tajo.datum.IntervalDatum; import org.apache.tajo.datum.ProtobufDatum; -import org.apache.tajo.exception.UnsupportedDataTypeException; +import org.apache.tajo.exception.TajoRuntimeException; import org.apache.tajo.exception.UnsupportedException; import org.apache.tajo.exception.ValueTooLongForTypeCharactersException; import org.apache.tajo.tuple.offheap.RowWriter; @@ -156,11 +156,9 @@ public class RowStoreUtil { bb.get(_ipv4); tuple.put(i, DatumFactory.createInet4(_ipv4)); break; - case INET6: - // TODO - to be implemented - throw new UnsupportedException(type.getType().name()); default: - throw new RuntimeException(new UnsupportedDataTypeException(type.getType().name())); + throw new TajoRuntimeException( + new UnsupportedException("data type '" + type.getType().name() + "'")); } } return tuple; @@ -261,7 +259,8 @@ public class RowStoreUtil { bb.put(tuple.getBytes(i)); break; default: - throw new RuntimeException(new UnsupportedDataTypeException(col.getDataType().getType().name())); + throw new TajoRuntimeException( + new UnsupportedException("data type '" + col.getDataType().getType().name() + "'")); } } @@ -322,7 +321,8 @@ public class RowStoreUtil { size += tuple.getBytes(i).length; break; default: - throw new RuntimeException(new UnsupportedDataTypeException(col.getDataType().getType().name())); + throw new TajoRuntimeException( + new UnsupportedException("data type '" + col.getDataType().getType().name() + "'")); } } @@ -381,7 +381,8 @@ public class RowStoreUtil { writer.skipField(); break; default: - throw new UnsupportedException("data type " + writer.dataTypes()[i]); + throw new TajoRuntimeException( + new UnsupportedException("unknown data type '" + writer.dataTypes()[i].getType().name() + "'")); } } writer.endRow(); http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/Tablespace.java ---------------------------------------------------------------------- diff --git a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/Tablespace.java b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/Tablespace.java index 0094310..09d8deb 100644 --- a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/Tablespace.java +++ b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/Tablespace.java @@ -29,6 +29,7 @@ import org.apache.tajo.catalog.TableMeta; import org.apache.tajo.catalog.proto.CatalogProtos.FragmentProto; import org.apache.tajo.conf.TajoConf; import org.apache.tajo.exception.TajoException; +import org.apache.tajo.exception.TajoRuntimeException; import org.apache.tajo.exception.UnsupportedException; import org.apache.tajo.plan.LogicalPlan; import org.apache.tajo.plan.logical.LogicalNode; @@ -107,7 +108,7 @@ public abstract class Tablespace { * @return Root URI */ public URI getRootUri() { - throw new UnsupportedException(String.format("artibrary path '%s'", uri.toString())); + throw new TajoRuntimeException(new UnsupportedException(String.format("artibrary path '%s'", uri.toString()))); } /** http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/tuple/offheap/HeapTuple.java ---------------------------------------------------------------------- diff --git a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/tuple/offheap/HeapTuple.java b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/tuple/offheap/HeapTuple.java index 97be316..9b69536 100644 --- a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/tuple/offheap/HeapTuple.java +++ b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/tuple/offheap/HeapTuple.java @@ -22,6 +22,7 @@ import com.google.protobuf.InvalidProtocolBufferException; import com.google.protobuf.Message; import org.apache.tajo.common.TajoDataTypes; import org.apache.tajo.datum.*; +import org.apache.tajo.exception.TajoRuntimeException; import org.apache.tajo.exception.UnsupportedException; import org.apache.tajo.storage.Tuple; import org.apache.tajo.storage.VTuple; @@ -100,7 +101,7 @@ public class HeapTuple implements Tuple { @Override public void put(int fieldId, Tuple tuple) { - throw new UnsupportedException("UnSafeTuple does not support put(int, Tuple)."); + throw new TajoRuntimeException(new UnsupportedException()); } @Override @@ -110,12 +111,12 @@ public class HeapTuple implements Tuple { @Override public void put(int fieldId, Datum value) { - throw new UnsupportedException("UnSafeTuple does not support put(int, Datum)."); + throw new TajoRuntimeException(new UnsupportedException()); } @Override public void put(Datum[] values) { - throw new UnsupportedException("UnSafeTuple does not support put(Datum[])."); + throw new TajoRuntimeException(new UnsupportedException()); } @Override @@ -153,7 +154,7 @@ public class HeapTuple implements Tuple { case PROTOBUF: return getProtobufDatum(fieldId); default: - throw new UnsupportedException("Unknown type: " + types[fieldId]); + throw new TajoRuntimeException(new UnsupportedException("data type '" + types[fieldId] + "'")); } } http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/tuple/offheap/UnSafeTuple.java ---------------------------------------------------------------------- diff --git a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/tuple/offheap/UnSafeTuple.java b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/tuple/offheap/UnSafeTuple.java index 167519b..3756064 100644 --- a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/tuple/offheap/UnSafeTuple.java +++ b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/tuple/offheap/UnSafeTuple.java @@ -23,6 +23,7 @@ import com.google.protobuf.InvalidProtocolBufferException; import com.google.protobuf.Message; import org.apache.tajo.common.TajoDataTypes; import org.apache.tajo.datum.*; +import org.apache.tajo.exception.TajoRuntimeException; import org.apache.tajo.exception.UnsupportedException; import org.apache.tajo.storage.Tuple; import org.apache.tajo.storage.VTuple; @@ -131,17 +132,17 @@ public abstract class UnSafeTuple implements Tuple { @Override public void put(int fieldId, Datum value) { - throw new UnsupportedException("UnSafeTuple does not support put(int, Datum)."); + throw new TajoRuntimeException(new UnsupportedException()); } @Override public void put(int fieldId, Tuple tuple) { - throw new UnsupportedException("UnSafeTuple does not support put(int, Tuple)."); + throw new TajoRuntimeException(new UnsupportedException()); } @Override public void put(Datum[] values) { - throw new UnsupportedException("UnSafeTuple does not support put(Datum[])."); + throw new TajoRuntimeException(new UnsupportedException()); } @Override @@ -179,7 +180,7 @@ public abstract class UnSafeTuple implements Tuple { case PROTOBUF: return getProtobufDatum(fieldId); default: - throw new UnsupportedException("Unknown type: " + types[fieldId]); + throw new TajoRuntimeException(new UnsupportedException("data type '" + types[fieldId] + "'")); } } http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseScanner.java ---------------------------------------------------------------------- diff --git a/tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseScanner.java b/tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseScanner.java index beae592..7fc6d2a 100644 --- a/tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseScanner.java +++ b/tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseScanner.java @@ -434,7 +434,7 @@ public class HBaseScanner implements Scanner { @Override public void setFilter(EvalNode filter) { - throw new UnsupportedException(); + throw new TajoRuntimeException(new UnsupportedException()); } @Override http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/RawFile.java ---------------------------------------------------------------------- diff --git a/tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/RawFile.java b/tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/RawFile.java index 20c5d6d..4994b0e 100644 --- a/tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/RawFile.java +++ b/tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/RawFile.java @@ -33,6 +33,7 @@ import org.apache.tajo.common.TajoDataTypes.DataType; import org.apache.tajo.datum.DatumFactory; import org.apache.tajo.datum.NullDatum; import org.apache.tajo.datum.ProtobufDatumFactory; +import org.apache.tajo.exception.TajoRuntimeException; import org.apache.tajo.exception.UnsupportedException; import org.apache.tajo.plan.expr.EvalNode; import org.apache.tajo.plan.serder.PlanProto.ShuffleType; @@ -431,7 +432,7 @@ public class RawFile { @Override public void setFilter(EvalNode filter) { - throw new UnsupportedException(); + throw new TajoRuntimeException(new UnsupportedException()); } @Override http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/RowFile.java ---------------------------------------------------------------------- diff --git a/tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/RowFile.java b/tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/RowFile.java index dbe438c..45206f5 100644 --- a/tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/RowFile.java +++ b/tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/RowFile.java @@ -34,6 +34,7 @@ import org.apache.tajo.catalog.statistics.TableStats; import org.apache.tajo.conf.TajoConf.ConfVars; import org.apache.tajo.datum.Datum; import org.apache.tajo.datum.DatumFactory; +import org.apache.tajo.exception.TajoRuntimeException; import org.apache.tajo.exception.UnsupportedException; import org.apache.tajo.plan.expr.EvalNode; import org.apache.tajo.plan.serder.PlanProto.ShuffleType; @@ -305,7 +306,7 @@ public class RowFile { @Override public void setFilter(EvalNode filter) { - throw new UnsupportedException(); + throw new TajoRuntimeException(new UnsupportedException()); } @Override http://git-wip-us.apache.org/repos/asf/tajo/blob/de1ca380/tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/avro/AvroScanner.java ---------------------------------------------------------------------- diff --git a/tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/avro/AvroScanner.java b/tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/avro/AvroScanner.java index 217acba..5946e08 100644 --- a/tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/avro/AvroScanner.java +++ b/tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/avro/AvroScanner.java @@ -35,6 +35,7 @@ import org.apache.tajo.catalog.TableMeta; import org.apache.tajo.common.TajoDataTypes; import org.apache.tajo.common.TajoDataTypes.DataType; import org.apache.tajo.datum.*; +import org.apache.tajo.exception.TajoRuntimeException; import org.apache.tajo.exception.UnsupportedException; import org.apache.tajo.plan.expr.EvalNode; import org.apache.tajo.storage.FileScanner; @@ -279,7 +280,7 @@ public class AvroScanner extends FileScanner { @Override public void setFilter(EvalNode filter) { - throw new UnsupportedException(); + throw new TajoRuntimeException(new UnsupportedException()); } /**
