in HSQL/src/org/hsqldb1/Expression.java [871:1107]
private String describe(Session session, int blanks) {
int lIType;
StringBuffer buf = new StringBuffer(64);
buf.append('\n');
for (int i = 0; i < blanks; i++) {
buf.append(' ');
}
if (oldIType != -1) {
buf.append("SET TRUE, WAS: ");
}
lIType = oldIType == -1 ? exprType
: oldIType;
switch (lIType) {
case FUNCTION :
buf.append("FUNCTION ");
buf.append(function.describe(session));
return buf.toString();
case VALUE :
if (isParam) {
buf.append("PARAM ");
}
buf.append("VALUE = ").append(valueData);
buf.append(", TYPE = ").append(Types.getTypeString(dataType));
return buf.toString();
case COLUMN :
buf.append("COLUMN ");
if (tableName != null) {
buf.append(tableName);
buf.append('.');
}
buf.append(columnName);
return buf.toString();
case QUERY :
buf.append("QUERY ");
buf.append(subQuery.select.describe(session));
return buf.toString();
case TRUE :
buf.append("TRUE ");
break;
case FALSE :
buf.append("FALSE ");
break;
case VALUELIST :
buf.append("VALUELIST ");
buf.append(" TYPE = ").append(Types.getTypeString(dataType));
if (valueList != null) {
for (int i = 0; i < valueList.length; i++) {
buf.append(valueList[i].describe(session,
blanks + blanks));
buf.append(' ');
}
}
break;
case ASTERISK :
buf.append("* ");
break;
case NEGATE :
buf.append("NEGATE ");
break;
case ADD :
buf.append("ADD ");
break;
case SUBTRACT :
buf.append("SUBTRACT ");
break;
case MULTIPLY :
buf.append("MULTIPLY ");
break;
case DIVIDE :
buf.append("DIVIDE ");
break;
case CONCAT :
buf.append("CONCAT ");
break;
case NOT :
buf.append("NOT ");
break;
case EQUAL :
buf.append("EQUAL ");
break;
case BIGGER_EQUAL :
buf.append("BIGGER_EQUAL ");
break;
case BIGGER :
buf.append("BIGGER ");
break;
case SMALLER :
buf.append("SMALLER ");
break;
case SMALLER_EQUAL :
buf.append("SMALLER_EQUAL ");
break;
case NOT_EQUAL :
buf.append("NOT_EQUAL ");
break;
case LIKE :
buf.append("LIKE ");
buf.append(likeObject.describe(session));
break;
case AND :
buf.append("AND ");
break;
case OR :
buf.append("OR ");
break;
case ALL :
buf.append("ALL ");
break;
case ANY :
buf.append("ANY ");
break;
case IN :
buf.append("IN ");
break;
case IS_NULL :
buf.append("IS_NULL ");
break;
case EXISTS :
buf.append("EXISTS ");
break;
case COUNT :
buf.append("COUNT ");
break;
case SUM :
buf.append("SUM ");
break;
case MIN :
buf.append("MIN ");
break;
case MAX :
buf.append("MAX ");
break;
case AVG :
buf.append("AVG ");
break;
case EVERY :
buf.append(Token.T_EVERY).append(' ');
break;
case SOME :
buf.append(Token.T_SOME).append(' ');
break;
case STDDEV_POP :
buf.append(Token.T_STDDEV_POP).append(' ');
break;
case STDDEV_SAMP :
buf.append(Token.T_STDDEV_SAMP).append(' ');
break;
case VAR_POP :
buf.append(Token.T_VAR_POP).append(' ');
break;
case VAR_SAMP :
buf.append(Token.T_VAR_SAMP).append(' ');
break;
case CONVERT :
buf.append("CONVERT ");
buf.append(Types.getTypeString(dataType, precision, scale));
buf.append(' ');
break;
case CASEWHEN :
buf.append("CASEWHEN ");
break;
}
if (isInJoin) {
buf.append(" join");
}
if (eArg != null) {
buf.append(" arg1=[");
buf.append(eArg.describe(session, blanks + 1));
buf.append(']');
}
if (eArg2 != null) {
buf.append(" arg2=[");
buf.append(eArg2.describe(session, blanks + 1));
buf.append(']');
}
return buf.toString();
}