changedInput schema / properties / preview / description
Previous value: -"Rows to return inline (0–10,000); defaults to row_limit, and a value above row_limit is treated as row_limit. Set it low when register_as keeps the full result."New value: +"Rows to return inline; defaults to the effective row_limit and is clamped to it. Set it low when register_as keeps the full result."
changedInput schema / properties / preview / maximum
Previous value: -10000New value: +9007199254740991
changedInput schema / properties / row_limit / description
Previous value: -"Hard cap on rows materialized (1–10,000). A query matching more stops here and row_count_capped comes back true; use register_as to keep the whole result."New value: +"Requested materialization cap (default 1,000; hard input ceiling 1,000,000), clamped to the execution cap of 10,000. Without register_as, row_count_capped reports more matches; continue with ordered LIMIT/OFFSET pages. register_as keeps the whole result within the staging budget."
changedInput schema / properties / row_limit / maximum
Previous value: -10000New value: +1000000
changedOutput schema / anyOf
Previous value: -[
- {
- "not": {
- "required": [
- "error"
- ]
- },
- "required": [
- "columns",
- "row_count",
- "row_count_capped",
- "rows"
- ]
- },
- {
- "required": [
- "error"
- ]
- }
-]New value: +[
+ {
+ "not": {
+ "required": [
+ "error"
+ ]
+ },
+ "required": [
+ "requested_row_limit",
+ "effective_row_limit",
+ "effective_preview",
+ "columns",
+ "row_count",
+ "row_count_capped",
+ "rows"
+ ]
+ },
+ {
+ "required": [
+ "error"
+ ]
+ }
+]
addedOutput schema / properties / effective_preview
Added value: +{
+ "description": "Inline row cap after clamping preview to the effective row_limit.",
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+}
addedOutput schema / properties / effective_row_limit
Added value: +{
+ "description": "Effective row_limit, at most 10,000.",
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+}
changedOutput schema / properties / error / properties / data / properties / reason / description
Previous value: -"Machine-readable failure mode. Declared by this tool: `canvas_unavailable`: DataCanvas is not configured in this deployment. `missing_table`: A table the SQL names is not staged — a df_ name that expired, was dropped to make room for newer dataframes, or is mistyped, or any other table name. `invalid_sql`: A SELECT fails to parse or prepare (syntax error, unknown column or function, bad expression). `sql_execution_error`: SELECT prepared but failed on the data. `non_select_statement`: The statement is not a SELECT, or cannot be parsed as one. `multi_statement`: The SQL holds more than one statement. `denied_function`: The SQL calls a file-reading or external-data table function such as read_csv or read_parquet. `plan_operator_not_allowed`: The query plan uses an operator outside the read-only allowlist (scans of staged tables, filters, joins, aggregates, set operations, sorts, window functions, CTEs, unnest). `system_catalog_access`: The SQL references a system catalog: information_schema, pg_catalog, sqlite_master, or a duckdb_*() function. `register_as_clash`: register_as names a dataframe that is already staged. `register_as_too_large`: The register_as result holds more rows than the staging budget (1,000,000 rows) allows on its own. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `canvas_unavailable`: DataCanvas is not configured in this deployment. `missing_table`: A table the SQL names is not staged — a df_ name that expired, was dropped to make room for newer dataframes, or is mistyped, or any other table name. `invalid_sql`: A SELECT fails to parse or prepare (syntax error, unknown column or function, bad expression). `sql_execution_error`: SELECT prepared but failed on the data. `non_select_statement`: The statement is not a SELECT, or cannot be parsed as one. `multi_statement`: The SQL holds more than one statement. `denied_function`: The SQL calls a file-reading, external-data, engine-setting, or dynamic SQL function the read-only gate refuses. `plan_operator_not_allowed`: The query plan uses an operator outside the read-only allowlist (scans of staged tables, filters, joins, aggregates, set operations, sorts, window functions, CTEs, unnest). `system_catalog_access`: The SQL references a system catalog: information_schema, pg_catalog, sqlite_master, or a duckdb_*() function. `register_as_clash`: register_as names a dataframe that is already staged. `register_as_too_large`: The register_as result holds more rows than the staging budget (1,000,000 rows) allows on its own. Other values are possible when a failure originates below the handler."
addedOutput schema / properties / requested_preview
Added value: +{
+ "description": "Explicit preview before clamping; absent when omitted.",
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+}
addedOutput schema / properties / requested_row_limit
Added value: +{
+ "description": "Requested row_limit before the execution cap.",
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+}
changedOutput schema / properties / row_count / description
Previous value: -"Rows the query produced, up to row_limit; with register_as, the exact count of the new dataframe."New value: +"Rows the query produced, up to effective_row_limit; with register_as, the exact count of the new dataframe."
changedOutput schema / properties / row_count_capped / description
Previous value: -"True when the query matched more rows than row_limit, so row_count is that cap."New value: +"True when the query matched more rows than effective_row_limit, so row_count is that cap."