1 parent
a99b75a8c5
commit
2b8a5c8897
3 files changed
+60
No files matched your search
@@ -4,6 +4,7 @@ import {
|
||||
buildTableImportParseOptions,
|
||||
defaultTableImportEmptyStringAsNull,
|
||||
formatTableImportElapsed,
|
||||
importDataTypeForDatabase,
|
||||
nextTableImportWizardStep,
|
||||
previousTableImportWizardStep,
|
||||
requiredImportTargetColumns,
|
||||
@@ -131,4 +132,18 @@ describe("tableImport", () => {
|
||||
created_at: "DATETIME",
|
||||
});
|
||||
});
|
||||
|
||||
it("uses SQL Server FLOAT for inferred decimal columns", () => {
|
||||
expect(suggestImportTargetDataTypes(["id", "active", "amount", "created_at", "notes"], [[1001, true, "12.5", "2026-07-07 08:15:00", "invoice"]], "sqlserver")).toEqual({
|
||||
id: "BIGINT",
|
||||
active: "BIT",
|
||||
amount: "FLOAT",
|
||||
created_at: "DATETIME2",
|
||||
notes: "NVARCHAR(MAX)",
|
||||
});
|
||||
expect(importDataTypeForDatabase("decimal", "mysql")).toBe("DOUBLE");
|
||||
expect(importDataTypeForDatabase("decimal", "postgres")).toBe("DOUBLE PRECISION");
|
||||
expect(importDataTypeForDatabase("decimal", "sqlite")).toBe("REAL");
|
||||
expect(importDataTypeForDatabase("decimal", "oracle")).toBe("BINARY_DOUBLE");
|
||||
});
|
||||
});
|
||||
@@ -243,6 +243,7 @@ export function importDataTypeForDatabase(inferredType: ImportInferredType, data
|
||||
return "BIGINT";
|
||||
case "decimal":
|
||||
if (["postgres", "gaussdb", "opengauss", "redshift", "kingbase", "highgo", "uxdb", "kwdb", "vastbase"].includes(databaseType || "")) return "DOUBLE PRECISION";
|
||||
if (databaseType === "sqlserver") return "FLOAT";
|
||||
if (databaseType === "sqlite" || databaseType === "rqlite" || databaseType === "turso" || databaseType === "cloudflare-d1") return "REAL";
|
||||
if (databaseType === "oracle" || databaseType === "oceanbase-oracle" || databaseType === "dameng") return "BINARY_DOUBLE";
|
||||
if (databaseType === "clickhouse") return "Float64";
|
||||
|
||||
Reference in new issue
Block a user