blob: 73b50b5c7c6aed16c148543e4f2179689d6260af [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.flink.sql.parser.ddl;
/**
* All data types in DDL.
*/
public enum SqlColumnType {
BOOLEAN,
TINYINT,
SMALLINT,
INT,
BIGINT,
FLOAT,
DOUBLE,
DECIMAL,
DATE,
TIME,
TIMESTAMP,
VARCHAR,
VARBINARY,
ANY,
UNSUPPORTED;
public static SqlColumnType getType(String type) {
if (type == null) {
return UNSUPPORTED;
}
String lowerCaseType = type.toLowerCase();
switch (lowerCaseType) {
case "boolean":
return BOOLEAN;
case "tinyint":
return TINYINT;
case "smallint":
return SMALLINT;
case "int":
case "integer":
return INT;
case "bigint":
return BIGINT;
case "real":
case "float":
return FLOAT;
case "decimal":
return DECIMAL;
case "double":
return DOUBLE;
case "date":
return DATE;
case "time":
return TIME;
case "timestamp":
return TIMESTAMP;
case "varchar":
return VARCHAR;
case "varbinary":
return VARBINARY;
case "any":
return ANY;
default:
return UNSUPPORTED;
}
}
}