-
Notifications
You must be signed in to change notification settings - Fork 2.1k
docs: document six recently-shipped customer-facing changes #11541
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -56,6 +56,12 @@ be used in pre-aggregations when using Trino as a source database. To learn more | |||||||||||||||||||||||||||||
| about Trino support for approximate aggregate functions, [click | ||||||||||||||||||||||||||||||
| here][trino-docs-approx-agg-fns]. | ||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
| ### Time zones | ||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
| A `DATE`-typed time dimension converted to a non-UTC time zone is now handled | ||||||||||||||||||||||||||||||
| correctly. Existing pre-aggregations with a time dimension rebuild once | ||||||||||||||||||||||||||||||
| automatically on upgrade, since this change affects the generated SQL. | ||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
|
Comment on lines
+59
to
+64
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Two things about this block (it's duplicated verbatim in
Suggested change
(Substitute the actual release version — worth pinning, since the rebuild is the operationally relevant part.) |
||||||||||||||||||||||||||||||
| ## Pre-Aggregation Build Strategies | ||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
| <Info> | ||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -13,17 +13,19 @@ It is a setting on an existing chart, not a chart type of its own: a bar, line, | |||||
|
|
||||||
| The **Small multiples** section appears in the Fields tab for bar, line, area, and scatter charts. | ||||||
|
|
||||||
| Pick a dimension in **Split by** and the chart is replaced by one panel per value of that dimension. Clearing the picker returns the chart to a single plot. | ||||||
| Pick a dimension in **First dimension** and the chart is replaced by one panel per value of that dimension, laid out across columns. Clearing the picker returns the chart to a single plot. | ||||||
|
|
||||||
| Only dimensions are offered. Splitting by a measure is not supported — a measure has no discrete values to make panels from. | ||||||
| Optionally pick a **Second dimension** to split by a second dimension at the same time, laying it out down the rows — the grid becomes one panel per combination of the two dimensions' values (row × column). The second picker never offers the dimension already chosen as the first. | ||||||
|
|
||||||
| Only dimensions are offered in either picker. Splitting by a measure is not supported — a measure has no discrete values to make panels from. | ||||||
|
|
||||||
| ## Options | ||||||
|
|
||||||
| These options appear once a **Split by** dimension is chosen. | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The picker was renamed to First dimension on line 16, but this line still calls it Split by. A reader following the doc top-to-bottom will look for a control that no longer exists under that name.
Suggested change
|
||||||
|
|
||||||
| | Option | What it does | | ||||||
| |---|---| | ||||||
| | **Grid** | Columns × rows, up to 5 × 5. Both are preselected from the number of distinct values in the split dimension, so a four-value dimension opens as a 2 × 2 grid. | | ||||||
| | **Grid** | Columns × rows, up to 5 × 5. Both are preselected from the number of distinct values in the split dimension(s), so a four-value dimension opens as a 2 × 2 grid. With a second dimension chosen, each axis is capped independently (still up to 5 columns and 5 rows), and a combination with no matching data renders an empty, labeled panel rather than being skipped. | | ||||||
| | **Axis scales** | Whether every panel is drawn against the same scale (**Shared**) or each scales to its own data (**Independent**). | | ||||||
| | **Sort panels by** | Orders the panels by the dimension's own values (**Value**) or by a measure (**Measure**). | | ||||||
| | **Sort order** | **Ascending** or **Descending**. | | ||||||
|
|
@@ -54,7 +56,7 @@ A legend is shared across the grid rather than repeated per panel. Clicking a le | |||||
|
|
||||||
| ## Limitations | ||||||
|
|
||||||
| - **One split dimension.** One dimension fills the grid, panel by panel. Splitting by two dimensions at once — one down the rows and another across the columns — is not supported. | ||||||
| - **Up to two split dimensions.** A chart can be split by at most a first (column) and second (row) dimension. | ||||||
| - **Cartesian charts only.** Bar, line, area, and scatter. Pie, table, KPI, heatmap, boxplot, map, and HTML charts cannot be split. | ||||||
| - **Panel labels are not configurable.** Each panel is labeled with its dimension value; the font, size, and color are fixed. | ||||||
| - **The split is enabled on a single-view chart.** A chart that already carries data labels, a reference line, or a second Y axis series cannot be split — turn the split on first. The order is the only constraint: once a chart is split, data labels and reference lines can be added freely and are drawn in every panel. | ||||||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -189,21 +189,20 @@ An MCP client is not locked to a single deployment for the whole session. After | |||||||||||||||||||||||||||||||||||
| connecting, it can discover the deployments and agents you can access and target a | ||||||||||||||||||||||||||||||||||||
| specific one on each request. | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| Three tools work together: | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| - **`listDeployments`** — discovery. Returns every deployment you can access via MCP | ||||||||||||||||||||||||||||||||||||
| (already filtered by the admin's deployment-access settings and your permissions) and | ||||||||||||||||||||||||||||||||||||
| each deployment's agents. Use it to find valid `deploymentId` and `agentId` values | ||||||||||||||||||||||||||||||||||||
| before calling `chat`. Every deployment offers an **Auto** agent (`agentId: null`) in | ||||||||||||||||||||||||||||||||||||
| addition to any configured agents. | ||||||||||||||||||||||||||||||||||||
| - **`chat`** — accepts two optional selection parameters: | ||||||||||||||||||||||||||||||||||||
| - **`deploymentId`** — the deployment to use for this request. When omitted, the chat | ||||||||||||||||||||||||||||||||||||
| uses the deployment from the current session (the default resolved at connect time). | ||||||||||||||||||||||||||||||||||||
| - **`agentId`** — the agent to use for this request. When omitted or `null`, the | ||||||||||||||||||||||||||||||||||||
| deployment's **Auto** agent is used. Pass a specific `agentId` to route to a | ||||||||||||||||||||||||||||||||||||
| configured agent. | ||||||||||||||||||||||||||||||||||||
| - **`loadQueryResults`** — paginates through the results of a previous query on the same | ||||||||||||||||||||||||||||||||||||
| deployment context. | ||||||||||||||||||||||||||||||||||||
| each deployment's agents. Use it to find valid `deploymentId` and `agentId` values. | ||||||||||||||||||||||||||||||||||||
| Every deployment offers an **Auto** agent (`agentId: null`) in addition to any | ||||||||||||||||||||||||||||||||||||
| configured agents. | ||||||||||||||||||||||||||||||||||||
| - **Every other tool** accepts an optional **`deploymentId`** parameter to target a | ||||||||||||||||||||||||||||||||||||
| deployment other than the session default (the one resolved at connect time). `chat` | ||||||||||||||||||||||||||||||||||||
| additionally accepts an optional **`agentId`** — when omitted or `null`, the target | ||||||||||||||||||||||||||||||||||||
| deployment's **Auto** agent is used. | ||||||||||||||||||||||||||||||||||||
| - **`loadQueryResults`** does not take a `deploymentId` — it always resumes a previous | ||||||||||||||||||||||||||||||||||||
| query on the deployment that query already ran on. | ||||||||||||||||||||||||||||||||||||
| - Resuming an existing chat (passing `chatId` to `chat` or `visualize`) always continues | ||||||||||||||||||||||||||||||||||||
| on the deployment that conversation started on; passing a different `deploymentId` for | ||||||||||||||||||||||||||||||||||||
|
Comment on lines
+197
to
+204
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The second bullet claims "Every other tool accepts an optional
Suggested change
|
||||||||||||||||||||||||||||||||||||
| the same `chatId` is rejected rather than silently ignored. | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| A typical client workflow: | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
|
|
@@ -225,7 +224,7 @@ A typical client workflow: | |||||||||||||||||||||||||||||||||||
| Requests are always validated against the admin's deployment-access settings. A deployment | ||||||||||||||||||||||||||||||||||||
| that is outside the allow-list — or that you don't have permission to see — is rejected | ||||||||||||||||||||||||||||||||||||
| with a **403 Forbidden** (`Deployment <id> is not available via MCP for this account`), so | ||||||||||||||||||||||||||||||||||||
| neither `listDeployments` nor the `chat` selection can reach an excluded deployment. | ||||||||||||||||||||||||||||||||||||
| no tool's `deploymentId` selection can reach an excluded deployment. | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| ## Available actions | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -346,6 +346,28 @@ of the PostgreSQL documentation. | |
| | `LIKE` | Returns `TRUE` if the string matches the supplied pattern | ✅ Yes | <nobr>✅ Outer</nobr><br/><nobr>✅ Inner (selections)</nobr><br/><nobr>✅ Inner (projections)</nobr> | | ||
| | `REGEXP_SUBSTR` | Returns the substring that matches a POSIX regular expression pattern | ✅ Yes | <nobr>✅ Outer</nobr><br/><nobr>❌ Inner (selections)</nobr><br/><nobr>✅ Inner (projections)</nobr> | | ||
|
|
||
| ### Casts | ||
|
|
||
| <Info> | ||
|
|
||
| Learn more in the | ||
| [relevant section](https://www.postgresql.org/docs/current/datatype-oid.html) | ||
| of the PostgreSQL documentation. | ||
|
|
||
| </Info> | ||
|
|
||
| The SQL API supports `::regtype` and `::regtype[]` casts, including standard | ||
| type aliases (`int`, `int8`, `decimal`, `char`, `float`, etc.) and | ||
| `pg_catalog`-qualified type names. This lets Postgres-compatible BI tools that | ||
| introspect column types — for example, comparing `pg_attribute.atttypid` | ||
| against a `regtype[]` literal to classify a table's columns — connect to the | ||
| SQL API without erroring. | ||
|
|
||
| ```sql | ||
| SELECT atttypid = ANY ('{int8,numeric,bool}'::regtype[]) | ||
| FROM pg_catalog.pg_attribute; | ||
|
Comment on lines
+349
to
+368
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Nit on the example: it's a bare SELECT attname, atttypid::regtype AS type_name
FROM pg_catalog.pg_attribute
WHERE atttypid = ANY ('{int8,numeric,bool}'::regtype[]);Either way, worth pasting the final example through the SQL API once to confirm it executes — the surrounding sections in this file are all support tables rather than runnable snippets, so this is the one thing on the page that can go stale silently. |
||
| ``` | ||
|
|
||
| ### Data type formatting functions | ||
|
|
||
| <Info> | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This section lands between the Prerequisites bullet list and Setup, which breaks the "what you need → how to connect" flow every other data-source page follows. A runtime behavior note reads better after the connection material — e.g. right before
## SSL, or as a subsection of## Environment Variables.Also, "not just Cube's wait for it" is implicitly contrasting with prior behavior a new reader never saw. Straight present-tense description is enough here: "…aborts the statement on the Snowflake warehouse itself, so a cancelled query stops consuming warehouse compute."