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.push(',');
Ok(query)
Ok(query.trim_end().to_string())
}
}
@@ -70,7 +69,7 @@ mod tests {
let serializer = ColumnSqlSerializer{};
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]
@@ -85,7 +84,7 @@ mod tests {
let serializer = ColumnSqlSerializer{};
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]
@@ -100,6 +99,6 @@ mod tests {
let serializer = ColumnSqlSerializer {};
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 {
pub fn serialize(self, table: Table) -> String {
let mut query = String::from("CREATE TABLE ");
query += &format!("{} (\n", table.name);
let column_serializer = ColumnSqlSerializer{};
for column in table.columns {
query += &column_serializer.serialize(column).unwrap();
}
let columns_sql: Vec<String> = table.columns
.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);
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());
}
}