Value.Traits
ValueInternalReturns a table describing the traits (capabilities and behaviors) of the given value. Intended for internal use only.
Syntax
Value.Traits(value as any) as tableParameters
| Name | Type | Required | Description |
|---|---|---|---|
value | any | Yes | The value whose traits to inspect. |
Return Value
table — A table listing the traits associated with the value.
Remarks
This function is intended for internal use only and is not designed to be called directly in user-written M queries.
Value.Traits returns a table that describes the traits — capabilities and behavioral characteristics — of a given value. Traits are an engine-internal concept that allows the Power Query runtime to reason about what a value can do, beyond what its M type alone conveys.
### What traits represent
Traits can include information such as:
- Whether a table supports query folding for specific operations (filtering, sorting, grouping).
- Whether a value supports streaming or buffering.
- What native query capabilities a data source exposes.
- Whether a function supports specific calling conventions or optimizations.
The engine and custom connectors use traits to make decisions about how to evaluate queries — for example, whether to fold a Table.SelectRows call into a SQL WHERE clause or to evaluate it locally.
### Structure of the returned table
The returned table's exact schema is not publicly documented and may vary across Power Query versions. It typically contains columns identifying the trait name (or kind) and associated metadata. Because the schema is engine-internal, code that depends on specific column names or trait identifiers may break across updates.
For most users, the capabilities that traits describe are surfaced automatically by the engine (e.g., query folding happens transparently). Value.Traits is useful primarily in custom connector development and engine diagnostics where you need to programmatically inspect what capabilities a value advertises.