From ca5f703f5703bf58c3fb8eea86948b1e9102a3c8 Mon Sep 17 00:00:00 2001 From: harsh mahajan Date: Fri, 10 Jul 2026 11:28:39 +0530 Subject: [PATCH 1/2] fix(databases): correct enum icon and hide indexed checkbox for relationships The create-index column selector matched icons by type only, so enum columns (type: string, format: enum) fell through to the first string-typed option and showed the email icon. The columns table also showed an "Indexed" checkbox for relationship columns, which can't be indexed. --- .../(entity)/views/indexes/create.svelte | 6 ++- .../table-[table]/columns/+page.svelte | 42 ++++++++++--------- 2 files changed, 28 insertions(+), 20 deletions(-) diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/(entity)/views/indexes/create.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/(entity)/views/indexes/create.svelte index ae49e46d5d..35ed3fe049 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/(entity)/views/indexes/create.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/(entity)/views/indexes/create.svelte @@ -57,7 +57,11 @@ .map((field) => ({ value: field.key, label: field.key, - leadingIcon: baseColumnOptions.find((option) => option.type === field.type)?.icon + leadingIcon: baseColumnOptions.find( + (option) => + option.type === field.type && + option.format === ('format' in field ? field.format : undefined) + )?.icon })) ); diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/columns/+page.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/columns/+page.svelte index 5c457edce1..3f54139a63 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/columns/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/columns/+page.svelte @@ -515,26 +515,30 @@ {columnType.toLowerCase()} - - {@const isActuallyIndexed = - isId || $indexes.some((index) => index.columns.includes(column.key))} - - - {@const checked = isId || isActuallyIndexed || !!columnIndexMap[column.key]} - - { - if (!isActuallyIndexed) { - if (e.detail) { - columnIndexMap[column.key] = true; - $showCreateIndexSheet.show = true; - $showCreateIndexSheet.column = column.key; + {#if !isRelationship(column)} + + {@const isActuallyIndexed = + isId || + $indexes.some((index) => index.columns.includes(column.key))} + + + {@const checked = + isId || isActuallyIndexed || !!columnIndexMap[column.key]} + + { + if (!isActuallyIndexed) { + if (e.detail) { + columnIndexMap[column.key] = true; + $showCreateIndexSheet.show = true; + $showCreateIndexSheet.column = column.key; + } } - } - }} /> + }} /> + {/if} {@const _default = column.required From 8f67efbbde6da7b374dce2ba06c8b9cb6ef65ee9 Mon Sep 17 00:00:00 2001 From: harsh mahajan Date: Fri, 10 Jul 2026 11:32:59 +0530 Subject: [PATCH 2/2] fix(databases): treat empty format as no format in enum icon lookup Mirrors the truthiness guard already used in columns/+page.svelte, so an empty-string format from the API falls back to undefined instead of failing to match any option and dropping the icon. --- .../database-[database]/(entity)/views/indexes/create.svelte | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/(entity)/views/indexes/create.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/(entity)/views/indexes/create.svelte index 35ed3fe049..c3d236045d 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/(entity)/views/indexes/create.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/(entity)/views/indexes/create.svelte @@ -60,7 +60,8 @@ leadingIcon: baseColumnOptions.find( (option) => option.type === field.type && - option.format === ('format' in field ? field.format : undefined) + option.format === + ('format' in field && field.format ? field.format : undefined) )?.icon })) );