# FeatureQL LLM help index

Bootstrap: [`getting_started`](/llms/getting_started.md).
This file is independent navigation for machine readers — not a website sidebar.

## Concepts and patterns

- [`adjacency`](/llms/adjacency.md) (aliases: referral_chain) — Same-table parent/child links (manager_id, referrer_id) become a self-lookup array merged onto the base rows — the same pattern as SQL self-join on `child.parent_id = parent.id`.
- [`array_enrichment`](/llms/array_enrichment.md) (aliases: dimension_join, multi_hop, zip, array_of_rows) — `EXTEND` enriches an array of rows with fields from another entity, joined by a foreign key.
- [`array_merge`](/llms/array_merge.md) (aliases: array_merge_via, array_merge_on, array_agg) — Arrays of rows are the join surface inside an entity.
- [`authoring_slt`](/llms/authoring_slt.md) (aliases: slt, sltest, code_sample, slt_authoring) — Documentation and help tag pages use **SQL Logic Test** (`.slt`) files: executable FeatureQL snippets with expected results.
- [`backend_particularities`](/llms/backend_particularities.md) (aliases: array_distinct_unstable, bind_columns_sql, external_columns_sql) — FeatureQL targets DuckDB, Trino, BigQuery, and DataFusion.
- [`benchmark`](/llms/benchmark.md) (aliases: methodology_test) — Four advanced problems (Q20–Q23) stress multi-grain modeling across customer, order, item, and event entities.
- [`bind_keyset`](/llms/bind_keyset.md) (aliases: bind_keyset_group, batch_keyset) — `@BIND_KEYSET()` binds a batch entity population from a persisted `KEYSET()`, an ordered `KEYSET_GROUP()`, or a direct `EXTERNAL_COLUMNS()` / `INLINE_COLUMNS()` source.
- [`bitemporal`](/llms/bitemporal.md) (aliases: late_corrections, semi_additive) — A bi-temporal model tracks two independent time axes: **valid time** (when the event occurred in the real world) and **transaction time** (when it was recorded in the system).
- [`care_gap_compliance`](/llms/care_gap_compliance.md) (aliases: hba1c_compliance) — Check whether recurring obligations were met by a reference date.
- [`carry_index`](/llms/carry_index.md) (aliases: lookup_in_transform, array_lookup_in_transform, pipeline_weighted) — `TRANSFORM` only sees row fields.
- [`chained_transform`](/llms/chained_transform.md) (aliases: nested_aggregation, successive_aggregation, transform_chain) — To aggregate, then re-aggregate (or filter after grouping), chain two `.TRANSFORM()` calls.
- [`clinical_sequence`](/llms/clinical_sequence.md) (aliases: sequence_extraction, icd_prefix_match, diagnosis_lookup) — Find ordered event pairs where a starting event is followed by a qualifying later event within a day limit.
- [`composability`](/llms/composability.md) (aliases: sparse_data_defaults) — Build metrics in layers: pack child rows, aggregate, classify.
- [`composite_key`](/llms/composite_key.md) (aliases: row_key, multi_column_key, synthetic_key, dimension_join) — When a fact is identified by two entity IDs together (e.g.
- [`cpa`](/llms/cpa.md) (aliases: marketing_attribution) — Attribute conversion revenue to marketing touches within a lookback window.
- [`create_features`](/llms/create_features.md) (aliases: from_namespace, incremental_workflow) — Persisted features are definitions in the registry, not automatic scope in the next query.
- [`currency_conversion`](/llms/currency_conversion.md) (aliases: budget_variance, variant_metrics) — Multi-currency consolidation converts each entity's local metric before summing.
- [`custom_function`](/llms/custom_function.md) (aliases: polymorphic_function, backend_sql) — UDFs extend FeatureQL with custom **scalar** functions that accept multiple input types and emit dialect SQL expressions.
- [`data_source_mistakes`](/llms/data_source_mistakes.md) (aliases: bind_to, entity_annotation, related_field_access, one_row_per_key) — Common LLM mistakes when wiring `EXTERNAL_COLUMNS`, `INLINE_COLUMNS`, and `RELATED`.
- [`date_diff_order`](/llms/date_diff_order.md) (aliases: date_diff_vs_date_add, date_arithmetic) — `DATE_DIFF` and `DATE_SUBTRACT` share the same argument order `(end, start, unit)` → `end − start`, but they are **not synonyms**:
- [`debugging_workflow`](/llms/debugging_workflow.md) (aliases: format_fix, select_trace, mock_data, diagnose, validate) — When a query fails or returns unexpected shapes, normalize text first, then inspect dependencies, then swap external mappings for inline mocks.
- [`deduplication`](/llms/deduplication.md) (aliases: first_last_per_group, top_n, row_number, keep_first, keep_last) — Keep one row per key inside an array of rows.
- [`degenerate_dimension`](/llms/degenerate_dimension.md) (aliases: fact_only_id, no_dimension_table) — Sometimes an id is its own entity but has no dimension table (e.g.
- [`dual_fk`](/llms/dual_fk.md) (aliases: two_fk_same_entity, origin_destination, bidirectional_relationship) — When a table has two FK columns pointing to the same entity (e.g.
- [`entity_model`](/llms/entity_model.md) (aliases: from_sql_vs_table, from_sql, from_table) — FeatureQL queries are feature definitions, not SQL CTEs.
- [`enumerate_nested`](/llms/enumerate_nested.md) (aliases: nested_array_position) — `ARRAY_ENUMERATE()` and `ARRAY_ENUMERATE_FLATTEN()` attach 1-based positions to array elements — but on `ARRAY<ARRAY<ROW<…>>>` they only index the **outer** array unless you combine them with `TRANSFORM`, `FLATTEN_FN()`, or `ZIP()`.
- [`episode_merging`](/llms/episode_merging.md) (aliases: interval_collapse, episode_of_care, overlapping_intervals, adjacent_intervals, lag_sum_pattern) — Collapse overlapping or adjacent time intervals into contiguous episodes.
- [`event_accumulation`](/llms/event_accumulation.md) (aliases: point_in_time) — Where `SCD_AT_TIME()` picks one **scalar history** at a timestamp, `ACCUMULATION_AT_TIME()` returns the **set of items still active** at that moment.
- [`event_sourced_state`](/llms/event_sourced_state.md) (aliases: inventory_on_hand, running_balance, semi_additive) — Compute a scalar balance at a reference date by summing signed event contributions up to that date.
- [`experiment_activation`](/llms/experiment_activation.md) (aliases: experiment_conversion, confidence_interval, cross_contamination, hash_bucketing) — Experiment analysis in FeatureQL follows the entity-centric model: one row per experimental unit (user, customer), with assignment and event data joined via `EXTERNAL_COLUMNS`.
- [`extend_edge_cases`](/llms/extend_edge_cases.md) (aliases: extend_expressions, via_binding) — Fields added in **`WITH`** do not need to be pre-declared features — inline expressions work:
- [`extend_on`](/llms/extend_on.md) (aliases: range_enrichment, as_of_enrichment) — `EXTEND(<base> WITH <aggregates> ON <predicate>)` enriches each base row when the relationship is a range, as-of, or other general predicate.
- [`feature_dependencies`](/llms/feature_dependencies.md) (aliases: dependency_graph, automatic_resolution) — Features reference each other by name; FeatureQL resolves evaluation order from the dependency graph.
- [`feature_engineering`](/llms/feature_engineering.md) (aliases: batch_analytics, serving, subsample_keys, online_serving) — Same feature definitions; different binding intent.
- [`feature_metadata`](/llms/feature_metadata.md) (aliases: feature_description, feature_position) — Persisted features carry registry metadata beyond the formula.
- [`filtering_strategies`](/llms/filtering_strategies.md) (aliases: where_clause, left_join_semantics) — FeatureQL evaluates features for a set of **input keys**.
- [`flatten_to_rows`](/llms/flatten_to_rows.md) (aliases: array_to_rows, unnest_grain) — `UNNEST()` expands an array of rows so each element becomes its own output row.
- [`function_names`](/llms/function_names.md) (aliases: strftime, epoch, array_to_string, ignore_nulls, range_interval, first_fn) — FeatureQL function names differ from common SQL dialects.
- [`functions_advanced`](/llms/functions_advanced.md) (aliases: evaluation_mode, static_array) — Some names (`FLATTEN`, `MERGE`, `COALESCE`, …) exist as both **operators** (variadic args) and **functions** (single array arg).
- [`funnel`](/llms/funnel.md) (aliases: conversion_rate, feature_adoption) — Track how many entities complete each step in a sequence.
- [`getting_started`](/llms/getting_started.md) — FeatureQL is a functional, entity-centric DSL that transpiles to SQL (DuckDB, Trino, BigQuery, DataFusion).
- [`getting_started_more`](/llms/getting_started_more.md) — This page covers entity modeling, data sources, cross-entity joins (RELATED), array manipulation (TRANSFORM, EXTEND), and aggregation patterns.
- [`global_aggregate`](/llms/global_aggregate.md) (aliases: dimensional_aggregate, group_output, group_by_alias, filter_vs_where, conditional_aggregation) — FeatureQL `GROUP BY` is per-aggregate, not a trailing clause.
- [`growth_accounting`](/llms/growth_accounting.md) (aliases: activity_bits, retention_status) — Encode daily activity as a compact `BIGINT` bitmap with `TO_ACTIVITY_BITS(activity_dates, reference_date)`.
- [`hierarchical_rollup`](/llms/hierarchical_rollup.md) (aliases: non_additive_rollup) — Consolidated totals often need per-entity metric rules before summing.
- [`hybrid_queries`](/llms/hybrid_queries.md) (aliases: featureql_in_sql, sql_passthrough, featureql_comment_syntax) — Wrap FeatureQL in `FEATUREQL(...)` (or `FEATUREQL/* ...
- [`index_concepts`](/llms/index_concepts.md) — Get more details about each concept using help('tag_name').
- [`index_concepts_array_patterns`](/llms/index_concepts_array_patterns.md) — Array operations — MERGE, field access, UNWRAP, ARRAY_AGG: Arrays of rows are the join surface inside an entity.
- [`index_concepts_consolidation_patterns`](/llms/index_concepts_consolidation_patterns.md) — FX conversion, budget variance, and what-if metric rules: Multi-currency consolidation converts each entity's local metric before summing.
- [`index_concepts_cross_entity_patterns`](/llms/index_concepts_cross_entity_patterns.md) — Composite key — a key made of two entity IDs: When a fact is identified by two entity IDs together (e.g.
- [`index_concepts_data_source_patterns`](/llms/index_concepts_data_source_patterns.md) — Backend particularities — _UNSTABLE and inline SQL dialects: FeatureQL targets DuckDB, Trino, BigQuery, and DataFusion.
- [`index_concepts_misc`](/llms/index_concepts_misc.md) — Authoring SLT files: Documentation and help tag pages use **SQL Logic Test** (`.slt`) files: executable FeatureQL...
- [`index_concepts_mistakes`](/llms/index_concepts_mistakes.md) — Aggregation mistakes — FILTER placement, COALESCE, GROUP BY: SQL `GROUP BY 1` is invalid.
- [`index_concepts_other`](/llms/index_concepts_other.md) — Mental model: Load this BEFORE `help('getting_started')` if you know SQL.
- [`index_concepts_product_patterns`](/llms/index_concepts_product_patterns.md) — Adjacency — parent-child and referral chains: Same-table parent/child links (manager_id, referrer_id) become a self-lookup array merged onto the...
- [`index_concepts_reuse_patterns`](/llms/index_concepts_reuse_patterns.md) — UDF — polymorphic custom functions with dialect SQL: UDFs extend FeatureQL with custom **scalar** functions that accept multiple input types and emit...
- [`index_concepts_sql_equivalents`](/llms/index_concepts_sql_equivalents.md) — Composability — layered features and sparse defaults: Build metrics in layers: pack child rows, aggregate, classify.
- [`index_concepts_temporal_patterns`](/llms/index_concepts_temporal_patterns.md) — Bi-temporal — valid time vs recorded time: A bi-temporal model tracks two independent time axes: **valid time** (when the event occurred in...
- [`index_concepts_transform_patterns`](/llms/index_concepts_transform_patterns.md) — EXTEND — enrich array rows with cross-entity data: `EXTEND` enriches an array of rows with fields from another entity, joined by a foreign key.
- [`index_functions`](/llms/index_functions.md) — Get more details about each function using help('function_name').
- [`index_functions_array`](/llms/index_functions_array.md) — ELEMENT_AT_POS(): Returns the element at the specified position in an array.
- [`index_functions_array_of_rows`](/llms/index_functions_array_of_rows.md) — INDEX_UNIQUE(): Returns an index unique computed from the given array and key.
- [`index_functions_bitwise`](/llms/index_functions_bitwise.md) — Bitwise AND [duckdb]: Returns the bitwise AND of two bitstrings.
- [`index_functions_business`](/llms/index_functions_business.md) — SCD_AT_TIME() [duckdb,trino]: Returns the state of an SCD (slowly changing dimension) value at the given point in time.
- [`index_functions_comparison`](/llms/index_functions_comparison.md) — = [equals]: Returns TRUE if the first value equals the second value -> help('equals_op')
- [`index_functions_conditional`](/llms/index_functions_conditional.md) — NULLIF(): Returns NULL when two values compare equal; otherwise returns the first value -> help('nullif')
- [`index_functions_core`](/llms/index_functions_core.md) — ENTITY(): Returns a reference to an entity.
- [`index_functions_date_and_time`](/llms/index_functions_date_and_time.md) — ADD(): Returns the date/timestamp after adding an interval.
- [`index_functions_geospatial`](/llms/index_functions_geospatial.md) — ST_GEOMPOINT() [duckdb,trino]: Creates a GEOMETRY point from x and y coordinates.
- [`index_functions_group_by`](/llms/index_functions_group_by.md) — SUM() GROUP BY ...: Returns the sum of the values in the group.
- [`index_functions_json`](/llms/index_functions_json.md) — JSON_PARSE(): Returns the given string as a JSON expression.
- [`index_functions_logical`](/llms/index_functions_logical.md) — AND: Returns TRUE when both boolean operands are TRUE.
- [`index_functions_math`](/llms/index_functions_math.md) — + [addition]: Adds two numeric values, or adds an interval to a date or timestamp.
- [`index_functions_metadata`](/llms/index_functions_metadata.md) — IS_DOWNSTREAM_OF() [duckdb]: Returns TRUE if the current feature is dependent of the given feature in the dependency DAG -> help('is_downstream_of')
- [`index_functions_metaprogramming`](/llms/index_functions_metaprogramming.md) — CURRENT_TIMESTAMP(): Returns the current date and time.
- [`index_functions_row`](/llms/index_functions_row.md) — MERGE(...): Merges multiple row structures into a single row with combined fields -> help('merge_op')
- [`index_functions_source`](/llms/index_functions_source.md) — SOURCE_HTTP() [serving]: Creates a HTTP connection to the given URI -> help('source_http')
- [`index_functions_string`](/llms/index_functions_string.md) — LOWER(): Returns the string with all characters converted to lowercase.
- [`index_functions_window_function`](/llms/index_functions_window_function.md) — SUM() OVER ...: Returns the sum of values in the window frame.
- [`index_lookup`](/llms/index_lookup.md) — Build an index once when you need repeated keyed lookups on an array of rows.
- [`inline_columns`](/llms/inline_columns.md) (aliases: inline_csv, mock_data, parameter_table, lookup_table, from_csv, from_json) — `INLINE_COLUMNS` creates a small data table directly in FeatureQL, without any external SQL source.
- [`intercompany_elimination`](/llms/intercompany_elimination.md) (aliases: gross_margin) — Consolidated revenue is not a plain SUM across entities when subsidiaries trade with each other.
- [`lazy_evaluation`](/llms/lazy_evaluation.md) (aliases: prototyping, unused_features, select_dependencies) — FeatureQL evaluates **only features referenced by the `SELECT` clause** (plus their dependencies).
- [`left_join`](/llms/left_join.md) (aliases: semi_join, anti_join, cross_join) — FeatureQL has no free-standing `JOIN` clause.
- [`lightweight_batch_queries`](/llms/lightweight_batch_queries.md) (aliases: thin_queries, persist_first, batch_analytics_style) — Write the semantic model once, then keep each answer query to the question-specific logic.
- [`locf`](/llms/locf.md) (aliases: forward_fill, backward_fill, next_event, ignore_nulls, islands) — Canonical help tag: **`help('locf')`**.
- [`many_to_many`](/llms/many_to_many.md) (aliases: junction_table, bridge_table, weighted_allocation, m2m) — A many-to-many link is its own entity (a bridge / junction).
- [`mental_model`](/llms/mental_model.md) — Load this BEFORE `help('getting_started')` if you know SQL.
- [`missing_binding`](/llms/missing_binding.md) (aliases: for_clause, cartesian_product, for_cross, nested_binding, transitive_input) — Every `INPUT()` in the dependency graph of a `SELECT` must be bound in the `FOR` clause.
- [`mistakes_aggregation`](/llms/mistakes_aggregation.md) (aliases: filter_vs_where, coalesce_group_by, related_filter) — SQL `GROUP BY 1` is invalid.
- [`mistakes_array`](/llms/mistakes_array.md) (aliases: transform_wrong_type, row_field_error) — Common LLM mistakes when building or consuming arrays of rows.
- [`mistakes_binding`](/llms/mistakes_binding.md) (aliases: for_cross, transitive_input) — `FOR` supplies values to an existing `INPUT()` feature.
- [`mistakes_entity`](/llms/mistakes_entity.md) (aliases: entity_annotation, bind_to) — Each mapping needs exactly one `BIND TO` key column.
- [`mistakes_index`](/llms/mistakes_index.md) (aliases: common_mistakes, index_errors) — Router for frequent FeatureQL mistakes.
- [`mistakes_metaprogramming`](/llms/mistakes_metaprogramming.md) (aliases: eval_as_literal) — Some functions only run at compile time or inside `@eval_as_literal` / `@eval_as_text` wrappers.
- [`mistakes_sql_gotchas`](/llms/mistakes_sql_gotchas.md) (aliases: sql_gotcha, sql_gotchas, sql_argument_order, row_field_access, bool_to_bigint, chained_comparison) — SQL-shaped FeatureQL often compiles but returns wrong data, or fails with a signature error.
- [`mistakes_sql_habits`](/llms/mistakes_sql_habits.md) (aliases: no_cte, group_by_per_aggregate, select_distinct) — FeatureQL has no CTEs or subqueries.
- [`mistakes_syntax`](/llms/mistakes_syntax.md) (aliases: syntax_error, slt_harness, parse_error, row_field_access) — These patterns fail at parse time (`UE/SYNTAX-ERROR`) before type inference.
- [`mock_inputs`](/llms/mock_inputs.md) (aliases: mock_data, input_binding, prototype_pattern) — For quick tests, bind keys and look up values with `INLINE_COLUMNS` — same shape as production `EXTERNAL_COLUMNS`.
- [`monte_carlo`](/llms/monte_carlo.md) — Simulate many draws by iterating `draw_id` with `ZIP(SEQUENCE(1, N))` and a deterministic `SAMPLE_UNIFORM(key, lo, hi)` per row.
- [`null_handling`](/llms/null_handling.md) (aliases: null_comparison, three_valued_logic, displays_as_null, structural_keys_null) — FeatureQL uses SQL three-valued logic for comparisons.
- [`operators`](/llms/operators.md) (aliases: operator_precedence, precision_operators, special_operators, comparison_operators, logical_operators, bitwise_operators, assignment_operator) — FeatureQL operators follow a fixed precedence table.
- [`order_by_array_agg`](/llms/order_by_array_agg.md) (aliases: array_agg_order, related_sort) — Use `ORDER BY` inside `ARRAY_AGG()` when collecting rows via `RELATED()` so the array is ordered at collect time.
- [`path_analysis`](/llms/path_analysis.md) (aliases: page_sequence, sequence_extraction) — Build path strings from ordered events inside a session.
- [`pivot`](/llms/pivot.md) (aliases: key_value_to_columns, parameterized_iteration, unpivot) — When a table stores parameters as rows (`(key, value)` pairs), extract each parameter into its own named feature using `TRANSFORM(SELECT val WHERE key = '...').UNWRAP_ONE()`.
- [`polymorphic_fk`](/llms/polymorphic_fk.md) (aliases: polymorphic_association, commentable, type_id_pair) — A polymorphic association stores a `type` and a shared `id` (e.g.
- [`prepared_statements`](/llms/prepared_statements.md) (aliases: serving) — `PREPARED_STATEMENT(base USING input_groups…)` pre-compiles a feature and its full dependency graph (including `EXTERNAL_*` calls) into one execution plan for the serving API.
- [`projection`](/llms/projection.md) (aliases: simulation, sensitivity_analysis, replenishment, projected_inventory, days_of_supply) — Project a scalar forward N periods using a closed-form formula, or sweep across multiple parameter scenarios using `INLINE_COLUMNS` + `CARRY`.
- [`query_methodology`](/llms/query_methodology.md) (aliases: methodology, problem_solving, approach, planning) — Structured approach for translating a business question into working FeatureQL.
- [`rage_click`](/llms/rage_click.md) (aliases: error_churn) — Detect bursts of repeated events in a short window, or silence after an error.
- [`readable_syntax`](/llms/readable_syntax.md) (aliases: operators_vs_functions, case_when_style, function_chaining, assignment_style, case_insensitive_identifiers) — Default to forms that read like ordinary expressions: operators, SQL `CASE`, and left-to-right chains.
- [`recurse_pattern`](/llms/recurse_pattern.md) (aliases: iterative_recurse, recurse_traversal) — `RECURSE()` expands a seed `ROW(…)` into an `ARRAY(ROW(…))` by repeating a `SELECT` body.
- [`related_aggregation`](/llms/related_aggregation.md) (aliases: related_filter) — `RELATED()` bridges entity grains.
- [`related_on`](/llms/related_on.md) (aliases: non_equi_join, range_join, as_of_join, theta_join) — `RELATED(<aggregate> ON <predicate>)` produces one value per outer entity when a key-only `VIA` relationship cannot express the match.
- [`related_vs_extend`](/llms/related_vs_extend.md) (aliases: multi_hop) — | Scenario | Use |
- [`reorder_point`](/llms/reorder_point.md) (aliases: days_of_supply, demand_forecast, dynamic_threshold) — Compare a running-balance scalar against a threshold, then express how long current stock lasts at a forecasted daily rate.
- [`retention`](/llms/retention.md) (aliases: cohort, dau_mau, stickiness) — Retention measures whether an entity returned on a specific day after a start date.
- [`reusable_function`](/llms/reusable_function.md) (aliases: parameterized_function) — `MACRO()` wraps an expression with named `INPUT()` parameters into a callable function.
- [`scd`](/llms/scd.md) (aliases: scd2, as_of_join, point_in_time) — When a dimension attribute changes over time (customer segment, pricing tier, account manager), you need to join to the value that was **effective at a specific moment**, not the current value.
- [`search_success`](/llms/search_success.md) (aliases: page_sequence, sequence_extraction) — Session analysis packs events into an array per entity, then uses TRANSFORM window functions and CARRY to answer "did X lead to Y?" and "what path did they take?"
- [`seasonality`](/llms/seasonality.md) (aliases: lagging_indicators) — Compare each period to a lagged baseline inside a sorted array.
- [`self_join`](/llms/self_join.md) (aliases: self_join_temporal, inequality_join, lateral_join) — Self-referential and range joins happen inside an entity's array pipeline — not with table aliases.
- [`self_reference`](/llms/self_reference.md) (aliases: role_entity, manager_hierarchy, self_referential_fk) — When a table points back to itself (employee → manager), give the back-reference FK a distinct role sub-entity, then `RELATED` resolves the referenced row.
- [`self_testing`](/llms/self_testing.md) (aliases: sltest_source, agent_verify) — Agents can verify a FeatureQL query against expected rows in **one** call via
- [`sliding_window`](/llms/sliding_window.md) (aliases: rolling_window, time_window, range_between, range_interval, date_diff_range) — Time-based sliding windows use `RANGE BETWEEN INTERVAL … PRECEDING AND CURRENT ROW` on a timestamp `ORDER BY` column (top level or inside TRANSFORM).
- [`source_sql`](/llms/source_sql.md) (aliases: lateral_join, static_partition, dynamic_filter) — Prefer **`EXTERNAL_COLUMNS()`** for table mapping — FeatureQL generates joins.
- [`sql_quick_patterns`](/llms/sql_quick_patterns.md) — Self-contained equivalents for common SQL shapes.
- [`sql_to_featureql`](/llms/sql_to_featureql.md) (aliases: cross_grain, multi_grain, constrained_sql, sql_translation, difficult_modeling) — When a query touches multiple grains (e.g.
- [`state_decomposition`](/llms/state_decomposition.md) (aliases: mrr_movements, period_over_period, snapshot_diff) — When you have periodic snapshots of an entity's state (MRR, inventory level, subscription status), you can classify what changed between consecutive periods by pairing adjacent snapshots with `SLICE` + `ZIP` and applying a `CASE WHEN` classification inside `TRANSFORM`.
- [`tiebreaking`](/llms/tiebreaking.md) (aliases: LAG, LEAD) — Duplicate sort keys (`TIMESTAMP`, truncated bucket, etc.) mean the engine can order ties arbitrarily.
- [`transform_carry`](/llms/transform_carry.md) (aliases: broadcast_scalar, outer_feature_in_transform) — `TRANSFORM` only sees row fields — outer features are out of scope.
- [`transform_forbidden`](/llms/transform_forbidden.md) — `TRANSFORM()` inner queries are **self-contained**: they see row fields only, not the outer query graph.
- [`transform_scope`](/llms/transform_scope.md) (aliases: transform_import, outer_feature_in_transform, shadow_alias, group_by_alias) — `TRANSFORM` only sees the fields on each row of the array.
- [`transform_window`](/llms/transform_window.md) (aliases: transform_group_by, transform_limit, transform_distinct, transform_count) — TRANSFORM has its own scope.
- [`type_mismatch`](/llms/type_mismatch.md) (aliases: type_casting, double_vs_decimal) — FeatureQL has no automatic type coercion.
- [`union`](/llms/union.md) (aliases: intersect, except) — Set logic on scalar collections uses array primitives.
- [`variant_substitution`](/llms/variant_substitution.md) (aliases: what_if, ab_testing, scenario_modeling, dependency_swap) — `VARIANT()` creates an alternative version of a feature by replacing specific dependencies in its graph.
- [`where_vs_filter`](/llms/where_vs_filter.md) (aliases: filter_vs_where, transform_filter, transform_aggregate, having) — Inside `TRANSFORM`, `WHERE` is post-aggregation (like SQL `HAVING`).
- [`window_functions`](/llms/window_functions.md) (aliases: running_total, lead_lag, row_number, rank, ntile, first_value, last_value, cumulative_sum, running_count) — Window functions compute a value per row based on a surrounding window without collapsing rows.
- [`year_over_year`](/llms/year_over_year.md) (aliases: period_over_period, lag_period, nrr, cohort_retention) — Period comparison patterns — year-over-year, month-over-month, cohort net revenue retention — all share the same structure: compute a metric for two time windows defined by `AS_OF` date parameters, then compare.

## Function reference

- [`abs`](/llms/abs.md) — Signature: ABS(number: T) → T
- [`accumulation_at_time`](/llms/accumulation_at_time.md) — Signature: ACCUMULATION_AT_TIME(accumulation: ARRAY<T>, point_in_time: TIMESTAMP) → ARRAY<T>
- [`acos`](/llms/acos.md) — Signature: ACOS(number: T) → DOUBLE
- [`activity_status`](/llms/activity_status.md) — Signature: ACTIVITY_STATUS(activity_bits: BIGINT, length_days_current: BIGINT, [length_days_previous: BIGINT]) → VARCHAR
- [`add`](/llms/add.md) — Signature: ADD(number1: T, number2: T) → T
- [`add_op`](/llms/add_op.md) — Signature: left + right  ·  ADD(left, right)
- [`agg_any_value_op`](/llms/agg_any_value_op.md) — Signature: ANY_VALUE(expr)
- [`agg_approx_distinct_op`](/llms/agg_approx_distinct_op.md) — Signature: APPROX_DISTINCT(expr)
- [`agg_approx_percentile_op`](/llms/agg_approx_percentile_op.md) — Signature: APPROX_PERCENTILE(expr, percentile)
- [`agg_array_agg_op`](/llms/agg_array_agg_op.md) — Signature: ARRAY_AGG([DISTINCT] expr [ORDER BY ...] [LIMIT n])
- [`agg_avg_op`](/llms/agg_avg_op.md) — Signature: AVG(expr)
- [`agg_bit_and_op`](/llms/agg_bit_and_op.md) — Signature: BIT_AND(expr)
- [`agg_bit_or_op`](/llms/agg_bit_or_op.md) — Signature: BIT_OR(expr)
- [`agg_bit_xor_op`](/llms/agg_bit_xor_op.md) — Signature: BIT_XOR(expr)
- [`agg_bool_and_op`](/llms/agg_bool_and_op.md) — Signature: BOOL_AND(expr)
- [`agg_bool_or_op`](/llms/agg_bool_or_op.md) — Signature: BOOL_OR(expr)
- [`agg_corr_op`](/llms/agg_corr_op.md) — Signature: CORR(expr_y, expr_x)
- [`agg_count_if_op`](/llms/agg_count_if_op.md) — Signature: COUNT_IF(expr)
- [`agg_count_op`](/llms/agg_count_op.md) — Signature: COUNT([DISTINCT] expr | *)
- [`agg_covar_pop_op`](/llms/agg_covar_pop_op.md) — Signature: COVAR_POP(expr_y, expr_x)
- [`agg_covar_samp_op`](/llms/agg_covar_samp_op.md) — Signature: COVAR_SAMP(expr_y, expr_x)
- [`agg_max_by_op`](/llms/agg_max_by_op.md) — Signature: MAX_BY(expr)
- [`agg_max_op`](/llms/agg_max_op.md) — Signature: MAX(expr)
- [`agg_median_op`](/llms/agg_median_op.md) — Signature: MEDIAN(expr)
- [`agg_min_by_op`](/llms/agg_min_by_op.md) — Signature: MIN_BY(expr)
- [`agg_min_op`](/llms/agg_min_op.md) — Signature: MIN(expr)
- [`agg_product_op`](/llms/agg_product_op.md) — Signature: PRODUCT(expr)
- [`agg_quantile_cont_op`](/llms/agg_quantile_cont_op.md) — Signature: QUANTILE_CONT(expr, quantile)
- [`agg_quantile_disc_op`](/llms/agg_quantile_disc_op.md) — Signature: QUANTILE_DISC(expr, quantile)
- [`agg_regr_intercept_op`](/llms/agg_regr_intercept_op.md) — Signature: REGR_INTERCEPT(expr_y, expr_x)
- [`agg_regr_r2_op`](/llms/agg_regr_r2_op.md) — Signature: REGR_R2(expr_y, expr_x)
- [`agg_regr_slope_op`](/llms/agg_regr_slope_op.md) — Signature: REGR_SLOPE(expr_y, expr_x)
- [`agg_stddev_pop_op`](/llms/agg_stddev_pop_op.md) — Signature: STDDEV_POP(expr)
- [`agg_stddev_samp_op`](/llms/agg_stddev_samp_op.md) — Signature: STDDEV_SAMP(expr)
- [`agg_string_agg_op`](/llms/agg_string_agg_op.md) — Signature: STRING_AGG(expr, delimiter [ORDER BY ...])
- [`agg_sum_op`](/llms/agg_sum_op.md) — Signature: SUM(expr)
- [`agg_var_pop_op`](/llms/agg_var_pop_op.md) — Signature: VAR_POP(expr)
- [`agg_var_samp_op`](/llms/agg_var_samp_op.md) — Signature: VAR_SAMP(expr)
- [`all_fn`](/llms/all_fn.md) (aliases: array_all, array_bool_and) — Function description not available
- [`all_op`](/llms/all_op.md) — Signature: ALL(value, value, ...)
- [`and`](/llms/and.md) — Signature: AND(expr1: BOOLEAN, expr2: BOOLEAN) → BOOLEAN
- [`and_op`](/llms/and_op.md) — Signature: expr1 AND expr2  ·  AND(expr1, expr2)
- [`any_fn`](/llms/any_fn.md) (aliases: array_any, array_bool_or) — Function description not available
- [`any_op`](/llms/any_op.md) — Signature: ANY(value, value, ...)
- [`array_avg`](/llms/array_avg.md) — Signature: ARRAY_AVG(array: ARRAY<T>) → DOUBLE
- [`array_concat_fn`](/llms/array_concat_fn.md) — Function description not available
- [`array_concat_op`](/llms/array_concat_op.md) — Signature: ARRAY_CONCAT(array [, array ...] [ DEDUPLICATE ON field [, field ...] ])
- [`array_count`](/llms/array_count.md) (aliases: cardinality, array_length) — Signature: ARRAY_COUNT(array: ARRAY<T>) → BIGINT
- [`array_distinct`](/llms/array_distinct.md) (aliases: array_unique) — Signature: ARRAY_DISTINCT(array: ARRAY<T>) → ARRAY<T>
- [`array_enumerate`](/llms/array_enumerate.md) — Signature: ARRAY_ENUMERATE(array: ARRAY<T>) → ARRAY<ROW(index BIGINT, value T)>
- [`array_enumerate_flatten`](/llms/array_enumerate_flatten.md) — Signature: ARRAY_ENUMERATE_FLATTEN(array: ARRAY<ROW<...>>) → ARRAY<ROW(index BIGINT, ...fields)>
- [`array_except`](/llms/array_except.md) — Signature: ARRAY_EXCEPT(array1: ARRAY<T>, array2: ARRAY<T>) → ARRAY<T>
- [`array_histogram`](/llms/array_histogram.md) — Signature: ARRAY_HISTOGRAM(array: ARRAY<T>) → ARRAY<ROW(value: T, count: BIGINT)>
- [`array_intersect`](/llms/array_intersect.md) — Signature: ARRAY_INTERSECT(array1: ARRAY<T>, array2: ARRAY<T>) → ARRAY<T>
- [`array_join`](/llms/array_join.md) (aliases: join, array_to_string) — Signature: ARRAY_JOIN(array: ARRAY<T>, delimiter: VARCHAR, [null_replacement: VARCHAR]) → VARCHAR
- [`array_lookup`](/llms/array_lookup.md) — Signature: ARRAY_LOOKUP(lookup_key: T, keys: ARRAY<T>, values: ARRAY<U>) → U
- [`array_max`](/llms/array_max.md) — Signature: ARRAY_MAX(array: ARRAY<T>) → T
- [`array_median`](/llms/array_median.md) — Signature: ARRAY_MEDIAN(array: ARRAY<T>) → DOUBLE
- [`array_merge_fn`](/llms/array_merge_fn.md) — Function description not available
- [`array_merge_join_fn`](/llms/array_merge_join_fn.md) — Function description not available
- [`array_merge_op`](/llms/array_merge_op.md) — Signature: ARRAY_MERGE(array_of_rows [, array_of_rows ...] [ JOIN ON field [, field ...] ])
- [`array_min`](/llms/array_min.md) — Signature: ARRAY_MIN(array: ARRAY<T>) → T
- [`array_not`](/llms/array_not.md) — Signature: ARRAY_NOT(array: ARRAY<BOOLEAN>) → ARRAY<BOOLEAN>
- [`array_position`](/llms/array_position.md) — Signature: ARRAY_POSITION(array: ARRAY<T>, element: T) → BIGINT
- [`array_product`](/llms/array_product.md) — Signature: ARRAY_PRODUCT(array: ARRAY<T>) → DOUBLE
- [`array_remove`](/llms/array_remove.md) — Signature: ARRAY_REMOVE(array: ARRAY<T>, element: T) → ARRAY<T>
- [`array_reverse`](/llms/array_reverse.md) — Signature: ARRAY_REVERSE(array: ARRAY<T>) → ARRAY<T>
- [`array_rotate`](/llms/array_rotate.md) — Signature: ARRAY_ROTATE(array: ARRAY<T>, amount: BIGINT) → ARRAY<T>
- [`array_sort`](/llms/array_sort.md) — Signature: ARRAY_SORT(array: ARRAY<T>) → ARRAY<T>
- [`array_stddev_pop`](/llms/array_stddev_pop.md) — Signature: ARRAY_STDDEV_POP(array: ARRAY<T>) → DOUBLE
- [`array_stddev_samp`](/llms/array_stddev_samp.md) — Signature: ARRAY_STDDEV_SAMP(array: ARRAY<T>) → DOUBLE
- [`array_sum`](/llms/array_sum.md) — Signature: ARRAY_SUM(array: ARRAY<T>) → T
- [`array_union`](/llms/array_union.md) — Signature: ARRAY_UNION(array1: ARRAY<T>, array2: ARRAY<T>) → ARRAY<T>
- [`array_var_pop`](/llms/array_var_pop.md) — Signature: ARRAY_VAR_POP(array: ARRAY<T>) → DOUBLE
- [`array_var_samp`](/llms/array_var_samp.md) — Signature: ARRAY_VAR_SAMP(array: ARRAY<T>) → DOUBLE
- [`arrays_overlap`](/llms/arrays_overlap.md) — Signature: ARRAYS_OVERLAP(array1: ARRAY<T>, array2: ARRAY<T>) → BOOLEAN
- [`asin`](/llms/asin.md) — Signature: ASIN(number: T) → DOUBLE
- [`atan`](/llms/atan.md) — Signature: ATAN(number: T) → DOUBLE
- [`atan2`](/llms/atan2.md) — Signature: ATAN2(y: T, x: U) → DOUBLE
- [`base64_decode`](/llms/base64_decode.md) — Signature: BASE64_DECODE(encoded: VARCHAR) → VARCHAR
- [`base64_encode`](/llms/base64_encode.md) — Signature: BASE64_ENCODE(string: VARCHAR) → VARCHAR
- [`between`](/llms/between.md) — Signature: BETWEEN(expr: T, lower: T, upper: T, [digits: BIGINT]) → BOOLEAN
- [`between_op`](/llms/between_op.md) — Signature: expr BETWEEN lower AND upper
- [`binary_representation`](/llms/binary_representation.md) — Signature: BINARY_REPRESENTATION(activity_bits: BIGINT) → VARCHAR
- [`bind_columns`](/llms/bind_columns.md) — Signature: BIND_COLUMNS(columns: ARRAY<VARCHAR>, source_type: VARCHAR, source_content: VARCHAR) → TABLE<T>
- [`bind_keyset_op`](/llms/bind_keyset_op.md) — Signature: @BIND_KEYSET(feature [, ROW(name := expression, ...)])
- [`bind_value`](/llms/bind_value.md) — Signature: BIND_VALUE(value: T) → T
- [`bind_values`](/llms/bind_values.md) — Signature: BIND_VALUES(array: ARRAY<ROW<T>>, [ordinality: BOOLEAN]) → TABLE<T>
- [`bit_count`](/llms/bit_count.md) — Signature: BIT_COUNT(value: T) → BIGINT
- [`bitwise_and`](/llms/bitwise_and.md) — Signature: BITWISE_AND(left: BITSTRING, right: BITSTRING) → BITSTRING
- [`bitwise_and_op`](/llms/bitwise_and_op.md) — Signature: left & right  ·  BITWISE_AND(left, right)
- [`bitwise_not`](/llms/bitwise_not.md) — Signature: BITWISE_NOT(expr: BITSTRING) → BITSTRING
- [`bitwise_not_op`](/llms/bitwise_not_op.md) — Signature: ~expr  ·  BITWISE_NOT(expr)
- [`bitwise_or`](/llms/bitwise_or.md) — Signature: BITWISE_OR(left: BITSTRING, right: BITSTRING) → BITSTRING
- [`bitwise_or_op`](/llms/bitwise_or_op.md) — Signature: left | right  ·  BITWISE_OR(left, right)
- [`bitwise_shift_left`](/llms/bitwise_shift_left.md) — Signature: BITWISE_SHIFT_LEFT(expr: BITSTRING, n: BIGINT) → BITSTRING
- [`bitwise_shift_left_op`](/llms/bitwise_shift_left_op.md) — Signature: expr << n  ·  BITWISE_SHIFT_LEFT(expr, n)
- [`bitwise_shift_right`](/llms/bitwise_shift_right.md) — Signature: BITWISE_SHIFT_RIGHT(expr: BITSTRING, n: BIGINT) → BITSTRING
- [`bitwise_shift_right_op`](/llms/bitwise_shift_right_op.md) — Signature: expr >> n  ·  BITWISE_SHIFT_RIGHT(expr, n)
- [`bitwise_xor`](/llms/bitwise_xor.md) — Signature: BITWISE_XOR(left: BITSTRING, right: BITSTRING) → BITSTRING
- [`bitwise_xor_op`](/llms/bitwise_xor_op.md) — Signature: BITWISE_XOR(left, right)
- [`carry`](/llms/carry.md) — Function description not available
- [`carry_op`](/llms/carry_op.md) — Signature: CARRY( expr AS field [, expr AS field ...] INTO array_of_rows )
- [`case_when`](/llms/case_when.md) — Signature: CASE_WHEN(when: ARRAY<BOOLEAN>, then: ARRAY<T>, [else: T]) → T
- [`case_when_op`](/llms/case_when_op.md) — Signature: CASE WHEN condition THEN result { WHEN condition THEN result ...
- [`case_when_value`](/llms/case_when_value.md) — Signature: CASE_WHEN_VALUE(when_base: T, values_to_match: ARRAY<T>, then: ARRAY<U>, else: U) → U
- [`case_when_value_op`](/llms/case_when_value_op.md) — Signature: CASE when_base WHEN value_to_match THEN result { WHEN value_to_match THEN result ...
- [`cast`](/llms/cast.md) — Signature: CAST(expr: T, as_type: DataTypeEnum.TYPE) → U
- [`cbrt`](/llms/cbrt.md) — Signature: CBRT(number: T) → DOUBLE
- [`ceil`](/llms/ceil.md) — Signature: CEIL(number: T) → BIGINT
- [`chr`](/llms/chr.md) — Signature: CHR(code_point: BIGINT) → VARCHAR
- [`clamp`](/llms/clamp.md) — Signature: CLAMP(low: T, high: T, value: T) → T
- [`coalesce_fn`](/llms/coalesce_fn.md) — Function description not available
- [`coalesce_op`](/llms/coalesce_op.md) — Signature: COALESCE(value, value, ...)
- [`codepoint`](/llms/codepoint.md) — Signature: CODEPOINT(string: VARCHAR) → BIGINT
- [`combinations`](/llms/combinations.md) — Signature: COMBINATIONS(array: ARRAY<T>) → ARRAY<ARRAY<T>>
- [`concat_fn`](/llms/concat_fn.md) — Signature: CONCAT(strings: ARRAY(VARCHAR)) → VARCHAR
- [`concat_op`](/llms/concat_op.md) — Signature: CONCAT(string, string, …)  ·  CONCAT_FN(ARRAY[…])
- [`concat_pipe_op`](/llms/concat_pipe_op.md) — Signature: left || right  ·  CONCAT(left, right, …)
- [`concat_ws_fn`](/llms/concat_ws_fn.md) — Signature: CONCAT_WS(separator: VARCHAR, strings: ARRAY(VARCHAR)) → VARCHAR
- [`concat_ws_op`](/llms/concat_ws_op.md) — Signature: CONCAT_WS(separator, string, string, …)  ·  CONCAT_WS_FN(separator, ARRAY[…])
- [`contains`](/llms/contains.md) (aliases: array_contains) — Signature: CONTAINS(array: ARRAY<T>, element: T) → BOOLEAN
- [`contains_sequence`](/llms/contains_sequence.md) — Signature: CONTAINS_SEQUENCE(array: ARRAY<T>, sequence: ARRAY<T>) → BOOLEAN
- [`cos`](/llms/cos.md) — Signature: COS(radians: T) → DOUBLE
- [`cosh`](/llms/cosh.md) — Signature: COSH(number: T) → DOUBLE
- [`cosine_similarity`](/llms/cosine_similarity.md) — Signature: COSINE_SIMILARITY(array1: ARRAY<DOUBLE>, array2: ARRAY<DOUBLE>) → DOUBLE
- [`count_active`](/llms/count_active.md) — Signature: COUNT_ACTIVE(activity_bits: BIGINT, length_days: BIGINT, [offset_days: BIGINT]) → BIGINT
- [`current_timestamp`](/llms/current_timestamp.md) (aliases: now) — Signature: CURRENT_TIMESTAMP() → TIMESTAMP
- [`date_add`](/llms/date_add.md) — Signature: DATE_ADD(timestamp: DATE, unit: VARCHAR, value: BIGINT) → DATE
- [`date_diff`](/llms/date_diff.md) — Signature: DATE_DIFF(timestamp1: DATE | TIMESTAMP, timestamp2: DATE | TIMESTAMP, unit: VARCHAR) → BIGINT
- [`date_format`](/llms/date_format.md) (aliases: strftime) — Signature: DATE_FORMAT(timestamp: DATE | TIMESTAMP, format: VARCHAR) → VARCHAR
- [`date_parse`](/llms/date_parse.md) — Signature: DATE_PARSE(string: VARCHAR, format: VARCHAR) → TIMESTAMP
- [`date_part`](/llms/date_part.md) (aliases: extract_from_date) — Signature: DATE_PART(timestamp: DATE, unit: VARCHAR) → BIGINT
- [`date_sequence`](/llms/date_sequence.md) — Signature: DATE_SEQUENCE(start: DATE | TIMESTAMP, interval: INTERVAL, count: BIGINT) → ARRAY<TIMESTAMP>
- [`date_subtract`](/llms/date_subtract.md) — Signature: DATE_SUBTRACT(timestamp1: DATE | TIMESTAMP, timestamp2: DATE | TIMESTAMP, unit: VARCHAR) → BIGINT
- [`date_trunc`](/llms/date_trunc.md) — Signature: DATE_TRUNC(timestamp: DATE, unit: VARCHAR) → DATE
- [`days_in`](/llms/days_in.md) — Signature: DAYS_IN(date: DATE | TIMESTAMP, unit: VARCHAR) → BIGINT
- [`degrees`](/llms/degrees.md) — Signature: DEGREES(radians: T) → DOUBLE
- [`depth_relative_to`](/llms/depth_relative_to.md) — Signature: DEPTH_RELATIVE_TO(feature_ref: VARCHAR) → BIGINT
- [`displays_as`](/llms/displays_as.md) — Signature: DISPLAYS_AS(expr1: T, expr2: T) → BOOLEAN
- [`displays_as_op`](/llms/displays_as_op.md) — Signature: expr1 DISPLAYS AS expr2  ·  expr1 IS NOT DISTINCT FROM expr2
- [`divide`](/llms/divide.md) — Signature: DIVIDE(dividend: T, divisor: U) → DOUBLE
- [`divide_op`](/llms/divide_op.md) — Signature: left / right  ·  DIVIDE(left, right)
- [`divide_type`](/llms/divide_type.md) — Signature: DIVIDE_TYPE(dividend: T, divisor: U) → T
- [`divide_type_op`](/llms/divide_type_op.md) — Signature: left // right  ·  DIVIDE_TYPE(left, right)
- [`dot_product`](/llms/dot_product.md) — Signature: DOT_PRODUCT(array1: ARRAY<DOUBLE>, array2: ARRAY<DOUBLE>) → DOUBLE
- [`e`](/llms/e.md) — Signature: E() → DOUBLE
- [`element_at_key`](/llms/element_at_key.md) — Signature: ELEMENT_AT_KEY(index: INDEX, key: T, base: ARRAY<ROW<T>>) → ROW<T>
- [`element_at_pos`](/llms/element_at_pos.md) — Signature: ELEMENT_AT_POS(array: ARRAY<T>, position: BIGINT) → T
- [`elements_at_key`](/llms/elements_at_key.md) — Signature: ELEMENTS_AT_KEY(index: INDEX, key: T, base: ARRAY<ROW<T>>) → ARRAY<ROW<T>>
- [`elements_at_pos`](/llms/elements_at_pos.md) — Signature: ELEMENTS_AT_POS(array: ARRAY<T>, positions: ARRAY<BIGINT>) → ARRAY<T>
- [`empty`](/llms/empty.md) — Signature: EMPTY() → EMPTY
- [`ends_with`](/llms/ends_with.md) — Signature: ENDS_WITH(string: VARCHAR, suffix: VARCHAR) → BOOLEAN
- [`entity`](/llms/entity.md) — Signature: ENTITY() → ENTITY
- [`equals`](/llms/equals.md) — Signature: EQUALS(expr1: T, expr2: T, [digits: BIGINT]) → BOOLEAN
- [`equals_op`](/llms/equals_op.md) — Signature: expr1 = expr2
- [`euclidean_distance`](/llms/euclidean_distance.md) — Signature: EUCLIDEAN_DISTANCE(array1: ARRAY<DOUBLE>, array2: ARRAY<DOUBLE>) → DOUBLE
- [`eval_const`](/llms/eval_const.md) — Signature: EVAL_CONST(formula: VARCHAR, type: TYPE) → VARCHAR
- [`exp`](/llms/exp.md) — Signature: EXP(exponent: T) → DOUBLE
- [`extend`](/llms/extend.md) — Function description not available
- [`extend_op`](/llms/extend_op.md) — Signature: EXTEND(
- [`external_columns`](/llms/external_columns.md) — Signature: EXTERNAL_COLUMNS(source_columns: ARRAY<FEATURE>, aliases: ARRAY<FEATURE>, types: ARRAY<TYPE>, bound_columns: ARRAY<FEATURE>, bound_features: ARRAY<FEATURE>, source_type: VARCHAR, source_content: VARCHAR) → ROW
- [`external_http`](/llms/external_http.md) — Signature: EXTERNAL_HTTP(source: HTTPSOURCE, [method: VARCHAR], [path: VARCHAR], [headers: ROW], [query_params: ROW], [body: ROW], [timeout: DECIMAL]) → JSON
- [`external_redis`](/llms/external_redis.md) — Signature: EXTERNAL_REDIS(source: REDISSOURCE, key: VARCHAR, [field: VARCHAR]) → VARCHAR
- [`external_sql`](/llms/external_sql.md) — Signature: EXTERNAL_SQL(query: VARCHAR, [on_condition: VARCHAR], type: TYPE, [source_table: VARCHAR]) → ROW
- [`external_view`](/llms/external_view.md) — Signature: EXTERNAL_VIEW(query: VARCHAR, [on_condition: VARCHAR], type: TYPE) → ROW
- [`extract`](/llms/extract.md) — Function description not available
- [`extract_op`](/llms/extract_op.md) — Signature: base[ field, ...
- [`factorial`](/llms/factorial.md) — Signature: FACTORIAL(n: T) → BIGINT
- [`first_day_of`](/llms/first_day_of.md) — Signature: FIRST_DAY_OF(date: DATE | TIMESTAMP, unit: VARCHAR) → TIMESTAMP
- [`flatten`](/llms/flatten.md) (aliases: array_flatten) — Signature: FLATTEN(array: ARRAY<ARRAY<T>>) → ARRAY<T>
- [`floor`](/llms/floor.md) — Signature: FLOOR(number: T) → BIGINT
- [`format_fn`](/llms/format_fn.md) — Signature: FORMAT(format: VARCHAR, values: scalars…) → VARCHAR
- [`format_op`](/llms/format_op.md) — Signature: FORMAT(format, value, value, …)  ·  PRINTF(format, value, value, …)
- [`from_activity_bits`](/llms/from_activity_bits.md) — Signature: FROM_ACTIVITY_BITS(activity_bits: BIGINT, date_ref: DATE) → ARRAY<DATE>
- [`from_base`](/llms/from_base.md) — Signature: FROM_BASE(number_string: VARCHAR, base: B) → BIGINT
- [`from_iso8601_interval`](/llms/from_iso8601_interval.md) — Signature: FROM_ISO8601_INTERVAL(iso8601: VARCHAR) → INTERVAL
- [`from_iso8601_timestamp`](/llms/from_iso8601_timestamp.md) — Signature: FROM_ISO8601_TIMESTAMP(string: VARCHAR) → TIMESTAMP
- [`from_unixtime`](/llms/from_unixtime.md) — Signature: FROM_UNIXTIME(unixtime: BIGINT) → TIMESTAMP
- [`gradual_rollout`](/llms/gradual_rollout.md) — Signature: GRADUAL_ROLLOUT(hashing_key: VARCHAR, time_ref: TIMESTAMP, time_0pc: TIMESTAMP, time_100pc: TIMESTAMP, [power: DOUBLE], [chunks: BIGINT]) → BOOLEAN
- [`greater_than`](/llms/greater_than.md) — Signature: GREATER_THAN(expr1: T, expr2: T, [digits: BIGINT]) → BOOLEAN
- [`greater_than_op`](/llms/greater_than_op.md) — Signature: expr1 > expr2
- [`greater_than_or_equals`](/llms/greater_than_or_equals.md) — Signature: GREATER_THAN_OR_EQUALS(expr1: T, expr2: T, [digits: BIGINT]) → BOOLEAN
- [`greater_than_or_equals_op`](/llms/greater_than_or_equals_op.md) — Signature: expr1 >= expr2
- [`greatest_fn`](/llms/greatest_fn.md) — Signature: GREATEST(exprs: T, ...) → T
- [`greatest_op`](/llms/greatest_op.md) — Signature: GREATEST(expr, expr, ...)
- [`hamming_distance`](/llms/hamming_distance.md) — Signature: HAMMING_DISTANCE(string1: VARCHAR, string2: VARCHAR) → BIGINT
- [`hash01`](/llms/hash01.md) — Signature: HASH01(hashing_key: VARCHAR) → DOUBLE
- [`hex_decode`](/llms/hex_decode.md) — Signature: HEX_DECODE(hex_digits: VARCHAR) → VARCHAR
- [`hex_encode`](/llms/hex_encode.md) — Signature: HEX_ENCODE(string: VARCHAR) → VARCHAR
- [`if`](/llms/if.md) — Signature: IF(condition: BOOLEAN, true_value: T, [false_value: T]) → T
- [`ilike`](/llms/ilike.md) — Signature: ILIKE(expr1: VARCHAR, expr2: VARCHAR, [escape: VARCHAR]) → BOOLEAN
- [`ilike_all`](/llms/ilike_all.md) — Signature: ILIKE_ALL(expr1: VARCHAR, patterns: ARRAY(VARCHAR), [escape: VARCHAR]) → BOOLEAN
- [`ilike_any`](/llms/ilike_any.md) — Signature: ILIKE_ANY(expr1: VARCHAR, patterns: ARRAY(VARCHAR), [escape: VARCHAR]) → BOOLEAN
- [`ilike_none`](/llms/ilike_none.md) — Signature: ILIKE_NONE(expr1: VARCHAR, patterns: ARRAY(VARCHAR), [escape: VARCHAR]) → BOOLEAN
- [`in_list`](/llms/in_list.md) — Signature: IN_LIST(expr: T, list_of_exprs: ARRAY<T>) → BOOLEAN
- [`in_list_op`](/llms/in_list_op.md) — Signature: expr IN (value, value, ...)
- [`index_multi`](/llms/index_multi.md) — Signature: INDEX_MULTI(base: ARRAY<ROW<T>>, key: FIELD) → INDEX
- [`index_unique`](/llms/index_unique.md) — Signature: INDEX_UNIQUE(base: ARRAY<ROW<T>>, key: FIELD) → INDEX
- [`infinity`](/llms/infinity.md) — Signature: INFINITY() → DOUBLE
- [`input`](/llms/input.md) — Signature: INPUT(type: DataTypeEnum.TYPE) → INPUT
- [`interval_parse`](/llms/interval_parse.md) — Signature: INTERVAL_PARSE(duration: VARCHAR) → INTERVAL
- [`interval_to_ms`](/llms/interval_to_ms.md) — Signature: INTERVAL_TO_MS(interval: INTERVAL) → BIGINT
- [`is_active`](/llms/is_active.md) — Signature: IS_ACTIVE(activity_bits: BIGINT, length_days: BIGINT, [offset_days: BIGINT]) → BIGINT
- [`is_distinct_from`](/llms/is_distinct_from.md) — Signature: IS_DISTINCT_FROM(expr1: T, expr2: T) → BOOLEAN
- [`is_distinct_from_op`](/llms/is_distinct_from_op.md) — Signature: expr1 IS DISTINCT FROM expr2  ·  expr1 NOT DISPLAYS AS expr2
- [`is_downstream_of`](/llms/is_downstream_of.md) — Signature: IS_DOWNSTREAM_OF(feature_ref: VARCHAR) → BOOLEAN
- [`is_finite`](/llms/is_finite.md) — Signature: IS_FINITE(number: T) → BOOLEAN
- [`is_infinite`](/llms/is_infinite.md) — Signature: IS_INFINITE(number: T) → BOOLEAN
- [`is_nan`](/llms/is_nan.md) — Signature: IS_NAN(number: T) → BOOLEAN
- [`is_not_distinct_from`](/llms/is_not_distinct_from.md) — Signature: IS_NOT_DISTINCT_FROM(expr1: T, expr2: T) → BOOLEAN
- [`is_not_distinct_from_op`](/llms/is_not_distinct_from_op.md) — Signature: expr1 IS NOT DISTINCT FROM expr2  ·  expr1 DISPLAYS AS expr2
- [`is_not_null`](/llms/is_not_null.md) — Signature: IS_NOT_NULL(expr: T) → BOOLEAN
- [`is_not_null_op`](/llms/is_not_null_op.md) — Signature: expr IS NOT NULL [:: type]
- [`is_null`](/llms/is_null.md) — Signature: IS_NULL(expr: T) → BOOLEAN
- [`is_null_op`](/llms/is_null_op.md) — Signature: expr IS NULL [:: type]
- [`is_upstream_of`](/llms/is_upstream_of.md) — Signature: IS_UPSTREAM_OF(feature_ref: VARCHAR) → BOOLEAN
- [`json_array_count`](/llms/json_array_count.md) — Signature: JSON_ARRAY_COUNT(expr: JSON) → BIGINT
- [`json_extract`](/llms/json_extract.md) — Signature: JSON_EXTRACT(expr: JSON, json_path: VARCHAR) → JSON
- [`json_extract_scalar`](/llms/json_extract_scalar.md) — Signature: JSON_EXTRACT_SCALAR(expr: JSON, json_path: VARCHAR) → VARCHAR
- [`json_format`](/llms/json_format.md) — Signature: JSON_FORMAT(expr: JSON) → VARCHAR
- [`json_keys`](/llms/json_keys.md) — Signature: JSON_KEYS(expr: JSON) → ARRAY(VARCHAR)
- [`json_parse`](/llms/json_parse.md) — Signature: JSON_PARSE(expr: VARCHAR) → JSON
- [`json_parse_as`](/llms/json_parse_as.md) — Signature: JSON_PARSE_AS(expr: VARCHAR, as_type: TYPE) → T
- [`json_type`](/llms/json_type.md) — Signature: JSON_TYPE(expr: JSON) → VARCHAR
- [`keyset`](/llms/keyset.md) — Signature: KEYSET(entity: ENTITY, query: VARCHAR) → TABLE
- [`keyset_group`](/llms/keyset_group.md) — Signature: KEYSET_GROUP(members: ARRAY<KEYSET>) → TABLE
- [`last_day_of`](/llms/last_day_of.md) — Signature: LAST_DAY_OF(date: DATE | TIMESTAMP, unit: VARCHAR) → TIMESTAMP
- [`least_fn`](/llms/least_fn.md) — Signature: LEAST(exprs: T, ...) → T
- [`least_op`](/llms/least_op.md) — Signature: LEAST(expr, expr, ...)
- [`left`](/llms/left.md) — Signature: LEFT(string: VARCHAR, n: BIGINT) → VARCHAR
- [`length`](/llms/length.md) (aliases: len, size) — Signature: LENGTH(string: VARCHAR) → BIGINT
- [`less_than`](/llms/less_than.md) — Signature: LESS_THAN(expr1: T, expr2: T, [digits: BIGINT]) → BOOLEAN
- [`less_than_op`](/llms/less_than_op.md) — Signature: expr1 < expr2
- [`less_than_or_equals`](/llms/less_than_or_equals.md) — Signature: LESS_THAN_OR_EQUALS(expr1: T, expr2: T, [digits: BIGINT]) → BOOLEAN
- [`less_than_or_equals_op`](/llms/less_than_or_equals_op.md) — Signature: expr1 <= expr2
- [`levenshtein_distance`](/llms/levenshtein_distance.md) — Signature: LEVENSHTEIN_DISTANCE(string1: VARCHAR, string2: VARCHAR) → BIGINT
- [`like`](/llms/like.md) — Signature: LIKE(expr1: VARCHAR, expr2: VARCHAR, [escape: VARCHAR]) → BOOLEAN
- [`like_all`](/llms/like_all.md) — Signature: LIKE_ALL(expr1: VARCHAR, patterns: ARRAY(VARCHAR), [escape: VARCHAR]) → BOOLEAN
- [`like_any`](/llms/like_any.md) — Signature: LIKE_ANY(expr1: VARCHAR, patterns: ARRAY(VARCHAR), [escape: VARCHAR]) → BOOLEAN
- [`like_ilike_patterns_op`](/llms/like_ilike_patterns_op.md) — Signature: expr1 (LIKE|ILIKE) (ANY|ALL|NONE) (pat1, pat2, …)  ·  expr1 ILIKE pattern
- [`like_none`](/llms/like_none.md) — Signature: LIKE_NONE(expr1: VARCHAR, patterns: ARRAY(VARCHAR), [escape: VARCHAR]) → BOOLEAN
- [`like_op`](/llms/like_op.md) — Signature: string LIKE pattern
- [`ln`](/llms/ln.md) — Signature: LN(number: T) → DOUBLE
- [`local_to_utc`](/llms/local_to_utc.md) — Signature: LOCAL_TO_UTC(timestamp: TIMESTAMP, timezone: VARCHAR) → TIMESTAMP
- [`log`](/llms/log.md) — Signature: LOG(base: B, number: T) → DOUBLE
- [`lower`](/llms/lower.md) — Signature: LOWER(string: VARCHAR) → VARCHAR
- [`lpad`](/llms/lpad.md) — Signature: LPAD(string: VARCHAR, length: BIGINT, padding: VARCHAR) → VARCHAR
- [`ltrim`](/llms/ltrim.md) — Signature: LTRIM(string: VARCHAR, [characters: VARCHAR]) → VARCHAR
- [`luhn_check`](/llms/luhn_check.md) — Signature: LUHN_CHECK(string: VARCHAR) → BOOLEAN
- [`macro`](/llms/macro.md) — Signature: MACRO(base: FEATURE, inputs: ARRAY<FEATURE>) → FEATURE
- [`make_date`](/llms/make_date.md) — Signature: MAKE_DATE(row: ROW) → DATE
- [`make_interval`](/llms/make_interval.md) — Signature: MAKE_INTERVAL(row: ROW) → INTERVAL
- [`make_timestamp`](/llms/make_timestamp.md) — Signature: MAKE_TIMESTAMP(row: ROW) → TIMESTAMP
- [`md5`](/llms/md5.md) — Signature: MD5(string: VARCHAR) → VARCHAR
- [`merge_fn`](/llms/merge_fn.md) — Function description not available
- [`merge_op`](/llms/merge_op.md) — Signature: MERGE(row, row, ...)
- [`modulo`](/llms/modulo.md) (aliases: mod) — Signature: MODULO(dividend: T, divisor: T) → T
- [`modulo_op`](/llms/modulo_op.md) — Signature: left % right  ·  MODULO(left, right)  ·  MOD(left, right)
- [`multiply`](/llms/multiply.md) — Signature: MULTIPLY(number1: T, number2: T) → T
- [`multiply_op`](/llms/multiply_op.md) — Signature: left * right  ·  MULTIPLY(left, right)
- [`nan`](/llms/nan.md) — Signature: NAN() → DOUBLE
- [`ngrams`](/llms/ngrams.md) — Signature: NGRAMS(array: ARRAY<T>, n: BIGINT) → ARRAY<ARRAY<T>>
- [`none_fn`](/llms/none_fn.md) (aliases: array_none) — Function description not available
- [`none_op`](/llms/none_op.md) — Signature: NONE(value, value, ...)
- [`normalize`](/llms/normalize.md) — Signature: NORMALIZE(array: ARRAY<DOUBLE>) → ARRAY<DOUBLE>
- [`not`](/llms/not.md) — Signature: NOT(expr1: BOOLEAN) → BOOLEAN
- [`not_between`](/llms/not_between.md) — Signature: NOT_BETWEEN(expr: T, lower: T, upper: T, [digits: BIGINT]) → BOOLEAN
- [`not_between_op`](/llms/not_between_op.md) — Signature: expr NOT BETWEEN lower AND upper
- [`not_displays_as`](/llms/not_displays_as.md) — Signature: NOT_DISPLAYS_AS(expr1: T, expr2: T) → BOOLEAN
- [`not_displays_as_op`](/llms/not_displays_as_op.md) — Signature: expr1 NOT DISPLAYS AS expr2  ·  expr1 IS DISTINCT FROM expr2
- [`not_equals`](/llms/not_equals.md) — Signature: NOT_EQUALS(expr1: T, expr2: T, [digits: BIGINT]) → BOOLEAN
- [`not_equals_op`](/llms/not_equals_op.md) — Signature: expr1 != expr2
- [`not_ilike`](/llms/not_ilike.md) — Signature: NOT_ILIKE(expr1: VARCHAR, expr2: VARCHAR, [escape: VARCHAR]) → BOOLEAN
- [`not_in_list`](/llms/not_in_list.md) — Signature: NOT_IN_LIST(expr: T, list_of_exprs: ARRAY<T>) → BOOLEAN
- [`not_in_list_op`](/llms/not_in_list_op.md) — Signature: expr NOT IN (value, value, ...)
- [`not_like`](/llms/not_like.md) — Signature: NOT_LIKE(expr1: VARCHAR, expr2: VARCHAR, [escape: VARCHAR]) → BOOLEAN
- [`not_like_op`](/llms/not_like_op.md) — Signature: string NOT LIKE pattern
- [`not_op`](/llms/not_op.md) — Signature: NOT expr  ·  NOT(expr)
- [`null`](/llms/null.md) — Signature: NULL([type: DataTypeEnum.TYPE]) → T
- [`nullif`](/llms/nullif.md) — Signature: NULLIF(expr: T, value: T) → T
- [`or`](/llms/or.md) — Signature: OR(expr1: BOOLEAN, expr2: BOOLEAN) → BOOLEAN
- [`or_op`](/llms/or_op.md) — Signature: expr1 OR expr2  ·  OR(expr1, expr2)
- [`permutations`](/llms/permutations.md) — Signature: PERMUTATIONS(array: ARRAY<T>) → ARRAY<ARRAY<T>>
- [`pi`](/llms/pi.md) — Signature: PI() → DOUBLE
- [`position`](/llms/position.md) — Signature: POSITION(substring: VARCHAR, string: VARCHAR) → BIGINT
- [`position_op`](/llms/position_op.md) — Signature: POSITION(search IN string)  ·  string.POSITION(search)
- [`pow`](/llms/pow.md) (aliases: power) — Signature: POW(base: T, exponent: T) → T
- [`pow_op`](/llms/pow_op.md) — Signature: base ^ exponent  ·  base ** exponent  ·  POW(base, exponent)
- [`prepared_statement`](/llms/prepared_statement.md) — Signature: PREPARED_STATEMENT(base: FEATURE, inputs: ARRAY<FEATURE>, positions: ARRAY<BIGINT>, [logging_level: FEATURE]) → FEATURE
- [`radians`](/llms/radians.md) — Signature: RADIANS(degrees: T) → DOUBLE
- [`random`](/llms/random.md) (aliases: rand) — Signature: RANDOM() → DOUBLE
- [`recency`](/llms/recency.md) — Signature: RECENCY(activity_bits: BIGINT) → BIGINT
- [`recurse`](/llms/recurse.md) — Function description not available
- [`recurse_op`](/llms/recurse_op.md) — Signature: ROW(...).RECURSE(
- [`regex_contains`](/llms/regex_contains.md) (aliases: regexp_contains) — Signature: REGEX_CONTAINS(string: VARCHAR, pattern: VARCHAR) → BOOLEAN
- [`regex_extract_all`](/llms/regex_extract_all.md) (aliases: regexp_extract_all) — Signature: REGEX_EXTRACT_ALL(string: VARCHAR, pattern: VARCHAR, [group_number: BIGINT]) → ARRAYVARCHAR
- [`regex_extract_first`](/llms/regex_extract_first.md) (aliases: regexp_extract_first) — Signature: REGEX_EXTRACT_FIRST(string: VARCHAR, pattern: VARCHAR, [group_number: BIGINT]) → VARCHAR
- [`regex_match`](/llms/regex_match.md) (aliases: regexp_match) — Signature: REGEX_MATCH(string: VARCHAR, pattern: VARCHAR) → BOOLEAN
- [`regex_replace_all`](/llms/regex_replace_all.md) (aliases: regexp_replace_all) — Signature: REGEX_REPLACE_ALL(string: VARCHAR, pattern: VARCHAR, replacement: VARCHAR) → VARCHAR
- [`regex_replace_first`](/llms/regex_replace_first.md) (aliases: regexp_replace_first) — Signature: REGEX_REPLACE_FIRST(string: VARCHAR, pattern: VARCHAR, replacement: VARCHAR) → VARCHAR
- [`regex_split`](/llms/regex_split.md) (aliases: regexp_split) — Signature: REGEX_SPLIT(string: VARCHAR, pattern: VARCHAR) → ARRAYVARCHAR
- [`related`](/llms/related.md) — Signature: RELATED(base: FEATURE, add: FEATURE, [binding_features: FEATURE]) → T
- [`repeat`](/llms/repeat.md) — Signature: REPEAT(element: T, count: BIGINT) → ARRAY<T>
- [`replace`](/llms/replace.md) — Signature: REPLACE(string: VARCHAR, search: VARCHAR, [replacement: VARCHAR]) → VARCHAR
- [`reverse`](/llms/reverse.md) — Signature: REVERSE(string: VARCHAR) → VARCHAR
- [`right`](/llms/right.md) — Signature: RIGHT(string: VARCHAR, n: BIGINT) → VARCHAR
- [`round`](/llms/round.md) — Signature: ROUND(number: DECIMAL(p, y), [decimal_places: BIGINT]) → DECIMAL(p, s)
- [`rpad`](/llms/rpad.md) — Signature: RPAD(string: VARCHAR, length: BIGINT, padding: VARCHAR) → VARCHAR
- [`rtrim`](/llms/rtrim.md) — Signature: RTRIM(string: VARCHAR, [characters: VARCHAR]) → VARCHAR
- [`sample_bool`](/llms/sample_bool.md) — Signature: SAMPLE_BOOL(hashing_key: VARCHAR, probability: DOUBLE) → BOOLEAN
- [`sample_exponential`](/llms/sample_exponential.md) — Signature: SAMPLE_EXPONENTIAL(hashing_key: VARCHAR, rate: DOUBLE) → DOUBLE
- [`sample_gaussian`](/llms/sample_gaussian.md) — Signature: SAMPLE_GAUSSIAN(hashing_key: VARCHAR, mean: DOUBLE, stdev: DOUBLE, lower: DOUBLE, upper: DOUBLE) → DOUBLE
- [`sample_geometric`](/llms/sample_geometric.md) — Signature: SAMPLE_GEOMETRIC(hashing_key: VARCHAR, probability: DOUBLE) → BIGINT
- [`sample_lognormal`](/llms/sample_lognormal.md) — Signature: SAMPLE_LOGNORMAL(hashing_key: VARCHAR, meanlog: DOUBLE, stdlog: DOUBLE, lower: DOUBLE, upper: DOUBLE) → DOUBLE
- [`sample_poisson`](/llms/sample_poisson.md) — Signature: SAMPLE_POISSON(hashing_key: VARCHAR, rate: DOUBLE) → BIGINT
- [`sample_uniform`](/llms/sample_uniform.md) — Signature: SAMPLE_UNIFORM(hashing_key: VARCHAR, lower: DOUBLE, upper: DOUBLE) → DOUBLE
- [`sample_value`](/llms/sample_value.md) — Signature: SAMPLE_VALUE(hashing_key: VARCHAR, values: ARRAY<T>, proportions: ARRAY<NUMERIC>) → T
- [`sample_weibull`](/llms/sample_weibull.md) — Signature: SAMPLE_WEIBULL(hashing_key: VARCHAR, shape: DOUBLE, scale: DOUBLE) → DOUBLE
- [`scd_at_time`](/llms/scd_at_time.md) — Signature: SCD_AT_TIME(scd: ARRAY<T>, point_in_time: TIMESTAMP) → T
- [`sequence`](/llms/sequence.md) (aliases: range, generate_series) — Signature: SEQUENCE(start: BIGINT, stop: BIGINT, [step: BIGINT]) → ARRAY<BIGINT>
- [`sha1`](/llms/sha1.md) — Signature: SHA1(string: VARCHAR) → VARCHAR
- [`sha256`](/llms/sha256.md) — Signature: SHA256(string: VARCHAR) → VARCHAR
- [`sign`](/llms/sign.md) — Signature: SIGN(number: T) → BIGINT
- [`sin`](/llms/sin.md) — Signature: SIN(radians: T) → DOUBLE
- [`sinh`](/llms/sinh.md) — Signature: SINH(number: T) → DOUBLE
- [`slice`](/llms/slice.md) (aliases: array_slice, list_slice) — Signature: SLICE(array: ARRAY<T>, start: BIGINT, [length: BIGINT], [step: BIGINT]) → ARRAY<T>
- [`slice_end`](/llms/slice_end.md) — Signature: SLICE_END(array: ARRAY<T>, start: BIGINT, end: BIGINT, [step: BIGINT]) → ARRAY<T>
- [`soundex`](/llms/soundex.md) — Signature: SOUNDEX(string: VARCHAR) → VARCHAR
- [`source_http`](/llms/source_http.md) — Signature: SOURCE_HTTP(uri: VARCHAR, [method: VARCHAR], [path: VARCHAR], [headers: ROW], [query_params: ROW], [body: ROW], [timeout: DECIMAL]) → HTTPSOURCE
- [`source_jdbc`](/llms/source_jdbc.md) — Signature: SOURCE_JDBC(dsn: VARCHAR, [timeout: DECIMAL], tables: ARRAY<VARCHAR>) → JDBCSOURCE
- [`source_redis`](/llms/source_redis.md) — Signature: SOURCE_REDIS(uri: VARCHAR, [username: VARCHAR], [password: VARCHAR], [timeout: DECIMAL], [key_patterns: ARRAY<VARCHAR>]) → REDISSOURCE
- [`split`](/llms/split.md) — Signature: SPLIT(string: VARCHAR, delimiter: VARCHAR, [limit: BIGINT]) → ARRAYVARCHAR
- [`split_part`](/llms/split_part.md) — Signature: SPLIT_PART(string: VARCHAR, delimiter: VARCHAR, index: BIGINT) → VARCHAR
- [`sqltypeof`](/llms/sqltypeof.md) — Signature: SQLTYPEOF(expr: T) → VARCHAR
- [`sqrt`](/llms/sqrt.md) — Signature: SQRT(number: T) → DOUBLE
- [`st_area`](/llms/st_area.md) — Signature: ST_AREA(geo: T) → DOUBLE
- [`st_asgeojson`](/llms/st_asgeojson.md) — Signature: ST_ASGEOJSON(geo: T) → VARCHAR
- [`st_astext`](/llms/st_astext.md) — Signature: ST_ASTEXT(geo: T) → VARCHAR
- [`st_aswkb`](/llms/st_aswkb.md) — Signature: ST_ASWKB(geo: T) → BINARY
- [`st_azimuth`](/llms/st_azimuth.md) — Signature: ST_AZIMUTH(geo1: T, geo2: T) → DOUBLE
- [`st_buffer`](/llms/st_buffer.md) — Signature: ST_BUFFER(geo: T, distance: DOUBLE) → Polygon
- [`st_centroid`](/llms/st_centroid.md) — Signature: ST_CENTROID(geo: T) → Point
- [`st_collect`](/llms/st_collect.md) — Signature: ST_COLLECT(geo1: T, geo2: T) → GEOM_MULTIANY or GEOG_MULTIANY
- [`st_collect_agg`](/llms/st_collect_agg.md) — Signature: ST_COLLECT_AGG(geo: T) → GEOMETRY or GEOGRAPHY
- [`st_contains`](/llms/st_contains.md) — Signature: ST_CONTAINS(geo1: T, geo2: T) → BOOLEAN
- [`st_convexhull`](/llms/st_convexhull.md) — Signature: ST_CONVEXHULL(geo: T) → GEOMETRY or GEOGRAPHY
- [`st_crosses`](/llms/st_crosses.md) — Signature: ST_CROSSES(geo1: T, geo2: T) → BOOLEAN
- [`st_difference`](/llms/st_difference.md) — Signature: ST_DIFFERENCE(geo1: T, geo2: T) → GEOMETRY or GEOGRAPHY
- [`st_dimension`](/llms/st_dimension.md) — Signature: ST_DIMENSION(geo: T) → BIGINT
- [`st_disjoint`](/llms/st_disjoint.md) — Signature: ST_DISJOINT(geo1: T, geo2: T) → BOOLEAN
- [`st_distance`](/llms/st_distance.md) — Signature: ST_DISTANCE(geo1: T, geo2: T) → DOUBLE
- [`st_dump`](/llms/st_dump.md) — Signature: ST_DUMP(geo: T) → GEOMETRY[] or GEOGRAPHY[]
- [`st_dwithin`](/llms/st_dwithin.md) — Signature: ST_DWITHIN(geo1: T, geo2: T, distance: DOUBLE) → BOOLEAN
- [`st_endpoint`](/llms/st_endpoint.md) — Signature: ST_ENDPOINT(line: T) → GEOM_POINT or GEOG_POINT
- [`st_envelope`](/llms/st_envelope.md) — Signature: ST_ENVELOPE(geo: T) → Polygon
- [`st_equals`](/llms/st_equals.md) — Signature: ST_EQUALS(geo1: T, geo2: T) → BOOLEAN
- [`st_extent`](/llms/st_extent.md) — Signature: ST_EXTENT(geo: T) → GEOM_POLYGON
- [`st_exteriorring`](/llms/st_exteriorring.md) — Signature: ST_EXTERIORRING(polygon: GEOM_POLYGON) → GEOM_LINESTRING
- [`st_geogfromgeojson`](/llms/st_geogfromgeojson.md) — Signature: ST_GEOGFROMGEOJSON(geojson: VARCHAR) → GEOG_MULTIANY
- [`st_geogfromtext`](/llms/st_geogfromtext.md) — Signature: ST_GEOGFROMTEXT(wkt: VARCHAR) → GEOG_MULTIANY
- [`st_geogfromwkb`](/llms/st_geogfromwkb.md) — Signature: ST_GEOGFROMWKB(wkb: BINARY) → GEOG_MULTIANY
- [`st_geogpoint`](/llms/st_geogpoint.md) — Signature: ST_GEOGPOINT(lon: DOUBLE, lat: DOUBLE) → GEOG_POINT
- [`st_geometryn`](/llms/st_geometryn.md) — Signature: ST_GEOMETRYN(geo: T, n: INT) → GEOM_MULTIANY or GEOG_MULTIANY
- [`st_geometrytype`](/llms/st_geometrytype.md) — Signature: ST_GEOMETRYTYPE(geo: T) → VARCHAR
- [`st_geomfromgeojson`](/llms/st_geomfromgeojson.md) — Signature: ST_GEOMFROMGEOJSON(geojson: VARCHAR) → GEOM_MULTIANY
- [`st_geomfromtext`](/llms/st_geomfromtext.md) (aliases: st_fromtext) — Signature: ST_GEOMFROMTEXT(wkt: VARCHAR) → GEOM_MULTIANY
- [`st_geomfromwkb`](/llms/st_geomfromwkb.md) — Signature: ST_GEOMFROMWKB(wkb: BINARY) → GEOM_MULTIANY
- [`st_geompoint`](/llms/st_geompoint.md) — Signature: ST_GEOMPOINT(lon: DOUBLE, lat: DOUBLE) → GEOM_POINT
- [`st_geompointn`](/llms/st_geompointn.md) — Signature: ST_GEOMPOINTN(line: T, n: INT) → GEOM_POINT or GEOG_POINT
- [`st_interiorringn`](/llms/st_interiorringn.md) — Signature: ST_INTERIORRINGN(polygon: GEOM_POLYGON, n: INT) → GEOM_LINESTRING
- [`st_intersection`](/llms/st_intersection.md) — Signature: ST_INTERSECTION(geo1: T, geo2: T) → GEOMETRY or GEOGRAPHY
- [`st_intersects`](/llms/st_intersects.md) — Signature: ST_INTERSECTS(geo1: T, geo2: T) → BOOLEAN
- [`st_isclosed`](/llms/st_isclosed.md) — Signature: ST_ISCLOSED(geo: T) → BOOLEAN
- [`st_iscollection`](/llms/st_iscollection.md) — Signature: ST_ISCOLLECTION(geo: T) → BOOLEAN
- [`st_isempty`](/llms/st_isempty.md) — Signature: ST_ISEMPTY(geo: T) → BOOLEAN
- [`st_isline`](/llms/st_isline.md) — Signature: ST_ISLINE(geo: T) → BOOLEAN
- [`st_ispoint`](/llms/st_ispoint.md) — Signature: ST_ISPOINT(geo: T) → BOOLEAN
- [`st_ispolygon`](/llms/st_ispolygon.md) — Signature: ST_ISPOLYGON(geo: T) → BOOLEAN
- [`st_issimple`](/llms/st_issimple.md) — Signature: ST_ISSIMPLE(geo: T) → BOOLEAN
- [`st_isvalid`](/llms/st_isvalid.md) — Signature: ST_ISVALID(geo: T) → BOOLEAN
- [`st_length`](/llms/st_length.md) — Signature: ST_LENGTH(geo: T) → DOUBLE
- [`st_makeline`](/llms/st_makeline.md) — Signature: ST_MAKELINE(geo1: T, geo2: T) → GEOM_LINESTRING or GEOG_LINESTRING
- [`st_makepolygon`](/llms/st_makepolygon.md) — Signature: ST_MAKEPOLYGON(shell: T) → GEOM_POLYGON or GEOG_POLYGON
- [`st_numgeometries`](/llms/st_numgeometries.md) — Signature: ST_NUMGEOMETRIES(geo: T) → BIGINT
- [`st_numinteriorrings`](/llms/st_numinteriorrings.md) — Signature: ST_NUMINTERIORRINGS(polygon: GEOM_POLYGON) → BIGINT
- [`st_numpoints`](/llms/st_numpoints.md) — Signature: ST_NUMPOINTS(geo: T) → BIGINT
- [`st_overlaps`](/llms/st_overlaps.md) — Signature: ST_OVERLAPS(geo1: T, geo2: T) → BOOLEAN
- [`st_perimeter`](/llms/st_perimeter.md) — Signature: ST_PERIMETER(geo: T) → DOUBLE
- [`st_reverse`](/llms/st_reverse.md) — Signature: ST_REVERSE(geo: T) → T
- [`st_setsrid`](/llms/st_setsrid.md) — Signature: ST_SETSRID(geo: T, srid: INT) → GEOM_MULTIANY
- [`st_simplify`](/llms/st_simplify.md) — Signature: ST_SIMPLIFY(geo: T, tolerance: DOUBLE) → GEOMETRY or GEOGRAPHY
- [`st_snap_to_grid`](/llms/st_snap_to_grid.md) — Signature: ST_SNAP_TO_GRID(geo: T, size: DOUBLE) → GEOM_MULTIANY
- [`st_srid`](/llms/st_srid.md) — Signature: ST_SRID(geo: T) → INT
- [`st_startpoint`](/llms/st_startpoint.md) — Signature: ST_STARTPOINT(line: T) → GEOM_POINT or GEOG_POINT
- [`st_symdifference`](/llms/st_symdifference.md) — Signature: ST_SYMDIFFERENCE(geo1: T, geo2: T) → GEOMETRY or GEOGRAPHY
- [`st_togeography`](/llms/st_togeography.md) — Signature: ST_TOGEOGRAPHY(geo: T) → GEOG_MULTIANY
- [`st_togeometry`](/llms/st_togeometry.md) — Signature: ST_TOGEOMETRY(geo: T) → GEOM_MULTIANY
- [`st_touches`](/llms/st_touches.md) — Signature: ST_TOUCHES(geo1: T, geo2: T) → BOOLEAN
- [`st_transform`](/llms/st_transform.md) — Signature: ST_TRANSFORM(geo: T, target_srid: INT) → GEOM_MULTIANY
- [`st_union`](/llms/st_union.md) — Signature: ST_UNION(geo1: T, geo2: T) → GEOMETRY or GEOGRAPHY
- [`st_union_agg`](/llms/st_union_agg.md) — Signature: ST_UNION_AGG(geo: T) → GEOMETRY or GEOGRAPHY
- [`st_within`](/llms/st_within.md) — Signature: ST_WITHIN(geo1: T, geo2: T) → BOOLEAN
- [`st_x`](/llms/st_x.md) — Signature: ST_X(point: T) → DOUBLE
- [`st_y`](/llms/st_y.md) — Signature: ST_Y(point: T) → DOUBLE
- [`starts_with`](/llms/starts_with.md) — Signature: STARTS_WITH(string: VARCHAR, prefix: VARCHAR) → BOOLEAN
- [`strpos`](/llms/strpos.md) — Signature: STRPOS(string: VARCHAR, substring: VARCHAR, [occurrence: BIGINT]) → BIGINT
- [`substr`](/llms/substr.md) (aliases: substring) — Signature: SUBSTR(string: VARCHAR, start: BIGINT, [length: BIGINT]) → VARCHAR
- [`subtract`](/llms/subtract.md) — Signature: SUBTRACT(number1: T, number2: T) → T
- [`subtract_op`](/llms/subtract_op.md) — Signature: left - right  ·  SUBTRACT(left, right)
- [`tan`](/llms/tan.md) — Signature: TAN(radians: T) → DOUBLE
- [`tanh`](/llms/tanh.md) — Signature: TANH(number: T) → DOUBLE
- [`title`](/llms/title.md) (aliases: initcap) — Signature: TITLE(string: VARCHAR) → VARCHAR
- [`to_activity_bits`](/llms/to_activity_bits.md) — Signature: TO_ACTIVITY_BITS(activity: ARRAY<DATE>, date_ref: DATE, [active_before: BOOLEAN]) → BIGINT
- [`to_base`](/llms/to_base.md) — Signature: TO_BASE(decimal_number: T, base: B) → VARCHAR
- [`to_iso8601`](/llms/to_iso8601.md) — Signature: TO_ISO8601(value: DATE | TIMESTAMP) → VARCHAR
- [`to_unixtime`](/llms/to_unixtime.md) (aliases: epoch) — Signature: TO_UNIXTIME(timestamp: DATE | TIMESTAMP) → DECIMAL
- [`transform`](/llms/transform.md) — Function description not available
- [`transform_op`](/llms/transform_op.md) — Signature: TRANSFORM(
- [`translate`](/llms/translate.md) — Signature: TRANSLATE(string: VARCHAR, from_chars: VARCHAR, to_chars: VARCHAR) → VARCHAR
- [`trim`](/llms/trim.md) — Signature: TRIM(string: VARCHAR, [characters: VARCHAR]) → VARCHAR
- [`truncate`](/llms/truncate.md) — Signature: TRUNCATE(number: T) → BIGINT
- [`try_cast`](/llms/try_cast.md) — Signature: TRY_CAST(expr: T, as_type: DataTypeEnum.TYPE) → U
- [`try_divide`](/llms/try_divide.md) — Signature: TRY_DIVIDE(dividend: T, divisor: U) → DOUBLE
- [`try_divide_type`](/llms/try_divide_type.md) — Signature: TRY_DIVIDE_TYPE(dividend: T, divisor: U) → T
- [`try_json_parse`](/llms/try_json_parse.md) — Signature: TRY_JSON_PARSE(expr: VARCHAR) → JSON
- [`typeof`](/llms/typeof.md) — Signature: TYPEOF(expr: T) → VARCHAR
- [`udf`](/llms/udf.md) — Signature: UDF(param_names: ARRAY<VARCHAR>, signatures: ARRAY<ARRAY<TYPE>>, impl_dialects: ARRAY<VARCHAR>, impl_sqls: ARRAY<VARCHAR>) → UDF
- [`unary_minus`](/llms/unary_minus.md) — Signature: UNARY_MINUS(expr: T) → T
- [`unary_plus`](/llms/unary_plus.md) — Signature: UNARY_PLUS(expr: T) → T
- [`unnest`](/llms/unnest.md) — Signature: UNNEST(base: ARRAY<ROW>) → ROW
- [`unsafe_cast`](/llms/unsafe_cast.md) — Signature: UNSAFE_CAST(expr: T, as_type: DataTypeEnum.TYPE) → U
- [`unwrap`](/llms/unwrap.md) — Signature: UNWRAP(array: ARRAY<ROW<T>>) → ARRAY<T>
- [`unwrap_one`](/llms/unwrap_one.md) — Signature: UNWRAP_ONE(array: ARRAY<ROW<T>>) → T
- [`update_activity_bit`](/llms/update_activity_bit.md) — Signature: UPDATE_ACTIVITY_BIT(activity_bits: BIGINT, is_active: BOOLEAN) → BIGINT
- [`upper`](/llms/upper.md) — Signature: UPPER(string: VARCHAR) → VARCHAR
- [`url_decode`](/llms/url_decode.md) — Signature: URL_DECODE(encoded: VARCHAR) → VARCHAR
- [`url_encode`](/llms/url_encode.md) — Signature: URL_ENCODE(string: VARCHAR) → VARCHAR
- [`utc_to_local`](/llms/utc_to_local.md) — Signature: UTC_TO_LOCAL(timestamp: TIMESTAMP, timezone: VARCHAR) → TIMESTAMPTZ
- [`variant`](/llms/variant.md) — Signature: VARIANT(base: FEATURE, origin: ARRAY<FEATURE>, replacement: ARRAY<FEATURE>) → FEATURE
- [`version`](/llms/version.md) — Signature: VERSION() → ROW(version VARCHAR, reloaded_at VARCHAR)
- [`wf_any_value_op`](/llms/wf_any_value_op.md) — Signature: ANY_VALUE(expr) [FILTER (WHERE condition) | WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_approx_distinct_op`](/llms/wf_approx_distinct_op.md) — Signature: APPROX_DISTINCT(expr [, precision]) [FILTER (WHERE condition) | WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_array_agg_op`](/llms/wf_array_agg_op.md) — Signature: ARRAY_AGG([DISTINCT] expr) [FILTER (WHERE condition) | WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_avg_op`](/llms/wf_avg_op.md) — Signature: AVG(expr) [FILTER (WHERE condition) | WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_bit_and_op`](/llms/wf_bit_and_op.md) — Signature: BIT_AND(expr) [FILTER (WHERE condition) | WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_bit_or_op`](/llms/wf_bit_or_op.md) — Signature: BIT_OR(expr) [FILTER (WHERE condition) | WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_bit_xor_op`](/llms/wf_bit_xor_op.md) — Signature: BIT_XOR(expr) [FILTER (WHERE condition) | WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_bool_and_op`](/llms/wf_bool_and_op.md) — Signature: BOOL_AND(expr) [FILTER (WHERE condition) | WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_bool_or_op`](/llms/wf_bool_or_op.md) — Signature: BOOL_OR(expr) [FILTER (WHERE condition) | WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_corr_op`](/llms/wf_corr_op.md) — Signature: CORR(expr_y, expr_x) [FILTER (WHERE condition) | WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_count_if_op`](/llms/wf_count_if_op.md) — Signature: COUNT_IF(expr) [FILTER (WHERE condition) | WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_count_op`](/llms/wf_count_op.md) — Signature: COUNT([DISTINCT] expr | *) [FILTER (WHERE condition) | WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_covar_pop_op`](/llms/wf_covar_pop_op.md) — Signature: COVAR_POP(expr_y, expr_x) [FILTER (WHERE condition) | WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_covar_samp_op`](/llms/wf_covar_samp_op.md) — Signature: COVAR_SAMP(expr_y, expr_x) [FILTER (WHERE condition) | WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_cume_dist_op`](/llms/wf_cume_dist_op.md) — Signature: CUME_DIST() [WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_first_value_op`](/llms/wf_first_value_op.md) — Signature: FIRST_VALUE(expr) [WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_lag_op`](/llms/wf_lag_op.md) — Signature: LAG(expr [, offset [, default_value]]) [WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_last_value_op`](/llms/wf_last_value_op.md) — Signature: LAST_VALUE(expr) [WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_lead_op`](/llms/wf_lead_op.md) — Signature: LEAD(expr [, offset [, default_value]]) [WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_max_by_op`](/llms/wf_max_by_op.md) — Signature: MAX_BY(expr, key) [FILTER (WHERE condition) | WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_max_op`](/llms/wf_max_op.md) — Signature: MAX(expr) [FILTER (WHERE condition) | WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_median_op`](/llms/wf_median_op.md) — Signature: MEDIAN(expr) [FILTER (WHERE condition) | WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_min_by_op`](/llms/wf_min_by_op.md) — Signature: MIN_BY(expr, key) [FILTER (WHERE condition) | WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_min_op`](/llms/wf_min_op.md) — Signature: MIN(expr) [FILTER (WHERE condition) | WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_nth_value_op`](/llms/wf_nth_value_op.md) — Signature: NTH_VALUE(expr, n) [WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_ntile_op`](/llms/wf_ntile_op.md) — Signature: NTILE(expr) [WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_percent_rank_op`](/llms/wf_percent_rank_op.md) — Signature: PERCENT_RANK() [WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_product_op`](/llms/wf_product_op.md) — Signature: PRODUCT(expr) [FILTER (WHERE condition) | WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_quantile_cont_op`](/llms/wf_quantile_cont_op.md) — Signature: QUANTILE_CONT(expr, quantile) [FILTER (WHERE condition) | WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_quantile_disc_op`](/llms/wf_quantile_disc_op.md) — Signature: QUANTILE_DISC(expr, quantile) [FILTER (WHERE condition) | WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_rank_dense_op`](/llms/wf_rank_dense_op.md) — Signature: DENSE_RANK() [WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_rank_op`](/llms/wf_rank_op.md) — Signature: RANK() [WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_regr_intercept_op`](/llms/wf_regr_intercept_op.md) — Signature: REGR_INTERCEPT(expr_y, expr_x) [FILTER (WHERE condition) | WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_regr_r2_op`](/llms/wf_regr_r2_op.md) — Signature: REGR_R2(expr_y, expr_x) [FILTER (WHERE condition) | WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_regr_slope_op`](/llms/wf_regr_slope_op.md) — Signature: REGR_SLOPE(expr_y, expr_x) [FILTER (WHERE condition) | WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_row_number_op`](/llms/wf_row_number_op.md) — Signature: ROW_NUMBER() [WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_stddev_pop_op`](/llms/wf_stddev_pop_op.md) — Signature: STDDEV_POP(expr) [FILTER (WHERE condition) | WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_stddev_samp_op`](/llms/wf_stddev_samp_op.md) — Signature: STDDEV_SAMP(expr) [FILTER (WHERE condition) | WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_string_agg_op`](/llms/wf_string_agg_op.md) — Signature: STRING_AGG(expr, delimiter) [FILTER (WHERE condition) | WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_sum_op`](/llms/wf_sum_op.md) — Signature: SUM(expr) [FILTER (WHERE condition) | WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_var_pop_op`](/llms/wf_var_pop_op.md) — Signature: VAR_POP(expr) [FILTER (WHERE condition) | WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`wf_var_samp_op`](/llms/wf_var_samp_op.md) — Signature: VAR_SAMP(expr) [FILTER (WHERE condition) | WITHIN (WHERE condition)] OVER ([PARTITION BY expr [, ...]] [ORDER BY sort_item [, ...]] [ROWS|RANGE|GROUPS frame])
- [`width_bucket`](/llms/width_bucket.md) — Signature: WIDTH_BUCKET(value: T, bins: ARRAY(T)) → BIGINT
- [`width_bucket_regular`](/llms/width_bucket_regular.md) — Signature: WIDTH_BUCKET_REGULAR(value: T, min_value: T, max_value: T, num_buckets: BIGINT) → BIGINT
- [`word_stem`](/llms/word_stem.md) — Signature: WORD_STEM(word: VARCHAR, [language: VARCHAR]) → VARCHAR
- [`zip_fn`](/llms/zip_fn.md) — Function description not available
- [`zip_op`](/llms/zip_op.md) — Signature: ZIP(array [ AS field_name ] [, array [ AS field_name ] ...])
