@@ -1696,6 +1696,29 @@ TEST_F(PostgresStatementTest, SetUseCopyFalse) {
16961696 ASSERT_EQ (reader.array ->release , nullptr );
16971697}
16981698
1699+ TEST_F (PostgresStatementTest, UnknownOid) {
1700+ // Regression test for https://github.com/apache/arrow-adbc/issues/2448
1701+ ASSERT_THAT (AdbcStatementNew (&connection, &statement, &error), IsOkStatus (&error));
1702+ ASSERT_THAT (AdbcStatementSetSqlQuery (
1703+ &statement, " SELECT typacl FROM pg_type WHERE oid <= 6157" , &error),
1704+ IsOkStatus (&error));
1705+ adbc_validation::StreamReader reader;
1706+ ASSERT_THAT (AdbcStatementExecuteQuery (&statement, &reader.stream .value ,
1707+ &reader.rows_affected , &error),
1708+ IsOkStatus (&error));
1709+ ASSERT_NO_FATAL_FAILURE (reader.GetSchema ());
1710+ ASSERT_EQ (1 , reader.fields .size ());
1711+ ASSERT_EQ (NANOARROW_TYPE_BINARY, reader.fields [0 ].type );
1712+ struct ArrowStringView extension_name = reader.fields [0 ].extension_name ;
1713+ ASSERT_EQ (" arrow.opaque" ,
1714+ std::string_view (extension_name.data ,
1715+ static_cast <size_t >(extension_name.size_bytes )));
1716+ struct ArrowStringView extension_metadata = reader.fields [0 ].extension_metadata ;
1717+ ASSERT_EQ (R"( {"type_name": "unnamed<oid:1034>", "vendor_name": "PostgreSQL"})" ,
1718+ std::string_view (extension_metadata.data ,
1719+ static_cast <size_t >(extension_metadata.size_bytes )));
1720+ }
1721+
16991722struct TypeTestCase {
17001723 std::string name;
17011724 std::string sql_type;
0 commit comments