Skip to content

Commit

Permalink
se: support empty dbgenerated() in columns of unsupported types
Browse files Browse the repository at this point in the history
Empty `dbgenerated()` was fixed for supported types in
#3153 but that PR lacked
the corresponding changes for the unsupported types which this commit
adds.
  • Loading branch information
aqrln authored and Druue committed Apr 26, 2024
1 parent f25848f commit 05e0213
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 11 deletions.
Expand Up @@ -414,16 +414,10 @@ fn push_column_for_model_unsupported_scalar_field(
table_id: sql::TableId,
ctx: &mut Context<'_>,
) {
let default = field.default_value().and_then(|def| {
let default = field.default_value().map(|def| {
// This is validated as @default(dbgenerated("...")), we can unwrap.
let dbgenerated_contents = unwrap_dbgenerated(def.value());
if let Some(value) = dbgenerated_contents {
let default =
sql::DefaultValue::db_generated(value).with_constraint_name(ctx.flavour.default_constraint_name(def));
Some(default)
} else {
None
}
sql::DefaultValue::db_generated::<String>(unwrap_dbgenerated(def.value()))
.with_constraint_name(ctx.flavour.default_constraint_name(def))
});

if let Some(default) = default {
Expand Down
4 changes: 2 additions & 2 deletions schema-engine/sql-schema-describer/src/lib.rs
Expand Up @@ -825,8 +825,8 @@ pub enum DefaultKind {
}

impl DefaultValue {
pub fn db_generated(val: impl Into<String>) -> Self {
Self::new(DefaultKind::DbGenerated(Some(val.into())))
pub fn db_generated<S: Into<String>>(val: impl Into<Option<S>>) -> Self {
Self::new(DefaultKind::DbGenerated(val.into().map(Into::into)))
}

pub fn constraint_name(&self) -> Option<&str> {
Expand Down

0 comments on commit 05e0213

Please sign in to comment.