EXTERNAL_COLUMNS()

All functions > SOURCE > EXTERNAL_COLUMNS()

Mapping of source columns to features.

Signatures

Returns: Row of data from table source

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
sql
ParameterTypeRequiredDescription
source_columnsARRAY<FEATURE>YesArray of source column names
aliasesARRAY<FEATURE>YesArray of alias names
typesARRAY<TYPE>YesArray of types
bound_columnsARRAY<FEATURE>YesArray of bound column names
bound_featuresARRAY<FEATURE>YesArray of bound feature names
source_typeVARCHARYesSource type: TABLE, SQL, CSV, TSV, JSON
source_contentVARCHARYesSource content: table name, SQL query, CSV text, TSV text, JSON text

Examples

CSV mapping with INLINE_COLUMNS (rewrites to EXTERNAL_COLUMNS)

FeatureQL
WITH
    orders := ENTITY(),
    order_id := INPUT(BIGINT#ORDERS),
    fct := INLINE_COLUMNS(
        order_id BIGINT#ORDERS BIND TO ORDER_ID,
        amount DOUBLE,
        FROM CSV(
            order_id,amount
            10,99.9
            11,50.0
        )
    ),
    order_fk := fct[order_id]
SELECT order_id, order_fk
FOR order_id := BIND_VALUES(ARRAY(10, 11))
;
Result
ORDER_ID BIGINTORDER_FK BIGINT
1010
1111

EXTERNAL_COLUMNS inside VARIANT (FROM SQL subquery)

FeatureQL
WITH
    ID := INPUT(VARCHAR),
    EXPR := INPUT(BIGINT),
    POWER := INPUT(BIGINT),
    OPERATION := POW(EXPR, POWER)
SELECT
    EXPR2 := 2,
    RESULT1 := VARIANT(
        OPERATION
        REPLACING EXPR, POWER
        WITH 2, INLINE_COLUMNS(
            ID VARCHAR BIND TO ID,
            VAL BIGINT
            FROM CSV(
                id,val
                a,1
                b,1
            )
        )[VAL]
    )
FOR
    ID := BIND_VALUES(ARRAY('a', 'b'));
Result
EXPR2 BIGINTRESULT1 BIGINT
22
22

Last update at: 2026/05/26 17:22:09