clickhouse: show sorting key

This commit is contained in:
SPRINX0\prochazka
2024-09-10 16:14:25 +02:00
parent 18e6200c3b
commit 5c50faa0a2
3 changed files with 25 additions and 5 deletions

View File

@@ -61,7 +61,7 @@ export interface ColumnInfo extends NamedObjectInfo {
isUnsigned?: boolean; isUnsigned?: boolean;
isZerofill?: boolean; isZerofill?: boolean;
options?: []; options?: [];
canSelectMultipleOptions?: boolean, canSelectMultipleOptions?: boolean;
} }
export interface DatabaseObjectInfo extends NamedObjectInfo { export interface DatabaseObjectInfo extends NamedObjectInfo {
@@ -82,6 +82,7 @@ export interface SqlObjectInfo extends DatabaseObjectInfo {
export interface TableInfo extends DatabaseObjectInfo { export interface TableInfo extends DatabaseObjectInfo {
columns: ColumnInfo[]; columns: ColumnInfo[];
primaryKey?: PrimaryKeyInfo; primaryKey?: PrimaryKeyInfo;
sortingKey?: ColumnsConstraintInfo;
foreignKeys: ForeignKeyInfo[]; foreignKeys: ForeignKeyInfo[];
dependencies?: ForeignKeyInfo[]; dependencies?: ForeignKeyInfo[];
indexes?: IndexInfo[]; indexes?: IndexInfo[];
@@ -91,6 +92,7 @@ export interface TableInfo extends DatabaseObjectInfo {
preloadedRowsKey?: string[]; preloadedRowsKey?: string[];
preloadedRowsInsertOnly?: string[]; preloadedRowsInsertOnly?: string[];
tableRowCount?: number | string; tableRowCount?: number | string;
tableEngine?: string;
__isDynamicStructure?: boolean; __isDynamicStructure?: boolean;
} }
@@ -102,10 +104,10 @@ export interface CollectionInfo extends DatabaseObjectInfo {
uniqueKey?: ColumnReference[]; uniqueKey?: ColumnReference[];
// partition key columns // partition key columns
partitionKey?: ColumnReference[] partitionKey?: ColumnReference[];
// unique key inside partition // unique key inside partition
clusterKey?: ColumnReference[]; clusterKey?: ColumnReference[];
} }
export interface ViewInfo extends SqlObjectInfo { export interface ViewInfo extends SqlObjectInfo {

View File

@@ -10,8 +10,8 @@
export let showIfEmpty = false; export let showIfEmpty = false;
export let emptyMessage = null; export let emptyMessage = null;
export let hideDisplayName = false; export let hideDisplayName = false;
export let clickable; export let clickable = false;
export let onAddNew; export let onAddNew = null;
</script> </script>
{#if collection?.length > 0 || showIfEmpty || emptyMessage} {#if collection?.length > 0 || showIfEmpty || emptyMessage}

View File

@@ -144,6 +144,7 @@
$: columns = tableInfo?.columns; $: columns = tableInfo?.columns;
$: primaryKey = tableInfo?.primaryKey; $: primaryKey = tableInfo?.primaryKey;
$: sortingKey = tableInfo?.sortingKey;
$: foreignKeys = tableInfo?.foreignKeys; $: foreignKeys = tableInfo?.foreignKeys;
$: dependencies = tableInfo?.dependencies; $: dependencies = tableInfo?.dependencies;
$: indexes = tableInfo?.indexes; $: indexes = tableInfo?.indexes;
@@ -273,6 +274,23 @@
> >
</ObjectListControl> </ObjectListControl>
{#if sortingKey}
<ObjectListControl
collection={[sortingKey]}
title="Sorting key"
columns={[
{
fieldName: 'columns',
header: 'Columns',
slot: 0,
},
]}
>
<svelte:fragment slot="name" let:row><ConstraintLabel {...row} /></svelte:fragment>
<svelte:fragment slot="0" let:row>{row?.columns.map(x => x.columnName).join(', ')}</svelte:fragment>
</ObjectListControl>
{/if}
<ObjectListControl <ObjectListControl
collection={indexes} collection={indexes}
onAddNew={isWritable && columns?.length > 0 ? addIndex : null} onAddNew={isWritable && columns?.length > 0 ? addIndex : null}