changedInput schema / properties / preview / description
Previous value: -"Rows to return inline when that should be fewer than the query materializes, e.g. a small sample while register_as keeps the whole result; a value above row_limit is treated as row_limit. Omit to return every row up to row_limit."New value: +"Requested inline rows, 0–1000000. Values above row_limit are clamped to row_limit with disclosure. Omit to return every row up to row_limit; the serialized byte ceiling may withhold whole rows or metadata, preserving the result as lossless chunks."
changedInput schema / properties / preview / maximum
Previous value: -10000New value: +1000000
changedOutput schema / anyOf
Previous value: -[
- {
- "not": {
- "required": [
- "error"
- ]
- },
- "required": [
- "columns",
- "row_count",
- "row_count_capped",
- "rows",
- "attribution"
- ]
- },
- {
- "required": [
- "error"
- ]
- }
-]New value: +[
+ {
+ "not": {
+ "required": [
+ "error"
+ ]
+ },
+ "required": [
+ "complete",
+ "incomplete_sources",
+ "columns",
+ "row_count",
+ "row_count_capped",
+ "rows",
+ "attribution"
+ ]
+ },
+ {
+ "required": [
+ "error"
+ ]
+ }
+]
addedOutput schema / properties / complete
Added value: +{
+ "description": "False when any original source fetch was incomplete, independently of display truncation.",
+ "type": "boolean"
+}
changedOutput schema / properties / error / properties / data / properties / reason / description
Previous value: -"Machine-readable failure mode. Declared by this tool: `canvas_unavailable`: Dataframes are turned off in this deployment, or the SQL engine behind them could not load. `missing_table`: A df_<id> the SQL names is not staged: it never existed, its TTL expired, or it was evicted to make room for newer dataframes. `invalid_sql`: A statement starting with SELECT, WITH, or FROM does not parse, or the SELECT fails to prepare: an unknown column, table, or function, or an invalid expression. `sql_execution_error`: The SELECT prepared but failed on the data it read: a cast or conversion that does not fit, an out-of-range value, or invalid input to a function. `register_as_clash`: The register_as name is already a staged dataframe. `register_as_too_large`: The register_as result alone holds more rows than the 1,000,000-row staging budget, so it was not saved. `non_select_statement`: The statement is not a read-only SELECT: an INSERT, UPDATE, DDL, PRAGMA, or other write the engine refuses, or SQL that fails to parse and does not start with SELECT, WITH, or FROM (such as a misspelled SELEC). `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, read_parquet, or glob. `plan_operator_not_allowed`: The query plan uses an operator outside the read-only allowlist, such as the range() or generate_series() table functions. `system_catalog_access`: The SQL references a system catalog (information_schema, pg_catalog, sqlite_master, duckdb_*). Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `result_storage_unavailable`: The lossless result snapshot cannot be retained within the staging budget or storage fails. `canvas_unavailable`: Dataframes are turned off in this deployment, or the SQL engine behind them could not load. `missing_table`: A df_<id> the SQL names is not staged: it never existed, its TTL expired, or it was evicted to make room for newer dataframes. `invalid_sql`: A statement starting with SELECT, WITH, or FROM does not parse, or the SELECT fails to prepare: an unknown column, table, or function, or an invalid expression. `sql_execution_error`: The SELECT prepared but failed on the data it read: a cast or conversion that does not fit, an out-of-range value, or invalid input to a function. `register_as_clash`: The register_as name is already a staged dataframe. `register_as_too_large`: The register_as result alone holds more rows than the 1,000,000-row staging budget, so it was not saved. `non_select_statement`: The statement is not a read-only SELECT: an INSERT, UPDATE, DDL, PRAGMA, or other write the engine refuses, or SQL that fails to parse and does not start with SELECT, WITH, or FROM (such as a misspelled SELEC). `multi_statement`: The SQL holds more than one statement. `denied_function`: The SQL calls a denied external-data or introspection function, uses query_table, or passes query() anything other than a single SQL string literal. `plan_operator_not_allowed`: The query plan uses an operator outside the read-only allowlist, such as the range() or generate_series() table functions. `system_catalog_access`: The SQL references a system catalog (information_schema, pg_catalog, sqlite_master, duckdb_*). Other values are possible when a failure originates below the handler."
changedOutput schema / properties / error / properties / data / properties / reason / examples
Previous value: -[
- "canvas_unavailable",
- "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",
- "system_catalog_access"
-]New value: +[
+ "result_storage_unavailable",
+ "canvas_unavailable",
+ "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",
+ "system_catalog_access"
+]
addedOutput schema / properties / incomplete_sources
Added value: +{
+ "description": "Original incomplete upstream dataframe handles; retained through saved descendants. If metadata_withheld is true, consult the result snapshot for the full list.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+}
addedOutput schema / properties / metadata_withheld
Added value: +{
+ "description": "True when oversized column names or incomplete-source metadata are withheld inline and retained in result_chunks.",
+ "type": "boolean"
+}
addedOutput schema / properties / result_chunks
Added value: +{
+ "additionalProperties": false,
+ "description": "Lossless materialized result snapshot when the byte ceiling withholds rows or metadata.",
+ "properties": {
+ "chunk_count": {
+ "description": "Chunks numbered from zero, with at most 6144 source bytes each.",
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ },
+ "encoding": {
+ "const": "base64-json-utf8",
+ "description": "Decode each base64 chunk, concatenate bytes in index order, then decode UTF-8 and JSON.",
+ "type": "string"
+ },
+ "expires_at": {
+ "description": "ISO 8601 expiry of the chunk dataframe.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Tenant-scoped dataframe holding chunk_index and base64 chunk columns.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name",
+ "encoding",
+ "chunk_count",
+ "expires_at"
+ ],
+ "type": "object"
+}