getPgColumnDefault method
String?
getPgColumnDefault(
- dynamic defaultValue,
- String tableName, {
- required String dartType,
})
Implementation
String? getPgColumnDefault(
dynamic defaultValue,
String tableName, {
required String dartType,
}) {
if (defaultValue == null) return null;
if ((this == ColumnType.integer || this == ColumnType.bigint) &&
defaultValue == defaultIntSerial) {
return "nextval('${tableName}_id_seq'::regclass)";
}
switch (this) {
case ColumnType.timestampWithoutTimeZone:
if (defaultValue is! String) {
throw StateError('Invalid DateTime default value: $defaultValue');
}
if (defaultValue == defaultDateTimeValueNow) {
return 'CURRENT_TIMESTAMP';
}
var dateTime = DateTime.parse(defaultValue);
var formatted = DateFormat('yyyy-MM-dd HH:mm:ss.SSS').format(dateTime);
return "'$formatted'::timestamp without time zone";
case ColumnType.boolean:
case ColumnType.integer:
case ColumnType.doublePrecision:
case ColumnType.bigint:
return '$defaultValue';
case ColumnType.text:
case ColumnType.json:
return '$defaultValue::text';
case ColumnType.uuid:
return switch (defaultValue) {
defaultUuidValueRandom => 'gen_random_uuid()',
defaultUuidValueRandomV7 => 'gen_random_uuid_v7()',
_ => '$defaultValue::uuid',
};
default:
return '$defaultValue::text';
}
}