Fix field precision and size input and parsing
This commit is contained in:
parent
898d81d6e9
commit
4a87935412
@ -123,9 +123,9 @@ export default function FieldDetails({ data, tid, index }) {
|
|||||||
<div className="font-semibold">Precision</div>
|
<div className="font-semibold">Precision</div>
|
||||||
<Input
|
<Input
|
||||||
className="my-2 w-full"
|
className="my-2 w-full"
|
||||||
placeholder="Set precision: (size, d)"
|
placeholder="Set precision: size, d"
|
||||||
validateStatus={
|
validateStatus={
|
||||||
!data.size || /^\(\d+,\s*\d+\)$|^$/.test(data.size)
|
!data.size || /^\d+,\s*\d+$|^$/.test(data.size)
|
||||||
? "default"
|
? "default"
|
||||||
: "error"
|
: "error"
|
||||||
}
|
}
|
||||||
|
@ -60,8 +60,7 @@ export function astToDiagram(ast) {
|
|||||||
}
|
}
|
||||||
if (d.definition["length"]) {
|
if (d.definition["length"]) {
|
||||||
if (d.definition.scale) {
|
if (d.definition.scale) {
|
||||||
field.size =
|
field.size = d.definition["length"] + "," + d.definition.scale;
|
||||||
"(" + d.definition["length"] + "," + d.definition.scale + ")";
|
|
||||||
} else {
|
} else {
|
||||||
field.size = d.definition["length"];
|
field.size = d.definition["length"];
|
||||||
}
|
}
|
||||||
@ -114,13 +113,11 @@ export function astToDiagram(ast) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
tables.push(table);
|
table.fields.forEach((f, j) => {
|
||||||
tables.forEach((e, i) => {
|
f.id = j;
|
||||||
e.id = i;
|
|
||||||
e.fields.forEach((f, j) => {
|
|
||||||
f.id = j;
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
table.id = tables.length;
|
||||||
|
tables.push(table);
|
||||||
} else if (e.keyword === "index") {
|
} else if (e.keyword === "index") {
|
||||||
const index = {};
|
const index = {};
|
||||||
index.name = e.index;
|
index.name = e.index;
|
||||||
|
@ -44,10 +44,7 @@ export function getTypeString(field, dbms = "mysql", baseType = false) {
|
|||||||
if (field.type === "UUID") {
|
if (field.type === "UUID") {
|
||||||
return `VARCHAR(36)`;
|
return `VARCHAR(36)`;
|
||||||
}
|
}
|
||||||
if (isSized(field.type)) {
|
if (hasPrecision(field.type) || isSized(field.type)) {
|
||||||
return `${field.type}(${field.size})`;
|
|
||||||
}
|
|
||||||
if (hasPrecision(field.type)) {
|
|
||||||
return `${field.type}${field.size ? `(${field.size})` : ""}`;
|
return `${field.type}${field.size ? `(${field.size})` : ""}`;
|
||||||
}
|
}
|
||||||
if (field.type === "SET" || field.type === "ENUM") {
|
if (field.type === "SET" || field.type === "ENUM") {
|
||||||
|
Loading…
Reference in New Issue
Block a user