Skip to content

Conversation

@amoeba
Copy link
Member

@amoeba amoeba commented Oct 20, 2025

I started adding a vcpkg preset for Windows and then saw #2858 which was most of the way there. I wanted to polish things up a bit so I'm opening a new PR and crediting the previous PR author as a co-author since I used parts of their original PR.

This PR includes:

  • Adds two new CMake presets that use vcpkg (debug, release).
  • Tweaks the GoUtils.cmake to create import libs for Go-based drivers, closing Building ADBC and flightsql driver on Windows #2846.
  • Adds a CI job to build everything with vcpkg and test just what we can easily test on CI. There are a few CI-only test segfaults I need to track down still. Only 6 driver manager tests fail for me locally. The new CI job includes caching of vcpkgs tests (I've tested this).
  • Added ignores for some MSVC warnings, fixed code in other places. Each of these changes are in separate commits to make it easier to review.
  • Adds a vcpkg.json to the sqlite driver just for parity with the postgresql driver.

Closes #2846
Ref #2557

@github-actions github-actions bot modified the milestone: ADBC Libraries 21 Oct 20, 2025
@amoeba
Copy link
Member Author

amoeba commented Oct 20, 2025

Here's my local test output for adbc-driver-manager-test:

adbc-driver-manager-test
C:\Users\Bryce\src\apache\arrow-adbc\c\build>driver_manager\adbc-driver-manager-test.exe
Running main() from C:\Users\Bryce\src\apache\arrow-adbc\c\build\_deps\googletest-src\googletest\src\gtest_main.cc
[==========] Running 126 tests from 6 test suites.
[----------] Global test environment set-up.
[----------] 3 tests from DriverManager
[ RUN      ] DriverManager.DatabaseCustomInitFunc
[       OK ] DriverManager.DatabaseCustomInitFunc (1 ms)
[ RUN      ] DriverManager.ConnectionOptions
[       OK ] DriverManager.ConnectionOptions (0 ms)
[ RUN      ] DriverManager.MultiDriverTest
[       OK ] DriverManager.MultiDriverTest (4065 ms)
[----------] 3 tests from DriverManager (4068 ms total)

[----------] 3 tests from SqliteDatabaseTest
[ RUN      ] SqliteDatabaseTest.NewInit
[       OK ] SqliteDatabaseTest.NewInit (0 ms)
[ RUN      ] SqliteDatabaseTest.Release
[       OK ] SqliteDatabaseTest.Release (0 ms)
[ RUN      ] SqliteDatabaseTest.NullError
[       OK ] SqliteDatabaseTest.NullError (0 ms)
[----------] 3 tests from SqliteDatabaseTest (1 ms total)

[----------] 23 tests from SqliteConnectionTest
[ RUN      ] SqliteConnectionTest.NewInit
[       OK ] SqliteConnectionTest.NewInit (0 ms)
[ RUN      ] SqliteConnectionTest.Release
[       OK ] SqliteConnectionTest.Release (0 ms)
[ RUN      ] SqliteConnectionTest.Concurrent
[       OK ] SqliteConnectionTest.Concurrent (0 ms)
[ RUN      ] SqliteConnectionTest.AutocommitDefault
[       OK ] SqliteConnectionTest.AutocommitDefault (0 ms)
[ RUN      ] SqliteConnectionTest.AutocommitToggle
[       OK ] SqliteConnectionTest.AutocommitToggle (0 ms)
[ RUN      ] SqliteConnectionTest.MetadataCurrentCatalog
[       OK ] SqliteConnectionTest.MetadataCurrentCatalog (0 ms)
[ RUN      ] SqliteConnectionTest.MetadataCurrentDbSchema
[       OK ] SqliteConnectionTest.MetadataCurrentDbSchema (0 ms)
[ RUN      ] SqliteConnectionTest.MetadataGetInfo
[       OK ] SqliteConnectionTest.MetadataGetInfo (1 ms)
[ RUN      ] SqliteConnectionTest.MetadataGetTableSchema
[       OK ] SqliteConnectionTest.MetadataGetTableSchema (1 ms)
[ RUN      ] SqliteConnectionTest.MetadataGetTableSchemaDbSchema
C:\Users\Bryce\src\apache\arrow-adbc\c\validation\adbc_validation_connection.cc(318): Skipped
Schema not supported
[  SKIPPED ] SqliteConnectionTest.MetadataGetTableSchemaDbSchema (0 ms)
[ RUN      ] SqliteConnectionTest.MetadataGetTableSchemaEscaping
[       OK ] SqliteConnectionTest.MetadataGetTableSchemaEscaping (0 ms)
[ RUN      ] SqliteConnectionTest.MetadataGetTableSchemaNotFound
[       OK ] SqliteConnectionTest.MetadataGetTableSchemaNotFound (0 ms)
[ RUN      ] SqliteConnectionTest.MetadataGetTableTypes
[       OK ] SqliteConnectionTest.MetadataGetTableTypes (0 ms)
[ RUN      ] SqliteConnectionTest.MetadataGetObjectsCatalogs
[       OK ] SqliteConnectionTest.MetadataGetObjectsCatalogs (2 ms)
[ RUN      ] SqliteConnectionTest.MetadataGetObjectsDbSchemas
[       OK ] SqliteConnectionTest.MetadataGetObjectsDbSchemas (1 ms)
[ RUN      ] SqliteConnectionTest.MetadataGetObjectsTables
[       OK ] SqliteConnectionTest.MetadataGetObjectsTables (3 ms)
[ RUN      ] SqliteConnectionTest.MetadataGetObjectsTablesTypes
[       OK ] SqliteConnectionTest.MetadataGetObjectsTablesTypes (1 ms)
[ RUN      ] SqliteConnectionTest.MetadataGetObjectsColumns
[       OK ] SqliteConnectionTest.MetadataGetObjectsColumns (2 ms)
[ RUN      ] SqliteConnectionTest.MetadataGetObjectsConstraints
[       OK ] SqliteConnectionTest.MetadataGetObjectsConstraints (0 ms)
[ RUN      ] SqliteConnectionTest.MetadataGetObjectsPrimaryKey
C:\Users\Bryce\src\apache\arrow-adbc\c\validation\adbc_validation_connection.cc(929): Skipped

[  SKIPPED ] SqliteConnectionTest.MetadataGetObjectsPrimaryKey (0 ms)
[ RUN      ] SqliteConnectionTest.MetadataGetObjectsForeignKey
C:\Users\Bryce\src\apache\arrow-adbc\c\validation\adbc_validation_connection.cc(1045): Skipped

[  SKIPPED ] SqliteConnectionTest.MetadataGetObjectsForeignKey (0 ms)
[ RUN      ] SqliteConnectionTest.MetadataGetObjectsCancel
C:\Users\Bryce\src\apache\arrow-adbc\c\validation\adbc_validation_connection.cc(1184): Skipped

[  SKIPPED ] SqliteConnectionTest.MetadataGetObjectsCancel (0 ms)
[ RUN      ] SqliteConnectionTest.MetadataGetStatisticNames
C:\Users\Bryce\src\apache\arrow-adbc\c\validation\adbc_validation_connection.cc(1211): Skipped

[  SKIPPED ] SqliteConnectionTest.MetadataGetStatisticNames (0 ms)
[----------] 23 tests from SqliteConnectionTest (27 ms total)

[----------] 75 tests from SqliteStatementTest
[ RUN      ] SqliteStatementTest.NewInit
[       OK ] SqliteStatementTest.NewInit (0 ms)
[ RUN      ] SqliteStatementTest.Release
[       OK ] SqliteStatementTest.Release (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestBool
[       OK ] SqliteStatementTest.SqlIngestBool (1 ms)
[ RUN      ] SqliteStatementTest.SqlIngestInt8
[       OK ] SqliteStatementTest.SqlIngestInt8 (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestInt16
[       OK ] SqliteStatementTest.SqlIngestInt16 (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestInt32
[       OK ] SqliteStatementTest.SqlIngestInt32 (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestInt64
[       OK ] SqliteStatementTest.SqlIngestInt64 (1 ms)
[ RUN      ] SqliteStatementTest.SqlIngestUInt8
[       OK ] SqliteStatementTest.SqlIngestUInt8 (1 ms)
[ RUN      ] SqliteStatementTest.SqlIngestUInt16
[       OK ] SqliteStatementTest.SqlIngestUInt16 (1 ms)
[ RUN      ] SqliteStatementTest.SqlIngestUInt32
[       OK ] SqliteStatementTest.SqlIngestUInt32 (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestUInt64
C:\Users\Bryce\src\apache\arrow-adbc\c\driver_manager\adbc_driver_manager_test.cc(288): Skipped
Cannot ingest UINT64 (out of range)
[  SKIPPED ] SqliteStatementTest.SqlIngestUInt64 (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestFloat16
[       OK ] SqliteStatementTest.SqlIngestFloat16 (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestFloat32
[       OK ] SqliteStatementTest.SqlIngestFloat32 (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestFloat64
[       OK ] SqliteStatementTest.SqlIngestFloat64 (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestString
[       OK ] SqliteStatementTest.SqlIngestString (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestLargeString
[       OK ] SqliteStatementTest.SqlIngestLargeString (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestStringView
[       OK ] SqliteStatementTest.SqlIngestStringView (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestBinary
[       OK ] SqliteStatementTest.SqlIngestBinary (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestLargeBinary
[       OK ] SqliteStatementTest.SqlIngestLargeBinary (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestFixedSizeBinary
[       OK ] SqliteStatementTest.SqlIngestFixedSizeBinary (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestBinaryView
[       OK ] SqliteStatementTest.SqlIngestBinaryView (1 ms)
[ RUN      ] SqliteStatementTest.SqlIngestDuration
C:\Users\Bryce\src\apache\arrow-adbc\c\driver_manager\adbc_driver_manager_test.cc(296): Skipped
Cannot ingest DURATION (not implemented)
[  SKIPPED ] SqliteStatementTest.SqlIngestDuration (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestDate32
[       OK ] SqliteStatementTest.SqlIngestDate32 (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestTimestamp
C:\Users\Bryce\src\apache\arrow-adbc\c\driver_manager\adbc_driver_manager_test.cc(290): Skipped
Cannot ingest TIMESTAMP (not implemented)
[  SKIPPED ] SqliteStatementTest.SqlIngestTimestamp (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestTimestampTz
C:\Users\Bryce\src\apache\arrow-adbc\c\driver_manager\adbc_driver_manager_test.cc(293): Skipped
Cannot ingest TIMESTAMP WITH TIMEZONE (not implemented)
[  SKIPPED ] SqliteStatementTest.SqlIngestTimestampTz (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestInterval
C:\Users\Bryce\src\apache\arrow-adbc\c\driver_manager\adbc_driver_manager_test.cc(299): Skipped
Cannot ingest Interval (not implemented)
[  SKIPPED ] SqliteStatementTest.SqlIngestInterval (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestStringDictionary
[       OK ] SqliteStatementTest.SqlIngestStringDictionary (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestListOfInt32
C:\Users\Bryce\src\apache\arrow-adbc\c\driver_manager\adbc_driver_manager_test.cc(302): Skipped
Cannot ingest list<int32> (not implemented)
[  SKIPPED ] SqliteStatementTest.SqlIngestListOfInt32 (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestListOfString
C:\Users\Bryce\src\apache\arrow-adbc\c\driver_manager\adbc_driver_manager_test.cc(305): Skipped
Cannot ingest list<string> (not implemented)
[  SKIPPED ] SqliteStatementTest.SqlIngestListOfString (0 ms)
[ RUN      ] SqliteStatementTest.TestSqlIngestStreamZeroArrays
[       OK ] SqliteStatementTest.TestSqlIngestStreamZeroArrays (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestTableEscaping
[       OK ] SqliteStatementTest.SqlIngestTableEscaping (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestColumnEscaping
[       OK ] SqliteStatementTest.SqlIngestColumnEscaping (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestAppend
[       OK ] SqliteStatementTest.SqlIngestAppend (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestReplace
C:\Users\Bryce\src\apache\arrow-adbc\c\validation\adbc_validation_statement.cc(750): Skipped

[  SKIPPED ] SqliteStatementTest.SqlIngestReplace (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestCreateAppend
C:\Users\Bryce\src\apache\arrow-adbc\c\validation\adbc_validation_statement.cc(854): Skipped

[  SKIPPED ] SqliteStatementTest.SqlIngestCreateAppend (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestErrors
[       OK ] SqliteStatementTest.SqlIngestErrors (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestMultipleConnections
[       OK ] SqliteStatementTest.SqlIngestMultipleConnections (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestSample
[       OK ] SqliteStatementTest.SqlIngestSample (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestTargetCatalog
C:\Users\Bryce\src\apache\arrow-adbc\c\validation\adbc_validation_statement.cc(1125): Skipped

[  SKIPPED ] SqliteStatementTest.SqlIngestTargetCatalog (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestTargetSchema
C:\Users\Bryce\src\apache\arrow-adbc\c\validation\adbc_validation_statement.cc(1159): Skipped

[  SKIPPED ] SqliteStatementTest.SqlIngestTargetSchema (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestTargetCatalogSchema
C:\Users\Bryce\src\apache\arrow-adbc\c\validation\adbc_validation_statement.cc(1195): Skipped

[  SKIPPED ] SqliteStatementTest.SqlIngestTargetCatalogSchema (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestTemporary
C:\Users\Bryce\src\apache\arrow-adbc\c\validation\adbc_validation_statement.cc(1234): Skipped

[  SKIPPED ] SqliteStatementTest.SqlIngestTemporary (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestTemporaryAppend
C:\Users\Bryce\src\apache\arrow-adbc\c\validation\adbc_validation_statement.cc(1296): Skipped

[  SKIPPED ] SqliteStatementTest.SqlIngestTemporaryAppend (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestTemporaryReplace
C:\Users\Bryce\src\apache\arrow-adbc\c\validation\adbc_validation_statement.cc(1415): Skipped

[  SKIPPED ] SqliteStatementTest.SqlIngestTemporaryReplace (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestTemporaryExclusive
C:\Users\Bryce\src\apache\arrow-adbc\c\validation\adbc_validation_statement.cc(1586): Skipped

[  SKIPPED ] SqliteStatementTest.SqlIngestTemporaryExclusive (0 ms)
[ RUN      ] SqliteStatementTest.SqlIngestPrimaryKey
C:\Users\Bryce\src\apache\arrow-adbc\c\validation\adbc_validation_statement.cc(1659): Skipped

[  SKIPPED ] SqliteStatementTest.SqlIngestPrimaryKey (0 ms)
[ RUN      ] SqliteStatementTest.SqlPartitionedInts
C:\Users\Bryce\src\apache\arrow-adbc\c\validation\adbc_validation_statement.cc(1777): Skipped

[  SKIPPED ] SqliteStatementTest.SqlPartitionedInts (0 ms)
[ RUN      ] SqliteStatementTest.SqlPrepareGetParameterSchema
[       OK ] SqliteStatementTest.SqlPrepareGetParameterSchema (0 ms)
[ RUN      ] SqliteStatementTest.SqlPrepareSelectNoParams
[       OK ] SqliteStatementTest.SqlPrepareSelectNoParams (0 ms)
[ RUN      ] SqliteStatementTest.SqlPrepareSelectParams
[       OK ] SqliteStatementTest.SqlPrepareSelectParams (0 ms)
[ RUN      ] SqliteStatementTest.SqlPrepareUpdate
[       OK ] SqliteStatementTest.SqlPrepareUpdate (0 ms)
[ RUN      ] SqliteStatementTest.SqlPrepareUpdateNoParams
[       OK ] SqliteStatementTest.SqlPrepareUpdateNoParams (0 ms)
[ RUN      ] SqliteStatementTest.SqlPrepareUpdateStream
[       OK ] SqliteStatementTest.SqlPrepareUpdateStream (0 ms)
[ RUN      ] SqliteStatementTest.SqlPrepareErrorNoQuery
[       OK ] SqliteStatementTest.SqlPrepareErrorNoQuery (0 ms)
[ RUN      ] SqliteStatementTest.SqlPrepareErrorParamCountMismatch
[       OK ] SqliteStatementTest.SqlPrepareErrorParamCountMismatch (0 ms)
[ RUN      ] SqliteStatementTest.SqlBind
[       OK ] SqliteStatementTest.SqlBind (0 ms)
[ RUN      ] SqliteStatementTest.SqlQueryEmpty
[       OK ] SqliteStatementTest.SqlQueryEmpty (0 ms)
[ RUN      ] SqliteStatementTest.SqlQueryInts
[       OK ] SqliteStatementTest.SqlQueryInts (0 ms)
[ RUN      ] SqliteStatementTest.SqlQueryFloats
[       OK ] SqliteStatementTest.SqlQueryFloats (0 ms)
[ RUN      ] SqliteStatementTest.SqlQueryStrings
[       OK ] SqliteStatementTest.SqlQueryStrings (0 ms)
[ RUN      ] SqliteStatementTest.SqlQueryInsertRollback
[       OK ] SqliteStatementTest.SqlQueryInsertRollback (1 ms)
[ RUN      ] SqliteStatementTest.SqlQueryCancel
C:\Users\Bryce\src\apache\arrow-adbc\c\validation\adbc_validation_statement.cc(2480): Skipped

[  SKIPPED ] SqliteStatementTest.SqlQueryCancel (0 ms)
[ RUN      ] SqliteStatementTest.SqlQueryErrors
[       OK ] SqliteStatementTest.SqlQueryErrors (0 ms)
[ RUN      ] SqliteStatementTest.SqlQueryTrailingSemicolons
[       OK ] SqliteStatementTest.SqlQueryTrailingSemicolons (0 ms)
[ RUN      ] SqliteStatementTest.SqlQueryRowsAffectedDelete
[       OK ] SqliteStatementTest.SqlQueryRowsAffectedDelete (0 ms)
[ RUN      ] SqliteStatementTest.SqlQueryRowsAffectedDeleteStream
[       OK ] SqliteStatementTest.SqlQueryRowsAffectedDeleteStream (0 ms)
[ RUN      ] SqliteStatementTest.SqlSchemaInts
C:\Users\Bryce\src\apache\arrow-adbc\c\validation\adbc_validation_statement.cc(2707): Skipped
Not supported
[  SKIPPED ] SqliteStatementTest.SqlSchemaInts (0 ms)
[ RUN      ] SqliteStatementTest.SqlSchemaFloats
C:\Users\Bryce\src\apache\arrow-adbc\c\validation\adbc_validation_statement.cc(2729): Skipped
Not supported
[  SKIPPED ] SqliteStatementTest.SqlSchemaFloats (0 ms)
[ RUN      ] SqliteStatementTest.SqlSchemaStrings
C:\Users\Bryce\src\apache\arrow-adbc\c\validation\adbc_validation_statement.cc(2751): Skipped
Not supported
[  SKIPPED ] SqliteStatementTest.SqlSchemaStrings (0 ms)
[ RUN      ] SqliteStatementTest.SqlSchemaErrors
C:\Users\Bryce\src\apache\arrow-adbc\c\validation\adbc_validation_statement.cc(2773): Skipped
Not supported
[  SKIPPED ] SqliteStatementTest.SqlSchemaErrors (0 ms)
[ RUN      ] SqliteStatementTest.Transactions
[       OK ] SqliteStatementTest.Transactions (1 ms)
[ RUN      ] SqliteStatementTest.ConcurrentStatements
[       OK ] SqliteStatementTest.ConcurrentStatements (0 ms)
[ RUN      ] SqliteStatementTest.ErrorCompatibility
[       OK ] SqliteStatementTest.ErrorCompatibility (0 ms)
[ RUN      ] SqliteStatementTest.ResultIndependence
[       OK ] SqliteStatementTest.ResultIndependence (0 ms)
[ RUN      ] SqliteStatementTest.ResultInvalidation
[       OK ] SqliteStatementTest.ResultInvalidation (0 ms)
[----------] 75 tests from SqliteStatementTest (69 ms total)

[----------] 2 tests from AdbcDriverManagerInternal
[ RUN      ] AdbcDriverManagerInternal.InternalAdbcDriverManagerDefaultEntrypoint
[       OK ] AdbcDriverManagerInternal.InternalAdbcDriverManagerDefaultEntrypoint (0 ms)
[ RUN      ] AdbcDriverManagerInternal.InternalAdbcParsePath
[       OK ] AdbcDriverManagerInternal.InternalAdbcParsePath (0 ms)
[----------] 2 tests from AdbcDriverManagerInternal (0 ms total)

[----------] 20 tests from DriverManifest
[ RUN      ] DriverManifest.LoadDriverEnv
C:\Users\Bryce\src\apache\arrow-adbc\c\driver_manager\adbc_driver_manager_test.cc(461): error: Value of: AdbcFindLoadDriver("sqlite", nullptr, 1001000, (1 | 2 | 4 | 8), nullptr, &driver, &error)
Expected: is not 0 (OK)
  Actual: '\0' (of type unsigned char)
[  FAILED  ] DriverManifest.LoadDriverEnv (3 ms)
[ RUN      ] DriverManifest.LoadNonAsciiPath
C:\Users\Bryce\src\apache\arrow-adbc\c\driver_manager\adbc_driver_manager_test.cc(482): error: Value of: AdbcFindLoadDriver("sqlite", nullptr, 1001000, (1 | 2 | 4 | 8), nullptr, &driver, &error)
Expected: is not 0 (OK)
  Actual: '\0' (of type unsigned char)
[  FAILED  ] DriverManifest.LoadNonAsciiPath (1 ms)
[ RUN      ] DriverManifest.DisallowEnvConfig
C:\Users\Bryce\src\apache\arrow-adbc\c\driver_manager\adbc_driver_manager_test.cc(519): error: Value of: AdbcFindLoadDriver("sqlite", nullptr, 1001000, load_options, nullptr, &driver, &error)
Expected: is not 0 (OK)
  Actual: '\0' (of type unsigned char)
[  FAILED  ] DriverManifest.DisallowEnvConfig (1 ms)
[ RUN      ] DriverManifest.ConfigEntrypoint
[       OK ] DriverManifest.ConfigEntrypoint (3 ms)
[ RUN      ] DriverManifest.LoadAbsolutePath
[       OK ] DriverManifest.LoadAbsolutePath (2 ms)
[ RUN      ] DriverManifest.LoadAbsolutePathNoExtension
[       OK ] DriverManifest.LoadAbsolutePathNoExtension (2 ms)
[ RUN      ] DriverManifest.LoadRelativePath
[       OK ] DriverManifest.LoadRelativePath (2 ms)
[ RUN      ] DriverManifest.NotFound
[       OK ] DriverManifest.NotFound (3 ms)
[ RUN      ] DriverManifest.ManifestDriverMissing
[       OK ] DriverManifest.ManifestDriverMissing (2 ms)
[ RUN      ] DriverManifest.ManifestDriverMissingAdbcDatabase
[       OK ] DriverManifest.ManifestDriverMissingAdbcDatabase (2 ms)
[ RUN      ] DriverManifest.ManifestDriverInvalid
[       OK ] DriverManifest.ManifestDriverInvalid (2 ms)
[ RUN      ] DriverManifest.ManifestDriverEmpty
[       OK ] DriverManifest.ManifestDriverEmpty (3 ms)
[ RUN      ] DriverManifest.ManifestWrongArch
[       OK ] DriverManifest.ManifestWrongArch (4 ms)
[ RUN      ] DriverManifest.ManifestDriverMissingArchAdbcDatabase
C:\Users\Bryce\src\apache\arrow-adbc\c\driver_manager\adbc_driver_manager_test.cc(771): error: Value of: AdbcDatabaseInit(&database.value, &error)
Expected: is 3 (NOT_FOUND)
  Actual: '\0' (of type unsigned char), 0 (OK)
[  FAILED  ] DriverManifest.ManifestDriverMissingArchAdbcDatabase (3 ms)
[ RUN      ] DriverManifest.ManifestDriverPointsNowhere
C:\Users\Bryce\src\apache\arrow-adbc\c\driver_manager\adbc_driver_manager_test.cc(816): error: Value of: AdbcDatabaseInit(&database.value, &error)
Expected: is 3 (NOT_FOUND)
  Actual: '\0' (of type unsigned char), 0 (OK)
[  FAILED  ] DriverManifest.ManifestDriverPointsNowhere (4 ms)
[ RUN      ] DriverManifest.ManifestArchPathEmpty
[       OK ] DriverManifest.ManifestArchPathEmpty (2 ms)
[ RUN      ] DriverManifest.ManifestArchPathInvalid
[       OK ] DriverManifest.ManifestArchPathInvalid (3 ms)
[ RUN      ] DriverManifest.ManifestEntrypointInvalid
[       OK ] DriverManifest.ManifestEntrypointInvalid (3 ms)
[ RUN      ] DriverManifest.ManifestBadVersion
[       OK ] DriverManifest.ManifestBadVersion (2 ms)
[ RUN      ] DriverManifest.CondaPrefix
ADBC_CONDA_BUILD: not defined
C:\Users\Bryce\src\apache\arrow-adbc\c\driver_manager\adbc_driver_manager_test.cc(1033): error: Value of: result
Expected: is 3 (NOT_FOUND)
  Actual: '\0' (of type unsigned char), 0 (OK)
[  FAILED  ] DriverManifest.CondaPrefix (3 ms)
[----------] 20 tests from DriverManifest (65 ms total)

[----------] Global test environment tear-down
[==========] 126 tests from 6 test suites ran. (4236 ms total)
[  PASSED  ] 92 tests.
[  SKIPPED ] 28 tests, listed below:
[  SKIPPED ] SqliteConnectionTest.MetadataGetTableSchemaDbSchema
[  SKIPPED ] SqliteConnectionTest.MetadataGetObjectsPrimaryKey
[  SKIPPED ] SqliteConnectionTest.MetadataGetObjectsForeignKey
[  SKIPPED ] SqliteConnectionTest.MetadataGetObjectsCancel
[  SKIPPED ] SqliteConnectionTest.MetadataGetStatisticNames
[  SKIPPED ] SqliteStatementTest.SqlIngestUInt64
[  SKIPPED ] SqliteStatementTest.SqlIngestDuration
[  SKIPPED ] SqliteStatementTest.SqlIngestTimestamp
[  SKIPPED ] SqliteStatementTest.SqlIngestTimestampTz
[  SKIPPED ] SqliteStatementTest.SqlIngestInterval
[  SKIPPED ] SqliteStatementTest.SqlIngestListOfInt32
[  SKIPPED ] SqliteStatementTest.SqlIngestListOfString
[  SKIPPED ] SqliteStatementTest.SqlIngestReplace
[  SKIPPED ] SqliteStatementTest.SqlIngestCreateAppend
[  SKIPPED ] SqliteStatementTest.SqlIngestTargetCatalog
[  SKIPPED ] SqliteStatementTest.SqlIngestTargetSchema
[  SKIPPED ] SqliteStatementTest.SqlIngestTargetCatalogSchema
[  SKIPPED ] SqliteStatementTest.SqlIngestTemporary
[  SKIPPED ] SqliteStatementTest.SqlIngestTemporaryAppend
[  SKIPPED ] SqliteStatementTest.SqlIngestTemporaryReplace
[  SKIPPED ] SqliteStatementTest.SqlIngestTemporaryExclusive
[  SKIPPED ] SqliteStatementTest.SqlIngestPrimaryKey
[  SKIPPED ] SqliteStatementTest.SqlPartitionedInts
[  SKIPPED ] SqliteStatementTest.SqlQueryCancel
[  SKIPPED ] SqliteStatementTest.SqlSchemaInts
[  SKIPPED ] SqliteStatementTest.SqlSchemaFloats
[  SKIPPED ] SqliteStatementTest.SqlSchemaStrings
[  SKIPPED ] SqliteStatementTest.SqlSchemaErrors
[  FAILED  ] 6 tests, listed below:
[  FAILED  ] DriverManifest.LoadDriverEnv
[  FAILED  ] DriverManifest.LoadNonAsciiPath
[  FAILED  ] DriverManifest.DisallowEnvConfig
[  FAILED  ] DriverManifest.ManifestDriverMissingArchAdbcDatabase
[  FAILED  ] DriverManifest.ManifestDriverPointsNowhere
[  FAILED  ] DriverManifest.CondaPrefix

 6 FAILED TESTS

endif()

# On Windows, install sqlite3.dll alongside the driver
if(WIN32 AND CMAKE_VERSION VERSION_GREATER_EQUAL "3.21")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why does this need a cmake version check?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This whole block was mainly to copy runtime deps, I came up with using RUNTIME_DEPENDENCY_SET like this with LLM help and RUNTIME_DEPENDENCY_SET is 3.21, see https://cmake.org/cmake/help/latest/command/install.html. I tried something similar before this and didn't get something working.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's probably a much better way to do this, I can keep working on this part.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess then the problem is it won't work on older CMake!

Our minimum is 3.18 right now but maybe we can bump it up?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah I'll try to come up with something simpler in this PR. It boils down to copying one DLL in the case of sqlite and three in the case of postgresql.

list(APPEND GO_ENV_VARS "GOARCH=arm64")
endif()

add_custom_command(OUTPUT "${LIBOUT_SHARED}.${ADBC_FULL_SO_VERSION}"
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewer note: The rest of this file I used a combination of Claude Code and the previous PR and comments therein to come up with something that worked. I want to go back over this tomorrow with fresh eyes but I thought I'd point it out in case it helps review.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Building ADBC and flightsql driver on Windows

2 participants