lidavidm commented on code in PR #868:
URL: https://github.com/apache/arrow-adbc/pull/868#discussion_r1256195219


##########
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:
   ah, I missed that little break at the end.
   
   There are some simple tests that test the options, but not really the 
semantics.
   
   At least here, I think you 'just' need to check if autocommit is off, if so, 
there's no need to BEGIN (you're already in a transaction), and you can still 
commit at the end (~though maybe semantically we shouldn't? This isn't a 
feature that's normally available in other APIs so I'm not sure what people 
expect)



-- 
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]

Reply via email to