Line data Source code
1 : import * as dashql from '@ankoh/dashql-core';
2 :
3 : import { VariantKind } from '../../utils/variant.js';
4 :
5 : export interface QualifiedDatabaseId {
6 : /// The database id
7 : database: number;
8 : }
9 : export interface QualifiedSchemaId extends QualifiedDatabaseId {
10 : /// The schema id
11 : schema: number;
12 : }
13 : export interface QualifiedTableId extends QualifiedSchemaId {
14 : /// The table
15 : table: dashql.ExternalObjectID.Value;
16 : /// The referenced catalog version
17 : referencedCatalogVersion: number;
18 : }
19 : export interface QualifiedTableColumnId extends QualifiedTableId {
20 : /// The column index
21 : column: number;
22 : }
23 :
24 1 : export const QUALIFIED_DATABASE_ID = Symbol('FOCUS_DATABASE');
25 1 : export const QUALIFIED_SCHEMA_ID = Symbol('FOCUS_SCHEMA');
26 1 : export const QUALIFIED_TABLE_ID = Symbol('FOCUS_TABLE');
27 1 : export const QUALIFIED_TABLE_COLUMN_ID = Symbol('QUALIFIED_TABLE_COLUMN');
28 :
29 : export type QualifiedCatalogObjectID =
30 : VariantKind<typeof QUALIFIED_DATABASE_ID, QualifiedDatabaseId>
31 : | VariantKind<typeof QUALIFIED_SCHEMA_ID, QualifiedSchemaId>
32 : | VariantKind<typeof QUALIFIED_TABLE_ID, QualifiedTableId>
33 : | VariantKind<typeof QUALIFIED_TABLE_COLUMN_ID, QualifiedTableColumnId>
34 : ;
|