LCOV - code coverage report
Current view: top level - dashql-app/src/views/query_profile - profile_operator_symbol.ts Coverage Total Hit
Test: DashQL 915828b Lines: 100.0 % 45 45
Test Date: 2026-11-06 19:30:32

            Line data    Source code
       1              : import * as dashql from '@ankoh/dashql-core';
       2              : 
       3              : type ProfileOperatorKind = dashql.buffers.profile.ProfileOperatorKind;
       4            1 : const Kind = dashql.buffers.profile.ProfileOperatorKind;
       5              : 
       6              : /// The symbols of the engine-neutral operator kinds, kinds without a symbol render their type name
       7            1 : const OPERATOR_SYMBOLS: ReadonlyMap<ProfileOperatorKind, string> = new Map([
       8            1 :     [Kind.OUTPUT, 'relalg_output'],
       9            1 :     [Kind.SCAN, 'relalg_scan'],
      10            1 :     [Kind.EXPLICIT_SCAN, 'relalg_explicit_scan'],
      11            1 :     [Kind.VIRTUAL_TABLE, 'relalg_virtual_table'],
      12            1 :     [Kind.TABLE_CONSTRUCTION, 'relalg_table_construction'],
      13            1 :     [Kind.TABLE_FUNCTION, 'relalg_table_function'],
      14            1 :     [Kind.FILTER, 'relalg_select'],
      15            1 :     [Kind.PROJECT, 'relalg_map'],
      16            1 :     [Kind.AGGREGATE, 'relalg_group'],
      17            1 :     [Kind.WINDOW, 'relalg_window'],
      18            1 :     [Kind.SORT, 'relalg_sort'],
      19            1 :     [Kind.LIMIT, 'relalg_limit'],
      20            1 :     [Kind.JOIN, 'relalg_join'],
      21            1 :     [Kind.LEFT_OUTER_JOIN, 'relalg_left_outer_join'],
      22            1 :     [Kind.RIGHT_OUTER_JOIN, 'relalg_right_outer_join'],
      23            1 :     [Kind.FULL_OUTER_JOIN, 'relalg_full_outer_join'],
      24            1 :     [Kind.LEFT_SEMI_JOIN, 'relalg_left_semi_join'],
      25            1 :     [Kind.RIGHT_SEMI_JOIN, 'relalg_right_semi_join'],
      26            1 :     [Kind.LEFT_ANTI_JOIN, 'relalg_left_anti_join'],
      27            1 :     [Kind.RIGHT_ANTI_JOIN, 'relalg_right_anti_join'],
      28            1 :     [Kind.LEFT_MARK_JOIN, 'relalg_left_mark_join'],
      29            1 :     [Kind.RIGHT_MARK_JOIN, 'relalg_right_mark_join'],
      30            1 :     [Kind.UNION_ALL, 'relalg_union_all'],
      31            1 :     [Kind.UNION, 'relalg_union'],
      32            1 :     [Kind.INTERSECT_ALL, 'relalg_intersect_all'],
      33            1 :     [Kind.INTERSECT, 'relalg_intersect'],
      34            1 :     [Kind.EXCEPT_ALL, 'relalg_except_all'],
      35            1 :     [Kind.EXCEPT, 'relalg_except'],
      36            1 :     [Kind.ITERATION, 'relalg_iteration'],
      37            1 :     [Kind.ITERATION_INCREMENT, 'relalg_iteration_increment'],
      38            1 :     [Kind.INSERT, 'relalg_insert'],
      39            1 :     [Kind.EXCHANGE, 'relalg_exchange'],
      40            1 :     [Kind.GATHER_EXCHANGE, 'relalg_gather'],
      41            1 :     [Kind.REPARTITION_EXCHANGE, 'relalg_exchange'],
      42            1 :     [Kind.BROADCAST_EXCHANGE, 'relalg_broadcast'],
      43            1 :     [Kind.REMOTE_EXCHANGE, 'relalg_remote_exchange'],
      44            1 : ]);
      45              : 
      46              : export const PROFILE_OPERATOR_SYMBOL_SIZE = 18;
      47              : 
      48            1 : export function getProfileOperatorSymbol(kind: ProfileOperatorKind): string | null {
      49            1 :     return OPERATOR_SYMBOLS.get(kind) ?? null;
      50            1 : }
      51              : 
      52              : /// Render the symbol instead of the label? Only if the label is just the type name.
      53              : /// The core sizes these operators for the symbol (`symbolWidth` of the layout config).
      54            1 : export function shouldRenderProfileOperatorSymbol(kind: ProfileOperatorKind, typeName: string | null, label: string): boolean {
      55            1 :     return typeName != null && label === typeName && getProfileOperatorSymbol(kind) != null;
      56            1 : }
        

Generated by: LCOV version 2.0-1