Skip to main content
These settings are available in system.settings and are autogenerated from source.

external_storage_connect_timeout_sec

Connect timeout in seconds. Now supported only for MySQL

external_storage_max_read_bytes

Limit maximum number of bytes when table with external engine should flush history data. Now supported only for MySQL table engine, database engine, and dictionary. If equal to 0, this setting is disabled

external_storage_max_read_rows

Limit maximum number of rows when table with external engine should flush history data. Now supported only for MySQL table engine, database engine, and dictionary. If equal to 0, this setting is disabled

external_storage_push_down_limit

Allow to push the query’s LIMIT clause down into the query sent to an external database (such as MySQL, PostgreSQL or SQLite). The push-down is not performed for the generic ODBC/JDBC bridges, because they do not expose the remote LIMIT syntax, and some of the supported databases do not accept a LIMIT clause at all. The LIMIT is pushed down only when it is guaranteed to be safe, i.e. when every clause that logically applies before it is copied to the external query without changes. Precisely, the query must be a plain single-table SELECT:
  • there is no JOIN, ARRAY JOIN, SAMPLE or FINAL (otherwise rows could be dropped or transformed locally, so pre-limiting is unwanted);
  • the WHERE clause, if any, is fully compatible and copied into the rewritten query unchanged (otherwise filtering after the remote LIMIT would drop some rows);
  • there is no other clause or modifier (like DISTINCT, GROUP BY, ORDER BY, LIMIT BY, WITH TIES, etc.) that may break the remote pre-limiting logic due to data reordering, aggregation or filtration;
  • an OFFSET is allowed: it is applied locally, so the rows it skips have to be read as well, and the limit sent to the external database is offset + length;
  • the SELECT list maps one source row to one result row, i.e. it contains no aggregate functions, window functions or arrayJoin (also spelled unnest) (they are evaluated locally over all the rows read from the external table);
  • there is no filter that is applied locally on top of the rows read from the external table, such as a row policy or additional_table_filters (such a filter runs before the LIMIT, so pre-limiting remotely could discard rows that it would have kept).
This reduces the amount of data read from and sent by the external database. Disable this setting to restore the previous behavior in case of compatibility issues.

external_storage_rw_timeout_sec

Read/write timeout in seconds. Now supported only for MySQL
Last modified on October 11, 2026