WillAyd commented on code in PR #868:
URL: https://github.com/apache/arrow-adbc/pull/868#discussion_r1256100380
##########
c/driver/postgresql/statement.cc:
##########
@@ -255,6 +252,45 @@ struct BindStream {
AdbcStatusCode Prepare(PGconn* conn, const std::string& query,
struct AdbcError* error) {
+ // tz-aware timestamps require special handling to set the timezone to UTC
+ // prior to sending over the binary protocol; must be reset after execute
+ for (int64_t col = 0; col < bind_schema->n_children; col++) {
+ if ((bind_schema_fields[col].type ==
ArrowType::NANOARROW_TYPE_TIMESTAMP) &&
+ (strcmp("", bind_schema_fields[col].timezone))) {
+ has_tz_field = true;
+
+ PGresult* begin_result = PQexec(conn, "BEGIN");
Review Comment:
I have the `break` at the end of the loop to make sure this only happens
once, but that could be more clearly signaled. Could even just set
`has_tz_field` within the loop then check `if (has_tz_field)` right after
before potentially starting a transaction
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]