/*
* Copyright (c) 2013, OpenCloudDB/MyCAT and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software;Designed and Developed mainly by many Chinese
* opensource volunteers. you can redistribute it and/or modify it under the
* terms of the GNU General Public License version 2 only, as published by the
* Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Any questions about this component can be directed to it's project Web address
* https://code.google.com/p/opencloudb/.
*
*/
package com.akiban.sql.parser;
import com.akiban.sql.StandardException;
/**
Create new parser AST nodes.
<p>
There is one of these per parser context, possibly wrapped for higher-level uses.
*/
public final class NodeFactoryImpl extends NodeFactory
{
private static class ClassInfo {
Class clazz;
ClassInfo(Class clazz) {
this.clazz = clazz;
}
// TODO: The Derby version optimized this by caching the
// Method. Is that still necessary?
Object getNewInstance() throws InstantiationException, IllegalAccessException {
return clazz.newInstance();
}
}
private final ClassInfo[] nodeCi = new ClassInfo[NodeTypes.FINAL_VALUE+1];
/**
* Get a node that takes no initializer arguments.
*
* @param nodeType Identifier for the type of node.
* @param pc A SQLParserContext
*
* @return A new QueryTree node.
*
* @exception StandardException Thrown on error.
*/
public QueryTreeNode getNode(int nodeType, SQLParserContext pc)
throws StandardException {
ClassInfo ci = nodeCi[nodeType];
Class nodeClass = null;
if (ci == null) {
String nodeName = nodeName(nodeType);
try {
nodeClass = Class.forName(nodeName);
}
catch (ClassNotFoundException cnfe) {
throw new StandardException(cnfe);
}
ci = new ClassInfo(nodeClass);
nodeCi[nodeType] = ci;
}
QueryTreeNode retval = null;
try {
retval = (QueryTreeNode)ci.getNewInstance();
}
catch (Exception iae) {
throw new StandardException(iae);
}
retval.setParserContext(pc);
retval.setNodeType(nodeType);
return retval;
}
/**
* Translate a node type from NodeTypes to a class name
*
* @param nodeType A node type identifier from NodeTypes
*
* @exception StandardException Thrown on error
*/
protected String nodeName(int nodeType) throws StandardException {
switch (nodeType) {
case NodeTypes.CURRENT_ROW_LOCATION_NODE:
return NodeNames.CURRENT_ROW_LOCATION_NODE_NAME;
case NodeTypes.GROUP_BY_LIST:
return NodeNames.GROUP_BY_LIST_NAME;
case NodeTypes.ORDER_BY_LIST:
return NodeNames.ORDER_BY_LIST_NAME;
case NodeTypes.PREDICATE_LIST:
return NodeNames.PREDICATE_LIST_NAME;
case NodeTypes.RESULT_COLUMN_LIST:
return NodeNames.RESULT_COLUMN_LIST_NAME;
case NodeTypes.SUBQUERY_LIST:
return NodeNames.SUBQUERY_LIST_NAME;
case NodeTypes.TABLE_ELEMENT_LIST:
return NodeNames.TABLE_ELEMENT_LIST_NAME;
case NodeTypes.UNTYPED_NULL_CONSTANT_NODE:
return NodeNames.UNTYPED_NULL_CONSTANT_NODE_NAME;
case NodeTypes.TABLE_ELEMENT_NODE:
return NodeNames.TABLE_ELEMENT_NODE_NAME;
case NodeTypes.VALUE_NODE_LIST:
return NodeNames.VALUE_NODE_LIST_NAME;
case NodeTypes.ALL_RESULT_COLUMN:
return NodeNames.ALL_RESULT_COLUMN_NAME;
case NodeTypes.GET_CURRENT_CONNECTION_NODE:
return NodeNames.GET_CURRENT_CONNECTION_NODE_NAME;
case NodeTypes.NOP_STATEMENT_NODE:
return NodeNames.NOP_STATEMENT_NODE_NAME;
case NodeTypes.SET_TRANSACTION_ACCESS_NODE:
return NodeNames.SET_TRANSACTION_ACCESS_NODE_NAME;
case NodeTypes.SET_TRANSACTION_ISOLATION_NODE:
return NodeNames.SET_TRANSACTION_ISOLATION_NODE_NAME;
case NodeTypes.CHAR_LENGTH_OPERATOR_NODE:
return NodeNames.LENGTH_OPERATOR_NODE_NAME;
// ISNOTNULL compressed into ISNULL
case NodeTypes.IS_NOT_NULL_NODE:
case NodeTypes.IS_NULL_NODE:
return NodeNames.IS_NULL_NODE_NAME;
case NodeTypes.NOT_NODE:
return NodeNames.NOT_NODE_NAME;
case NodeTypes.SET_CONFIGURATION_NODE:
return NodeNames.SET_CONFIGURATION_NODE_NAME;
case NodeTypes.SQL_TO_JAVA_VALUE_NODE:
return NodeNames.SQL_TO_JAVA_VALUE_NODE_NAME;
case NodeTypes.TABLE_NAME:
return NodeNames.TABLE_NAME_NAME;
case NodeTypes.GROUP_BY_COLUMN:
return NodeNames.GROUP_BY_COLUMN_NAME;
case NodeTypes.JAVA_TO_SQL_VALUE_NODE:
return NodeNames.JAVA_TO_SQL_VALUE_NODE_NAME;
case NodeTypes.FROM_LIST:
return NodeNames.FROM_LIST_NAME;
case NodeTypes.BOOLEAN_CONSTANT_NODE:
return NodeNames.BOOLEAN_CONSTANT_NODE_NAME;
case NodeTypes.AND_NODE:
return NodeNames.AND_NODE_NAME;
case NodeTypes.TRIM_OPERATOR_NODE:
return NodeNames.TRIM_OPERATOR_NODE_NAME;
case NodeTypes.BINARY_EQUALS_OPERATOR_NODE:
case NodeTypes.BINARY_GREATER_EQUALS_OPERATOR_NODE:
case NodeTypes.BINARY_GREATER_THAN_OPERATOR_NODE:
case NodeTypes.BINARY_LESS_EQUALS_OPERATOR_NODE:
case NodeTypes.BINARY_LESS_THAN_OPERATOR_NODE:
case NodeTypes.BINARY_NOT_EQUALS_OPERATOR_NODE:
return NodeNames.BINARY_RELATIONAL_OPERATOR_NODE_NAME;
case NodeTypes.BINARY_DIV_OPERATOR_NODE:
case NodeTypes.BINARY_MINUS_OPERATOR_NODE:
case NodeTypes.BINARY_PLUS_OPERATOR_NODE:
case NodeTypes.BINARY_TIMES_OPERATOR_NODE:
case NodeTypes.BINARY_DIVIDE_OPERATOR_NODE:
case NodeTypes.MOD_OPERATOR_NODE:
return NodeNames.BINARY_ARITHMETIC_OPERATOR_NODE_NAME;
case NodeTypes.COALESCE_FUNCTION_NODE:
return NodeNames.COALESCE_FUNCTION_NODE_NAME;
case NodeTypes.CONCATENATION_OPERATOR_NODE:
return NodeNames.CONCATENATION_OPERATOR_NODE_NAME;
case NodeTypes.LIKE_OPERATOR_NODE:
return NodeNames.LIKE_OPERATOR_NODE_NAME;
case NodeTypes.OR_NODE:
return NodeNames.OR_NODE_NAME;
case NodeTypes.BETWEEN_OPERATOR_NODE:
return NodeNames.BETWEEN_OPERATOR_NODE_NAME;
case NodeTypes.CONDITIONAL_NODE:
return NodeNames.CONDITIONAL_NODE_NAME;
case NodeTypes.IN_LIST_OPERATOR_NODE:
return NodeNames.IN_LIST_OPERATOR_NODE_NAME;
case NodeTypes.BIT_CONSTANT_NODE:
return NodeNames.BIT_CONSTANT_NODE_NAME;
case NodeTypes.LONGVARBIT_CONSTANT_NODE:
case NodeTypes.VARBIT_CONSTANT_NODE:
case NodeTypes.BLOB_CONSTANT_NODE:
return NodeNames.VARBIT_CONSTANT_NODE_NAME;
case NodeTypes.CAST_NODE:
return NodeNames.CAST_NODE_NAME;
case NodeTypes.CHAR_CONSTANT_NODE:
case NodeTypes.LONGVARCHAR_CONSTANT_NODE:
case NodeTypes.VARCHAR_CONSTANT_NODE:
case NodeTypes.CLOB_CONSTANT_NODE:
return NodeNames.CHAR_CONSTANT_NODE_NAME;
case NodeTypes.XML_CONSTANT_NODE:
return NodeNames.XML_CONSTANT_NODE_NAME;
case NodeTypes.COLUMN_REFERENCE:
return NodeNames.COLUMN_REFERENCE_NAME;
case NodeTypes.DROP_INDEX_NODE:
return NodeNames.DROP_INDEX_NODE_NAME;
case NodeTypes.UNARY_BITNOT_OPERATOR_NODE:
return NodeNames.UNARY_BIT_OPERATOR_NODE_NAME;
case NodeTypes.DROP_TRIGGER_NODE:
return NodeNames.DROP_TRIGGER_NODE_NAME;
case NodeTypes.BINARY_BIT_OPERATOR_NODE:
return NodeNames.BINARY_BIT_OPERATOR_NODE_NAME;
case NodeTypes.TINYINT_CONSTANT_NODE:
case NodeTypes.SMALLINT_CONSTANT_NODE:
case NodeTypes.INT_CONSTANT_NODE:
case NodeTypes.LONGINT_CONSTANT_NODE:
case NodeTypes.DECIMAL_CONSTANT_NODE:
case NodeTypes.DOUBLE_CONSTANT_NODE:
case NodeTypes.FLOAT_CONSTANT_NODE:
return NodeNames.NUMERIC_CONSTANT_NODE_NAME;
case NodeTypes.USERTYPE_CONSTANT_NODE:
return NodeNames.USERTYPE_CONSTANT_NODE_NAME;
case NodeTypes.PREDICATE:
return NodeNames.PREDICATE_NAME;
case NodeTypes.RESULT_COLUMN:
return NodeNames.RESULT_COLUMN_NAME;
case NodeTypes.SET_ROLE_NODE:
return NodeNames.SET_ROLE_NODE_NAME;
case NodeTypes.SET_SCHEMA_NODE:
return NodeNames.SET_SCHEMA_NODE_NAME;
case NodeTypes.SIMPLE_STRING_OPERATOR_NODE:
return NodeNames.SIMPLE_STRING_OPERATOR_NODE_NAME;
case NodeTypes.STATIC_CLASS_FIELD_REFERENCE_NODE:
return NodeNames.STATIC_CLASS_FIELD_REFERENCE_NODE_NAME;
case NodeTypes.STATIC_METHOD_CALL_NODE:
return NodeNames.STATIC_METHOD_CALL_NODE_NAME;
case NodeTypes.EXTRACT_OPERATOR_NODE:
return NodeNames.EXTRACT_OPERATOR_NODE_NAME;
case NodeTypes.PARAMETER_NODE:
return NodeNames.PARAMETER_NODE_NAME;
case NodeTypes.DROP_SCHEMA_NODE:
return NodeNames.DROP_SCHEMA_NODE_NAME;
case NodeTypes.DROP_ROLE_NODE:
return NodeNames.DROP_ROLE_NODE_NAME;
case NodeTypes.DROP_TABLE_NODE:
return NodeNames.DROP_TABLE_NODE_NAME;
case NodeTypes.DROP_VIEW_NODE:
return NodeNames.DROP_VIEW_NODE_NAME;
case NodeTypes.DROP_GROUP_NODE:
return NodeNames.DROP_GROUP_NODE_NAME;
case NodeTypes.GROUP_CONCAT_NODE:
return NodeNames.GROUP_CONCAT_NODE_NAME;
case NodeTypes.SUBQUERY_NODE:
return NodeNames.SUBQUERY_NODE_NAME;
case NodeTypes.BASE_COLUMN_NODE:
return NodeNames.BASE_COLUMN_NODE_NAME;
case NodeTypes.CALL_STATEMENT_NODE:
return NodeNames.CALL_STATEMENT_NODE_NAME;
case NodeTypes.MODIFY_COLUMN_DEFAULT_NODE:
case NodeTypes.MODIFY_COLUMN_TYPE_NODE:
case NodeTypes.MODIFY_COLUMN_CONSTRAINT_NODE:
case NodeTypes.MODIFY_COLUMN_CONSTRAINT_NOT_NULL_NODE:
case NodeTypes.DROP_COLUMN_NODE:
return NodeNames.MODIFY_COLUMN_NODE_NAME;
case NodeTypes.NON_STATIC_METHOD_CALL_NODE:
return NodeNames.NON_STATIC_METHOD_CALL_NODE_NAME;
case NodeTypes.CURRENT_OF_NODE:
return NodeNames.CURRENT_OF_NODE_NAME;
case NodeTypes.DEFAULT_NODE:
return NodeNames.DEFAULT_NODE_NAME;
case NodeTypes.DELETE_NODE:
return NodeNames.DELETE_NODE_NAME;
case NodeTypes.UPDATE_NODE:
return NodeNames.UPDATE_NODE_NAME;
case NodeTypes.ORDER_BY_COLUMN:
return NodeNames.ORDER_BY_COLUMN_NAME;
case NodeTypes.ROW_RESULT_SET_NODE:
return NodeNames.ROW_RESULT_SET_NODE_NAME;
case NodeTypes.VIRTUAL_COLUMN_NODE:
return NodeNames.VIRTUAL_COLUMN_NODE_NAME;
case NodeTypes.CURRENT_DATETIME_OPERATOR_NODE:
return NodeNames.CURRENT_DATETIME_OPERATOR_NODE_NAME;
case NodeTypes.USER_NODE:
case NodeTypes.CURRENT_USER_NODE:
case NodeTypes.SESSION_USER_NODE:
case NodeTypes.SYSTEM_USER_NODE:
case NodeTypes.CURRENT_ISOLATION_NODE:
case NodeTypes.IDENTITY_VAL_NODE:
case NodeTypes.CURRENT_SCHEMA_NODE:
case NodeTypes.CURRENT_ROLE_NODE:
return NodeNames.SPECIAL_FUNCTION_NODE_NAME;
case NodeTypes.IS_NODE:
return NodeNames.IS_NODE_NAME;
case NodeTypes.LOCK_TABLE_NODE:
return NodeNames.LOCK_TABLE_NODE_NAME;
case NodeTypes.ALTER_TABLE_NODE:
return NodeNames.ALTER_TABLE_NODE_NAME;
case NodeTypes.ALTER_SERVER_NODE:
return NodeNames.ALTER_SERVER_NODE_NAME;
case NodeTypes.AGGREGATE_NODE:
return NodeNames.AGGREGATE_NODE_NAME;
case NodeTypes.COLUMN_DEFINITION_NODE:
return NodeNames.COLUMN_DEFINITION_NODE_NAME;
case NodeTypes.FK_CONSTRAINT_DEFINITION_NODE:
return NodeNames.FK_CONSTRAINT_DEFINITION_NODE_NAME;
case NodeTypes.FROM_VTI:
return NodeNames.FROM_VTI_NAME;
case NodeTypes.MATERIALIZE_RESULT_SET_NODE:
return NodeNames.MATERIALIZE_RESULT_SET_NODE_NAME;
case NodeTypes.NORMALIZE_RESULT_SET_NODE:
return NodeNames.NORMALIZE_RESULT_SET_NODE_NAME;
case NodeTypes.SCROLL_INSENSITIVE_RESULT_SET_NODE:
return NodeNames.SCROLL_INSENSITIVE_RESULT_SET_NODE_NAME;
case NodeTypes.ORDER_BY_NODE:
return NodeNames.ORDER_BY_NODE_NAME;
case NodeTypes.DISTINCT_NODE:
return NodeNames.DISTINCT_NODE_NAME;
case NodeTypes.LOCATE_FUNCTION_NODE:
case NodeTypes.SUBSTRING_OPERATOR_NODE:
case NodeTypes.TIMESTAMP_ADD_FN_NODE:
case NodeTypes.TIMESTAMP_DIFF_FN_NODE:
return NodeNames.TERNARY_OPERATOR_NODE_NAME;
case NodeTypes.SELECT_NODE:
return NodeNames.SELECT_NODE_NAME;
case NodeTypes.CREATE_VIEW_NODE:
return NodeNames.CREATE_VIEW_NODE_NAME;
case NodeTypes.CONSTRAINT_DEFINITION_NODE:
return NodeNames.CONSTRAINT_DEFINITION_NODE_NAME;
case NodeTypes.NEW_INVOCATION_NODE:
return NodeNames.NEW_INVOCATION_NODE_NAME;
case NodeTypes.CREATE_ROLE_NODE:
return NodeNames.CREATE_ROLE_NODE_NAME;
case NodeTypes.CREATE_SCHEMA_NODE:
return NodeNames.CREATE_SCHEMA_NODE_NAME;
case NodeTypes.FROM_BASE_TABLE:
return NodeNames.FROM_BASE_TABLE_NAME;
case NodeTypes.FROM_SUBQUERY:
return NodeNames.FROM_SUBQUERY_NAME;
case NodeTypes.GROUP_BY_NODE:
return NodeNames.GROUP_BY_NODE_NAME;
case NodeTypes.INSERT_NODE:
return NodeNames.INSERT_NODE_NAME;
case NodeTypes.JOIN_NODE:
return NodeNames.JOIN_NODE_NAME;
case NodeTypes.CREATE_TABLE_NODE:
return NodeNames.CREATE_TABLE_NODE_NAME;
case NodeTypes.RENAME_NODE:
return NodeNames.RENAME_NODE_NAME;
case NodeTypes.UNION_NODE:
return NodeNames.UNION_NODE_NAME;
case NodeTypes.INTERSECT_OR_EXCEPT_NODE:
return NodeNames.INTERSECT_OR_EXCEPT_NODE_NAME;
case NodeTypes.CREATE_TRIGGER_NODE:
return NodeNames.CREATE_TRIGGER_NODE_NAME;
case NodeTypes.HALF_OUTER_JOIN_NODE:
return NodeNames.HALF_OUTER_JOIN_NODE_NAME;
case NodeTypes.FULL_OUTER_JOIN_NODE:
return NodeNames.FULL_OUTER_JOIN_NODE_NAME;
case NodeTypes.EXPLICIT_COLLATE_NODE:
return NodeNames.EXPLICIT_COLLATE_NODE_NAME;
case NodeTypes.CREATE_INDEX_NODE:
return NodeNames.CREATE_INDEX_NODE_NAME;
case NodeTypes.CURSOR_NODE:
return NodeNames.CURSOR_NODE_NAME;
case NodeTypes.HASH_TABLE_NODE:
return NodeNames.HASH_TABLE_NODE_NAME;
case NodeTypes.INDEX_TO_BASE_ROW_NODE:
return NodeNames.INDEX_TO_BASE_ROW_NODE_NAME;
case NodeTypes.CREATE_ALIAS_NODE:
return NodeNames.CREATE_ALIAS_NODE_NAME;
case NodeTypes.PROJECT_RESTRICT_NODE:
return NodeNames.PROJECT_RESTRICT_NODE_NAME;
case NodeTypes.SQL_BOOLEAN_CONSTANT_NODE:
return NodeNames.SQL_BOOLEAN_CONSTANT_NODE_NAME;
case NodeTypes.DROP_ALIAS_NODE:
return NodeNames.DROP_ALIAS_NODE_NAME;
case NodeTypes.TEST_CONSTRAINT_NODE:
return NodeNames.TEST_CONSTRAINT_NODE_NAME;
case NodeTypes.ABSOLUTE_OPERATOR_NODE:
case NodeTypes.SQRT_OPERATOR_NODE:
case NodeTypes.UNARY_PLUS_OPERATOR_NODE:
case NodeTypes.UNARY_MINUS_OPERATOR_NODE:
return NodeNames.UNARY_ARITHMETIC_OPERATOR_NODE_NAME;
case NodeTypes.TRANSACTION_CONTROL_NODE:
return NodeNames.TRANSACTION_CONTROL_NODE_NAME;
case NodeTypes.SAVEPOINT_NODE:
return NodeNames.SAVEPOINT_NODE_NAME;
case NodeTypes.UNARY_DATE_TIMESTAMP_OPERATOR_NODE:
return NodeNames.UNARY_DATE_TIMESTAMP_OPERATOR_NODE_NAME;
case NodeTypes.TIMESTAMP_OPERATOR_NODE:
return NodeNames.TIMESTAMP_OPERATOR_NODE_NAME;
case NodeTypes.OCTET_LENGTH_OPERATOR_NODE:
return NodeNames.OCTET_LENGTH_OPERATOR_NODE_NAME;
case NodeTypes.XML_PARSE_OPERATOR_NODE:
case NodeTypes.XML_SERIALIZE_OPERATOR_NODE:
return NodeNames.XML_UNARY_OPERATOR_NODE_NAME;
case NodeTypes.XML_EXISTS_OPERATOR_NODE:
case NodeTypes.XML_QUERY_OPERATOR_NODE:
return NodeNames.XML_BINARY_OPERATOR_NODE_NAME;
case NodeTypes.GRANT_NODE:
return NodeNames.GRANT_NODE_NAME;
case NodeTypes.REVOKE_NODE:
return NodeNames.REVOKE_NODE_NAME;
case NodeTypes.GRANT_ROLE_NODE:
return NodeNames.GRANT_ROLE_NODE_NAME;
case NodeTypes.REVOKE_ROLE_NODE:
return NodeNames.REVOKE_ROLE_NODE_NAME;
case NodeTypes.PRIVILEGE_NODE:
return NodeNames.PRIVILEGE_NAME;
case NodeTypes.TABLE_PRIVILEGES_NODE:
return NodeNames.TABLE_PRIVILEGES_NAME;
case NodeTypes.AGGREGATE_WINDOW_FUNCTION_NODE:
return NodeNames.AGGREGATE_WINDOW_FUNCTION_NAME;
case NodeTypes.ROW_NUMBER_FUNCTION_NODE:
return NodeNames.ROW_NUMBER_FUNCTION_NAME;
case NodeTypes.WINDOW_DEFINITION_NODE:
return NodeNames.WINDOW_DEFINITION_NAME;
case NodeTypes.WINDOW_REFERENCE_NODE:
return NodeNames.WINDOW_REFERENCE_NAME;
case NodeTypes.WINDOW_RESULTSET_NODE:
return NodeNames.WINDOW_RESULTSET_NODE_NAME;
case NodeTypes.GENERATION_CLAUSE_NODE:
return NodeNames.GENERATION_CLAUSE_NODE_NAME;
case NodeTypes.ROW_COUNT_NODE:
return NodeNames.ROW_COUNT_NODE_NAME;
case NodeTypes.CREATE_SEQUENCE_NODE:
return NodeNames.CREATE_SEQUENCE_NODE_NAME;
case NodeTypes.DROP_SEQUENCE_NODE:
return NodeNames.DROP_SEQUENCE_NODE_NAME;
case NodeTypes.NEXT_SEQUENCE_NODE:
return NodeNames.NEXT_SEQUENCE_NODE_NAME;
case NodeTypes.CURRENT_SEQUENCE_NODE:
return NodeNames.CURRENT_SEQUENCE_NODE_NAME;
case NodeTypes.EXPLAIN_STATEMENT_NODE:
return NodeNames.EXPLAIN_STATEMENT_NODE_NAME;
case NodeTypes.COPY_STATEMENT_NODE:
return NodeNames.COPY_STATEMENT_NODE_NAME;
case NodeTypes.INDEX_COLUMN:
return NodeNames.INDEX_COLUMN_NAME;
case NodeTypes.INDEX_COLUMN_LIST:
return NodeNames.INDEX_COLUMN_LIST_NAME;
case NodeTypes.INDEX_HINT_NODE:
return NodeNames.INDEX_HINT_NODE_NAME;
case NodeTypes.INDEX_HINT_LIST:
return NodeNames.INDEX_HINT_LIST_NAME;
case NodeTypes.RIGHT_FN_NODE:
case NodeTypes.LEFT_FN_NODE:
return NodeNames.LEFT_RIGHT_FUNC_OPERATOR_NODE_NAME;
case NodeTypes.ROW_CTOR_NODE:
return NodeNames.ROW_CTOR_NODE_NAME;
case NodeTypes.ROWS_RESULT_SET_NODE:
return NodeNames.ROWS_RESULT_SET_NODE_NAME;
case NodeTypes.AT_DROP_INDEX_NODE:
return NodeNames.AT_DROP_INDEX_NODE_NAME;
case NodeTypes.AT_ADD_INDEX_NODE:
return NodeNames.AT_ADD_INDEX_NODE_NAME;
case NodeTypes.INDEX_CONSTRAINT_NODE:
return NodeNames.INDEX_CONSTRAINT_NAME;
case NodeTypes.AT_RENAME_NODE:
return NodeNames.AT_RENAME_NODE_NAME;
case NodeTypes.AT_RENAME_COLUMN_NODE:
return NodeNames.AT_RENAME_COLUMN_NODE_NAME;
case NodeTypes.DECLARE_STATEMENT_NODE:
return NodeNames.DECLARE_STATEMENT_NODE_NAME;
case NodeTypes.FETCH_STATEMENT_NODE:
return NodeNames.FETCH_STATEMENT_NODE_NAME;
case NodeTypes.CLOSE_STATEMENT_NODE:
return NodeNames.CLOSE_STATEMENT_NODE_NAME;
case NodeTypes.PREPARE_STATEMENT_NODE:
return NodeNames.PREPARE_STATEMENT_NODE_NAME;
case NodeTypes.EXECUTE_STATEMENT_NODE:
return NodeNames.EXECUTE_STATEMENT_NODE_NAME;
case NodeTypes.DEALLOCATE_STATEMENT_NODE:
return NodeNames.DEALLOCATE_STATEMENT_NODE_NAME;
case NodeTypes.SIMPLE_CASE_NODE:
return NodeNames.SIMPLE_CASE_NODE_NAME;
case NodeTypes.PARTITION_BY_LIST:
return NodeNames.PARTITION_BY_LIST_NAME;
case NodeTypes.PARTITION_BY_COLUMN:
return NodeNames.PARTITION_BY_COLUMN_NAME;
default:
throw new StandardException("Not implemented");
}
}
}