Package org.apache.derby.iapi.types
Class TypeId
java.lang.Object
org.apache.derby.iapi.types.TypeId
TypeId describes the static information about a SQL type
independent of any specific attributes of the type such
as length. So the TypeId for CHARACTER describes the
fundamental information about CHARACTER. A specific
type (e.g. CHARACTER(10)) is described by a TypeDescriptor for
a catlog type and a DataTypeDescriptor for a runtime type.
(note a DataTypeDescriptor adds runtime attributes to the
TypeDescriptor it has).
A TypeId is immutable.
The equals(Object) method can be used to determine if two typeIds are for the same type, which defines type id equality.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final TypeId[]
static final String
private BaseTypeIdImpl
static final TypeId
static final String
static final String
private static final TypeId
static final int
static final String
static final int
private static final TypeId
static final int
static final String
static final int
static final TypeId
static final int
static final String
static final int
static final TypeId
static final int
static final String
static final int
private static final TypeId
static final int
static final String
static final int
static final String
private static final TypeId
static final int
static final String
static final int
private static final TypeId
static final int
static final String
static final int
static final int
static final int
static final TypeId
static final int
static final String
static final int
static final int
static final int
static final int
static final String
private int
static final int
static final int
static final int
static final int
static final TypeId
static final String
private boolean
private boolean
private boolean
private boolean
private boolean
private boolean
private boolean
private boolean
private boolean
private boolean
private boolean
private boolean
private boolean
private String
static final int
static final int
static final int
Various fixed numbers related to datatypes.static final int
static final String
private static final TypeId
static final int
static final String
static final int
private static final TypeId
static final int
static final String
static final int
private int
private int
private int
static final String
static final String
static final String
static final String
private static final TypeId
static final String
static final int
private static final TypeId
static final int
static final String
static final int
static final int
static final int
static final int
static final String
private static final TypeId
static final String
static final int
static final String
static final TypeId
static final int
static final String
static final int
static final int
static final int
static final String
static final String
private static final TypeId
static final int
static final String
static final int
static final int
private static final TypeId
static final int
static final String
static final int
static final int
private static final TypeId
static final int
static final String
static final int
static final int
static final int
private int
static final int
The following constants define the type precedence hierarchy.static final String
private static final TypeId
static final int
static final String
static final int
private static final TypeId
static final int
static final String
static final int
private static final TypeId
static final int
static final String
static final int
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static TypeId
create
(int typeFormatId, int implTypeFormatId) Create a TypeId for the given format identifiers using a BaseTypeIdImpl.boolean
we want equals to say if these are the same type id or not.static TypeId[]
Return all of the builtin type ids.int
Get the approximate length of this type in bytes.Get the base type id that is embedded in this type id.static TypeId
getBuiltInTypeId
(int JDBCTypeId) Get a TypeId of the given JDBC type.static TypeId
getBuiltInTypeId
(String SQLTypeName) Given a SQL type name return the corresponding TypeId.Get the name of the corresponding Java type.final int
JDBC has its own idea of type identifiers which is different from the Derby internal type ids.int
Get the maximum maximum width of the type (that's not a typo).int
Get the maximum precision of the type.int
Get the maximum scale of the type.getNull()
Get SQL null value.int
getPrecision
(DataTypeDescriptor leftType, DataTypeDescriptor rightType) Get the precision of the merge of two DecimalsGet the name of the corresponding Java type.int
getScale
(DataTypeDescriptor leftType, DataTypeDescriptor rightType) Get the scale of the merge of two decimalsstatic TypeId
getSQLTypeForJavaType
(String javaTypeName) Get a TypeId for the class that corresponds to the given Java type name.Returns the SQL name of the datatype.int
Get the formatID which corresponds to this class.static TypeId
getTypeId
(TypeDescriptor catalogType) Get the TypeId (fundemental type information) for a catalog type.static TypeId
getUserDefinedTypeId
(String className) static TypeId
getUserDefinedTypeId
(String schemaName, String unqualifiedName, String className) This factory method is used for ANSI UDTs.int
hashCode()
boolean
Is this a type id for a bit type?boolean
Is this a Blob?boolean
Is this a type id for a boolean type?boolean
Is this a Clob?boolean
Is this a type id for a concatable type?boolean
Is this a TypeId for DATE/TIME/TIMESTAMPboolean
Is this DATE/TIME or TIMESTAMP?boolean
Is this a type id for a decimal type?boolean
Is this a TypeId for DOUBLEboolean
Is this a fixed string type?boolean
Is this a TypeId for floating point (REAL/DOUBLE)boolean
Is this a type id for a LOB type?boolean
Is this a type id for a long concatable type?boolean
Is this a LongVarbinary?boolean
Is this a LongVarchar?boolean
Is this a type id for a numeric type?boolean
Is this a TypeId for REALboolean
Is this a type id for a ref type?boolean
Does this TypeId represent a TypeId for a StringDataType.boolean
Is this a TIMESTAMP?boolean
Is this a type id for a user defined type?boolean
Is this an XML doc?boolean
Tell whether this type is orderable, that is, can participate in comparisons.private void
private void
boolean
Is this type StreamStorable?Converts this TypeId, given a data type descriptor (including length/precision), to a string.int
Each built-in type in JSQL has a precedence.final boolean
userType()
Tell whether this is a built-in type.boolean
Does type hava a declared variable length (defined by the application).
-
Field Details
-
LONGINT_PRECISION
public static final int LONGINT_PRECISIONVarious fixed numbers related to datatypes.- See Also:
-
LONGINT_SCALE
public static final int LONGINT_SCALE- See Also:
-
LONGINT_MAXWIDTH
public static final int LONGINT_MAXWIDTH- See Also:
-
INT_PRECISION
public static final int INT_PRECISION- See Also:
-
INT_SCALE
public static final int INT_SCALE- See Also:
-
INT_MAXWIDTH
public static final int INT_MAXWIDTH- See Also:
-
SMALLINT_PRECISION
public static final int SMALLINT_PRECISION- See Also:
-
SMALLINT_SCALE
public static final int SMALLINT_SCALE- See Also:
-
SMALLINT_MAXWIDTH
public static final int SMALLINT_MAXWIDTH- See Also:
-
TINYINT_PRECISION
public static final int TINYINT_PRECISION- See Also:
-
TINYINT_SCALE
public static final int TINYINT_SCALE- See Also:
-
TINYINT_MAXWIDTH
public static final int TINYINT_MAXWIDTH- See Also:
-
DOUBLE_PRECISION
public static final int DOUBLE_PRECISION- See Also:
-
DOUBLE_PRECISION_IN_DIGITS
public static final int DOUBLE_PRECISION_IN_DIGITS- See Also:
-
DOUBLE_SCALE
public static final int DOUBLE_SCALE- See Also:
-
DOUBLE_MAXWIDTH
public static final int DOUBLE_MAXWIDTH- See Also:
-
REAL_PRECISION
public static final int REAL_PRECISION- See Also:
-
REAL_PRECISION_IN_DIGITS
public static final int REAL_PRECISION_IN_DIGITS- See Also:
-
REAL_SCALE
public static final int REAL_SCALE- See Also:
-
REAL_MAXWIDTH
public static final int REAL_MAXWIDTH- See Also:
-
DECIMAL_PRECISION
public static final int DECIMAL_PRECISION- See Also:
-
DECIMAL_SCALE
public static final int DECIMAL_SCALE- See Also:
-
DECIMAL_MAXWIDTH
public static final int DECIMAL_MAXWIDTH- See Also:
-
BOOLEAN_MAXWIDTH
public static final int BOOLEAN_MAXWIDTH- See Also:
-
CHAR_MAXWIDTH
public static final int CHAR_MAXWIDTH- See Also:
-
VARCHAR_MAXWIDTH
public static final int VARCHAR_MAXWIDTH- See Also:
-
LONGVARCHAR_MAXWIDTH
public static final int LONGVARCHAR_MAXWIDTH- See Also:
-
BIT_MAXWIDTH
public static final int BIT_MAXWIDTH- See Also:
-
VARBIT_MAXWIDTH
public static final int VARBIT_MAXWIDTH- See Also:
-
LONGVARBIT_MAXWIDTH
public static final int LONGVARBIT_MAXWIDTH- See Also:
-
BLOB_MAXWIDTH
public static final int BLOB_MAXWIDTH- See Also:
-
CLOB_MAXWIDTH
public static final int CLOB_MAXWIDTH- See Also:
-
XML_MAXWIDTH
public static final int XML_MAXWIDTH- See Also:
-
DATE_MAXWIDTH
public static final int DATE_MAXWIDTH- See Also:
-
TIME_MAXWIDTH
public static final int TIME_MAXWIDTH- See Also:
-
TIMESTAMP_MAXWIDTH
public static final int TIMESTAMP_MAXWIDTH- See Also:
-
TIME_SCALE
public static final int TIME_SCALE- See Also:
-
TIMESTAMP_SCALE
public static final int TIMESTAMP_SCALE- See Also:
-
BIT_NAME
- See Also:
-
VARBIT_NAME
- See Also:
-
LONGVARBIT_NAME
- See Also:
-
TINYINT_NAME
- See Also:
-
SMALLINT_NAME
- See Also:
-
INTEGER_NAME
- See Also:
-
BIGINT_NAME
- See Also:
-
FLOAT_NAME
- See Also:
-
REAL_NAME
- See Also:
-
DOUBLE_NAME
- See Also:
-
NUMERIC_NAME
- See Also:
-
DECIMAL_NAME
- See Also:
-
CHAR_NAME
- See Also:
-
VARCHAR_NAME
- See Also:
-
LONGVARCHAR_NAME
- See Also:
-
DATE_NAME
- See Also:
-
TIME_NAME
- See Also:
-
TIMESTAMP_NAME
- See Also:
-
BINARY_NAME
- See Also:
-
VARBINARY_NAME
- See Also:
-
LONGVARBINARY_NAME
- See Also:
-
BOOLEAN_NAME
- See Also:
-
REF_NAME
- See Also:
-
REF_CURSOR
- See Also:
-
NATIONAL_CHAR_NAME
- See Also:
-
NATIONAL_VARCHAR_NAME
- See Also:
-
NATIONAL_LONGVARCHAR_NAME
- See Also:
-
BLOB_NAME
- See Also:
-
CLOB_NAME
- See Also:
-
NCLOB_NAME
- See Also:
-
XML_NAME
- See Also:
-
ARRAY_NAME
- See Also:
-
STRUCT_NAME
- See Also:
-
DATALINK_NAME
- See Also:
-
ROWID_NAME
- See Also:
-
SQLXML_NAME
- See Also:
-
USER_PRECEDENCE
public static final int USER_PRECEDENCEThe following constants define the type precedence hierarchy.- See Also:
-
XML_PRECEDENCE
public static final int XML_PRECEDENCE- See Also:
-
BLOB_PRECEDENCE
public static final int BLOB_PRECEDENCE- See Also:
-
LONGVARBIT_PRECEDENCE
public static final int LONGVARBIT_PRECEDENCE- See Also:
-
VARBIT_PRECEDENCE
public static final int VARBIT_PRECEDENCE- See Also:
-
BIT_PRECEDENCE
public static final int BIT_PRECEDENCE- See Also:
-
BOOLEAN_PRECEDENCE
public static final int BOOLEAN_PRECEDENCE- See Also:
-
TIME_PRECEDENCE
public static final int TIME_PRECEDENCE- See Also:
-
TIMESTAMP_PRECEDENCE
public static final int TIMESTAMP_PRECEDENCE- See Also:
-
DATE_PRECEDENCE
public static final int DATE_PRECEDENCE- See Also:
-
DOUBLE_PRECEDENCE
public static final int DOUBLE_PRECEDENCE- See Also:
-
REAL_PRECEDENCE
public static final int REAL_PRECEDENCE- See Also:
-
DECIMAL_PRECEDENCE
public static final int DECIMAL_PRECEDENCE- See Also:
-
NUMERIC_PRECEDENCE
public static final int NUMERIC_PRECEDENCE- See Also:
-
LONGINT_PRECEDENCE
public static final int LONGINT_PRECEDENCE- See Also:
-
INT_PRECEDENCE
public static final int INT_PRECEDENCE- See Also:
-
SMALLINT_PRECEDENCE
public static final int SMALLINT_PRECEDENCE- See Also:
-
TINYINT_PRECEDENCE
public static final int TINYINT_PRECEDENCE- See Also:
-
REF_PRECEDENCE
public static final int REF_PRECEDENCE- See Also:
-
CLOB_PRECEDENCE
public static final int CLOB_PRECEDENCE- See Also:
-
LONGVARCHAR_PRECEDENCE
public static final int LONGVARCHAR_PRECEDENCE- See Also:
-
VARCHAR_PRECEDENCE
public static final int VARCHAR_PRECEDENCE- See Also:
-
CHAR_PRECEDENCE
public static final int CHAR_PRECEDENCE- See Also:
-
BOOLEAN_ID
-
SMALLINT_ID
-
INTEGER_ID
-
CHAR_ID
-
TINYINT_ID
-
BIGINT_ID
-
REAL_ID
-
DOUBLE_ID
-
DECIMAL_ID
-
NUMERIC_ID
-
VARCHAR_ID
-
DATE_ID
-
TIME_ID
-
TIMESTAMP_ID
-
BIT_ID
-
VARBIT_ID
-
REF_ID
-
LONGVARCHAR_ID
-
LONGVARBIT_ID
-
BLOB_ID
-
CLOB_ID
-
XML_ID
-
ALL_BUILTIN_TYPE_IDS
-
baseTypeId
-
formatId
private int formatId -
isBitTypeId
private boolean isBitTypeId -
isLOBTypeId
private boolean isLOBTypeId -
isBooleanTypeId
private boolean isBooleanTypeId -
isConcatableTypeId
private boolean isConcatableTypeId -
isDecimalTypeId
private boolean isDecimalTypeId -
isLongConcatableTypeId
private boolean isLongConcatableTypeId -
isNumericTypeId
private boolean isNumericTypeId -
isRefTypeId
private boolean isRefTypeId -
isStringTypeId
private boolean isStringTypeId -
isFloatingPointTypeId
private boolean isFloatingPointTypeId -
isRealTypeId
private boolean isRealTypeId -
isDateTimeTimeStampTypeId
private boolean isDateTimeTimeStampTypeId -
isUserDefinedTypeId
private boolean isUserDefinedTypeId -
maxPrecision
private int maxPrecision -
maxScale
private int maxScale -
typePrecedence
private int typePrecedence -
javaTypeName
-
maxMaxWidth
private int maxMaxWidth
-
-
Constructor Details
-
TypeId
Constructor for a TypeId- Parameters:
formatId
- Format id of specific type id.baseTypeId
- The Base type id
-
-
Method Details
-
create
Create a TypeId for the given format identifiers using a BaseTypeIdImpl. Used to create the static final variables of this class. -
getAllBuiltinTypeIds
Return all of the builtin type ids. -
getBuiltInTypeId
Get a TypeId of the given JDBC type. This factory method is intended to be used for built-in types. For user-defined types, we will need a factory method that takes a Java type name.- Parameters:
JDBCTypeId
- The JDBC Id of the type, as listed in java.sql.Types- Returns:
- The appropriate TypeId, or null if there is no such TypeId.
-
getUserDefinedTypeId
- Throws:
StandardException
-
getUserDefinedTypeId
public static TypeId getUserDefinedTypeId(String schemaName, String unqualifiedName, String className) throws StandardException This factory method is used for ANSI UDTs. If the className argument is null, then this TypeId will have to be bound.- Parameters:
schemaName
- Schema that the type definition lives in.unqualifiedName
- The second part of the ANSI dot-separated name for the type.className
- The Java class which is bound to the schema-qualified name by the CREATE TYPE statement.- Returns:
- A bound type TypeId describing this ANSI UDT.
- Throws:
StandardException
-
getSQLTypeForJavaType
Get a TypeId for the class that corresponds to the given Java type name.- Parameters:
javaTypeName
- The name of the Java type- Returns:
- A TypeId for the SQL type that corresponds to the Java type, null if there is no corresponding type.
- Throws:
StandardException
-
getBuiltInTypeId
Given a SQL type name return the corresponding TypeId.- Parameters:
SQLTypeName
- Name of SQL type- Returns:
- TypeId or null if there is no corresponding SQL type.
-
getTypeId
Get the TypeId (fundemental type information) for a catalog type.- Parameters:
catalogType
-- Returns:
- TypeId that represents the base type, null if not applicable.
-
equals
we want equals to say if these are the same type id or not. -
hashCode
public int hashCode() -
setTypeIdSpecificInstanceVariables
private void setTypeIdSpecificInstanceVariables() -
getJDBCTypeId
public final int getJDBCTypeId()JDBC has its own idea of type identifiers which is different from the Derby internal type ids. The JDBC type ids are defined as public final static ints in java.sql.Types. This method translates a Derby internal TypeId to a JDBC type id. For java objects this returns JAVA_OBJECT in Java2 and OTHER in JDK 1.1. For Boolean datatypes, this returns Type.BOOLEAN in JDK1.4 and Type.BIT for jdks prior to 1.4- Returns:
- The JDBC type Id for this type
-
getSQLTypeName
Returns the SQL name of the datatype. If it is a user-defined type, it returns the full Java path name for the datatype, meaning the dot-separated path including the package names.- Returns:
- A String containing the SQL name of this type.
-
userType
public final boolean userType()Tell whether this is a built-in type. NOTE: There are 3 "classes" of types: built-in - system provided types which are implemented internally (int, smallint, etc.) system built-in - system provided types, independent of implementation (date, time, etc.) user types - types implemented outside of the system (java.lang.Integer, asdf.asdf.asdf, etc.)- Returns:
- true for built-in types, false for user-defined types.
-
getMaximumPrecision
public int getMaximumPrecision()Get the maximum precision of the type. For types with variable precision, this is an arbitrary high precision.- Returns:
- The maximum precision of the type
-
getMaximumScale
public int getMaximumScale()Get the maximum scale of the type. For types with variable scale, this is an arbitrary high scale.- Returns:
- The maximum scale of the type
-
setUserTypeIdInfo
private void setUserTypeIdInfo() -
isStringTypeId
public boolean isStringTypeId()Does this TypeId represent a TypeId for a StringDataType.- Returns:
- Whether or not this TypeId represents a TypeId for a StringDataType.
-
isDateTimeTimeStampTypeId
public boolean isDateTimeTimeStampTypeId()Is this a TypeId for DATE/TIME/TIMESTAMP- Returns:
- true if this is a DATE/TIME/TIMESTAMP
-
isRealTypeId
public boolean isRealTypeId()Is this a TypeId for REAL- Returns:
- true if this is a REAL
-
isFloatingPointTypeId
public boolean isFloatingPointTypeId()Is this a TypeId for floating point (REAL/DOUBLE)- Returns:
- true if this is a REAL or DOUBLE
-
isDoubleTypeId
public boolean isDoubleTypeId()Is this a TypeId for DOUBLE- Returns:
- true if this is a DOUBLE
-
isFixedStringTypeId
public boolean isFixedStringTypeId()Is this a fixed string type?- Returns:
- true if this is CHAR
-
isClobTypeId
public boolean isClobTypeId()Is this a Clob?- Returns:
- true if this is CLOB
-
isBlobTypeId
public boolean isBlobTypeId()Is this a Blob?- Returns:
- true if this is BLOB
-
isLongVarcharTypeId
public boolean isLongVarcharTypeId()Is this a LongVarchar?- Returns:
- true if this is LongVarchar
-
isLongVarbinaryTypeId
public boolean isLongVarbinaryTypeId()Is this a LongVarbinary?- Returns:
- true if this is LongVarbinary
-
isDateTimeTimeStampTypeID
public boolean isDateTimeTimeStampTypeID()Is this DATE/TIME or TIMESTAMP?- Returns:
- true if this DATE/TIME or TIMESTAMP
-
isTimestampId
public boolean isTimestampId()Is this a TIMESTAMP?- Returns:
- true if this is a TIMESTAMP
-
isXMLTypeId
public boolean isXMLTypeId()Is this an XML doc?- Returns:
- true if this is XML
-
orderable
Tell whether this type is orderable, that is, can participate in comparisons.- Parameters:
cf
- A ClassFactory- Returns:
- true for orderable types, false for non-orderable types.
-
typePrecedence
public int typePrecedence()Each built-in type in JSQL has a precedence. This precedence determines how to do type promotion when using binary operators. For example, float has a higher precedence than int, so when adding an int to a float, the result type is float. The precedence for some types is arbitrary. For example, it doesn't matter what the precedence of the boolean type is, since it can't be mixed with other types. But the precedence for the number types is critical. The SQL standard requires that exact numeric types be promoted to approximate numeric when one operator uses both. Also, the precedence is arranged so that one will not lose precision when promoting a type. NOTE: char, varchar, and longvarchar must appear at the bottom of the hierarchy, but above USER_PRECEDENCE, since we allow the implicit conversion of those types to any other built-in system type.- Returns:
- The precedence of this type.
-
getCorrespondingJavaTypeName
Get the name of the corresponding Java type. Each SQL type has a corresponding Java type. When a SQL value is passed to a Java method, it is translated to its corresponding Java type. For example, when a SQL date column is passed to a method, it is translated to a java.sql.Date.- Returns:
- The name of the corresponding Java type.
-
getResultSetMetaDataTypeName
Get the name of the corresponding Java type. This method is used directly from EmbedResultSetMetaData (jdbc) to return the corresponding type (as choosen by getObject). It solves a specific problem for BLOB types where the getCorrespondingJavaTypeName() is used internall for casting which doesn't work if changed from byte[] to java.sql.Blob. So we do it here instread, to avoid unexpected sideeffects.- Returns:
- The name of the corresponding Java type.
-
getMaximumMaximumWidth
public int getMaximumMaximumWidth()Get the maximum maximum width of the type (that's not a typo). For types with variable length, this is the absolute maximum for the type.- Returns:
- The maximum maximum width of the type
-
toParsableString
Converts this TypeId, given a data type descriptor (including length/precision), to a string. E.g. VARCHAR(30) For most data types, we just return the SQL type name.- Parameters:
dts
- Data type descriptor that holds the length/precision etc. as necessary- Returns:
- String version of datatype, suitable for running through the Parser.
-
isNumericTypeId
public boolean isNumericTypeId()Is this a type id for a numeric type?- Returns:
- Whether or not this a type id for a numeric type.
-
isDecimalTypeId
public boolean isDecimalTypeId()Is this a type id for a decimal type?- Returns:
- Whether or not this a type id for a decimal type.
-
isBooleanTypeId
public boolean isBooleanTypeId()Is this a type id for a boolean type?- Returns:
- Whether or not this a type id for a boolean type.
-
isRefTypeId
public boolean isRefTypeId()Is this a type id for a ref type?- Returns:
- Whether or not this a type id for a ref type.
-
isConcatableTypeId
public boolean isConcatableTypeId()Is this a type id for a concatable type?- Returns:
- Whether or not this a type id for a concatable type.
-
isBitTypeId
public boolean isBitTypeId()Is this a type id for a bit type?- Returns:
- Whether or not this a type id for a bit type.
-
isLOBTypeId
public boolean isLOBTypeId()Is this a type id for a LOB type?- Returns:
- Whether or not this a type id for a LOB type.
-
isLongConcatableTypeId
public boolean isLongConcatableTypeId()Is this a type id for a long concatable type?- Returns:
- Whether or not this a type id for a long concatable type.
-
isUserDefinedTypeId
public boolean isUserDefinedTypeId()Is this a type id for a user defined type?- Returns:
- Whether or not this a type id for a user defined type.
-
getTypeFormatId
public int getTypeFormatId()Get the formatID which corresponds to this class.- Returns:
- the formatID of this class
-
getNull
Get SQL null value.- Returns:
- SQL null value for this type.
-
streamStorable
public boolean streamStorable()Is this type StreamStorable?- Returns:
- true if this type has variable length.
-
getApproximateLengthInBytes
Get the approximate length of this type in bytes. For most datatypes this is just going to be dts.getMaximumWidth(). Some types, such as bit, will override this.- Parameters:
dts
- Data type descriptor that holds the length/precision etc. as necessary- Returns:
- the length in bytes
-
getBaseTypeId
Get the base type id that is embedded in this type id. The base type id is an object with a minimal implementation of TypeId that is intended to be usable on the client side. -
getPrecision
Get the precision of the merge of two Decimals- Parameters:
leftType
- the left typerightType
- the left type- Returns:
- the resultant precision
-
getScale
Get the scale of the merge of two decimals- Parameters:
leftType
- the left typerightType
- the left type- Returns:
- the resultant precision
-
variableLength
public boolean variableLength()Does type hava a declared variable length (defined by the application). Examples are CHAR(10), CLOB(1M). Unbounded long types, like LONG VARCHAR return false here.- Returns:
- boolean true if type is variable length false if not.
-