Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:TobikoData Sqlmesh ColumnLevel Help

From Leeroopedia


Knowledge Sources
Domains Web_UI, Lineage_Visualization
Last Updated 2026-02-07 20:00 GMT

Overview

Utility functions for processing column-level lineage adjacency lists and calculating column display dimensions.

Description

ColumnLevel_Help provides a collection of pure functions for transforming and analyzing column-level lineage data structures. Key functions include getAdjacencyListKeysFromColumnLineage which extracts all model names from lineage data, getEdgesFromColumnLineage which generates graph edges for column-to-column connections, and getConnectedColumnsIDs which identifies all columns participating in lineage relationships. The module also includes dimension calculation functions for determining node heights based on the number of selected columns, displayed columns, and UI element spacing (borders, separators, padding).

Usage

Use these helper functions when processing column-level lineage data for visualization, when constructing graph structures from adjacency lists, or when calculating dynamic node dimensions based on column counts and UI layout constraints.

Code Reference

Source Location

  • Repository: TobikoData_Sqlmesh
  • File: web/common/src/components/Lineage/LineageColumnLevel/help.ts

Signature

export const MAX_COLUMNS_TO_DISPLAY = 5

export function getAdjacencyListKeysFromColumnLineage<
  TAdjacencyListKey extends string,
  TAdjacencyListColumnKey extends string,
  TColumnLevelLineageAdjacencyList extends ColumnLevelLineageAdjacencyList<...> = ...
>(columnLineage: TColumnLevelLineageAdjacencyList): TAdjacencyListKey[]

export function getEdgesFromColumnLineage<...>({
  columnLineage,
  transformEdge,
}): LineageEdge<...>[]

export function getConnectedColumnsIDs<...>(adjacencyList: TColumnLevelLineageAdjacencyList): Set<TColumnID>

export function calculateNodeColumnsCount(columnsCount?: number): number

export function calculateSelectedColumnsHeight(selectedColumnsCount?: number): number

export function calculateColumnsHeight({
  columnsCount,
  hasColumnsFilter,
}: {
  columnsCount: number
  hasColumnsFilter?: boolean
}): number

Import

import {
  MAX_COLUMNS_TO_DISPLAY,
  getAdjacencyListKeysFromColumnLineage,
  getEdgesFromColumnLineage,
  getConnectedColumnsIDs,
  calculateNodeColumnsCount,
  calculateSelectedColumnsHeight,
  calculateColumnsHeight,
} from '@sqlmesh-common/components/Lineage/LineageColumnLevel/help'

I/O Contract

Inputs

Name Type Required Description
columnLineage TColumnLevelLineageAdjacencyList Yes Adjacency list representing column-level lineage
transformEdge TransformEdgeFn Yes (for getEdgesFromColumnLineage) Function to transform edge data
columnsCount number No Number of columns to calculate dimensions for
selectedColumnsCount number No Number of selected columns
hasColumnsFilter boolean No Whether column filter UI is present (default: true)

Outputs

Name Type Description
adjacencyListKeys TAdjacencyListKey[] Array of all model names in lineage
edges LineageEdge[] Array of graph edges representing column connections
connectedColumns Set<TColumnID> Set of all column IDs participating in lineage
displayCount number Limited count of columns to display (max 5)
height number Calculated height in pixels for UI elements

Usage Examples

// Extract model names from column lineage
const modelNames = getAdjacencyListKeysFromColumnLineage(columnLineage)
// Returns: ['model1', 'model2', 'model3']

// Generate edges for visualization
const edges = getEdgesFromColumnLineage({
  columnLineage: adjacencyList,
  transformEdge: (type, id, source, target, sourceHandle, targetHandle) => ({
    id,
    source,
    target,
    sourceHandle,
    targetHandle,
    type,
  })
})

// Get all connected columns
const connectedCols = getConnectedColumnsIDs(adjacencyList)
// Returns: Set(['model1.col1', 'model2.col2', ...])

// Calculate display count (limits to 5)
const displayCount = calculateNodeColumnsCount(10) // Returns: 5

// Calculate height for selected columns
const selectedHeight = calculateSelectedColumnsHeight(3)
// Returns: 73 (1 separator + 3 * 24px + 2 * 1px separators)

// Calculate total columns area height
const columnsHeight = calculateColumnsHeight({
  columnsCount: 10,
  hasColumnsFilter: true
})
// Returns height including padding, separators, and filter

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment