Local driver installs where archive has `.` in path before extension are hard to load with a driver manager

Abierto
#306 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
45/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
cli, go
Área
cli

Línea de trabajo

Start by tracing the local archive installation path used by dbc install and how it derives the installed driver name from the archive filename; the issue does not name specific files or tests. Reproduce with an archive filename containing a dot before its extension, then check whether the installed driver can be loaded by its short name and whether the chosen warning or prevention behavior is clear.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

When I install a driver from a local archive with a . in the path before the extension, the driver essentially gets installed in a way that makes it unloadable with its short name:

$ go run ./cmd/dbc install --no-verify some_driver_unsigned_v1.0.0.tar.gz
Installing from local package: some_driver_unsigned_v1.0.0.tar.gz

[✓] installing
[✓] verifying signature

Installed some_driver_unsigned_v1.0.0 1.10.0 to /Users/bryce/Library/Application Support/ADBC/Drivers


~/src/columnar-tech/dbc docs/local-install*
$ uv run --with "adbc-driver-manager,pyarrow,pandas" python
Python 3.14.0 (main, Oct 14 2025, 21:10:22) [Clang 20.1.4 ] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> dbapi.connect(driver="sqlite_windows_amd64_v1.10.0")
KeyboardInterrupt
>>> from adbc_driver_manager import dbapi
>>> dbapi.connect(driver="some_driver_unsigned_v1.0.0")
Traceback (most recent call last):
  File "<python-input-1>", line 1, in <module>
    dbapi.connect(driver="some_driver_unsigned_v1.0.0")
    ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/bryce/.cache/uv/archive-v0/EStS9NB8jX-_IylBAEqtw/lib/python3.14/site-packages/adbc_driver_manager/dbapi.py", line 252, in connect
    db = _lib.AdbcDatabase(**db_kwargs)
  File "adbc_driver_manager/_lib.pyx", line 605, in adbc_driver_manager._lib.AdbcDatabase.__init__
  File "adbc_driver_manager/_lib.pyx", line 262, in adbc_driver_manager._lib.check_error
adbc_driver_manager.ProgrammingError: NOT_FOUND: [Driver Manager] Could not load `some_driver_unsigned_v1.0.0`: dlopen() failed: dlopen(some_driver_unsigned_v1.0.0, 0x0006): tried: 'some_driver_unsigned_v1.0.0' (no such file), '/System/Volumes/Preboot/Cryptexes/OSsome_driver_unsigned_v1.0.0' (no such file), '/usr/lib/some_driver_unsigned_v1.0.0' (no such file, not in dyld cache), 'some_driver_unsigned_v1.0.0' (no such file)                                   dlopen() failed: dlopen(libsome_driver_unsigned_v1.0.0.dylib, 0x0006): tried: 'libsome_driver_unsigned_v1.0.0.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OSlibsome_driver_unsigned_v1.0.0.dylib' (no such file), '/usr/lib/libsome_driver_unsigned_v1.0.0.dylib' (no such file, not in dyld cache), 'libsome_driver_unsigned_v1.0.0.dylib' (no such file)

I think the . causes the driver manager to take a different branch when we would otherwise discover the manifest.

Should dbc's local install mechanism warn or prevent the user from doing this?

Lenguaje dominante
Go
Estrellas
154
Forks
15
Merge medio
2 d 3 h
PR fusionados (30 d)
25

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de columnar-tech/dbc

Todos los issues de columnar-tech/dbc

Issues similares

Más issues de Go

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.