code: private String getSQLLexicalForm(ValueConstant constant) {
  
  		if (constant.equals(termFactory.getNullConstant())) {
  			// TODO: we should not have to treat NULL as a special case!
  			// It is because this constant is currently of type COL_TYPE.STRING!
  			return "NULL";
  		}
  		switch (COL_TYPE.getColType(constant.getType().getIRI())) {
  			case BNODE:
  			case OBJECT:
  			case STRING:
  				return sqladapter.getSQLLexicalFormString(constant.getValue());
  			case BOOLEAN:
  				boolean v = XsdDatatypeConverter.parseXsdBoolean(constant.getValue());
  				return sqladapter.getSQLLexicalFormBoolean(v);
  			case DATETIME:
  				return sqladapter.getSQLLexicalFormDatetime(constant.getValue());
  			case DATETIME_STAMP:
  				return sqladapter.getSQLLexicalFormDatetimeStamp(constant.getValue());
  			case DECIMAL:
  			case DOUBLE:
  			case INTEGER:
  			case LONG:
  			case FLOAT:
  			case NON_POSITIVE_INTEGER:
  			case INT:
  			case UNSIGNED_INT:
  			case NEGATIVE_INTEGER:
  			case POSITIVE_INTEGER:
  			case NON_NEGATIVE_INTEGER:
  				return constant.getValue();
  			case NULL:
  				return "NULL";
  			default:
  				return "'" + constant.getValue() + "'";
  		}
  	}
docs: *
  Returns the valid SQL lexical form of rdf literals based on the current
  database and the datatype specified in the function predicate.
  
  <p>
  For example, if the function is xsd:boolean, and the current database is
  H2, the SQL lexical form would be for "true" "TRUE" (or any combination
  of lower and upper case) or "1" is always
  
  @param constant
  @return