@@ -158,6 +158,8 @@ class SqliteQuirks : public adbc_validation::DriverQuirks {
158158 return " SQLite" ;
159159 case ADBC_INFO_VENDOR_VERSION:
160160 return " 3." ;
161+ case ADBC_INFO_DRIVER_ADBC_VERSION:
162+ return ADBC_VERSION_1_1_0;
161163 default :
162164 return std::nullopt ;
163165 }
@@ -264,10 +266,8 @@ TEST_F(SqliteConnectionTest, GetInfoMetadata) {
264266
265267 adbc_validation::StreamReader reader;
266268 std::vector<uint32_t > info = {
267- ADBC_INFO_DRIVER_NAME,
268- ADBC_INFO_DRIVER_VERSION,
269- ADBC_INFO_VENDOR_NAME,
270- ADBC_INFO_VENDOR_VERSION,
269+ ADBC_INFO_DRIVER_NAME, ADBC_INFO_DRIVER_VERSION, ADBC_INFO_DRIVER_ADBC_VERSION,
270+ ADBC_INFO_VENDOR_NAME, ADBC_INFO_VENDOR_VERSION,
271271 };
272272 ASSERT_THAT (AdbcConnectionGetInfo (&connection, info.data (), info.size (),
273273 &reader.stream .value , &error),
@@ -283,31 +283,37 @@ TEST_F(SqliteConnectionTest, GetInfoMetadata) {
283283 ASSERT_FALSE (ArrowArrayViewIsNull (reader.array_view ->children [0 ], row));
284284 const uint32_t code =
285285 reader.array_view ->children [0 ]->buffer_views [1 ].data .as_uint32 [row];
286+ const uint32_t offset =
287+ reader.array_view ->children [1 ]->buffer_views [1 ].data .as_int32 [row];
286288 seen.push_back (code);
287289
288- int str_child_index = 0 ;
289- struct ArrowArrayView * str_child =
290- reader.array_view ->children [1 ]->children [str_child_index];
290+ struct ArrowArrayView * str_child = reader.array_view ->children [1 ]->children [0 ];
291+ struct ArrowArrayView * int_child = reader.array_view ->children [1 ]->children [2 ];
291292 switch (code) {
292293 case ADBC_INFO_DRIVER_NAME: {
293- ArrowStringView val = ArrowArrayViewGetStringUnsafe (str_child, 0 );
294+ ArrowStringView val = ArrowArrayViewGetStringUnsafe (str_child, offset );
294295 EXPECT_EQ (" ADBC SQLite Driver" , std::string (val.data , val.size_bytes ));
295296 break ;
296297 }
297298 case ADBC_INFO_DRIVER_VERSION: {
298- ArrowStringView val = ArrowArrayViewGetStringUnsafe (str_child, 1 );
299+ ArrowStringView val = ArrowArrayViewGetStringUnsafe (str_child, offset );
299300 EXPECT_EQ (" (unknown)" , std::string (val.data , val.size_bytes ));
300301 break ;
301302 }
302303 case ADBC_INFO_VENDOR_NAME: {
303- ArrowStringView val = ArrowArrayViewGetStringUnsafe (str_child, 2 );
304+ ArrowStringView val = ArrowArrayViewGetStringUnsafe (str_child, offset );
304305 EXPECT_EQ (" SQLite" , std::string (val.data , val.size_bytes ));
305306 break ;
306307 }
307308 case ADBC_INFO_VENDOR_VERSION: {
308- ArrowStringView val = ArrowArrayViewGetStringUnsafe (str_child, 3 );
309+ ArrowStringView val = ArrowArrayViewGetStringUnsafe (str_child, offset );
309310 EXPECT_THAT (std::string (val.data , val.size_bytes ),
310311 ::testing::MatchesRegex (" 3\\ ..*" ));
312+ break ;
313+ }
314+ case ADBC_INFO_DRIVER_ADBC_VERSION: {
315+ EXPECT_EQ (ADBC_VERSION_1_1_0, ArrowArrayViewGetIntUnsafe (int_child, offset));
316+ break ;
311317 }
312318 default :
313319 // Ignored
0 commit comments