From 07170bbe00412be2937765b6c9cbc53a37eb638a Mon Sep 17 00:00:00 2001 From: filipriec Date: Sat, 8 Mar 2025 20:46:10 +0100 Subject: [PATCH] fixed working table creation properly well, ready to be unit tested in the future, but its amazing now --- .../table_definition/handlers/post_table_definition.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/server/src/table_definition/handlers/post_table_definition.rs b/server/src/table_definition/handlers/post_table_definition.rs index 00c810b..0c4d3d1 100644 --- a/server/src/table_definition/handlers/post_table_definition.rs +++ b/server/src/table_definition/handlers/post_table_definition.rs @@ -182,14 +182,19 @@ async fn generate_table_sql( let mut link_info = Vec::new(); for (linked_id, required) in links { let linked_table = get_table_name_by_id(db_pool, *linked_id).await?; - let base_name = linked_table.split('_').last().unwrap_or(&linked_table); + + // Extract base name after year prefix + let base_name = linked_table.split_once('_') + .map(|(_, rest)| rest) + .unwrap_or(&linked_table) + .to_string(); let null_clause = if *required { "NOT NULL" } else { "" }; system_columns.push( format!("\"{0}_id\" BIGINT {1} REFERENCES \"{2}\"(id)", base_name, null_clause, linked_table ) ); - link_info.push((base_name.to_string(), linked_table)); + link_info.push((base_name, linked_table)); } // Combine all columns