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.