@simonecoelhosfo/optimizely-mcp-server
Version:
Optimizely MCP Server for AI assistants with integrated CLI tools
98 lines • 2.87 kB
TypeScript
/**
* Multi-Table SQL Builder - Phase 4A Implementation
*
* Extends SQLBuilder to handle complex multi-entity joins using JoinPathPlanner
* Generates optimized SQL for queries across multiple entities.
*/
import { SQLBuilder } from './SQLBuilder.js';
import { type JoinPath } from './JoinPathPlanner.js';
import { FieldCatalog } from './FieldCatalog.js';
import type { UniversalQuery } from './types.js';
export interface MultiEntityQuery extends UniversalQuery {
entities?: string[];
joinPaths?: JoinPath[];
}
export interface FieldMapping {
originalField: string;
resolvedField: string;
entity: string;
table: string;
requiresJoin: boolean;
joinPath?: JoinPath[];
}
export declare class MultiTableSQLBuilder extends SQLBuilder {
private joinPathPlanner;
private activeJoinPaths;
private fieldMappings;
constructor(fieldCatalog: FieldCatalog);
/**
* Get access to the field catalog
*/
protected getFieldCatalog(): FieldCatalog;
/**
* Build SQL for multi-entity queries
*/
buildMultiEntitySQL(query: MultiEntityQuery): Promise<string>;
/**
* Discover all entities required for the query
*/
private discoverRequiredEntities;
/**
* Extract entity name from qualified field (e.g., "experiments.name" -> "experiments")
*/
private extractEntityFromField;
/**
* Resolve all fields across multiple entities
*/
resolveFieldsAcrossEntities(query: MultiEntityQuery): Promise<FieldMapping[]>;
/**
* Resolve field with entity context
*/
private resolveFieldWithEntity;
/**
* Build complex JOIN clause for multiple entities
*/
buildComplexJoinClause(joinPaths: JoinPath[]): string;
/**
* Build SELECT clause for multi-entity query
*/
private buildMultiEntitySelectClause;
/**
* Build WHERE clause for multi-entity query
*/
private buildMultiEntityWhereClause;
/**
* Build standard (non-date) condition for multi-entity queries
*/
private buildMultiEntityStandardCondition;
/**
* Build GROUP BY clause for multi-entity query
*/
private buildMultiEntityGroupByClause;
/**
* Build ORDER BY clause for multi-entity query
*/
private buildMultiEntityOrderByClause;
/**
* Build HAVING clause for multi-entity query
*/
private buildMultiEntityHavingClause;
/**
* Map field location to SQL expression
*/
private mapFieldLocationToSQL;
/**
* Get table name for entity
*/
private getTableName;
/**
* Get join path statistics
*/
getJoinStatistics(): {
totalJoinPaths: number;
entitiesInvolved: string[];
totalCost: number;
joinTypes: Record<string, number>;
};
}
//# sourceMappingURL=MultiTableSQLBuilder.d.ts.map