MCPcopy Create free account
hub / github.com/TabularisDB/tabularis / generateVisualQuerySQL

Function generateVisualQuerySQL

src/utils/visualQuery.ts:320–344  ·  view source on GitHub ↗
(
  nodes: QueryNode[],
  edges: QueryEdge[],
  whereConditions: WhereCondition[],
  orderBy: OrderByClause[],
  groupBy: string[],
  limit: string,
  driver?: string | null,
)

Source from the content-addressed store, hash-verified

318 * Generates complete SQL query from visual query state
319 */
320export function generateVisualQuerySQL(
321 nodes: QueryNode[],
322 edges: QueryEdge[],
323 whereConditions: WhereCondition[],
324 orderBy: OrderByClause[],
325 groupBy: string[],
326 limit: string,
327 driver?: string | null,
328): string {
329 if (nodes.length === 0) return '';
330
331 const aliases = collectTableAliases(nodes);
332 const { columns, hasAggregation, nonAggregatedCols } = collectSelectedColumns(nodes, aliases);
333
334 let sql = 'SELECT\n';
335 sql += generateSelectClause(columns);
336 sql += generateFromClause(nodes, edges, aliases);
337 sql += generateWhereClause(whereConditions);
338 sql += generateGroupByClause(hasAggregation, nonAggregatedCols, groupBy);
339 sql += generateHavingClause(whereConditions);
340 sql += generateOrderByClause(orderBy, driver);
341 sql += generateLimitClause(limit);
342
343 return sql;
344}

Callers 2

Calls 9

collectTableAliasesFunction · 0.85
collectSelectedColumnsFunction · 0.85
generateSelectClauseFunction · 0.85
generateFromClauseFunction · 0.85
generateWhereClauseFunction · 0.85
generateGroupByClauseFunction · 0.85
generateHavingClauseFunction · 0.85
generateOrderByClauseFunction · 0.85
generateLimitClauseFunction · 0.85

Tested by

no test coverage detected