paleolimbot commented on code in PR #428:
URL: https://github.com/apache/arrow-adbc/pull/428#discussion_r1099590309


##########
adbc.h:
##########
@@ -1183,7 +1204,11 @@ AdbcStatusCode AdbcStatementExecutePartitions(struct 
AdbcStatement* statement,
 ///   driver.
 ///
 /// Although drivers may choose any name for this function, the
-/// recommended name is "AdbcDriverInit".
+/// recommended name is "AdbcDriverInit". If you use the recommended
+/// name, then driver managers will be able to automatically find
+/// the entrypoint function. Drivers may also expose the same function
+/// under a unique symbol so that multiple drivers can be statically
+/// linked into a single binary without any conflicts.

Review Comment:
   It should probably be documented somewhere...this is something that confused 
me when I was wrapping my head around the R driver manager. My "new to this" 
head scratching revolved around why the spec seemingly supports a pattern 
inviting symbol collision when using multiple drivers in the same process 
(although I am happy to defer to those with more expertise here, which is 
pretty much everybody).
   
   Also a note that the "multiple driver init functions in the same shared 
library" trick is what I do in the R driver manager to provide two drivers for 
testing. It may be that the header isn't the best place to document it (maybe a 
guide for writing drivers or something?), but it should be covered somewhere.



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