{"record":{"id":"908e834c71674144","repo":"pathwaycom/pathway","slug":"designated-timestamp-policy-use-column-requires","errorCode":null,"errorMessage":"designated_timestamp_policy=\"use_column\" requires the designated_timestamp parameter to be set","messagePattern":"designated_timestamp_policy=\"use_column\" requires the designated_timestamp parameter to be set","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/pathway/io/questdb/__init__.py","lineNumber":154,"sourceCode":"    designated_timestamp_index = None\n    if designated_timestamp is not None:\n        if (\n            designated_timestamp_policy is not None\n            and designated_timestamp_policy != \"use_column\"\n        ):\n            raise ValueError(\n                f\"designated_timestamp is passed, but designated_timestamp_policy is {designated_timestamp_policy}\"\n            )\n        designated_timestamp_policy = \"use_column\"\n        designated_timestamp_index = get_column_index(table, designated_timestamp)\n        timestamp_dtype = table.schema.columns()[designated_timestamp.name].dtype\n        if timestamp_dtype not in (dt.DATE_TIME_NAIVE, dt.DATE_TIME_UTC):\n            raise ValueError(\n                f\"the designated_timestamp column {designated_timestamp.name!r} must have \"\n                f\"type DateTimeNaive or DateTimeUtc, but it has type {timestamp_dtype}\"\n            )\n    elif designated_timestamp_policy == \"use_column\":\n        raise ValueError(\n            'designated_timestamp_policy=\"use_column\" requires the '\n            \"designated_timestamp parameter to be set\"\n        )\n    elif designated_timestamp_policy is None:\n        designated_timestamp_policy = \"use_now\"\n\n    data_storage = api.DataStorage(\n        storage_type=\"questdb\",\n        path=connection_string,\n        table_name=table_name,\n        key_field_index=designated_timestamp_index,\n    )\n    data_format = api.DataFormat(\n        format_type=\"identity\",\n        key_field_names=[],\n        value_fields=_format_output_value_fields(table),\n        designated_timestamp_policy=designated_timestamp_policy,\n    )","sourceCodeStart":136,"sourceCodeEnd":172,"githubUrl":"https://github.com/pathwaycom/pathway/blob/fa2f74a4649b7c5908690cf60137263d8d80de5f/python/pathway/io/questdb/__init__.py#L136-L172","documentation":"Raised by pw.io.questdb.write when designated_timestamp_policy is set to 'use_column' but no designated_timestamp column argument was provided. The use_column policy means 'take the designated timestamp from a schema column'; without the column reference there is nothing to take, so the combination is rejected before any SQL is generated.","triggerScenarios":"pw.io.questdb.write(t, conn, 't', designated_timestamp_policy='use_column') with the designated_timestamp parameter omitted or None.","commonSituations":"Config-driven connector wrappers that set the policy from a config file but map the column parameter only conditionally; refactors that removed the designated_timestamp argument but left the policy; misunderstanding that the policy alone does not name a column.","solutions":["Add the column reference: designated_timestamp=t.ts (typed DateTimeNaive/DateTimeUtc).","If you have no suitable column, remove the policy argument to fall back to use_now (QuestDB assigns the server time).","Audit config mapping code so policy and column are always set together (or neither)."],"exampleFix":"# before\npw.io.questdb.write(t, conn, \"t\", designated_timestamp_policy=\"use_column\")\n\n# after\npw.io.questdb.write(t, conn, \"t\", designated_timestamp=t.ts,\n                    designated_timestamp_policy=\"use_column\")","handlingStrategy":"validation","validationCode":"if designated_timestamp_policy == \"use_column\":\n    assert designated_timestamp is not None, \"use_column requires designated_timestamp\"\npw.io.questdb.write(t, conn, \"t\", designated_timestamp=designated_timestamp,\n                    designated_timestamp_policy=designated_timestamp_policy)","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Always set the policy and the column together (or drop both).","Map config keys as a pair in config-loading code.","Default to omitting both: QuestDB then uses now()."],"tags":["pathway","questdb","configuration","timestamp","missing-argument"],"backgroundTag":null,"analyzedSha":"fa2f74a4649b7c5908690cf60137263d8d80de5f","analyzedAt":"2026-08-15T01:48:17.006Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}