public ConstantNode getNullNode(TypeId typeId,
ContextManager cm, int collationType, int collationDerivation)
throws StandardException
{
QueryTreeNode constantNode = null;
NodeFactory nf = getNodeFactory();
switch (typeId.getJDBCTypeId())
{
case Types.VARCHAR:
constantNode = nf.getNode(
C_NodeTypes.VARCHAR_CONSTANT_NODE,
typeId,
cm);
break;
case Types.CHAR:
constantNode = nf.getNode(
C_NodeTypes.CHAR_CONSTANT_NODE,
typeId,
cm);
break;
case Types.TINYINT:
constantNode = nf.getNode(
C_NodeTypes.TINYINT_CONSTANT_NODE,
typeId,
cm);
break;
case Types.SMALLINT:
constantNode = nf.getNode(
C_NodeTypes.SMALLINT_CONSTANT_NODE,
typeId,
cm);
break;
case Types.INTEGER:
constantNode = nf.getNode(
C_NodeTypes.INT_CONSTANT_NODE,
typeId,
cm);
break;
case Types.BIGINT:
constantNode = nf.getNode(
C_NodeTypes.LONGINT_CONSTANT_NODE,
typeId,
cm);
break;
case Types.REAL:
constantNode = nf.getNode(
C_NodeTypes.FLOAT_CONSTANT_NODE,
typeId,
cm);
break;
case Types.DOUBLE:
constantNode = nf.getNode(
C_NodeTypes.DOUBLE_CONSTANT_NODE,
typeId,
cm);
break;
case Types.NUMERIC:
case Types.DECIMAL:
constantNode = nf.getNode(
C_NodeTypes.DECIMAL_CONSTANT_NODE,
typeId,
cm);
break;
case Types.DATE:
case Types.TIME:
case Types.TIMESTAMP:
constantNode = nf.getNode(
C_NodeTypes.USERTYPE_CONSTANT_NODE,
typeId,
cm);
break;
case Types.BINARY:
constantNode = nf.getNode(
C_NodeTypes.BIT_CONSTANT_NODE,
typeId,
cm);
break;
case Types.VARBINARY:
constantNode = nf.getNode(
C_NodeTypes.VARBIT_CONSTANT_NODE,
typeId,
cm);
break;
case Types.LONGVARCHAR:
constantNode = nf.getNode(
C_NodeTypes.LONGVARCHAR_CONSTANT_NODE,
typeId,
cm);
break;
case Types.CLOB:
constantNode = nf.getNode(
C_NodeTypes.CLOB_CONSTANT_NODE,
typeId,
cm);
break;
case Types.LONGVARBINARY:
constantNode = nf.getNode(
C_NodeTypes.LONGVARBIT_CONSTANT_NODE,
typeId,
cm);
break;
case Types.BLOB:
constantNode = nf.getNode(
C_NodeTypes.BLOB_CONSTANT_NODE,
typeId,
cm);
break;
case StoredFormatIds.XML_TYPE_ID:
constantNode = nf.getNode(
C_NodeTypes.XML_CONSTANT_NODE,
typeId,
cm);
break;
default:
if (typeId.getSQLTypeName().equals("BOOLEAN"))
{
constantNode = nf.getNode(
C_NodeTypes.BOOLEAN_CONSTANT_NODE,
typeId,
cm);
}
else if (typeId.userType())
{
constantNode = nf.getNode(
C_NodeTypes.USERTYPE_CONSTANT_NODE,
typeId,
cm);
}
else