/** * The {@link Types#LONGVARCHAR} type. */ public static final DataType<String> LONGVARCHAR(int length) { return LONGVARCHAR.length(length); }
/** * The {@link Types#LONGVARBINARY} type. */ public static final DataType<byte[]> LONGVARBINARY(int length) { return LONGVARBINARY.length(length); }
/** * The {@link Types#CHAR} type. */ public static final DataType<String> CHAR(int length) { return CHAR.length(length); }
/** * The {@link Types#CLOB} type. */ public static final DataType<String> CLOB(int length) { return CLOB.length(length); }
/** * The {@link Types#NCLOB} type. */ public static final DataType<String> NCLOB(int length) { return NCLOB.length(length); }
/** * The {@link Types#BINARY} type. */ public static final DataType<byte[]> BINARY(int length) { return BINARY.length(length); }
/** * The {@link Types#BLOB} type. */ public static final DataType<byte[]> BLOB(int length) { return BLOB.length(length); }
/** * The {@link Types#VARCHAR} type. */ public static final DataType<String> VARCHAR(int length) { return VARCHAR.length(length); }
/** * The {@link Types#NVARCHAR} type. */ public static final DataType<String> NVARCHAR(int length) { return NVARCHAR.length(length); }
/** * The {@link Types#NCHAR} type. */ public static final DataType<String> NCHAR(int length) { return NCHAR.length(length); }
/** * The {@link Types#LONGNVARCHAR} type. */ public static final DataType<String> LONGNVARCHAR(int length) { return LONGNVARCHAR.length(length); }
/** * The {@link Types#VARBINARY} type. */ public static final DataType<byte[]> VARBINARY(int length) { return VARBINARY.length(length); }
public DataType<T> length(int length) { return dataType.length(length); }
public int length() { return dataType.length(); }
private final DataType<?> type(String typeName, int length, int precision, int scale, boolean nullable) { DataType<?> type = null; try { type = DefaultDataType.getDataType(configuration.family(), typeName); type = type.nullable(nullable); if (length != 0) type = type.length(length); else if (precision != 0 || scale != 0) type = type.precision(precision, scale); } catch (SQLDialectNotSupportedException e) { type = SQLDataType.OTHER; } return type; }
public DefaultDataType(SQLDialect dialect, DataType<T> sqlDataType, String typeName) { this(dialect, sqlDataType, sqlDataType.getType(), typeName, typeName, sqlDataType.precision(), sqlDataType.scale(), sqlDataType.length(), sqlDataType.nullability(), sqlDataType.defaultValue()); }
public DefaultDataType(SQLDialect dialect, DataType<T> sqlDataType, String typeName, String castTypeName) { this(dialect, sqlDataType, sqlDataType.getType(), typeName, castTypeName, sqlDataType.precision(), sqlDataType.scale(), sqlDataType.length(), sqlDataType.nullability(), sqlDataType.defaultValue()); }
private static final DataType<?> parseDataTypeLength(ParserContext ctx, DataType<?> in) { DataType<?> result = in; if (parseIf(ctx, '(')) { if (!parseKeywordIf(ctx, "MAX")) result = result.length((int) (long) parseUnsignedInteger(ctx)); if (in == SQLDataType.VARCHAR || in == SQLDataType.CHAR) if (!parseKeywordIf(ctx, "BYTE")) parseKeywordIf(ctx, "CHAR"); parse(ctx, ')'); } return result; }
private final void toSQLCast(RenderContext context, DataType<?> type, int length, int precision, int scale) { context.keyword("cast").sql("("); toSQL(context, value, getType()); context.sql(" ").keyword("as").sql(" ") .sql(type.length(length).precision(precision, scale).getCastTypeName(context.configuration())) .sql(")"); }
private final void sqlCast(BindingSQLContext<U> ctx, T converted, DataType<?> dataType, int length, int precision, int scale) throws SQLException { ctx.render().visit(K_CAST).sql('('); sql(ctx, converted); ctx.render().sql(' ').visit(K_AS).sql(' ') .sql(dataType.length(length).precision(precision, scale).getCastTypeName(ctx.configuration())) .sql(')'); }