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