WillAyd opened a new pull request, #2260:
URL: https://github.com/apache/arrow-adbc/pull/2260

   Noticed this when compiled via meson:
   
   ```base
   $ meson setup builddir -Dtests=true -Dsqlite=true
   $ meson compile -C builddir
   
   ...
   
   /usr/bin/ld: driver/sqlite/adbc-driver-sqlite-test.p/sqlite_test.cc.o: in 
function `SqliteStatementTest_SqlIngestUInt64_Test::TestBody()':
   sqlite_test.cc:(.text+0x802): undefined reference to `void 
adbc_validation::StatementTest::TestSqlIngestType<unsigned long>(ArrowType, 
std::vector<std::optional<unsigned long>, std::allocator<std::optional<unsigned 
long> > > const&, bool)'
   collect2: error: ld returned 1 exit status
   ninja: build stopped: subcommand failed.
   ```
   
   I'm not sure why the CMake config is OK with this, likely some magic I don't 
understand. However, it makes sense to me that the linker is complaining; the 
adbc_validation.h header declares this template but the definition is tucked 
away in adbc_validation_statement.cc. So I don't think the TU for 
sqlite_test.cc would have access to that (?) without moving the definition to 
the header.
   
   Alternatively we could provide an explicit template instantiation for the 
type (uint64_t) in adbc_validation_statement.cc, though I don't think that is 
inline with the intent of this class


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