{"record":{"id":"5a7049274817c418","repo":"pola-rs/polars","slug":"pre-execution-query-is-only-supported-in-connect","errorCode":null,"errorMessage":"'pre_execution_query' is only supported in connectorx version 0.4.2 or later","messagePattern":"'pre_execution_query' is only supported in connectorx version 0\\.4\\.2 or later","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"py-polars/src/polars/io/database/_utils.py","lineNumber":52,"sourceCode":"\ndef _read_sql_connectorx(\n    query: str | list[str],\n    connection_uri: str,\n    partition_on: str | None = None,\n    partition_range: tuple[int, int] | None = None,\n    partition_num: int | None = None,\n    protocol: str | None = None,\n    schema_overrides: SchemaDict | None = None,\n    pre_execution_query: str | list[str] | None = None,\n) -> DataFrame:\n    from polars import DataFrame\n\n    cx = import_optional(\"connectorx\")\n\n    if parse_version(cx.__version__) < (0, 4, 2):\n        if pre_execution_query:\n            msg = \"'pre_execution_query' is only supported in connectorx version 0.4.2 or later\"\n            raise ValueError(msg)\n        return_type = \"arrow2\"\n        pre_execution_args = {}\n    else:\n        return_type = \"arrow\"\n        pre_execution_args = {\"pre_execution_query\": pre_execution_query}\n\n    try:\n        tbl = cx.read_sql(\n            conn=connection_uri,\n            query=query,\n            return_type=return_type,\n            partition_on=partition_on,\n            partition_range=partition_range,\n            partition_num=partition_num,\n            protocol=protocol,\n            **pre_execution_args,\n        )\n    except BaseException as err:","sourceCodeStart":34,"sourceCodeEnd":70,"githubUrl":"https://github.com/pola-rs/polars/blob/df599052daf96e7a9cc30a3b0c6bd25d6947e3c0/py-polars/src/polars/io/database/_utils.py#L34-L70","documentation":"Raised by _read_sql_connectorx when pre_execution_query is supplied but the installed connectorx is older than 0.4.2. The pre_execution_query feature (running setup statements before the main query) only exists in connectorx >= 0.4.2; older versions would silently ignore it, so polars raises instead.","triggerScenarios":"pl.read_database_uri(..., engine='connectorx', pre_execution_query='SET ...') with connectorx < 0.4.2 installed; pinned/older connectorx in a locked environment combined with code using the newer parameter.","commonSituations":"Corporate environments with pinned connectorx versions; CI images built before connectorx 0.4.2; notebooks where connectorx was installed long ago and the new parameter was copied from current docs.","solutions":["Upgrade: pip install -U 'connectorx>=0.4.2'","If upgrading is impossible, drop pre_execution_query and run the setup statement separately over an adbc/SQLAlchemy connection before reading with connectorx","Pin connectorx>=0.4.2 in requirements once you rely on the parameter"],"exampleFix":"# before (connectorx 0.3.x)\npl.read_database_uri(q, uri, engine=\"connectorx\", pre_execution_query=\"SET TIME ZONE 'UTC'\")\n\n# after\npip install -U 'connectorx>=0.4.2'","handlingStrategy":"validation","validationCode":"from importlib.metadata import version\nfrom packaging.version import parse\n\nif parse(version(\"connectorx\")) < (0, 4, 2):\n    raise RuntimeError(\"connectorx>=0.4.2 required for pre_execution_query\")","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Pin connectorx>=0.4.2 in requirements when using pre_execution_query","Fail fast on dependency versions at app startup, not at first query","Note that pre_execution_query also emits an unstable-feature warning"],"tags":["database","connectorx","version","dependency"],"backgroundTag":null,"analyzedSha":"df599052daf96e7a9cc30a3b0c6bd25d6947e3c0","analyzedAt":"2026-08-16T12:10:03.978Z","schemaVersion":2},"datasetVersion":"2026-08-16T13:17:31.715Z"}