import { CommonResponse, CommonNamespaceArgs } from "./Common"; import { FieldType, PartitionType, TableState, ElementType } from "./Const"; import { IndexSchema } from "./MochowIndex"; export interface PartitionParams { partitionType: PartitionType; partitionNum: number; } export interface FieldSchema { fieldName: string; fieldType: FieldType; primaryKey?: boolean; partitionKey?: boolean; autoIncrement?: boolean; notNull?: boolean; dimension?: number; elementType?: ElementType; maxCapacity?: number; } export interface TableSchema { fields: FieldSchema[]; indexes: IndexSchema[]; } export interface CreateTableArgs extends CommonNamespaceArgs { description?: string; replication: number; partition: PartitionParams; enableDynamicField?: boolean; schema: TableSchema; } export interface AddFieldArgs extends CommonNamespaceArgs { schema: TableSchema; } export interface ListTableResponse extends CommonResponse { tables: string[]; } export interface TableDescription { database: string; table: string; createTime: string; description: string; replication: number; partition: PartitionParams; enableDynamicField: boolean; state: TableState; aliases: string[]; schema: TableSchema; } export interface ShowTableStatsResponse extends CommonResponse { rowCount: number; memorySizeInByte: number; diskSizeInByte: number; } export interface DescTableResponse extends CommonResponse { table: TableDescription; }