in empire-db/src/main/java/org/apache/empire/db/DBSQLBuilder.java [284:350]
protected void appendSimpleValue(DataType type, Object value)
{
if (value instanceof Enum<?>)
{ // If still an Enum, convert now (Lazy conversion)
value = ObjectUtils.getEnumValue((Enum<?>)value, type.isNumeric());
}
if (ObjectUtils.isEmpty(value))
{ // null
append(DBSqlPhrase.SQL_NULL);
return;
}
// set string buffer
switch (type)
{
case DATE:
sql.append(getDateTimeString(value, DBSqlPhrase.SQL_DATE_TEMPLATE, DBSqlPhrase.SQL_DATE_PATTERN, DBSqlPhrase.SQL_CURRENT_DATE));
return;
case TIME:
sql.append(getDateTimeString(value, DBSqlPhrase.SQL_TIME_TEMPLATE, DBSqlPhrase.SQL_TIME_PATTERN, DBSqlPhrase.SQL_CURRENT_TIME));
return;
case DATETIME:
String text;
// Only date (without time) provided?
if (!DBDatabase.SYSDATE.equals(value) && !(value instanceof Date) && ObjectUtils.lengthOf(value)<=10)
text = getDateTimeString(value, DBSqlPhrase.SQL_DATE_TEMPLATE, DBSqlPhrase.SQL_DATE_PATTERN, DBSqlPhrase.SQL_CURRENT_TIMESTAMP);
else // Complete Date-Time Object with time
text = getDateTimeString(value, DBSqlPhrase.SQL_DATETIME_TEMPLATE, DBSqlPhrase.SQL_DATETIME_PATTERN, DBSqlPhrase.SQL_CURRENT_TIMESTAMP);
sql.append(text);
return;
case TIMESTAMP:
sql.append(getDateTimeString(value, DBSqlPhrase.SQL_TIMESTAMP_TEMPLATE, DBSqlPhrase.SQL_TIMESTAMP_PATTERN, DBSqlPhrase.SQL_CURRENT_TIMESTAMP));
return;
case VARCHAR:
case CHAR:
case CLOB:
case UNIQUEID:
appendStringLiteral(type, value);
return;
case BOOL:
// Get Boolean value
boolean boolVal = false;
if (value instanceof Boolean)
{ boolVal = ((Boolean) value).booleanValue();
}
else
{ // Boolean from String
boolVal = stringToBoolean(value.toString());
}
append((boolVal) ? DBSqlPhrase.SQL_BOOLEAN_TRUE : DBSqlPhrase.SQL_BOOLEAN_FALSE);
return;
case INTEGER:
case DECIMAL:
case FLOAT:
sql.append(getNumberString(value, type));
return;
case BLOB:
throw new NotSupportedException(this, "appendSimpleValue(DataType.BLOB)");
case AUTOINC:
case UNKNOWN:
/* Allow expressions */
sql.append(value.toString());
return;
default:
log.warn("Unknown DataType {} for getValueString().", type);
sql.append(value.toString());
}
}