DESCRIBE/DESC

The DESCRIBE statement returns compiler metadata for one or more named features as JSON. DESC is an equivalent abbreviation.

Syntax

DESCRIBE | DESC
    [(metadata_options)]
    feature_name [, feature_name ...]

The statement accepts local, temporary, and persisted feature names that are available in the request context.

FIELDS(...) projects each feature object before serialization:

DESCRIBE (
    FIELDS (NAME, FUNCTION, DATATYPE, DEPENDENCIES)
)
FM.SALES.NET_REVENUE;

The result remains a single JSON OUTPUT cell. Use the statement when you need deep compiler metadata or several related fields together.

HISTORY (managed registry) is the per-name revision log: revision, branch, op (upsert / drop), created_at, created_by, message, and a formula preview. It does not include query_text. See Catalog revisions .

Statement versus function

DESCRIBE feature_name is a top-level statement. DESCRIBE(expression) is a function inside RETURN that returns a typed metadata row and supports ordinary field access:

RETURN
    FEATURE_TYPE := DESCRIBE(FM.SALES.NET_REVENUE)[type];

The two forms share a name but have different result shapes and grammar positions.

A persisted view is an ordinary DESCRIBE target. FUNCTION is "VIEW". View-only fields are VIEW_COLUMNS, VIEW_HIDDEN_COLUMNS, VIEW_NESTED_BINDS, VIEW_BIND_PARAMS, VIEW_BACKENDS, and VIEW_ACKNOWLEDGED_WARNINGS — see VIEW statements .

See Statement tools for the statement, Tools in the query for DESCRIBE(), and the DESCRIBE() function reference for expression metadata.