fix(kingbase): display char column lengths from bpchar metadata

This commit is contained in:
zipg authored and GitHub committed 2026-08-24 21:42:46 +08:00
1 parent 992ac00aff
commit 7904231566
3 files changed
+21 -5

No files matched your search

@@ -75,6 +75,15 @@ describe("tableStructureEditorState", () => {
extra: null,
character_maximum_length: 255,
},
{
name: "fixed_code",
data_type: "bpchar",
is_nullable: true,
column_default: null,
is_primary_key: false,
extra: null,
character_maximum_length: 32,
},
{
name: "amount",
data_type: "numeric",
@@ -108,9 +117,10 @@ describe("tableStructureEditorState", () => {
"kingbase",
);
expect(columns.map((column) => column.dataType)).toEqual(["varchar(255)", "numeric(12,2)", "integer", "character varying(64)"]);
expect(columns.map((column) => column.original?.data_type)).toEqual(["varchar(255)", "numeric(12,2)", "integer", "character varying(64)"]);
expect(columns.map((column) => column.dataType)).toEqual(["varchar(255)", "bpchar(32)", "numeric(12,2)", "integer", "character varying(64)"]);
expect(columns.map((column) => column.original?.data_type)).toEqual(["varchar(255)", "bpchar(32)", "numeric(12,2)", "integer", "character varying(64)"]);
expect(dataTypeLengthInputValue("kingbase", columns[0]?.dataType ?? "")).toBe("255");
expect(dataTypeLengthInputValue("kingbase", columns[1]?.dataType ?? "")).toBe("32");
});
it("turns copied metadata into new column drafts instead of existing columns", () => {
@@ -822,7 +822,7 @@ function columnDefaultForEditor(column: ColumnInfo, databaseType?: DatabaseType)
return defaultValue;
}
const CHARACTER_LENGTH_METADATA_TYPES = new Set(["binary", "char", "character", "character varying", "nchar", "nvarchar", "nvarchar2", "varbinary", "varchar", "varchar2"]);
const CHARACTER_LENGTH_METADATA_TYPES = new Set(["binary", "bpchar", "char", "character", "character varying", "nchar", "nvarchar", "nvarchar2", "varbinary", "varchar", "varchar2"]);
const NUMERIC_PRECISION_METADATA_TYPES = new Set(["decimal", "number", "numeric"]);
const XUGU_SINGLE_PRECISION_METADATA_TYPES = new Set(["bit", "time", "time with time zone", "timestamp", "timestamp with time zone", "varbit"]);