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]
