Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 2 additions & 5 deletions crates/modelardb_storage/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -454,11 +454,8 @@ fn generated_columns_to_list_array(generated_columns: Vec<Option<GeneratedColumn

for generated_column in generated_columns {
if let Some(generated_column) = generated_column {
if let Some(sql_expr) = generated_column.original_expr {
generated_columns_builder.values().append_value(sql_expr);
} else {
generated_columns_builder.values().append_null();
}
let sql_expr = generated_column.original_expr;
generated_columns_builder.values().append_value(sql_expr);
} else {
generated_columns_builder.values().append_null();
}
Expand Down
10 changes: 5 additions & 5 deletions crates/modelardb_storage/src/metadata/model_table_metadata.rs
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,7 @@ pub struct GeneratedColumn {
pub source_columns: Vec<usize>,
/// Original representation of `expr`. It is copied from the SQL statement, so it can be stored
/// in the metadata Delta Lake as `expr` does not implement serialization and deserialization.
pub original_expr: Option<String>,
pub original_expr: String,
}

impl GeneratedColumn {
Expand All @@ -235,7 +235,7 @@ impl GeneratedColumn {
Ok(Self {
expr,
source_columns: source_columns?,
original_expr: Some(sql_expr.to_owned()),
original_expr: sql_expr.to_owned(),
})
}
}
Expand Down Expand Up @@ -371,7 +371,7 @@ mod test {
options: wild_card_options.clone(),
},
source_columns: vec![],
original_expr: None,
original_expr: "".to_owned(),
});

generated_columns[6] = Some(GeneratedColumn {
Expand All @@ -380,7 +380,7 @@ mod test {
options: wild_card_options,
},
source_columns: vec![5],
original_expr: None,
original_expr: "".to_owned(),
});

let result = ModelTableMetadata::try_new(
Expand Down Expand Up @@ -486,7 +486,7 @@ mod test {
let expected_generated_column = GeneratedColumn {
expr: col("field_1") + col("field_2"),
source_columns: vec![0, 1],
original_expr: Some(sql_expr.to_owned()),
original_expr: sql_expr.to_owned(),
};

let df_schema = schema.to_dfschema().unwrap();
Expand Down
17 changes: 7 additions & 10 deletions crates/modelardb_storage/src/metadata/table_metadata_manager.rs
Original file line number Diff line number Diff line change
Expand Up @@ -382,13 +382,10 @@ impl TableMetadataManager {
.enumerate()
{
if model_table_metadata.is_field(query_schema_index) {
let generated_column_expr = if let Some(generated_column) =
&model_table_metadata.generated_columns[query_schema_index]
{
generated_column.original_expr.clone()
} else {
None
};
let maybe_generated_column_expr = model_table_metadata.generated_columns
[query_schema_index]
.as_ref()
.map(|generated_column| generated_column.original_expr.clone());

// error_bounds matches schema and not query_schema to simplify looking up the error
// bound during ingestion as it occurs far more often than creation of model tables.
Expand All @@ -412,7 +409,7 @@ impl TableMetadataManager {
Arc::new(Int16Array::from(vec![query_schema_index as i16])),
Arc::new(Float32Array::from(vec![error_bound_value])),
Arc::new(BooleanArray::from(vec![error_bound_is_relative])),
Arc::new(StringArray::from(vec![generated_column_expr])),
Arc::new(StringArray::from(vec![maybe_generated_column_expr])),
],
)
.await?;
Expand Down Expand Up @@ -1388,13 +1385,13 @@ mod tests {
let plus_one_column = Some(GeneratedColumn {
expr: col("field_1") + Literal(Int64(Some(1))),
source_columns: vec![1],
original_expr: Some("field_1 + 1".to_owned()),
original_expr: "field_1 + 1".to_owned(),
});

let addition_column = Some(GeneratedColumn {
expr: col("field_1") + col("field_2"),
source_columns: vec![1, 2],
original_expr: Some("field_1 + field_2".to_owned()),
original_expr: "field_1 + field_2".to_owned(),
});

let expected_generated_columns =
Expand Down
2 changes: 1 addition & 1 deletion crates/modelardb_storage/src/parser.rs
Original file line number Diff line number Diff line change
Expand Up @@ -979,7 +979,7 @@ fn extract_generation_exprs_for_all_columns(
// Lake, it is not stored in ModelTableMetadata as it not used for during query
// execution.
let sql_expr = generation_expr.as_ref().unwrap();
let original_expr = Some(sql_expr.to_string());
let original_expr = sql_expr.to_string();

// Ensure that the parsed sqlparser expression can be converted to a logical Apache
// Arrow DataFusion expression within the context of schema to check it for errors.
Expand Down