Skip to content

Commit 31c4295

Browse files
committed
fix column names
1 parent 1773137 commit 31c4295

1 file changed

Lines changed: 22 additions & 23 deletions

File tree

src/algos/convertor.rs

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -224,36 +224,35 @@ pub fn sql_s_mermaid(sql: &str) -> String {
224224
let mut mermaid: String = "erDiagram\n".to_string();
225225

226226
for statement in ast(sql) {
227-
mermaid.push_str(
228-
statement_mermaid(
229-
statement,
230-
&mut table_column_type,
231-
&mut table_column_constraints,
232-
&mut column_foreign_key_column,
233-
)
234-
.as_str(),
227+
statement_mermaid(
228+
statement,
229+
&mut table_column_type,
230+
&mut table_column_constraints,
231+
&mut column_foreign_key_column,
235232
);
236233
}
237234
log::debug!("Update: {:?}", table_column_constraints);
238235

239236
// draw boxes
240-
for (table_name, table) in &table_column_constraints {
241-
mermaid.push_str(&format!("\t{} {{\n", table_name.to_string().replace('"', "")));
242-
for (column_name, constraints) in table {
237+
for (table_name, table) in &table_column_type {
238+
mermaid.push_str(&format!(
239+
"\t{} {{\n",
240+
table_name.to_string().replace('"', "")
241+
));
242+
let default_table_constraints = HashMap::new();
243+
let table_constraints = table_column_constraints.get(table_name).unwrap_or(&default_table_constraints);
244+
for (column_name, data_type) in table {
245+
let default_constraints = &HashSet::new();
246+
let constraints = &table_constraints.get(column_name).unwrap_or(&default_constraints);
243247
mermaid.push_str(&format!(
244248
"\t\t{} {} {} {}\n",
245-
match table_column_type.get(table_name) {
246-
Some(cols) => match cols.get(column_name) {
247-
None => "NONE".to_string(),
248-
Some(data_type) => data_type.to_string()
249-
.replace(' ', "_")
250-
.replace('(', "")
251-
.replace(')', "")
252-
.replace(',', "_"),
253-
},
254-
None => "NONE".to_string(),
255-
},
256-
table_name.to_string().replace('"', ""),
249+
data_type
250+
.to_string()
251+
.replace(' ', "_")
252+
.replace('(', "")
253+
.replace(')', "")
254+
.replace(',', "_"),
255+
column_name.to_string().replace('"', ""),
257256
if constraints.contains(&ColumnConstraint::PrimaryKey) {
258257
"PK"
259258
} else {

0 commit comments

Comments
 (0)