POST /tables/inferIndexes and POST /tables/applyIndexes to build an index-editing workflow around a Pinot table config and schema.
inferIndexesconverts the table config into the index-grid shape used by StarTree tooling.applyIndexesconverts an edited index-grid shape back into an updated table config.
Endpoints
When to Use These Endpoints
Use these endpoints when you want to:- Build an index editor that starts from an existing table config and schema.
- Normalize older table configs into the field-config based index model.
- Convert dictionary-disabled fields into
RAWcolumn encoding. - Edit per-column index settings without hand-writing the full
fieldConfigList. - Preserve sorted columns and star-tree index configs while round-tripping through an index UI.
Infer Existing Indexes
inferIndexes accepts a table config and schema. The response contains per-column index settings, column encodings, sorted columns, star-tree index configs, and an updated table config.
Apply Edited Indexes
applyIndexes accepts the table config, schema, and edited index settings. The response contains an updated table config with the requested index changes applied.
Required request fields:
Example request:
Round-Trip Workflow
- Fetch the current table config and schema.
- Call
POST /tables/inferIndexes. - Present
indexConfigMap,columnEncodings,sortedColumns, andstarTreeIndexConfigsto the user or automation. - Edit the desired index settings.
- Call
POST /tables/applyIndexeswith the original table config, schema, and edited index data. - Review
updatedTableConfig. - Persist
updatedTableConfigwith the table update API. - Reload or regenerate segments when the changed index type requires segment materialization.
Field Behavior
Dictionary and Raw Encoding Notes
applyIndexes keeps dictionary configuration and column encoding consistent:
- A column with
RAWencoding does not keep a dictionary index for Pinot local tables. - Dictionary-disabled field configs are normalized to
RAWencoding. - External table configs keep dictionary metadata that is needed by the external table flow.

