package com.tesora.dve.sql.schema.types;
/*
* #%L
* Tesora Inc.
* Database Virtualization Engine
* %%
* Copyright (C) 2011 - 2014 Tesora Inc.
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* This program 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 Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
import com.tesora.dve.common.catalog.UserColumn;
import com.tesora.dve.db.NativeType;
import com.tesora.dve.db.mysql.MysqlNativeType;
import com.tesora.dve.exceptions.PEException;
import com.tesora.dve.sql.infoschema.persist.CatalogColumnEntity;
import com.tesora.dve.sql.node.expression.LiteralExpression;
import com.tesora.dve.sql.schema.UnqualifiedName;
public class TempColumnType implements Type {
// this is the type when no type is known
public static final TempColumnType TEMP_TYPE = new TempColumnType(UnknownType.INSTANCE);
private final Type actual;
public TempColumnType(Type given) {
actual = given;
}
@Override
public boolean comparableForDistribution(Type t) {
return true;
}
@Override
public NativeType getBaseType() {
return actual.getBaseType();
}
@Override
public MysqlNativeType getMysqlType() {
return actual.getMysqlType();
}
@Override
public boolean isUnsigned() {
return actual.isUnsigned();
}
@Override
public boolean isZeroFill() {
return actual.isZeroFill();
}
@Override
public boolean isBinaryText() {
return actual.isBinaryText();
}
@Override
public int getSize() {
return actual.getSize();
}
@Override
public boolean hasSize() {
return actual.hasSize();
}
@Override
public boolean hasPrecisionAndScale() {
return actual.hasPrecisionAndScale();
}
@Override
public int getPrecision() {
return actual.getPrecision();
}
@Override
public int getScale() {
return actual.getScale();
}
@Override
public UnqualifiedName getCharset() {
return actual.getCharset();
}
@Override
public UnqualifiedName getCollation() {
return actual.getCollation();
}
@Override
public Integer getIndexSize() {
return actual.getIndexSize();
}
@Override
public TextType asTextType() {
return actual.asTextType();
}
@Override
public String getComparison() {
return actual.getComparison();
}
@Override
public boolean declUsesSizing() {
return actual.declUsesSizing();
}
@Override
public boolean isSerialPlaceholder() {
return actual.isSerialPlaceholder();
}
@Override
public void addColumnTypeModifiers(UserColumn uc) {
actual.addColumnTypeModifiers(uc);
}
@Override
public void addColumnTypeModifiers(CatalogColumnEntity cce)
throws PEException {
actual.addColumnTypeModifiers(cce);
}
@Override
public String getTypeName() {
return actual.getTypeName();
}
@Override
public void persistTypeName(UserColumn uc) {
uc.setTypeName(getTypeName());
}
@Override
public Integer getDataType() {
return actual.getDataType();
}
@Override
public String getName() {
return actual.getName();
}
@Override
public boolean mustParameterize() {
return actual.mustParameterize();
}
@Override
public boolean isBinaryType() {
return actual.isBinaryType();
}
@Override
public boolean supportsDefaultValue() {
return actual.supportsDefaultValue();
}
@Override
public boolean isStringType() {
return actual.isStringType();
}
@Override
public boolean isFloatType() {
return actual.isFloatType();
}
@Override
public boolean isNumericType() {
return actual.isNumericType();
}
@Override
public boolean isDecimalType() {
return actual.isDecimalType();
}
@Override
public boolean isIntegralType() {
return actual.isIntegralType();
}
@Override
public boolean isBitType() {
return actual.isBitType();
}
@Override
public boolean isTimestampType() {
return actual.isTimestampType();
}
@Override
public boolean asKeyRequiresPrefix() {
return actual.asKeyRequiresPrefix();
}
@Override
public LiteralExpression getZeroValueLiteral() {
return actual.getZeroValueLiteral();
}
@Override
public Type normalize() {
return actual;
}
@Override
public boolean isAcceptableColumnTypeForRangeType(Type columnType) {
return actual.isAcceptableColumnTypeForRangeType(columnType);
}
@Override
public boolean isAcceptableRangeType() {
return actual.isAcceptableRangeType();
}
@Override
public boolean isUnknown() {
return actual.isUnknown();
}
@Override
public TextType toTextType() {
return actual.toTextType();
}
@Override
public int getColumnAttributesFlags() {
return actual.getColumnAttributesFlags();
}
}