changedInput schema / properties / preview / description
Previous value: -"Rows returned inline; defaults to row_limit. Set lower when register_as keeps the full result."New value: +"Rows returned inline; defaults to row_limit, and a larger value is applied as row_limit. Inline rows also stop at a size budget (applied_limits.preview_chars). Set lower when register_as keeps the full result."
changedInput schema / properties / preview / maximum
Previous value: -10000New value: +9007199254740991
removedInput schema / properties / row_limit / default
Removed value: -1000
changedInput schema / properties / row_limit / description
Previous value: -"Hard cap on rows materialized (1–10,000). A query matching more stops at the cap and row_count_capped is true; register_as keeps the full result."New value: +"Cap on rows materialized; defaults to 1,000, or the per-call cap when that is lower. The per-call cap is 10,000, or the lower cap the deployment sets; a larger value, up to 1,000,000, is applied as that cap. A query matching more stops at the cap and row_count_capped is true; register_as keeps the full result."
changedInput schema / properties / row_limit / maximum
Previous value: -10000New value: +1000000
addedOutput schema / properties / applied_limits
Added value: +{
+ "additionalProperties": false,
+ "description": "The limits this call ran under, after any clamp.",
+ "properties": {
+ "preview": {
+ "description": "Inline rows applied: preview, at most the applied row_limit.",
+ "type": "number"
+ },
+ "preview_chars": {
+ "description": "Inline size budget applied, in characters; rows stop before the first that would pass it.",
+ "type": "number"
+ },
+ "row_limit": {
+ "description": "Row cap applied: row_limit (default 1,000), or the per-call cap when that is lower. With register_as it bounds the inline rows, never the stored result.",
+ "type": "number"
+ }
+ },
+ "required": [
+ "row_limit",
+ "preview",
+ "preview_chars"
+ ],
+ "type": "object"
+}
changedOutput schema / properties / error / properties / data / properties / reason / description
Previous value: -"Machine-readable failure mode. Declared by this tool: `canvas_unavailable`: The DataCanvas DuckDB engine cannot load in this deployment. `system_catalog_access`: The SQL references a system catalog. `missing_table`: A referenced df_<id> does not exist or has expired. `invalid_sql`: The SELECT fails to prepare: an unknown column or an invalid expression. `sql_execution_error`: The SELECT prepared but failed on the data. `register_as_clash`: register_as names an existing dataframe. `register_as_too_large`: The register_as result holds more than 1,000,000 rows. `non_select_statement`: The SQL is not a SELECT. `multi_statement`: The SQL holds more than one statement, or a PIVOT with no IN list, which DuckDB expands into several. `denied_function`: The SQL calls a file-reading or external table function. `plan_operator_not_allowed`: The plan uses an operator outside the read-only allowlist, such as range(). Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `canvas_unavailable`: The DataCanvas DuckDB engine cannot load in this deployment. `system_catalog_access`: The SQL references a system catalog. `missing_table`: A referenced df_<id> does not exist or has expired. `invalid_sql`: The SELECT fails to prepare: an unknown column or an invalid expression. `sql_execution_error`: The SELECT prepared but failed on the data. `register_as_clash`: register_as names an existing dataframe. `register_as_too_large`: The register_as result holds more than 1,000,000 rows. `non_select_statement`: The SQL is not a SELECT. `multi_statement`: The SQL holds more than one statement, or a PIVOT with no IN list, which DuckDB expands into several. `denied_function`: The SQL calls a file-reading or external table function, a function that reads engine settings (current_setting, current_schema), or one that runs SQL or names a table from a string (query_table, query() over anything but one string literal). `sql_read_only`: The SQL names a file in place of a table, or attempts a write the engine refuses. `plan_operator_not_allowed`: The plan uses an operator outside the read-only allowlist, such as range(). Other values are possible when a failure originates below the handler."
changedOutput schema / properties / error / properties / data / properties / reason / examples
Previous value: -[
- "canvas_unavailable",
- "system_catalog_access",
- "missing_table",
- "invalid_sql",
- "sql_execution_error",
- "register_as_clash",
- "register_as_too_large",
- "non_select_statement",
- "multi_statement",
- "denied_function",
- "plan_operator_not_allowed"
-]New value: +[
+ "canvas_unavailable",
+ "system_catalog_access",
+ "missing_table",
+ "invalid_sql",
+ "sql_execution_error",
+ "register_as_clash",
+ "register_as_too_large",
+ "non_select_statement",
+ "multi_statement",
+ "denied_function",
+ "sql_read_only",
+ "plan_operator_not_allowed"
+]
changedOutput schema / properties / notice / description
Previous value: -"Guidance when the query returned no rows or a cap withheld some."New value: +"Guidance when the query returned no rows, a cap withheld some, or a limit was applied below the value sent."
changedOutput schema / properties / rows / description
Previous value: -"Result rows keyed by the names in columns, bounded by preview and row_limit; BIGINT values arrive as strings."New value: +"Result rows keyed by the names in columns, bounded by preview, row_limit, and an inline size budget; rows stop before the first that would pass the budget, and a value is never clipped. BIGINT values arrive as strings."