tokoko commented on code in PR #4317:
URL: https://github.com/apache/arrow-adbc/pull/4317#discussion_r3433408549


##########
c/include/arrow-adbc/adbc.h:
##########
@@ -1516,6 +1518,23 @@ struct ADBC_EXPORT AdbcDriver {
   AdbcStatusCode (*StatementExecuteMulti)(struct AdbcStatement*,
                                           struct AdbcMultiResultSet*, struct 
AdbcError*);
 
+  AdbcStatusCode (*ConnectionBeginIngestPartitions)(struct AdbcConnection*,
+                                                    struct ArrowSchema*,
+                                                    struct 
AdbcSerializableHandle*,
+                                                    struct AdbcError*);
+  AdbcStatusCode (*ConnectionWriteIngestPartition)(struct AdbcConnection*, 
const uint8_t*,
+                                                   size_t, struct 
ArrowArrayStream*,
+                                                   struct 
AdbcSerializableHandle*,
+                                                   struct AdbcError*);
+  AdbcStatusCode (*ConnectionCompleteIngestPartitions)(struct AdbcConnection*,

Review Comment:
   let me push back a little. out param feels clean for C intreface, but 
replicating the same for language apis will be a patchwork of different 
solutions, they would have to either go into exceptions or have additional 
output in the signature depending on the language. btw, what makes a new status 
code a big change, would something break? are there code paths that rely on 
exhaustive checks?
   
   Another alternative is to put some additional metadata inside an Error 
message. That's probably abuse, but also could work.



##########
c/include/arrow-adbc/adbc.h:
##########
@@ -1516,6 +1518,23 @@ struct ADBC_EXPORT AdbcDriver {
   AdbcStatusCode (*StatementExecuteMulti)(struct AdbcStatement*,
                                           struct AdbcMultiResultSet*, struct 
AdbcError*);
 
+  AdbcStatusCode (*ConnectionBeginIngestPartitions)(struct AdbcConnection*,
+                                                    struct ArrowSchema*,
+                                                    struct 
AdbcSerializableHandle*,
+                                                    struct AdbcError*);
+  AdbcStatusCode (*ConnectionWriteIngestPartition)(struct AdbcConnection*, 
const uint8_t*,
+                                                   size_t, struct 
ArrowArrayStream*,
+                                                   struct 
AdbcSerializableHandle*,
+                                                   struct AdbcError*);
+  AdbcStatusCode (*ConnectionCompleteIngestPartitions)(struct AdbcConnection*,

Review Comment:
   let me push back a little. out param feels clean for C interface, but 
replicating the same for language apis will be a patchwork of different 
solutions, they would have to either go into exceptions or have additional 
output in the signature depending on the language. btw, what makes a new status 
code a big change, would something break? are there code paths that rely on 
exhaustive checks?
   
   Another alternative is to put some additional metadata inside an Error 
message. That's probably abuse, but also could work.



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