/** * Parse and consume the {@code DEFAULT} clause. Add default value in column; * * @param start the marker at the beginning of the clause * @param column column editor */ protected void parseDefaultClause(Marker start, ColumnEditor column) { tokens.consume("DEFAULT"); if (isNextTokenQuotedIdentifier()) { // We know that it is a quoted literal ... Object defaultValue = parseLiteral(start); column.defaultValue(defaultValue); } else { if (tokens.matchesAnyOf("CURRENT_TIMESTAMP", "NOW")) { parseCurrentTimestampOrNow(); parseOnUpdateOrDelete(tokens.mark()); //CURRENT_TIMESTAMP and NOW default value will be replaced with epoch timestamp column.defaultValue("1970-01-01 00:00:00"); } else if (tokens.canConsume("NULL")) { // If the default value of column is Null, we will set default value null; column.defaultValue(null); } else { Object defaultValue = parseLiteral(start); column.defaultValue(defaultValue); } } }
private void convertDefaultValueToSchemaType(ColumnEditor columnEditor) { final Column column = columnEditor.create(); // if converters is not null and the default value is not null, we need to convert default value if (converters != null && columnEditor.defaultValue() != null) { Object defaultValue = columnEditor.defaultValue(); final SchemaBuilder schemaBuilder = converters.schemaBuilder(column); if (schemaBuilder == null) { return; } final Schema schema = schemaBuilder.build(); //In order to get the valueConverter for this column, we have to create a field; //The index value -1 in the field will never used when converting default value; //So we can set any number here; final Field field = new Field(column.name(), -1, schema); final ValueConverter valueConverter = converters.converter(column, field); if (defaultValue instanceof String) { defaultValue = defaultValuePreConverter.convert(column, (String)defaultValue); } defaultValue = valueConverter.convert(defaultValue); columnEditor.defaultValue(defaultValue); } }
private void convertDefaultValueToSchemaType(ColumnEditor columnEditor) { final Column column = columnEditor.create(); // if converters is not null and the default value is not null, we need to convert default value if (converters != null && columnEditor.defaultValue() != null) { Object defaultValue = columnEditor.defaultValue(); final SchemaBuilder schemaBuilder = converters.schemaBuilder(column); if (schemaBuilder == null) { return; } final Schema schema = schemaBuilder.build(); //In order to get the valueConverter for this column, we have to create a field; //The index value -1 in the field will never used when converting default value; //So we can set any number here; final Field field = new Field(column.name(), -1, schema); final ValueConverter valueConverter = converters.converter(column, field); if (defaultValue instanceof String) { defaultValue = defaultValuePreConverter.convert(column, (String)defaultValue); } defaultValue = valueConverter.convert(defaultValue); columnEditor.defaultValue(defaultValue); } }
if (column != null && column.isOptional()) { final ColumnEditor ce = column.edit().optional(false); if (ce.hasDefaultValue() && ce.defaultValue() == null) { ce.unsetDefaultValue();
columnEditor.defaultValue(sign + unquote(ctx.constant().stringLiteral().getText())); columnEditor.defaultValue(sign + ctx.constant().decimalLiteral().getText()); columnEditor.defaultValue(unquoteBinary(ctx.constant().BIT_STRING().getText())); columnEditor.defaultValue(ctx.constant().booleanLiteral().getText()); columnEditor.defaultValue(ctx.constant().REAL_LITERAL().getText()); columnEditor.defaultValue("1970-01-01 00:00:00"); columnEditor.defaultValue(ctx.timeDefinition().getText());
@Override public ColumnEditor edit() { final ColumnEditor editor = Column.editor() .name(name()) .type(typeName(), typeExpression()) .jdbcType(jdbcType()) .nativeType(nativeType) .charsetName(charsetName) .length(length()) .scale(scale().orElse(null)) .position(position()) .optional(isOptional()) .autoIncremented(isAutoIncremented()) .generated(isGenerated()); if (hasDefaultValue()) { editor.defaultValue(defaultValue()); } return editor; } }
if (c != null && c.isOptional()) { final ColumnEditor ce = c.edit().optional(false); if (ce.hasDefaultValue() && ce.defaultValue() == null) { ce.unsetDefaultValue();
@Override public ColumnEditor edit() { final ColumnEditor editor = Column.editor() .name(name()) .type(typeName(), typeExpression()) .jdbcType(jdbcType()) .nativeType(nativeType) .charsetName(charsetName) .length(length()) .scale(scale().orElse(null)) .position(position()) .optional(isOptional()) .autoIncremented(isAutoIncremented()) .generated(isGenerated()); if (hasDefaultValue()) { editor.defaultValue(defaultValue()); } return editor; } }