private static boolean isLiteral(ColumnType columnType, Object operand) { if (columnType == null) { return operand instanceof String; } return columnType.isLiteral(); } }
@Override public ColumnType getExpectedColumnType(ColumnType type) { if (type.isLiteral()) { return type; } return ColumnType.STRING; }
@Override public ColumnType getExpectedColumnType(ColumnType type) { if (type.isLiteral()) { return type; } return ColumnType.STRING; }
@Override public boolean isLiteral() { return _delegate.isLiteral(); }
private static boolean isLiteral(ColumnType columnType, Object operand) { if (columnType == null) { return operand instanceof String; } return columnType.isLiteral(); } }
@Override public boolean isLiteral() { return _delegate.isLiteral(); }
if (allStrings && !type.isLiteral()) { allStrings = false; } else if (allNumbers && !type.isNumber()) {
if (allStrings && !type.isLiteral()) { allStrings = false; } else if (allNumbers && !type.isNumber()) {
@Override public String rewriteColumnType(ColumnType columnType, Integer columnSize) { if (columnType == ColumnType.NUMERIC) { return super.rewriteColumnType(ColumnType.DECIMAL, columnSize); } if (columnType.isLiteral() && columnSize == null) { if (columnType == ColumnType.STRING || columnType == ColumnType.VARCHAR || columnType == ColumnType.NVARCHAR) { // MySQL requires size to be specified, so instead we choose the // text type return "TEXT"; } } return super.rewriteColumnType(columnType, columnSize); } }
@Override public String rewriteColumnType(ColumnType columnType, Integer columnSize) { if (columnType == ColumnType.NUMERIC) { return super.rewriteColumnType(ColumnType.DECIMAL, columnSize); } if (columnType.isLiteral() && columnSize == null) { if (columnType == ColumnType.STRING || columnType == ColumnType.VARCHAR || columnType == ColumnType.NVARCHAR) { // MySQL requires size to be specified, so instead we choose the // text type return "TEXT"; } } return super.rewriteColumnType(columnType, columnSize); } }
static Object convertType(final Object value, final Column targetColumn) throws IllegalArgumentException { if (value == null) { return null; } Object result = value; final ColumnType type = targetColumn.getType(); if (type.isLiteral()) { // for strings, only convert some simple cases, since JDBC drivers // typically also do a decent job here (with eg. Clob types, char[] // types etc.) if (value instanceof Number || value instanceof Date) { result = value.toString(); } } else if (type.isNumber()) { final Number numberValue = ConvertToNumberTransformer.transformValue(value); if (numberValue == null && !"".equals(value)) { throw new IllegalArgumentException("Could not convert " + value + " to number"); } result = numberValue; } else if (type == ColumnType.BOOLEAN) { final Boolean booleanValue = ConvertToBooleanTransformer.transformValue(value); if (booleanValue == null && !"".equals(value)) { throw new IllegalArgumentException("Could not convert " + value + " to boolean"); } result = booleanValue; } return result; }
public static String getValueAsSql(Column column, Object value, IQueryRewriter queryRewriter) { if (value == null) { return "NULL"; } final ColumnType columnType = column.getType(); if (columnType.isLiteral() && value instanceof String) { value = queryRewriter.escapeQuotes((String) value); } final String formatSqlValue = FormatHelper.formatSqlValue(columnType, value); return formatSqlValue; }
public static String getValueAsSql(Column column, Object value, IQueryRewriter queryRewriter) { if (value == null) { return "NULL"; } final ColumnType columnType = column.getType(); if (columnType.isLiteral() && value instanceof String) { value = queryRewriter.escapeQuotes((String) value); } final String formatSqlValue = FormatHelper.formatSqlValue(columnType, value); return formatSqlValue; }
@Override public String rewriteColumnType(ColumnType columnType, Integer columnSize) { if (columnType == ColumnType.DOUBLE) { return "FLOAT"; } if (columnType == ColumnType.BOOLEAN) { return "BIT"; } if (columnType.isLiteral() && columnSize == null) { // SQL server provides the convenient MAX parameter. If not // specified, the default size of e.g. a VARCHAR is 1! return rewriteColumnTypeInternal(columnType.getName(), "MAX"); } return super.rewriteColumnType(columnType, columnSize); }
@Override public String rewriteColumnType(ColumnType columnType, Integer columnSize) { if (columnType == ColumnType.DOUBLE) { return "FLOAT"; } if (columnType == ColumnType.BOOLEAN) { return "BIT"; } if (columnType.isLiteral() && columnSize == null) { // SQL server provides the convenient MAX parameter. If not // specified, the default size of e.g. a VARCHAR is 1! return rewriteColumnTypeInternal(columnType.getName(), "MAX"); } return super.rewriteColumnType(columnType, columnSize); }
/** * Gets the size (in bytes) of a column with a specific {@link ColumnType} * and size */ private int getSize(ColumnType type, int columnSize) { final int baseSize; if (type.isBinary()) { baseSize = 1; } else if (type.isBoolean()) { baseSize = 1; } else if (type.isLiteral()) { baseSize = 2; } else if (type.isNumber()) { baseSize = 16; } else { baseSize = DEFAULT_COLUMN_SIZE; } int result = baseSize * columnSize; if (type.isLargeObject()) { // assign at least 4KB for LOBs. result = Math.max(result, 4 * KB); } return result; }
/** * Gets the size (in bytes) of a column with a specific {@link ColumnType} * and size */ private int getSize(ColumnType type, int columnSize) { final int baseSize; if (type.isBinary()) { baseSize = 1; } else if (type.isBoolean()) { baseSize = 1; } else if (type.isLiteral()) { baseSize = 2; } else if (type.isNumber()) { baseSize = 16; } else { baseSize = DEFAULT_COLUMN_SIZE; } int result = baseSize * columnSize; if (type.isLargeObject()) { // assign at least 4KB for LOBs. result = Math.max(result, 4 * KB); } return result; }
/** * Gets the (approximate) size (in bytes) of a column with a specific * {@link ColumnType}. */ private int getSize(ColumnType type) { if (type.isBinary()) { return 4 * KB; } else if (type.isBoolean()) { return 2; } else if (type.isLargeObject()) { return 4 * KB; } else if (type.isLiteral()) { return KB; } else if (type.isNumber()) { return 16; } else { return DEFAULT_COLUMN_SIZE; } } }
/** * Gets the (approximate) size (in bytes) of a column with a specific * {@link ColumnType}. */ private int getSize(ColumnType type) { if (type.isBinary()) { return 4 * KB; } else if (type.isBoolean()) { return 2; } else if (type.isLargeObject()) { return 4 * KB; } else if (type.isLiteral()) { return KB; } else if (type.isNumber()) { return 16; } else { return DEFAULT_COLUMN_SIZE; } } }