fix: change the way the comma appears in the column SQL creation to fix a SQL syntax error

This commit is contained in:
Namu
2026-04-02 00:39:40 +02:00
parent a4c38c663f
commit 6b8215bfb9
2 changed files with 11 additions and 15 deletions

View File

@@ -46,8 +46,7 @@ impl ColumnSqlSerializer {
query += "PRIMARY KEY "; query += "PRIMARY KEY ";
} }
query.push(','); Ok(query.trim_end().to_string())
Ok(query)
} }
} }
@@ -70,7 +69,7 @@ mod tests {
let serializer = ColumnSqlSerializer{}; let serializer = ColumnSqlSerializer{};
let result = serializer.serialize(column).unwrap(); let result = serializer.serialize(column).unwrap();
assert_eq!(result, "id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY ,".to_string()); assert_eq!(result, "id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY".to_string());
} }
#[test] #[test]
@@ -85,7 +84,7 @@ mod tests {
let serializer = ColumnSqlSerializer{}; let serializer = ColumnSqlSerializer{};
let result = serializer.serialize(column).unwrap(); let result = serializer.serialize(column).unwrap();
assert_eq!(result, "name TEXT NOT NULL DEFAULT 'None' ,".to_string()); assert_eq!(result, "name TEXT NOT NULL DEFAULT 'None'".to_string());
} }
#[test] #[test]
@@ -100,6 +99,6 @@ mod tests {
let serializer = ColumnSqlSerializer {}; let serializer = ColumnSqlSerializer {};
let result = serializer.serialize(column).unwrap(); let result = serializer.serialize(column).unwrap();
assert_eq!(result, "age INTEGER NOT NULL DEFAULT 18 ,".to_string()); assert_eq!(result, "age INTEGER NOT NULL DEFAULT 18".to_string());
} }
} }

View File

@@ -6,16 +6,13 @@ pub struct TableSqlSerializer {}
impl TableSqlSerializer { impl TableSqlSerializer {
pub fn serialize(self, table: Table) -> String { pub fn serialize(self, table: Table) -> String {
let mut query = String::from("CREATE TABLE ");
query += &format!("{} (\n", table.name);
let column_serializer = ColumnSqlSerializer{}; let column_serializer = ColumnSqlSerializer{};
for column in table.columns { let columns_sql: Vec<String> = table.columns
query += &column_serializer.serialize(column).unwrap(); .into_iter()
} .map(|c| column_serializer.serialize(c).unwrap())
.collect();
query += ");";
query format!("CREATE TABLE {} ({});", table.name, columns_sql.join(", "))
} }
} }
@@ -43,6 +40,6 @@ mod test {
let result = serializer.serialize(table); let result = serializer.serialize(table);
assert_eq!(result, "CREATE TABLE test (\nid INTEGER NOT NULL AUTO_INCREMENT ,);".to_string()); assert_eq!(result, "CREATE TABLE test (id INTEGER NOT NULL AUTO_INCREMENT);".to_string());
} }
} }