diff --git a/pixi.lock b/pixi.lock index 469244f..c0b449e 100644 --- a/pixi.lock +++ b/pixi.lock @@ -51,14 +51,15 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda - pypi: git+https://github.com/adbc-drivers/dev#63cd40f720d9605dad6e934845c958f3358caf91 - - pypi: git+https://github.com/adbc-drivers/validation#575a41bfd96b09d9d8a057d0ea1e66a27a315475 + - pypi: git+https://github.com/adbc-drivers/validation#f2b451c1e75462f0c6a74d61d65c4a6ecd4e7cb2 + - pypi: https://files.pythonhosted.org/packages/08/9f/3dd2ec8dd84a33e0092f1c815267bc055073f9e833b93e389c59c10f62cc/sqlglot-30.18.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/22/30/7cd8fdcdfbc5b869528b079bfb76dcdf6056b1a2097a662e5e8c04f42965/certifi-2026.4.22-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/24/25/1de2678b631f5a49215c6c96fff41ba892b0a34df68d6d80292b1b48aa7f/pytest-9.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2c/9b/59634b7ac631c63b2a37760eb6943af3e29573d6b59a4abc5e7f019d4cee/pydantic_core-2.46.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/41/3c/a36c2450754618e62008bf7435ccb0f88053e07592e6028a34776213d877/markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/47/5c/032c2d5a07fe4d4855fea851209cca2b6f03ebeb6d4e3afdb3358386a684/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/47/67/3bf52e5ec427b0b88cbaa8e059b6c79851db0742db712a5f58a0e3f666be/adbc_driver_manager-1.11.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/47/d9/d83e293854571c877a92da46fdec39158f8d7e68da75bf73581225d28e90/cffi-2.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl - pypi: https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/54/ff/5135eb38650e5a39612d13734379c37d1caceb59404cc1461813c0406cdb/plpygis-0.6.1-py3-none-any.whl @@ -66,24 +67,23 @@ environments: - pypi: https://files.pythonhosted.org/packages/75/a6/a0a304dc33b49145b21f4808d763822111e67d1c3a32b524a1baf947b6e1/platformdirs-4.9.6-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/89/1d/8eff589b45bb8190a9d12c49cfad0f176a5cbd1534908a6b5125e2886239/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/8e/3a/28ba9c1c1ebdbb5f1b94dfebb46f207e52e6a554b7fe4132540fde29a3a0/pyarrow-24.0.0-cp314-cp314-manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/99/37/e8730c3587a65eb5645d4aba2d27aae48e8003614d6aaf15dda67f702f1f/bidict-0.23.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/86/0b/9874643f85e0c739ee044967809847ab493f682df8d090fba8b77e2d9ba0/whenever-0.10.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/8d/61/1c5d1229fa21da4cff5365e41e57177aaac57c563c727f35419b8513d1c1/pyarrow-25.0.1-cp314-cp314-manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/97/53/2a3c7d562271ec6b6e38e7216b3104899f8aa4180c0713cb8aaf69e29cd5/bidict-0.24.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9c/38/3d6dcbf8379cb86d71a2325210ca3469a33767d8254b74d8c343db26ce87/doit-0.37.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a0/f4/c67b0b3f1b9245e8d266f0f112c500d50e5b4e83cb6f3b71b6528104182a/requests-2.34.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a1/43/3a5e81d1728f4d234c79bfe385808ee7c04834f7c37a4b5c257459c25614/duckdb-1.5.5-cp314-cp314-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/a1/5c/8b56b08db91e569d0a4fbfa3e492ed2026081bdd7e892f63ba1c88a2f548/ruamel_yaml_clib-0.2.15-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/af/fe/b6045c782f1fd1ae317d2a6ca1884857ce5c20f59befe6ab25a8603c43a7/ruamel_yaml-0.18.17-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b0/f4/d5d633dd7c5138d8f7c434e6ac2553c831b7fb658494efa8d0bc73df8623/duckdb-1.5.4-cp314-cp314-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/b9/4a/f4e3620f9542b092f31c3de6810e137cc1c01c33a5a25cc3f90a138b98a3/whenever-0.10.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/bd/75/8539d011f6be8e29f339c42e633aae3cb73bffa95dd0f9adec09b9c58e85/tomlkit-0.13.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d2/23/408243171aa9aaba178d3e2559159c24c1171a641aa83b67bdd3394ead8e/idna-3.15-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/db/9e/82a390ecc85f066ff80affa01d195f744e3de60ad4d695b8de31c9a66da3/sqlglot-30.12.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/df/81/823a71a515078545eab8a4be8381206887129e11b91e9bf51ca2a9eea44d/adbc_driver_manager-1.12.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e5/8d/35f6096c42caefb715ca29e991279b493275c0051a3c83081099644d3f4a/pygit2-1.19.2-cp314-cp314-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/eb/47/c95ffc2009878c7aac0c5e08528022dcb885933252a88b5f170058014464/pydantic-2.13.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/fd/7b/122376b1fd3c62c1ed9dc80c931ace4844b3c55407b6fb2d199377c9736f/pydantic-2.13.4-py3-none-any.whl linux-aarch64: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/_openmp_mutex-4.5-20_gnu.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/bzip2-1.0.8-h4777abc_9.conda @@ -107,39 +107,39 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda - pypi: git+https://github.com/adbc-drivers/dev#63cd40f720d9605dad6e934845c958f3358caf91 - - pypi: git+https://github.com/adbc-drivers/validation#575a41bfd96b09d9d8a057d0ea1e66a27a315475 + - pypi: git+https://github.com/adbc-drivers/validation#f2b451c1e75462f0c6a74d61d65c4a6ecd4e7cb2 + - pypi: https://files.pythonhosted.org/packages/08/9f/3dd2ec8dd84a33e0092f1c815267bc055073f9e833b93e389c59c10f62cc/sqlglot-30.18.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/19/6c/4aabac7ed4d5944f544b7cf7881d50fe4b34eac908605291b633a53be875/adbc_driver_manager-1.11.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl + - pypi: https://files.pythonhosted.org/packages/1d/cd/f5ea3f08191af5ae15041821fcb52bf35837dce1a9ac16fa039b3bfe308c/adbc_driver_manager-1.12.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl - pypi: https://files.pythonhosted.org/packages/22/30/7cd8fdcdfbc5b869528b079bfb76dcdf6056b1a2097a662e5e8c04f42965/certifi-2026.4.22-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/24/25/1de2678b631f5a49215c6c96fff41ba892b0a34df68d6d80292b1b48aa7f/pytest-9.1.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2f/64/d674b3f854cecf53bccbc21a095734759cd3599624578ed3c78602eb22a3/pygit2-1.19.2-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl - pypi: https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/54/ff/5135eb38650e5a39612d13734379c37d1caceb59404cc1461813c0406cdb/plpygis-0.6.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6e/9a/13587e38bd4806fd218f50fd13b8903fab60588a699ff0c406372e5b4043/pyarrow-25.0.1-cp314-cp314-manylinux_2_28_aarch64.whl - pypi: https://files.pythonhosted.org/packages/75/08/e365ee305367559f57ba6179d836ecc3d31c7d3fdff2a40ebf6c32823a1f/ruamel_yaml_clib-0.2.15-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl - - pypi: https://files.pythonhosted.org/packages/75/6f/a2ca2635fae996e030ab30b1ce0e1b54dbe19bbee5b303314eb5e53053bd/whenever-0.10.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl - pypi: https://files.pythonhosted.org/packages/75/a6/a0a304dc33b49145b21f4808d763822111e67d1c3a32b524a1baf947b6e1/platformdirs-4.9.6-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/95/30/5211a831ae054928054b2f79731661087a2bc5c01e825c672b3a4a8f1b3e/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl - - pypi: https://files.pythonhosted.org/packages/99/37/e8730c3587a65eb5645d4aba2d27aae48e8003614d6aaf15dda67f702f1f/bidict-0.23.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/8e/26/092079428f86e927e030b2c0ced87df69dbb1c875cdeaa67bf42ea2be746/pydantic_core-2.46.5-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl + - pypi: https://files.pythonhosted.org/packages/97/53/2a3c7d562271ec6b6e38e7216b3104899f8aa4180c0713cb8aaf69e29cd5/bidict-0.24.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/85/c091fdee33f20de70d6c8b522743b6f831a2f1cd3ff86de4c6a827c48a76/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl - pypi: https://files.pythonhosted.org/packages/9c/38/3d6dcbf8379cb86d71a2325210ca3469a33767d8254b74d8c343db26ce87/doit-0.37.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/9e/c2/2d2d5fea814237923f71b36495211f20b43a1576f9a4d6da7e751a64ec6f/pyarrow-24.0.0-cp314-cp314-manylinux_2_28_aarch64.whl - pypi: https://files.pythonhosted.org/packages/a0/f4/c67b0b3f1b9245e8d266f0f112c500d50e5b4e83cb6f3b71b6528104182a/requests-2.34.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/aa/da/fe9aa69ddec2a600536f3f6a685a94ce25671038aa53c85ffde1b842d8f6/whenever-0.10.5-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl - pypi: https://files.pythonhosted.org/packages/af/fe/b6045c782f1fd1ae317d2a6ca1884857ce5c20f59befe6ab25a8603c43a7/ruamel_yaml-0.18.17-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b7/57/61356444f6a8c62dec3c3d129abfc53f428de1d484093d1bb381db441231/duckdb-1.5.4-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl - pypi: https://files.pythonhosted.org/packages/bd/75/8539d011f6be8e29f339c42e633aae3cb73bffa95dd0f9adec09b9c58e85/tomlkit-0.13.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d2/23/408243171aa9aaba178d3e2559159c24c1171a641aa83b67bdd3394ead8e/idna-3.15-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d6/43/0e822876f87ea8a4ef95442c3d766a06a51fc5298823f884ef87aaad168c/cffi-2.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl + - pypi: https://files.pythonhosted.org/packages/d9/76/3a01afbc615c1d418c0de58a6b68ac5ce2a8563232c0464bfbc2ce552398/duckdb-1.5.5-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl - pypi: https://files.pythonhosted.org/packages/da/ef/e648bfd021127bef5fa12e1720ffed0c6cbb8310c8d9bea7266337ff06de/markupsafe-3.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl - - pypi: https://files.pythonhosted.org/packages/db/9e/82a390ecc85f066ff80affa01d195f744e3de60ad4d695b8de31c9a66da3/sqlglot-30.12.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/eb/47/c95ffc2009878c7aac0c5e08528022dcb885933252a88b5f170058014464/pydantic-2.13.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/fd/7b/122376b1fd3c62c1ed9dc80c931ace4844b3c55407b6fb2d199377c9736f/pydantic-2.13.4-py3-none-any.whl osx-arm64: - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.4.22-hbd8a1cb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314.conda @@ -158,12 +158,15 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h010d191_3.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.7-hbf9d68e_6.conda - pypi: git+https://github.com/adbc-drivers/dev#63cd40f720d9605dad6e934845c958f3358caf91 - - pypi: git+https://github.com/adbc-drivers/validation#575a41bfd96b09d9d8a057d0ea1e66a27a315475 + - pypi: git+https://github.com/adbc-drivers/validation#f2b451c1e75462f0c6a74d61d65c4a6ecd4e7cb2 + - pypi: https://files.pythonhosted.org/packages/08/9f/3dd2ec8dd84a33e0092f1c815267bc055073f9e833b93e389c59c10f62cc/sqlglot-30.18.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/10/b2/b9dc7624b105d414585b8530451c1162c0b4750c0be9be2e497bb47a8a9b/duckdb-1.5.4-cp314-cp314-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1c/b8/4a8d3bf92ea7af22839af0756c6e81efe032b1e6d35395e6991a0a778225/whenever-0.10.5-cp314-cp314-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/22/30/7cd8fdcdfbc5b869528b079bfb76dcdf6056b1a2097a662e5e8c04f42965/certifi-2026.4.22-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/24/25/1de2678b631f5a49215c6c96fff41ba892b0a34df68d6d80292b1b48aa7f/pytest-9.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/36/4c/b525824ad3094076919273cd97db61fb3d78252dee76fa3b8dc8f76774aa/pyarrow-25.0.1-cp314-cp314-macosx_12_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/39/ce/a24bcbd3289c8f305a430759c5fc12242740b4af3e17f7593f3a34e333d2/duckdb-1.5.5-cp314-cp314-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/54/ff/5135eb38650e5a39612d13734379c37d1caceb59404cc1461813c0406cdb/plpygis-0.6.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/59/dd/27e9fa567a23931c838c6b02d0764611c62290062a6d4e8ff7863daf9730/cffi-2.0.0-cp314-cp314-macosx_11_0_arm64.whl @@ -172,25 +175,22 @@ environments: - pypi: https://files.pythonhosted.org/packages/75/a6/a0a304dc33b49145b21f4808d763822111e67d1c3a32b524a1baf947b6e1/platformdirs-4.9.6-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/97/53/2a3c7d562271ec6b6e38e7216b3104899f8aa4180c0713cb8aaf69e29cd5/bidict-0.24.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/97/c8/c67cb8c70e19ef1960b97b22ed2a1567711de46c4ddf19799923adc836c2/charset_normalizer-3.4.7-cp314-cp314-macosx_10_15_universal2.whl - - pypi: https://files.pythonhosted.org/packages/99/37/e8730c3587a65eb5645d4aba2d27aae48e8003614d6aaf15dda67f702f1f/bidict-0.23.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9c/38/3d6dcbf8379cb86d71a2325210ca3469a33767d8254b74d8c343db26ce87/doit-0.37.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a0/f4/c67b0b3f1b9245e8d266f0f112c500d50e5b4e83cb6f3b71b6528104182a/requests-2.34.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a7/86/4bb6f196b13bd7ed825f4e931fb7152a36d01e8de24c8de44425702ad18c/pygit2-1.19.2-cp314-cp314-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/ad/1f/8970b150a4b4365623ae00fc88603491f763c627311ae8031e3111356d6e/pydantic_core-2.46.4-cp314-cp314-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/ad/80/d022a34ff05d2cbedd8ccf841fc1f532ecfa9eb5ed1711b56d0e0ea71fc9/pyarrow-24.0.0-cp314-cp314-macosx_12_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/ae/d5/d8a4eb6d6c7f66b91dd37c576d76e9e60fba900caf5372c17bcf949febc2/pydantic_core-2.46.5-cp314-cp314-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/af/fe/b6045c782f1fd1ae317d2a6ca1884857ce5c20f59befe6ab25a8603c43a7/ruamel_yaml-0.18.17-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b5/64/7660f8a4a8e53c924d0fa05dc3a55c9cee10bbd82b11c5afb27d44b096ce/markupsafe-3.0.3-cp314-cp314-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/ba/57/6208e66d9256550c2aff75db4a323a855a0d5d2d1bd639526f825d3e08b4/adbc_driver_manager-1.12.0-cp314-cp314-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/bd/75/8539d011f6be8e29f339c42e633aae3cb73bffa95dd0f9adec09b9c58e85/tomlkit-0.13.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d2/23/408243171aa9aaba178d3e2559159c24c1171a641aa83b67bdd3394ead8e/idna-3.15-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/db/9e/82a390ecc85f066ff80affa01d195f744e3de60ad4d695b8de31c9a66da3/sqlglot-30.12.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/eb/47/c95ffc2009878c7aac0c5e08528022dcb885933252a88b5f170058014464/pydantic-2.13.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/f5/eb/2b3ef4807ceffcd7a447386350f180e8a130e87a642dd3f74c159eaa2573/whenever-0.10.0-cp314-cp314-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/fa/c3/bd62e3094a07bb5a3eebd4e185953df02e1b3582091872457899a1a12d74/adbc_driver_manager-1.11.0-cp314-cp314-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/fd/7b/122376b1fd3c62c1ed9dc80c931ace4844b3c55407b6fb2d199377c9736f/pydantic-2.13.4-py3-none-any.whl win-64: - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.4.22-h4c7d964_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314.conda @@ -211,42 +211,42 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/vcomp14-14.51.36231-h1b9f54f_36.conda - conda: https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.7-h534d264_6.conda - pypi: git+https://github.com/adbc-drivers/dev#63cd40f720d9605dad6e934845c958f3358caf91 - - pypi: git+https://github.com/adbc-drivers/validation#575a41bfd96b09d9d8a057d0ea1e66a27a315475 + - pypi: git+https://github.com/adbc-drivers/validation#f2b451c1e75462f0c6a74d61d65c4a6ecd4e7cb2 + - pypi: https://files.pythonhosted.org/packages/08/9f/3dd2ec8dd84a33e0092f1c815267bc055073f9e833b93e389c59c10f62cc/sqlglot-30.18.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/22/00/24df5ac51a316e36a07bbf9e4c91fade523b9e80a84d5c9e7acd10b22248/pygit2-1.19.2-cp314-cp314-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/22/30/7cd8fdcdfbc5b869528b079bfb76dcdf6056b1a2097a662e5e8c04f42965/certifi-2026.4.22-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/24/25/1de2678b631f5a49215c6c96fff41ba892b0a34df68d6d80292b1b48aa7f/pytest-9.1.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/28/52/182836104b33b444e400b14f797212f720cbc9ed6ba34c800639d154e821/markupsafe-3.0.3-cp314-cp314-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/29/88/f4e9145da0417b3d2c12035a8492b35ff4a3dbc653e614fcfb51d9dedb38/pyarrow-24.0.0-cp314-cp314-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/33/64/5247eb91f9902e7111bf7a75c1af4da7a1818e31a26a754d97d0f0df7dcb/adbc_driver_manager-1.11.0-cp314-cp314-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/48/77/72dcb0921b2ce86420b2d79d454c7022bf5be40202a2a07906b9f2a35c97/charset_normalizer-3.4.7-cp314-cp314-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/54/ff/5135eb38650e5a39612d13734379c37d1caceb59404cc1461813c0406cdb/plpygis-0.6.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/5f/b5/e5942d6a0804b77cbcf0ffd174f646dc8d09a7bf567c704de2dd5edca2b2/whenever-0.10.5-cp314-cp314-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/75/a6/a0a304dc33b49145b21f4808d763822111e67d1c3a32b524a1baf947b6e1/platformdirs-4.9.6-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/99/37/e8730c3587a65eb5645d4aba2d27aae48e8003614d6aaf15dda67f702f1f/bidict-0.23.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/91/41/fc7c829172c60ca22485251eab285f4f1a0d87b486a024c726f21471d86e/duckdb-1.5.5-cp314-cp314-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/97/53/2a3c7d562271ec6b6e38e7216b3104899f8aa4180c0713cb8aaf69e29cd5/bidict-0.24.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9c/38/3d6dcbf8379cb86d71a2325210ca3469a33767d8254b74d8c343db26ce87/doit-0.37.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a0/f4/c67b0b3f1b9245e8d266f0f112c500d50e5b4e83cb6f3b71b6528104182a/requests-2.34.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/af/fe/b6045c782f1fd1ae317d2a6ca1884857ce5c20f59befe6ab25a8603c43a7/ruamel_yaml-0.18.17-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/b7/75/f3d789dc06011a765d14d86bda799cf72ac1d715b6a6edecaa0d73d95062/pyarrow-25.0.1-cp314-cp314-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/bb/92/882c2d30831744296ce713f0feb4c1cd30f346ef747b530b5318715cc367/cffi-2.0.0-cp314-cp314-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/bd/75/8539d011f6be8e29f339c42e633aae3cb73bffa95dd0f9adec09b9c58e85/tomlkit-0.13.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c0/26/5be13bbd5c3421dccfc1ad4ca9da4b97c5a3ddd73f66542092f3167ec52c/duckdb-1.5.4-cp314-cp314-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/c2/14/e2a54fabd4f08cd7af1c07030603c3356b74da07f7cc056e600436edfa17/tzlocal-5.3.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c5/b2/8ad678802988ac7ad4937372cf8562f5c267d8ce605194a9409d4c1b9d82/whenever-0.10.0-cp314-cp314-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ce/e4/dccd7f47c4b64213ac01ef921a1337ee6e30e8c6466046018326977efd95/tzdata-2026.2-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cf/f7/7612d078d935344aee679a44a6283de6aae9008eb8e0ef80e475dd12dffa/adbc_driver_manager-1.12.0-cp314-cp314-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d2/23/408243171aa9aaba178d3e2559159c24c1171a641aa83b67bdd3394ead8e/idna-3.15-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d2/67/be582a7370fdc9e6846c5be4888a530dcadd055eef5b932e0e85c33c7d73/ruamel_yaml_clib-0.2.15-cp314-cp314-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/db/9e/82a390ecc85f066ff80affa01d195f744e3de60ad4d695b8de31c9a66da3/sqlglot-30.12.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/eb/47/c95ffc2009878c7aac0c5e08528022dcb885933252a88b5f170058014464/pydantic-2.13.5-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/fc/b6/6b8de4c0a7d7ab3004c439c80c5c1e0a3e8d78bbae19379b01960383d9e5/pydantic_core-2.46.4-cp314-cp314-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/fd/7b/122376b1fd3c62c1ed9dc80c931ace4844b3c55407b6fb2d199377c9736f/pydantic-2.13.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f7/3c/60674207246bc0a4009d2391b7c7251c7159f279c8d2ab8aae8ef46f3dee/pydantic_core-2.46.5-cp314-cp314-win_amd64.whl packages: - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-20_gnu.conda build_number: 20 @@ -1087,47 +1087,67 @@ packages: - ruamel-yaml>=0.18.11,<0.19 - tomlkit>=0.13.2,<0.14 requires_python: '>=3.14' -- pypi: git+https://github.com/adbc-drivers/validation#575a41bfd96b09d9d8a057d0ea1e66a27a315475 +- pypi: git+https://github.com/adbc-drivers/validation#f2b451c1e75462f0c6a74d61d65c4a6ecd4e7cb2 name: adbc-drivers-validation version: '0.1' requires_dist: - - adbc-driver-manager>=1.11.0,<2 - - bidict>=0.23.1,<1.0.0 - - duckdb>=1.5.4,<2 + - adbc-driver-manager>=1.12.0,<2 + - bidict>=0.24.1,<1.0.0 + - duckdb>=1.5.5,<2 - jinja2>=3.1.6,<4 - plpygis>=0.6.1,<0.7 - - pyarrow>=24.0.0,<25 - - pydantic>=2.13.4,<3 + - pyarrow>=25.0.1,<26 + - pydantic>=2.13.5,<3 - pytest>=9.1.1,<10 - - sqlglot>=30.11.0 - - whenever>=0.10.0,<0.11 + - sqlglot>=30.18.0 + - whenever>=0.10.5,<0.11 requires_python: '>=3.13' +- pypi: https://files.pythonhosted.org/packages/08/9f/3dd2ec8dd84a33e0092f1c815267bc055073f9e833b93e389c59c10f62cc/sqlglot-30.18.0-py3-none-any.whl + name: sqlglot + version: 30.18.0 + sha256: ee0f9a9f3e2193e763c326e52dfb377b96fdb4292f6305c3ff2d9a220e71c601 + requires_dist: + - duckdb>=0.6 ; extra == 'dev' + - sqlglot-mypy>=2.3.0.post2 ; python_full_version >= '3.10' and extra == 'dev' + - mypy ; python_full_version < '3.10' and extra == 'dev' + - setuptools-scm ; extra == 'dev' + - pandas ; extra == 'dev' + - pandas-stubs ; extra == 'dev' + - python-dateutil ; extra == 'dev' + - pytz ; extra == 'dev' + - pdoc ; extra == 'dev' + - pre-commit ; extra == 'dev' + - ruff==0.15.6 ; extra == 'dev' + - types-python-dateutil ; extra == 'dev' + - types-pytz ; extra == 'dev' + - typing-extensions ; extra == 'dev' + - pyperf ; extra == 'dev' + - sqlglotc==30.18.0 ; python_full_version >= '3.10' and extra == 'c' + - sqlglotrs==0.13.0 ; extra == 'rs' + - sqlglotc==30.18.0 ; python_full_version >= '3.10' and extra == 'rs' + requires_python: '>=3.9' - pypi: https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl name: pycparser version: '3.0' sha256: b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992 requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/10/b2/b9dc7624b105d414585b8530451c1162c0b4750c0be9be2e497bb47a8a9b/duckdb-1.5.4-cp314-cp314-macosx_11_0_arm64.whl - name: duckdb - version: 1.5.4 - sha256: f6f39cd0dc6948dee17fd130aec55114f97a8ef6e1db519b9774087962bc5c8c - requires_dist: - - ipython ; extra == 'all' - - fsspec ; extra == 'all' - - numpy ; extra == 'all' - - pandas ; extra == 'all' - - pyarrow ; extra == 'all' - - adbc-driver-manager ; extra == 'all' - requires_python: '>=3.10.0' - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl name: typing-extensions version: 4.15.0 sha256: f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548 requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/19/6c/4aabac7ed4d5944f544b7cf7881d50fe4b34eac908605291b633a53be875/adbc_driver_manager-1.11.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl +- pypi: https://files.pythonhosted.org/packages/1c/b8/4a8d3bf92ea7af22839af0756c6e81efe032b1e6d35395e6991a0a778225/whenever-0.10.5-cp314-cp314-macosx_11_0_arm64.whl + name: whenever + version: 0.10.5 + sha256: c511fb05a9ae5366c4d01f6ba8bdb2735cf278a82cfe9e1229ec2463b647afe5 + requires_dist: + - tzdata>=2020.1 ; sys_platform == 'win32' + - tzlocal>=4.0 ; sys_platform != 'darwin' and sys_platform != 'linux' + requires_python: '>=3.10' +- pypi: https://files.pythonhosted.org/packages/1d/cd/f5ea3f08191af5ae15041821fcb52bf35837dce1a9ac16fa039b3bfe308c/adbc_driver_manager-1.12.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl name: adbc-driver-manager - version: 1.11.0 - sha256: 5a2d6d1971ce104e41e3969afee8d5782ebcb06bf496606aa4eed2005fbead43 + version: 1.12.0 + sha256: 690f140ca67d49f995afac59f85441c3d5e896cd2fc8fd381423fe900e51f1f7 requires_dist: - typing-extensions - pandas ; extra == 'dbapi' @@ -1175,11 +1195,13 @@ packages: version: 3.0.3 sha256: bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581 requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/29/88/f4e9145da0417b3d2c12035a8492b35ff4a3dbc653e614fcfb51d9dedb38/pyarrow-24.0.0-cp314-cp314-win_amd64.whl - name: pyarrow - version: 24.0.0 - sha256: 38be1808cdd068605b787e6ca9119b27eb275a0234e50212c3492331680c3b1e - requires_python: '>=3.10' +- pypi: https://files.pythonhosted.org/packages/2c/9b/59634b7ac631c63b2a37760eb6943af3e29573d6b59a4abc5e7f019d4cee/pydantic_core-2.46.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + name: pydantic-core + version: 2.46.5 + sha256: 54d510bac3ee52247af28ed4bb18a1e799f040ac60fd2bf5ccd4c92f1fbe786f + requires_dist: + - typing-extensions>=4.14.1 + requires_python: '>=3.9' - pypi: https://files.pythonhosted.org/packages/2f/64/d674b3f854cecf53bccbc21a095734759cd3599624578ed3c78602eb22a3/pygit2-1.19.2-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl name: pygit2 version: 1.19.2 @@ -1187,20 +1209,23 @@ packages: requires_dist: - cffi>=2.0 requires_python: '>=3.11' -- pypi: https://files.pythonhosted.org/packages/33/64/5247eb91f9902e7111bf7a75c1af4da7a1818e31a26a754d97d0f0df7dcb/adbc_driver_manager-1.11.0-cp314-cp314-win_amd64.whl - name: adbc-driver-manager - version: 1.11.0 - sha256: 830efd3f212a6360ad66c09fd95171a26a1006a51c893f72238dfb50e0f35e13 - requires_dist: - - typing-extensions - - pandas ; extra == 'dbapi' - - pyarrow>=14.0.1 ; extra == 'dbapi' - - duckdb ; extra == 'test' - - pandas ; extra == 'test' - - polars ; extra == 'test' - - pyarrow>=14.0.1 ; extra == 'test' - - pytest>=9 ; extra == 'test' +- pypi: https://files.pythonhosted.org/packages/36/4c/b525824ad3094076919273cd97db61fb3d78252dee76fa3b8dc8f76774aa/pyarrow-25.0.1-cp314-cp314-macosx_12_0_arm64.whl + name: pyarrow + version: 25.0.1 + sha256: bf0b672390cdcb640d7288f96b826d71ff4e9abb254a86c89890baf51a29cee6 requires_python: '>=3.10' +- pypi: https://files.pythonhosted.org/packages/39/ce/a24bcbd3289c8f305a430759c5fc12242740b4af3e17f7593f3a34e333d2/duckdb-1.5.5-cp314-cp314-macosx_11_0_arm64.whl + name: duckdb + version: 1.5.5 + sha256: 8c11775cc99a447618d5f1840126db17f2652f3eae05529df4f81f40e2df7151 + requires_dist: + - ipython ; extra == 'all' + - fsspec ; extra == 'all' + - numpy ; extra == 'all' + - pandas ; extra == 'all' + - pyarrow ; extra == 'all' + - adbc-driver-manager ; extra == 'all' + requires_python: '>=3.10.0' - pypi: https://files.pythonhosted.org/packages/41/3c/a36c2450754618e62008bf7435ccb0f88053e07592e6028a34776213d877/markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl name: markupsafe version: 3.0.3 @@ -1211,20 +1236,6 @@ packages: version: 3.4.7 sha256: bd6c2a1c7573c64738d716488d2cdd3c00e340e4835707d8fdb8dc1a66ef164e requires_python: '>=3.7' -- pypi: https://files.pythonhosted.org/packages/47/67/3bf52e5ec427b0b88cbaa8e059b6c79851db0742db712a5f58a0e3f666be/adbc_driver_manager-1.11.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - name: adbc-driver-manager - version: 1.11.0 - sha256: 24ef0e33bab3b0480e85d954f88664b578ea045efdc644681c5a487982818e5f - requires_dist: - - typing-extensions - - pandas ; extra == 'dbapi' - - pyarrow>=14.0.1 ; extra == 'dbapi' - - duckdb ; extra == 'test' - - pandas ; extra == 'test' - - polars ; extra == 'test' - - pyarrow>=14.0.1 ; extra == 'test' - - pytest>=9 ; extra == 'test' - requires_python: '>=3.10' - pypi: https://files.pythonhosted.org/packages/47/d9/d83e293854571c877a92da46fdec39158f8d7e68da75bf73581225d28e90/cffi-2.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl name: cffi version: 2.0.0 @@ -1265,6 +1276,14 @@ packages: requires_dist: - pycparser ; implementation_name != 'PyPy' requires_python: '>=3.9' +- pypi: https://files.pythonhosted.org/packages/5f/b5/e5942d6a0804b77cbcf0ffd174f646dc8d09a7bf567c704de2dd5edca2b2/whenever-0.10.5-cp314-cp314-win_amd64.whl + name: whenever + version: 0.10.5 + sha256: 83af078b27313de737c9fb76a782b940b18bb4576503460b01a99a8db86bacd0 + requires_dist: + - tzdata>=2020.1 ; sys_platform == 'win32' + - tzlocal>=4.0 ; sys_platform != 'darwin' and sys_platform != 'linux' + requires_python: '>=3.10' - pypi: https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl name: jinja2 version: 3.1.6 @@ -1278,19 +1297,16 @@ packages: version: 0.2.15 sha256: 480894aee0b29752560a9de46c0e5f84a82602f2bc5c6cde8db9a345319acfdf requires_python: '>=3.9' +- pypi: https://files.pythonhosted.org/packages/6e/9a/13587e38bd4806fd218f50fd13b8903fab60588a699ff0c406372e5b4043/pyarrow-25.0.1-cp314-cp314-manylinux_2_28_aarch64.whl + name: pyarrow + version: 25.0.1 + sha256: 0b726ad7e7b669be982b0c71c07fe4b037d654354130da79a7902a669e93a66b + requires_python: '>=3.10' - pypi: https://files.pythonhosted.org/packages/75/08/e365ee305367559f57ba6179d836ecc3d31c7d3fdff2a40ebf6c32823a1f/ruamel_yaml_clib-0.2.15-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl name: ruamel-yaml-clib version: 0.2.15 sha256: bfd309b316228acecfa30670c3887dcedf9b7a44ea39e2101e75d2654522acd4 requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/75/6f/a2ca2635fae996e030ab30b1ce0e1b54dbe19bbee5b303314eb5e53053bd/whenever-0.10.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl - name: whenever - version: 0.10.0 - sha256: 4e96cf6c3b05b9aa4412d11e72bf50c001abda57e47b985ec31614e2efeeb9bc - requires_dist: - - tzdata>=2020.1 ; sys_platform == 'win32' - - tzlocal>=4.0 ; sys_platform != 'darwin' and sys_platform != 'linux' - requires_python: '>=3.10' - pypi: https://files.pythonhosted.org/packages/75/a6/a0a304dc33b49145b21f4808d763822111e67d1c3a32b524a1baf947b6e1/platformdirs-4.9.6-py3-none-any.whl name: platformdirs version: 4.9.6 @@ -1314,35 +1330,50 @@ packages: - pysocks>=1.5.6,!=1.5.7,<2.0 ; extra == 'socks' - backports-zstd>=1.0.0 ; python_full_version < '3.14' and extra == 'zstd' requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/89/1d/8eff589b45bb8190a9d12c49cfad0f176a5cbd1534908a6b5125e2886239/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - name: pydantic-core - version: 2.46.4 - sha256: 7a5f930472650a82629163023e630d160863fce524c616f4e5186e5de9d9a49b +- pypi: https://files.pythonhosted.org/packages/86/0b/9874643f85e0c739ee044967809847ab493f682df8d090fba8b77e2d9ba0/whenever-0.10.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + name: whenever + version: 0.10.5 + sha256: a147b1d643ac3db150a749b3f21e37d778a4bb79b69c26d22f2081954e6f9f40 requires_dist: - - typing-extensions>=4.14.1 - requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/8e/3a/28ba9c1c1ebdbb5f1b94dfebb46f207e52e6a554b7fe4132540fde29a3a0/pyarrow-24.0.0-cp314-cp314-manylinux_2_28_x86_64.whl + - tzdata>=2020.1 ; sys_platform == 'win32' + - tzlocal>=4.0 ; sys_platform != 'darwin' and sys_platform != 'linux' + requires_python: '>=3.10' +- pypi: https://files.pythonhosted.org/packages/8d/61/1c5d1229fa21da4cff5365e41e57177aaac57c563c727f35419b8513d1c1/pyarrow-25.0.1-cp314-cp314-manylinux_2_28_x86_64.whl name: pyarrow - version: 24.0.0 - sha256: ae8a1145af31d903fa9bb166824d7abe9b4681a000b0159c9fb99c11bc11ad26 + version: 25.0.1 + sha256: 9171748cdf796972d85a4b60157c279913e242992e350c90c7450182a9838b2a requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/95/30/5211a831ae054928054b2f79731661087a2bc5c01e825c672b3a4a8f1b3e/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl +- pypi: https://files.pythonhosted.org/packages/8e/26/092079428f86e927e030b2c0ced87df69dbb1c875cdeaa67bf42ea2be746/pydantic_core-2.46.5-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl name: pydantic-core - version: 2.46.4 - sha256: ce5c1d2a8b27468f433ca974829c44060b8097eedc39933e3c206a90ee49c4a9 + version: 2.46.5 + sha256: 5086029a57366b8cf81b130a43908738095c270c21a8d7f0e8bdfdb89718e2f3 requires_dist: - typing-extensions>=4.14.1 requires_python: '>=3.9' +- pypi: https://files.pythonhosted.org/packages/91/41/fc7c829172c60ca22485251eab285f4f1a0d87b486a024c726f21471d86e/duckdb-1.5.5-cp314-cp314-win_amd64.whl + name: duckdb + version: 1.5.5 + sha256: 9dc826c4b50e64f6c4e4d07a3a9cb075ef70ba3899dc43ec5493dc3d7b04b353 + requires_dist: + - ipython ; extra == 'all' + - fsspec ; extra == 'all' + - numpy ; extra == 'all' + - pandas ; extra == 'all' + - pyarrow ; extra == 'all' + - adbc-driver-manager ; extra == 'all' + requires_python: '>=3.10.0' +- pypi: https://files.pythonhosted.org/packages/97/53/2a3c7d562271ec6b6e38e7216b3104899f8aa4180c0713cb8aaf69e29cd5/bidict-0.24.1-py3-none-any.whl + name: bidict + version: 0.24.1 + sha256: fd3eaa737917d8a14f4baa391670c433c4e3f6f5fd2cd99d4bf436437f432364 + requires_dist: + - typing-extensions>=4.0 ; python_full_version < '3.12' + requires_python: '>=3.11' - pypi: https://files.pythonhosted.org/packages/97/c8/c67cb8c70e19ef1960b97b22ed2a1567711de46c4ddf19799923adc836c2/charset_normalizer-3.4.7-cp314-cp314-macosx_10_15_universal2.whl name: charset-normalizer version: 3.4.7 sha256: c36c333c39be2dbca264d7803333c896ab8fa7d4d6f0ab7edb7dfd7aea6e98c0 requires_python: '>=3.7' -- pypi: https://files.pythonhosted.org/packages/99/37/e8730c3587a65eb5645d4aba2d27aae48e8003614d6aaf15dda67f702f1f/bidict-0.23.1-py3-none-any.whl - name: bidict - version: 0.23.1 - sha256: 5dae8d4d79b552a71cbabc7deb25dfe8ce710b17ff41711e13010ead2abfc3e5 - requires_python: '>=3.8' - pypi: https://files.pythonhosted.org/packages/99/85/c091fdee33f20de70d6c8b522743b6f831a2f1cd3ff86de4c6a827c48a76/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl name: charset-normalizer version: 3.4.7 @@ -1356,11 +1387,6 @@ packages: - tomli ; python_full_version < '3.11' and extra == 'toml' - cloudpickle ; platform_python_implementation != 'PyPy' and extra == 'cloudpickle' requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/9e/c2/2d2d5fea814237923f71b36495211f20b43a1576f9a4d6da7e751a64ec6f/pyarrow-24.0.0-cp314-cp314-manylinux_2_28_aarch64.whl - name: pyarrow - version: 24.0.0 - sha256: adbbedc55506cbdabb830890444fb856bfb0060c46c6f8026c6c2f2cf86ae795 - requires_python: '>=3.10' - pypi: https://files.pythonhosted.org/packages/a0/f4/c67b0b3f1b9245e8d266f0f112c500d50e5b4e83cb6f3b71b6528104182a/requests-2.34.2-py3-none-any.whl name: requests version: 2.34.2 @@ -1373,6 +1399,18 @@ packages: - pysocks>=1.5.6,!=1.5.7 ; extra == 'socks' - chardet>=3.0.2,<8 ; extra == 'use-chardet-on-py3' requires_python: '>=3.10' +- pypi: https://files.pythonhosted.org/packages/a1/43/3a5e81d1728f4d234c79bfe385808ee7c04834f7c37a4b5c257459c25614/duckdb-1.5.5-cp314-cp314-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl + name: duckdb + version: 1.5.5 + sha256: fbf0f2d48b43c6c304d00463b463c27ead6c4b01c3c1816b750f728decf71afe + requires_dist: + - ipython ; extra == 'all' + - fsspec ; extra == 'all' + - numpy ; extra == 'all' + - pandas ; extra == 'all' + - pyarrow ; extra == 'all' + - adbc-driver-manager ; extra == 'all' + requires_python: '>=3.10.0' - pypi: https://files.pythonhosted.org/packages/a1/5c/8b56b08db91e569d0a4fbfa3e492ed2026081bdd7e892f63ba1c88a2f548/ruamel_yaml_clib-0.2.15-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl name: ruamel-yaml-clib version: 0.2.15 @@ -1385,18 +1423,21 @@ packages: requires_dist: - cffi>=2.0 requires_python: '>=3.11' -- pypi: https://files.pythonhosted.org/packages/ad/1f/8970b150a4b4365623ae00fc88603491f763c627311ae8031e3111356d6e/pydantic_core-2.46.4-cp314-cp314-macosx_11_0_arm64.whl +- pypi: https://files.pythonhosted.org/packages/aa/da/fe9aa69ddec2a600536f3f6a685a94ce25671038aa53c85ffde1b842d8f6/whenever-0.10.5-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl + name: whenever + version: 0.10.5 + sha256: 1817779c15c4eef5e074edf39f4ffff6655c70921986834af065c7e4d43643bb + requires_dist: + - tzdata>=2020.1 ; sys_platform == 'win32' + - tzlocal>=4.0 ; sys_platform != 'darwin' and sys_platform != 'linux' + requires_python: '>=3.10' +- pypi: https://files.pythonhosted.org/packages/ae/d5/d8a4eb6d6c7f66b91dd37c576d76e9e60fba900caf5372c17bcf949febc2/pydantic_core-2.46.5-cp314-cp314-macosx_11_0_arm64.whl name: pydantic-core - version: 2.46.4 - sha256: 23ace664830ee0bfe014a0c7bc248b1f7f25ed7ad103852c317624a1083af462 + version: 2.46.5 + sha256: 1a353f84de772f423b5ffb11d7ae352fbbef0f446f3c0b0af0f8236d7233606e requires_dist: - typing-extensions>=4.14.1 requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/ad/80/d022a34ff05d2cbedd8ccf841fc1f532ecfa9eb5ed1711b56d0e0ea71fc9/pyarrow-24.0.0-cp314-cp314-macosx_12_0_arm64.whl - name: pyarrow - version: 24.0.0 - sha256: 1cc9057f0319e26333b357e17f3c2c022f1a83739b48a88b25bfd5fa2dc18838 - requires_python: '>=3.10' - pypi: https://files.pythonhosted.org/packages/af/fe/b6045c782f1fd1ae317d2a6ca1884857ce5c20f59befe6ab25a8603c43a7/ruamel_yaml-0.18.17-py3-none-any.whl name: ruamel-yaml version: 0.18.17 @@ -1407,42 +1448,29 @@ packages: - ryd ; extra == 'docs' - mercurial>5.7 ; extra == 'docs' requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/b0/f4/d5d633dd7c5138d8f7c434e6ac2553c831b7fb658494efa8d0bc73df8623/duckdb-1.5.4-cp314-cp314-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl - name: duckdb - version: 1.5.4 - sha256: 4d2307a76d199077b0055b354e90e857479461a0d875437535dd4833172c8b6d - requires_dist: - - ipython ; extra == 'all' - - fsspec ; extra == 'all' - - numpy ; extra == 'all' - - pandas ; extra == 'all' - - pyarrow ; extra == 'all' - - adbc-driver-manager ; extra == 'all' - requires_python: '>=3.10.0' - pypi: https://files.pythonhosted.org/packages/b5/64/7660f8a4a8e53c924d0fa05dc3a55c9cee10bbd82b11c5afb27d44b096ce/markupsafe-3.0.3-cp314-cp314-macosx_11_0_arm64.whl name: markupsafe version: 3.0.3 sha256: c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026 requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/b7/57/61356444f6a8c62dec3c3d129abfc53f428de1d484093d1bb381db441231/duckdb-1.5.4-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl - name: duckdb - version: 1.5.4 - sha256: 262f068158beb5943f2c618f4e54b46db8306b959f90dce956f90a89f613673d - requires_dist: - - ipython ; extra == 'all' - - fsspec ; extra == 'all' - - numpy ; extra == 'all' - - pandas ; extra == 'all' - - pyarrow ; extra == 'all' - - adbc-driver-manager ; extra == 'all' - requires_python: '>=3.10.0' -- pypi: https://files.pythonhosted.org/packages/b9/4a/f4e3620f9542b092f31c3de6810e137cc1c01c33a5a25cc3f90a138b98a3/whenever-0.10.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - name: whenever - version: 0.10.0 - sha256: 5219a2663757dec9303fad9328fee2b06a64757cd316cf5fa4060b0bc2e4d032 +- pypi: https://files.pythonhosted.org/packages/b7/75/f3d789dc06011a765d14d86bda799cf72ac1d715b6a6edecaa0d73d95062/pyarrow-25.0.1-cp314-cp314-win_amd64.whl + name: pyarrow + version: 25.0.1 + sha256: f729cfdbd36fd99d543b67a914d2de044c84ebe45be8b34902b299b608c15c8f + requires_python: '>=3.10' +- pypi: https://files.pythonhosted.org/packages/ba/57/6208e66d9256550c2aff75db4a323a855a0d5d2d1bd639526f825d3e08b4/adbc_driver_manager-1.12.0-cp314-cp314-macosx_11_0_arm64.whl + name: adbc-driver-manager + version: 1.12.0 + sha256: 8a77ae39832e67946009816d83c321e540a3024aad1419ccba24ddeb7b6a01f4 requires_dist: - - tzdata>=2020.1 ; sys_platform == 'win32' - - tzlocal>=4.0 ; sys_platform != 'darwin' and sys_platform != 'linux' + - typing-extensions + - pandas ; extra == 'dbapi' + - pyarrow>=14.0.1 ; extra == 'dbapi' + - duckdb ; extra == 'test' + - pandas ; extra == 'test' + - polars ; extra == 'test' + - pyarrow>=14.0.1 ; extra == 'test' + - pytest>=9 ; extra == 'test' requires_python: '>=3.10' - pypi: https://files.pythonhosted.org/packages/bb/92/882c2d30831744296ce713f0feb4c1cd30f346ef747b530b5318715cc367/cffi-2.0.0-cp314-cp314-win_amd64.whl name: cffi @@ -1456,18 +1484,6 @@ packages: version: 0.13.3 sha256: c89c649d79ee40629a9fda55f8ace8c6a1b42deb912b2a8fd8d942ddadb606b0 requires_python: '>=3.8' -- pypi: https://files.pythonhosted.org/packages/c0/26/5be13bbd5c3421dccfc1ad4ca9da4b97c5a3ddd73f66542092f3167ec52c/duckdb-1.5.4-cp314-cp314-win_amd64.whl - name: duckdb - version: 1.5.4 - sha256: 6dcbb81a1276bc48deb4d562bce4f8895e4fc6348750a096e30052345c6d6552 - requires_dist: - - ipython ; extra == 'all' - - fsspec ; extra == 'all' - - numpy ; extra == 'all' - - pandas ; extra == 'all' - - pyarrow ; extra == 'all' - - adbc-driver-manager ; extra == 'all' - requires_python: '>=3.10.0' - pypi: https://files.pythonhosted.org/packages/c2/14/e2a54fabd4f08cd7af1c07030603c3356b74da07f7cc056e600436edfa17/tzlocal-5.3.1-py3-none-any.whl name: tzlocal version: 5.3.1 @@ -1480,14 +1496,6 @@ packages: - check-manifest ; extra == 'devenv' - zest-releaser ; extra == 'devenv' requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/c5/b2/8ad678802988ac7ad4937372cf8562f5c267d8ce605194a9409d4c1b9d82/whenever-0.10.0-cp314-cp314-win_amd64.whl - name: whenever - version: 0.10.0 - sha256: 2a214d0d72db76611034a18f5d103663131f0d5b7a2518d571dbf121d766f446 - requires_dist: - - tzdata>=2020.1 ; sys_platform == 'win32' - - tzlocal>=4.0 ; sys_platform != 'darwin' and sys_platform != 'linux' - requires_python: '>=3.10' - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl name: iniconfig version: 2.3.0 @@ -1498,6 +1506,20 @@ packages: version: '2026.2' sha256: bbe9af844f658da81a5f95019480da3a89415801f6cc966806612cc7169bffe7 requires_python: '>=2' +- pypi: https://files.pythonhosted.org/packages/cf/f7/7612d078d935344aee679a44a6283de6aae9008eb8e0ef80e475dd12dffa/adbc_driver_manager-1.12.0-cp314-cp314-win_amd64.whl + name: adbc-driver-manager + version: 1.12.0 + sha256: 57f5101fb2a853b1ffb81ff807b5e29a51ba14c64032eb0038b8dfd433b6d533 + requires_dist: + - typing-extensions + - pandas ; extra == 'dbapi' + - pyarrow>=14.0.1 ; extra == 'dbapi' + - duckdb ; extra == 'test' + - pandas ; extra == 'test' + - polars ; extra == 'test' + - pyarrow>=14.0.1 ; extra == 'test' + - pytest>=9 ; extra == 'test' + requires_python: '>=3.10' - pypi: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl name: colorama version: 0.4.6 @@ -1524,35 +1546,23 @@ packages: requires_dist: - pycparser ; implementation_name != 'PyPy' requires_python: '>=3.9' +- pypi: https://files.pythonhosted.org/packages/d9/76/3a01afbc615c1d418c0de58a6b68ac5ce2a8563232c0464bfbc2ce552398/duckdb-1.5.5-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl + name: duckdb + version: 1.5.5 + sha256: 77bbc1e6ba12e1e06f9020117bdf848627ecfdf36f907550e62e008e6109dece + requires_dist: + - ipython ; extra == 'all' + - fsspec ; extra == 'all' + - numpy ; extra == 'all' + - pandas ; extra == 'all' + - pyarrow ; extra == 'all' + - adbc-driver-manager ; extra == 'all' + requires_python: '>=3.10.0' - pypi: https://files.pythonhosted.org/packages/da/ef/e648bfd021127bef5fa12e1720ffed0c6cbb8310c8d9bea7266337ff06de/markupsafe-3.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl name: markupsafe version: 3.0.3 sha256: f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737 requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/db/9e/82a390ecc85f066ff80affa01d195f744e3de60ad4d695b8de31c9a66da3/sqlglot-30.12.0-py3-none-any.whl - name: sqlglot - version: 30.12.0 - sha256: 86cccc610073c645c03e72b55b60ae0518aa3253a7fc3bd56551370d003c6554 - requires_dist: - - duckdb>=0.6 ; extra == 'dev' - - sqlglot-mypy>=2.1.0.post3 ; python_full_version >= '3.10' and extra == 'dev' - - mypy ; python_full_version < '3.10' and extra == 'dev' - - setuptools-scm ; extra == 'dev' - - pandas ; extra == 'dev' - - pandas-stubs ; extra == 'dev' - - python-dateutil ; extra == 'dev' - - pytz ; extra == 'dev' - - pdoc ; extra == 'dev' - - pre-commit ; extra == 'dev' - - ruff==0.15.6 ; extra == 'dev' - - types-python-dateutil ; extra == 'dev' - - types-pytz ; extra == 'dev' - - typing-extensions ; extra == 'dev' - - pyperf ; extra == 'dev' - - sqlglotc==30.12.0 ; python_full_version >= '3.10' and extra == 'c' - - sqlglotrs==0.13.0 ; extra == 'rs' - - sqlglotc==30.12.0 ; python_full_version >= '3.10' and extra == 'rs' - requires_python: '>=3.9' - pypi: https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl name: typing-inspection version: 0.4.2 @@ -1560,6 +1570,20 @@ packages: requires_dist: - typing-extensions>=4.12.0 requires_python: '>=3.9' +- pypi: https://files.pythonhosted.org/packages/df/81/823a71a515078545eab8a4be8381206887129e11b91e9bf51ca2a9eea44d/adbc_driver_manager-1.12.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl + name: adbc-driver-manager + version: 1.12.0 + sha256: fd568c94874c0586d82f99de2bb5d2c02b4fa9c5bafe3d0d8ab353bddf9d2fd6 + requires_dist: + - typing-extensions + - pandas ; extra == 'dbapi' + - pyarrow>=14.0.1 ; extra == 'dbapi' + - duckdb ; extra == 'test' + - pandas ; extra == 'test' + - polars ; extra == 'test' + - pyarrow>=14.0.1 ; extra == 'test' + - pytest>=9 ; extra == 'test' + requires_python: '>=3.10' - pypi: https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl name: packaging version: '26.2' @@ -1572,6 +1596,18 @@ packages: requires_dist: - cffi>=2.0 requires_python: '>=3.11' +- pypi: https://files.pythonhosted.org/packages/eb/47/c95ffc2009878c7aac0c5e08528022dcb885933252a88b5f170058014464/pydantic-2.13.5-py3-none-any.whl + name: pydantic + version: 2.13.5 + sha256: 346a034f080da3755d8e9cb5e00e8b07de1d39e4f6e2c87d8ab7cafa0b269a73 + requires_dist: + - annotated-types>=0.6.0 + - pydantic-core==2.46.5 + - typing-extensions>=4.14.1 + - typing-inspection>=0.4.2 + - email-validator>=2.0.0 ; extra == 'email' + - tzdata ; python_full_version >= '3.9' and sys_platform == 'win32' and extra == 'timezone' + requires_python: '>=3.9' - pypi: https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl name: pygments version: 2.20.0 @@ -1579,44 +1615,10 @@ packages: requires_dist: - colorama>=0.4.6 ; extra == 'windows-terminal' requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/f5/eb/2b3ef4807ceffcd7a447386350f180e8a130e87a642dd3f74c159eaa2573/whenever-0.10.0-cp314-cp314-macosx_11_0_arm64.whl - name: whenever - version: 0.10.0 - sha256: 5a3c0712e41512c8063da2ea8da28b0db2445c74514143f464ccb44c907ac1ef - requires_dist: - - tzdata>=2020.1 ; sys_platform == 'win32' - - tzlocal>=4.0 ; sys_platform != 'darwin' and sys_platform != 'linux' - requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/fa/c3/bd62e3094a07bb5a3eebd4e185953df02e1b3582091872457899a1a12d74/adbc_driver_manager-1.11.0-cp314-cp314-macosx_11_0_arm64.whl - name: adbc-driver-manager - version: 1.11.0 - sha256: 4b4293fc88d0683b6ea9fe1b7d7498c5ae9b4f53a93369c760cfa753a22039c0 - requires_dist: - - typing-extensions - - pandas ; extra == 'dbapi' - - pyarrow>=14.0.1 ; extra == 'dbapi' - - duckdb ; extra == 'test' - - pandas ; extra == 'test' - - polars ; extra == 'test' - - pyarrow>=14.0.1 ; extra == 'test' - - pytest>=9 ; extra == 'test' - requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/fc/b6/6b8de4c0a7d7ab3004c439c80c5c1e0a3e8d78bbae19379b01960383d9e5/pydantic_core-2.46.4-cp314-cp314-win_amd64.whl +- pypi: https://files.pythonhosted.org/packages/f7/3c/60674207246bc0a4009d2391b7c7251c7159f279c8d2ab8aae8ef46f3dee/pydantic_core-2.46.5-cp314-cp314-win_amd64.whl name: pydantic-core - version: 2.46.4 - sha256: 811ff8e9c313ab425368bcbb36e5c4ebd7108c2bbf4e4089cfbb0b01eff63fac + version: 2.46.5 + sha256: fa10ef4112775900e7a0661068635eb67b2ab824fbde764de6e0e21982a93db0 requires_dist: - typing-extensions>=4.14.1 requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/fd/7b/122376b1fd3c62c1ed9dc80c931ace4844b3c55407b6fb2d199377c9736f/pydantic-2.13.4-py3-none-any.whl - name: pydantic - version: 2.13.4 - sha256: 45a282cde31d808236fd7ea9d919b128653c8b38b393d1c4ab335c62924d9aba - requires_dist: - - annotated-types>=0.6.0 - - pydantic-core==2.46.4 - - typing-extensions>=4.14.1 - - typing-inspection>=0.4.2 - - email-validator>=2.0.0 ; extra == 'email' - - tzdata ; python_full_version >= '3.9' and sys_platform == 'win32' and extra == 'timezone' - requires_python: '>=3.9' diff --git a/src/adbc_driver_quack.cc b/src/adbc_driver_quack.cc index b457859..ac33302 100644 --- a/src/adbc_driver_quack.cc +++ b/src/adbc_driver_quack.cc @@ -650,8 +650,31 @@ void CloseConnectionState(ConnectionState* state) { state->transaction_active = false; } -AdbcStatusCode RunDuckDbQuery(ConnectionState* state, std::string const& sql, - AdbcError* error) { +enum class IngestConflict { None, Create, Append }; + +AdbcStatusCode DuckDbQueryError(AdbcError* error, duckdb_error_type error_type, + std::string message, + IngestConflict ingest_conflict) { + bool const create_conflict = + ingest_conflict == IngestConflict::Create && + (error_type == DUCKDB_ERROR_CATALOG || + error_type == DUCKDB_ERROR_INVALID_INPUT) && + message.find("already exists") != std::string::npos; + bool const schema_conflict = + ingest_conflict == IngestConflict::Append && + error_type == DUCKDB_ERROR_BINDER && + message.find(" columns but ") != std::string::npos && + message.find(" values were supplied") != std::string::npos; + if (create_conflict || schema_conflict) { + return StatusError(error, ADBC_STATUS_ALREADY_EXISTS, std::move(message), + static_cast(error_type)); + } + return IoError(error, std::move(message), static_cast(error_type)); +} + +AdbcStatusCode RunDuckDbQuery( + ConnectionState* state, std::string const& sql, AdbcError* error, + IngestConflict ingest_conflict = IngestConflict::None) { duckdb_result result; duckdb_state const query_state = duckdb_query(state->connection, sql.c_str(), &result); @@ -659,10 +682,10 @@ AdbcStatusCode RunDuckDbQuery(ConnectionState* state, std::string const& sql, char const* result_error = duckdb_result_error(&result); std::string message = result_error != nullptr ? result_error : "DuckDB query failed"; - auto const error_type = - static_cast(duckdb_result_error_type(&result)); + auto const error_type = duckdb_result_error_type(&result); duckdb_destroy_result(&result); - return IoError(error, std::move(message), error_type); + return DuckDbQueryError(error, error_type, std::move(message), + ingest_conflict); } duckdb_destroy_result(&result); return Ok(error); @@ -687,9 +710,9 @@ bool IsNotFoundDuckDbError(duckdb_error_type error_type, lower_message.find("no catalog + schema named") != std::string::npos; } -AdbcStatusCode RunDuckDbQueryAllowNotFound(ConnectionState* state, - std::string const& sql, - AdbcError* error) { +AdbcStatusCode RunDuckDbQueryAllowNotFound( + ConnectionState* state, std::string const& sql, AdbcError* error, + IngestConflict ingest_conflict = IngestConflict::None) { duckdb_result result; duckdb_state const query_state = duckdb_query(state->connection, sql.c_str(), &result); @@ -704,16 +727,18 @@ AdbcStatusCode RunDuckDbQueryAllowNotFound(ConnectionState* state, if (IsNotFoundDuckDbError(result_error_type, message)) { return NotFound(error, std::move(message), error_type); } - return IoError(error, std::move(message), error_type); + return DuckDbQueryError(error, result_error_type, std::move(message), + ingest_conflict); } duckdb_destroy_result(&result); return Ok(error); } -AdbcStatusCode RunRemoteQuery(ConnectionState* state, std::string const& sql, - AdbcError* error) { +AdbcStatusCode RunRemoteQuery( + ConnectionState* state, std::string const& sql, AdbcError* error, + IngestConflict ingest_conflict = IngestConflict::None) { return RunDuckDbQuery(state, adbc_driver_quack::BuildRemoteQuerySql(sql), - error); + error, ingest_conflict); } AdbcStatusCode RunRemoteQueryAllowNotFound(ConnectionState* state, @@ -842,9 +867,9 @@ AdbcStatusCode ExecuteBulkIngest(StatementState* state, int64_t* rows_affected, std::string const create_columns = " (" + JoinColumnDefinitions(column_definitions) + ")"; if (state->ingest_mode == ADBC_INGEST_OPTION_MODE_CREATE) { - status = - RunRemoteQuery(state->connection, - "CREATE TABLE " + server_target + create_columns, error); + status = RunRemoteQuery(state->connection, + "CREATE TABLE " + server_target + create_columns, + error, IngestConflict::Create); if (status == ADBC_STATUS_OK) { status = RunDuckDbQuery(state->connection, "SELECT * FROM quack_clear_cache()", error); @@ -860,7 +885,8 @@ AdbcStatusCode ExecuteBulkIngest(StatementState* state, int64_t* rows_affected, if (status == ADBC_STATUS_OK) { status = RunDuckDbQueryAllowNotFound( state->connection, - "INSERT INTO " + target + " SELECT * FROM " + quoted_data, error); + "INSERT INTO " + target + " SELECT * FROM " + quoted_data, error, + IngestConflict::Append); } } else if (state->ingest_mode == ADBC_INGEST_OPTION_MODE_REPLACE) { status = RunRemoteQuery(state->connection, @@ -890,7 +916,8 @@ AdbcStatusCode ExecuteBulkIngest(StatementState* state, int64_t* rows_affected, if (status == ADBC_STATUS_OK) { status = RunDuckDbQuery( state->connection, - "INSERT INTO " + target + " SELECT * FROM " + quoted_data, error); + "INSERT INTO " + target + " SELECT * FROM " + quoted_data, error, + IngestConflict::Append); } } else { status = InvalidArgument(error, "unsupported bulk ingest mode"); diff --git a/validation/queries/type/select/timestamp0.txtcase b/validation/queries/type/select/timestamp0.txtcase new file mode 100644 index 0000000..15a10fc --- /dev/null +++ b/validation/queries/type/select/timestamp0.txtcase @@ -0,0 +1,33 @@ +// Copyright (c) 2026 ADBC Drivers Contributors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// part: metadata + +[tags] +sql-type-name = "TIMESTAMP_S" +field-type-name = "TIMESTAMP_S" + +// part: setup_query + +CREATE TABLE test_timestamp ( + idx INTEGER, + res TIMESTAMP_S +); + +INSERT INTO test_timestamp (idx, res) VALUES (1, '2023-05-15 13:45:30'); +INSERT INTO test_timestamp (idx, res) VALUES (2, '2000-01-01 00:00:00'); +INSERT INTO test_timestamp (idx, res) VALUES (3, '1969-07-20 20:17:40'); +INSERT INTO test_timestamp (idx, res) VALUES (4, '0001-01-01 00:00:00'); +INSERT INTO test_timestamp (idx, res) VALUES (5, '9999-12-31 23:59:59'); +INSERT INTO test_timestamp (idx, res) VALUES (6, NULL); diff --git a/validation/queries/type/select/timestamp0tz.txtcase b/validation/queries/type/select/timestamp0tz.txtcase new file mode 100644 index 0000000..5736f17 --- /dev/null +++ b/validation/queries/type/select/timestamp0tz.txtcase @@ -0,0 +1,56 @@ +// Copyright (c) 2026 ADBC Drivers Contributors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// part: metadata + +[tags] +sql-type-name = "TIMESTAMPTZ" +field-type-name = "TIMESTAMPTZ" +caveats = ["DuckDB returns TIMESTAMPTZ values at microsecond precision; additional fractional digits are discarded. See https://duckdb.org/docs/current/sql/data_types/timestamp."] + +// part: setup_query + +CREATE TABLE test_timestamptz ( + idx INTEGER, + res TIMESTAMPTZ +); + +INSERT INTO test_timestamptz (idx, res) VALUES (1, TIMESTAMP WITH TIME ZONE '2023-05-15 13:45:30+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (2, TIMESTAMP WITH TIME ZONE '2000-01-01 00:00:00+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (3, TIMESTAMP WITH TIME ZONE '1969-07-20 20:17:40+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (4, TIMESTAMP WITH TIME ZONE '0001-01-01 00:00:00+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (5, TIMESTAMP WITH TIME ZONE '9999-12-31 23:59:59+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (6, NULL); + +// part: expected_schema + +{ + "format": "+s", + "children": [ + { + "name": "res", + "format": "tsu:UTC", + "flags": ["nullable"] + } + ] +} + +// part: expected + +{"res": 1684158330000000} +{"res": 946684800000000} +{"res": -14182940000000} +{"res": -62135596800000000} +{"res": 253402300799000000} +{"res": null} diff --git a/validation/queries/type/select/timestamp1.txtcase b/validation/queries/type/select/timestamp1.txtcase new file mode 100644 index 0000000..61be44e --- /dev/null +++ b/validation/queries/type/select/timestamp1.txtcase @@ -0,0 +1,33 @@ +// Copyright (c) 2026 ADBC Drivers Contributors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// part: metadata + +[tags] +sql-type-name = "TIMESTAMP_MS" +field-type-name = "TIMESTAMP_MS" + +// part: setup_query + +CREATE TABLE test_timestamp ( + idx INTEGER, + res TIMESTAMP_MS +); + +INSERT INTO test_timestamp (idx, res) VALUES (1, '2023-05-15 13:45:30.1'); +INSERT INTO test_timestamp (idx, res) VALUES (2, '2000-01-01 00:00:00.2'); +INSERT INTO test_timestamp (idx, res) VALUES (3, '1969-07-20 20:17:40.3'); +INSERT INTO test_timestamp (idx, res) VALUES (4, '0001-01-01 00:00:00.0'); +INSERT INTO test_timestamp (idx, res) VALUES (5, '9999-12-31 23:59:59.9'); +INSERT INTO test_timestamp (idx, res) VALUES (6, NULL); diff --git a/validation/queries/type/select/timestamp1tz.txtcase b/validation/queries/type/select/timestamp1tz.txtcase new file mode 100644 index 0000000..e01ade9 --- /dev/null +++ b/validation/queries/type/select/timestamp1tz.txtcase @@ -0,0 +1,56 @@ +// Copyright (c) 2026 ADBC Drivers Contributors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// part: metadata + +[tags] +sql-type-name = "TIMESTAMPTZ" +field-type-name = "TIMESTAMPTZ" +caveats = ["DuckDB returns TIMESTAMPTZ values at microsecond precision; additional fractional digits are discarded. See https://duckdb.org/docs/current/sql/data_types/timestamp."] + +// part: setup_query + +CREATE TABLE test_timestamptz ( + idx INTEGER, + res TIMESTAMPTZ +); + +INSERT INTO test_timestamptz (idx, res) VALUES (1, TIMESTAMP WITH TIME ZONE '2023-05-15 13:45:30.1+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (2, TIMESTAMP WITH TIME ZONE '2000-01-01 00:00:00.2+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (3, TIMESTAMP WITH TIME ZONE '1969-07-20 20:17:40.3+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (4, TIMESTAMP WITH TIME ZONE '0001-01-01 00:00:00.0+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (5, TIMESTAMP WITH TIME ZONE '9999-12-31 23:59:59.9+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (6, NULL); + +// part: expected_schema + +{ + "format": "+s", + "children": [ + { + "name": "res", + "format": "tsu:UTC", + "flags": ["nullable"] + } + ] +} + +// part: expected + +{"res": 1684158330100000} +{"res": 946684800200000} +{"res": -14182939700000} +{"res": -62135596800000000} +{"res": 253402300799900000} +{"res": null} diff --git a/validation/queries/type/select/timestamp2.txtcase b/validation/queries/type/select/timestamp2.txtcase new file mode 100644 index 0000000..4ceedfe --- /dev/null +++ b/validation/queries/type/select/timestamp2.txtcase @@ -0,0 +1,33 @@ +// Copyright (c) 2026 ADBC Drivers Contributors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// part: metadata + +[tags] +sql-type-name = "TIMESTAMP_MS" +field-type-name = "TIMESTAMP_MS" + +// part: setup_query + +CREATE TABLE test_timestamp ( + idx INTEGER, + res TIMESTAMP_MS +); + +INSERT INTO test_timestamp (idx, res) VALUES (1, '2023-05-15 13:45:30.12'); +INSERT INTO test_timestamp (idx, res) VALUES (2, '2000-01-01 00:00:00.23'); +INSERT INTO test_timestamp (idx, res) VALUES (3, '1969-07-20 20:17:40.34'); +INSERT INTO test_timestamp (idx, res) VALUES (4, '0001-01-01 00:00:00.00'); +INSERT INTO test_timestamp (idx, res) VALUES (5, '9999-12-31 23:59:59.99'); +INSERT INTO test_timestamp (idx, res) VALUES (6, NULL); diff --git a/validation/queries/type/select/timestamp2tz.txtcase b/validation/queries/type/select/timestamp2tz.txtcase new file mode 100644 index 0000000..6dd3f14 --- /dev/null +++ b/validation/queries/type/select/timestamp2tz.txtcase @@ -0,0 +1,56 @@ +// Copyright (c) 2026 ADBC Drivers Contributors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// part: metadata + +[tags] +sql-type-name = "TIMESTAMPTZ" +field-type-name = "TIMESTAMPTZ" +caveats = ["DuckDB returns TIMESTAMPTZ values at microsecond precision; additional fractional digits are discarded. See https://duckdb.org/docs/current/sql/data_types/timestamp."] + +// part: setup_query + +CREATE TABLE test_timestamptz ( + idx INTEGER, + res TIMESTAMPTZ +); + +INSERT INTO test_timestamptz (idx, res) VALUES (1, TIMESTAMP WITH TIME ZONE '2023-05-15 13:45:30.12+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (2, TIMESTAMP WITH TIME ZONE '2000-01-01 00:00:00.23+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (3, TIMESTAMP WITH TIME ZONE '1969-07-20 20:17:40.34+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (4, TIMESTAMP WITH TIME ZONE '0001-01-01 00:00:00.00+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (5, TIMESTAMP WITH TIME ZONE '9999-12-31 23:59:59.99+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (6, NULL); + +// part: expected_schema + +{ + "format": "+s", + "children": [ + { + "name": "res", + "format": "tsu:UTC", + "flags": ["nullable"] + } + ] +} + +// part: expected + +{"res": 1684158330120000} +{"res": 946684800230000} +{"res": -14182939660000} +{"res": -62135596800000000} +{"res": 253402300799990000} +{"res": null} diff --git a/validation/queries/type/select/timestamp3.txtcase b/validation/queries/type/select/timestamp3.txtcase new file mode 100644 index 0000000..b8fdf04 --- /dev/null +++ b/validation/queries/type/select/timestamp3.txtcase @@ -0,0 +1,33 @@ +// Copyright (c) 2026 ADBC Drivers Contributors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// part: metadata + +[tags] +sql-type-name = "TIMESTAMP_MS" +field-type-name = "TIMESTAMP_MS" + +// part: setup_query + +CREATE TABLE test_timestamp ( + idx INTEGER, + res TIMESTAMP_MS +); + +INSERT INTO test_timestamp (idx, res) VALUES (1, '2023-05-15 13:45:30.123'); +INSERT INTO test_timestamp (idx, res) VALUES (2, '2000-01-01 00:00:00.234'); +INSERT INTO test_timestamp (idx, res) VALUES (3, '1969-07-20 20:17:40.345'); +INSERT INTO test_timestamp (idx, res) VALUES (4, '0001-01-01 00:00:00.000'); +INSERT INTO test_timestamp (idx, res) VALUES (5, '9999-12-31 23:59:59.999'); +INSERT INTO test_timestamp (idx, res) VALUES (6, NULL); diff --git a/validation/queries/type/select/timestamp3tz.txtcase b/validation/queries/type/select/timestamp3tz.txtcase new file mode 100644 index 0000000..369c8af --- /dev/null +++ b/validation/queries/type/select/timestamp3tz.txtcase @@ -0,0 +1,56 @@ +// Copyright (c) 2026 ADBC Drivers Contributors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// part: metadata + +[tags] +sql-type-name = "TIMESTAMPTZ" +field-type-name = "TIMESTAMPTZ" +caveats = ["DuckDB returns TIMESTAMPTZ values at microsecond precision; additional fractional digits are discarded. See https://duckdb.org/docs/current/sql/data_types/timestamp."] + +// part: setup_query + +CREATE TABLE test_timestamptz ( + idx INTEGER, + res TIMESTAMPTZ +); + +INSERT INTO test_timestamptz (idx, res) VALUES (1, TIMESTAMP WITH TIME ZONE '2023-05-15 13:45:30.123+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (2, TIMESTAMP WITH TIME ZONE '2000-01-01 00:00:00.234+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (3, TIMESTAMP WITH TIME ZONE '1969-07-20 20:17:40.345+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (4, TIMESTAMP WITH TIME ZONE '0001-01-01 00:00:00.000+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (5, TIMESTAMP WITH TIME ZONE '9999-12-31 23:59:59.999+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (6, NULL); + +// part: expected_schema + +{ + "format": "+s", + "children": [ + { + "name": "res", + "format": "tsu:UTC", + "flags": ["nullable"] + } + ] +} + +// part: expected + +{"res": 1684158330123000} +{"res": 946684800234000} +{"res": -14182939655000} +{"res": -62135596800000000} +{"res": 253402300799999000} +{"res": null} diff --git a/validation/queries/type/select/timestamp4.txtcase b/validation/queries/type/select/timestamp4.txtcase new file mode 100644 index 0000000..2d4886d --- /dev/null +++ b/validation/queries/type/select/timestamp4.txtcase @@ -0,0 +1,33 @@ +// Copyright (c) 2026 ADBC Drivers Contributors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// part: metadata + +[tags] +sql-type-name = "TIMESTAMP" +field-type-name = "TIMESTAMP" + +// part: setup_query + +CREATE TABLE test_timestamp ( + idx INTEGER, + res TIMESTAMP +); + +INSERT INTO test_timestamp (idx, res) VALUES (1, '2023-05-15 13:45:30.1234'); +INSERT INTO test_timestamp (idx, res) VALUES (2, '2000-01-01 00:00:00.2345'); +INSERT INTO test_timestamp (idx, res) VALUES (3, '1969-07-20 20:17:40.3456'); +INSERT INTO test_timestamp (idx, res) VALUES (4, '0001-01-01 00:00:00.0000'); +INSERT INTO test_timestamp (idx, res) VALUES (5, '9999-12-31 23:59:59.9999'); +INSERT INTO test_timestamp (idx, res) VALUES (6, NULL); diff --git a/validation/queries/type/select/timestamp4tz.txtcase b/validation/queries/type/select/timestamp4tz.txtcase new file mode 100644 index 0000000..f0d35e7 --- /dev/null +++ b/validation/queries/type/select/timestamp4tz.txtcase @@ -0,0 +1,34 @@ +// Copyright (c) 2026 ADBC Drivers Contributors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// part: metadata + +[tags] +sql-type-name = "TIMESTAMPTZ" +field-type-name = "TIMESTAMPTZ" +caveats = ["DuckDB returns TIMESTAMPTZ values at microsecond precision; additional fractional digits are discarded. See https://duckdb.org/docs/current/sql/data_types/timestamp."] + +// part: setup_query + +CREATE TABLE test_timestamptz ( + idx INTEGER, + res TIMESTAMPTZ +); + +INSERT INTO test_timestamptz (idx, res) VALUES (1, TIMESTAMP WITH TIME ZONE '2023-05-15 13:45:30.1234+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (2, TIMESTAMP WITH TIME ZONE '2000-01-01 00:00:00.2345+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (3, TIMESTAMP WITH TIME ZONE '1969-07-20 20:17:40.3456+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (4, TIMESTAMP WITH TIME ZONE '0001-01-01 00:00:00.0000+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (5, TIMESTAMP WITH TIME ZONE '9999-12-31 23:59:59.9999+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (6, NULL); diff --git a/validation/queries/type/select/timestamp5.txtcase b/validation/queries/type/select/timestamp5.txtcase new file mode 100644 index 0000000..2b7e443 --- /dev/null +++ b/validation/queries/type/select/timestamp5.txtcase @@ -0,0 +1,33 @@ +// Copyright (c) 2026 ADBC Drivers Contributors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// part: metadata + +[tags] +sql-type-name = "TIMESTAMP" +field-type-name = "TIMESTAMP" + +// part: setup_query + +CREATE TABLE test_timestamp ( + idx INTEGER, + res TIMESTAMP +); + +INSERT INTO test_timestamp (idx, res) VALUES (1, '2023-05-15 13:45:30.12345'); +INSERT INTO test_timestamp (idx, res) VALUES (2, '2000-01-01 00:00:00.23456'); +INSERT INTO test_timestamp (idx, res) VALUES (3, '1969-07-20 20:17:40.34567'); +INSERT INTO test_timestamp (idx, res) VALUES (4, '0001-01-01 00:00:00.00000'); +INSERT INTO test_timestamp (idx, res) VALUES (5, '9999-12-31 23:59:59.99999'); +INSERT INTO test_timestamp (idx, res) VALUES (6, NULL); diff --git a/validation/queries/type/select/timestamp5tz.txtcase b/validation/queries/type/select/timestamp5tz.txtcase new file mode 100644 index 0000000..ec358ef --- /dev/null +++ b/validation/queries/type/select/timestamp5tz.txtcase @@ -0,0 +1,34 @@ +// Copyright (c) 2026 ADBC Drivers Contributors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// part: metadata + +[tags] +sql-type-name = "TIMESTAMPTZ" +field-type-name = "TIMESTAMPTZ" +caveats = ["DuckDB returns TIMESTAMPTZ values at microsecond precision; additional fractional digits are discarded. See https://duckdb.org/docs/current/sql/data_types/timestamp."] + +// part: setup_query + +CREATE TABLE test_timestamptz ( + idx INTEGER, + res TIMESTAMPTZ +); + +INSERT INTO test_timestamptz (idx, res) VALUES (1, TIMESTAMP WITH TIME ZONE '2023-05-15 13:45:30.12345+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (2, TIMESTAMP WITH TIME ZONE '2000-01-01 00:00:00.23456+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (3, TIMESTAMP WITH TIME ZONE '1969-07-20 20:17:40.34567+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (4, TIMESTAMP WITH TIME ZONE '0001-01-01 00:00:00.00000+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (5, TIMESTAMP WITH TIME ZONE '9999-12-31 23:59:59.99999+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (6, NULL); diff --git a/validation/queries/type/select/timestamp6.txtcase b/validation/queries/type/select/timestamp6.txtcase new file mode 100644 index 0000000..60ef64f --- /dev/null +++ b/validation/queries/type/select/timestamp6.txtcase @@ -0,0 +1,34 @@ +// Copyright (c) 2026 ADBC Drivers Contributors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// part: metadata + +[tags] +sql-type-name = "TIMESTAMP" +field-type-name = "TIMESTAMP" + +// part: setup_query + +CREATE TABLE test_timestamp ( + idx INTEGER, + res TIMESTAMP +); + +INSERT INTO test_timestamp (idx, res) VALUES (1, '2023-05-15 13:45:30'); +INSERT INTO test_timestamp (idx, res) VALUES (2, '2000-01-01 00:00:00'); +INSERT INTO test_timestamp (idx, res) VALUES (3, '1969-07-20 20:17:40'); +INSERT INTO test_timestamp (idx, res) VALUES (4, '9999-12-31 23:59:59'); +INSERT INTO test_timestamp (idx, res) VALUES (5, NULL); +INSERT INTO test_timestamp (idx, res) VALUES (6, '0001-01-01 00:00:00.000000'); +INSERT INTO test_timestamp (idx, res) VALUES (7, '2023-05-15 13:45:30.123456'); diff --git a/validation/queries/type/select/timestamp6tz.txtcase b/validation/queries/type/select/timestamp6tz.txtcase new file mode 100644 index 0000000..2cd809e --- /dev/null +++ b/validation/queries/type/select/timestamp6tz.txtcase @@ -0,0 +1,34 @@ +// Copyright (c) 2026 ADBC Drivers Contributors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// part: metadata + +[tags] +sql-type-name = "TIMESTAMPTZ" +field-type-name = "TIMESTAMPTZ" + +// part: setup_query + +CREATE TABLE test_timestamptz ( + idx INTEGER, + res TIMESTAMPTZ +); + +INSERT INTO test_timestamptz (idx, res) VALUES (1, TIMESTAMP WITH TIME ZONE '2023-05-15 13:45:30+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (2, TIMESTAMP WITH TIME ZONE '2000-01-01 00:00:00+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (3, TIMESTAMP WITH TIME ZONE '1969-07-20 20:17:40+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (4, TIMESTAMP WITH TIME ZONE '9999-12-31 23:59:59+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (5, NULL); +INSERT INTO test_timestamptz (idx, res) VALUES (6, TIMESTAMP WITH TIME ZONE '0001-01-01 00:00:00.000000+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (7, TIMESTAMP WITH TIME ZONE '2023-05-15 13:45:30.123456+00'); diff --git a/validation/queries/type/select/timestamp7.txtcase b/validation/queries/type/select/timestamp7.txtcase new file mode 100644 index 0000000..f33224a --- /dev/null +++ b/validation/queries/type/select/timestamp7.txtcase @@ -0,0 +1,33 @@ +// Copyright (c) 2026 ADBC Drivers Contributors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// part: metadata + +[tags] +sql-type-name = "TIMESTAMP_NS" +field-type-name = "TIMESTAMP_NS" + +// part: setup_query + +CREATE TABLE test_timestamp ( + idx INTEGER, + res TIMESTAMP_NS +); + +INSERT INTO test_timestamp (idx, res) VALUES (1, '2023-05-15 13:45:30.1234567'); +INSERT INTO test_timestamp (idx, res) VALUES (2, '2000-01-01 00:00:00.2345678'); +INSERT INTO test_timestamp (idx, res) VALUES (3, '1969-07-20 20:17:40.3456789'); +INSERT INTO test_timestamp (idx, res) VALUES (4, '1677-09-21 00:12:43.2'); +INSERT INTO test_timestamp (idx, res) VALUES (5, '2262-04-11 23:47:16.8'); +INSERT INTO test_timestamp (idx, res) VALUES (6, NULL); diff --git a/validation/queries/type/select/timestamp7tz.txtcase b/validation/queries/type/select/timestamp7tz.txtcase new file mode 100644 index 0000000..0e07175 --- /dev/null +++ b/validation/queries/type/select/timestamp7tz.txtcase @@ -0,0 +1,57 @@ +// Copyright (c) 2026 ADBC Drivers Contributors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// part: metadata + +[tags] +sql-type-name = "TIMESTAMPTZ" +field-type-name = "TIMESTAMPTZ" +caveats = ["DuckDB returns TIMESTAMPTZ values at microsecond precision; additional fractional digits are discarded. See https://duckdb.org/docs/current/sql/data_types/timestamp."] +partial-support = true + +// part: setup_query + +CREATE TABLE test_timestamptz ( + idx INTEGER, + res TIMESTAMPTZ +); + +INSERT INTO test_timestamptz (idx, res) VALUES (1, TIMESTAMP WITH TIME ZONE '2023-05-15 13:45:30.1234567+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (2, TIMESTAMP WITH TIME ZONE '2000-01-01 00:00:00.2345678+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (3, TIMESTAMP WITH TIME ZONE '1969-07-20 20:17:40.3456789+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (4, TIMESTAMP WITH TIME ZONE '1677-09-21 00:12:43.2+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (5, TIMESTAMP WITH TIME ZONE '2262-04-11 23:47:16.8+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (6, NULL); + +// part: expected_schema + +{ + "format": "+s", + "children": [ + { + "name": "res", + "format": "tsu:UTC", + "flags": ["nullable"] + } + ] +} + +// part: expected + +{"res": 1684158330123456} +{"res": 946684800234567} +{"res": -14182939654322} +{"res": -9223372036800000} +{"res": 9223372036800000} +{"res": null} diff --git a/validation/queries/type/select/timestamp8.txtcase b/validation/queries/type/select/timestamp8.txtcase new file mode 100644 index 0000000..c1e6fd4 --- /dev/null +++ b/validation/queries/type/select/timestamp8.txtcase @@ -0,0 +1,33 @@ +// Copyright (c) 2026 ADBC Drivers Contributors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// part: metadata + +[tags] +sql-type-name = "TIMESTAMP_NS" +field-type-name = "TIMESTAMP_NS" + +// part: setup_query + +CREATE TABLE test_timestamp ( + idx INTEGER, + res TIMESTAMP_NS +); + +INSERT INTO test_timestamp (idx, res) VALUES (1, '2023-05-15 13:45:30.12345678'); +INSERT INTO test_timestamp (idx, res) VALUES (2, '2000-01-01 00:00:00.23456789'); +INSERT INTO test_timestamp (idx, res) VALUES (3, '1969-07-20 20:17:40.34567890'); +INSERT INTO test_timestamp (idx, res) VALUES (4, '1677-09-21 00:12:43.15'); +INSERT INTO test_timestamp (idx, res) VALUES (5, '2262-04-11 23:47:16.85'); +INSERT INTO test_timestamp (idx, res) VALUES (6, NULL); diff --git a/validation/queries/type/select/timestamp8tz.txtcase b/validation/queries/type/select/timestamp8tz.txtcase new file mode 100644 index 0000000..e025490 --- /dev/null +++ b/validation/queries/type/select/timestamp8tz.txtcase @@ -0,0 +1,57 @@ +// Copyright (c) 2026 ADBC Drivers Contributors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// part: metadata + +[tags] +sql-type-name = "TIMESTAMPTZ" +field-type-name = "TIMESTAMPTZ" +caveats = ["DuckDB returns TIMESTAMPTZ values at microsecond precision; additional fractional digits are discarded. See https://duckdb.org/docs/current/sql/data_types/timestamp."] +partial-support = true + +// part: setup_query + +CREATE TABLE test_timestamptz ( + idx INTEGER, + res TIMESTAMPTZ +); + +INSERT INTO test_timestamptz (idx, res) VALUES (1, TIMESTAMP WITH TIME ZONE '2023-05-15 13:45:30.12345678+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (2, TIMESTAMP WITH TIME ZONE '2000-01-01 00:00:00.23456789+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (3, TIMESTAMP WITH TIME ZONE '1969-07-20 20:17:40.34567890+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (4, TIMESTAMP WITH TIME ZONE '1677-09-21 00:12:43.15+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (5, TIMESTAMP WITH TIME ZONE '2262-04-11 23:47:16.85+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (6, NULL); + +// part: expected_schema + +{ + "format": "+s", + "children": [ + { + "name": "res", + "format": "tsu:UTC", + "flags": ["nullable"] + } + ] +} + +// part: expected + +{"res": 1684158330123456} +{"res": 946684800234567} +{"res": -14182939654322} +{"res": -9223372036850000} +{"res": 9223372036850000} +{"res": null} diff --git a/validation/queries/type/select/timestamp9.txtcase b/validation/queries/type/select/timestamp9.txtcase new file mode 100644 index 0000000..bab5942 --- /dev/null +++ b/validation/queries/type/select/timestamp9.txtcase @@ -0,0 +1,44 @@ +// Copyright (c) 2026 ADBC Drivers Contributors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// part: metadata + +[tags] +sql-type-name = "TIMESTAMP_NS" +field-type-name = "TIMESTAMP_NS" +caveats = ["DuckDB reserves the extreme nanosecond values and cannot parse the full Arrow timestamp range; this case uses nearby finite values. See https://duckdb.org/docs/current/sql/data_types/timestamp#special-values."] +partial-support = true + +// part: setup_query + +CREATE TABLE test_timestamp ( + idx INTEGER, + res TIMESTAMP_NS +); + +INSERT INTO test_timestamp (idx, res) VALUES (1, '2023-05-15 13:45:30.123456789'); +INSERT INTO test_timestamp (idx, res) VALUES (2, '2000-01-01 00:00:00.234567890'); +INSERT INTO test_timestamp (idx, res) VALUES (3, '1969-07-20 20:17:40.345678901'); +INSERT INTO test_timestamp (idx, res) VALUES (4, '1677-09-21 00:12:43.145225000'); +INSERT INTO test_timestamp (idx, res) VALUES (5, '2262-04-11 23:47:16.854775806'); +INSERT INTO test_timestamp (idx, res) VALUES (6, NULL); + +// part: expected + +{"res": 1684158330123456789} +{"res": 946684800234567890} +{"res": -14182939654321099} +{"res": -9223372036854775000} +{"res": 9223372036854775806} +{"res": null} diff --git a/validation/queries/type/select/timestamp9tz.txtcase b/validation/queries/type/select/timestamp9tz.txtcase new file mode 100644 index 0000000..c35162f --- /dev/null +++ b/validation/queries/type/select/timestamp9tz.txtcase @@ -0,0 +1,57 @@ +// Copyright (c) 2026 ADBC Drivers Contributors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// part: metadata + +[tags] +sql-type-name = "TIMESTAMPTZ" +field-type-name = "TIMESTAMPTZ" +caveats = ["DuckDB returns TIMESTAMPTZ values at microsecond precision; additional fractional digits are discarded. See https://duckdb.org/docs/current/sql/data_types/timestamp."] +partial-support = true + +// part: setup_query + +CREATE TABLE test_timestamptz ( + idx INTEGER, + res TIMESTAMPTZ +); + +INSERT INTO test_timestamptz (idx, res) VALUES (1, TIMESTAMP WITH TIME ZONE '2023-05-15 13:45:30.123456789+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (2, TIMESTAMP WITH TIME ZONE '2000-01-01 00:00:00.234567890+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (3, TIMESTAMP WITH TIME ZONE '1969-07-20 20:17:40.345678901+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (4, TIMESTAMP WITH TIME ZONE '1677-09-21 00:12:43.145224192+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (5, TIMESTAMP WITH TIME ZONE '2262-04-11 23:47:16.854775807+00'); +INSERT INTO test_timestamptz (idx, res) VALUES (6, NULL); + +// part: expected_schema + +{ + "format": "+s", + "children": [ + { + "name": "res", + "format": "tsu:UTC", + "flags": ["nullable"] + } + ] +} + +// part: expected + +{"res": 1684158330123456} +{"res": 946684800234567} +{"res": -14182939654322} +{"res": -9223372036854776} +{"res": 9223372036854775} +{"res": null} diff --git a/validation/tests/test_ingest.py b/validation/tests/test_ingest.py index cfa922b..76893ca 100644 --- a/validation/tests/test_ingest.py +++ b/validation/tests/test_ingest.py @@ -16,6 +16,7 @@ import adbc_drivers_validation.tests.ingest as ingest_tests import pyarrow import pytest +from adbc_drivers_validation import model from adbc_drivers_validation.utils import execute_query_without_prepare from .quack import get_quirks @@ -27,6 +28,28 @@ def pytest_generate_tests(metafunc) -> None: class TestIngest(ingest_tests.TestIngest): + def test_append_schema_mismatch(self, driver, conn, query) -> None: + subquery = query.query + assert isinstance(subquery, model.IngestQuery) + + table_name = ingest_tests.make_table_name("test_ingest_append_mismatch", query) + data = subquery.input() + mismatched = data.append_column( + "adbc_extra_column", pyarrow.array([0] * len(data), type=pyarrow.int64()) + ) + + with conn.cursor() as cursor: + driver.try_drop_table(cursor, table_name=table_name) + with driver.setup_statement(query, cursor): + cursor.adbc_ingest(table_name, data, mode="create") + with pytest.raises(adbc_driver_manager.dbapi.Error) as excinfo: + cursor.adbc_ingest(table_name, mismatched, mode="append") + + assert ( + excinfo.value.status_code + == adbc_driver_manager.AdbcStatusCode.ALREADY_EXISTS + ) + @pytest.mark.requires_features(["statement_bulk_ingest", "connection_transactions"]) def test_bulk_ingest_rolls_back_with_manual_transaction( self, driver, driver_path: str, db_kwargs: dict diff --git a/validation/tests/test_statement.py b/validation/tests/test_statement.py index dba40d7..921a78d 100644 --- a/validation/tests/test_statement.py +++ b/validation/tests/test_statement.py @@ -13,7 +13,6 @@ # limitations under the License. import adbc_drivers_validation.tests.statement as statement_tests -import pytest from .quack import get_quirks @@ -24,6 +23,4 @@ def pytest_generate_tests(metafunc) -> None: class TestStatement(statement_tests.TestStatement): - @pytest.mark.skip(reason="execute_schema not supported") - def test_execute_schema_noalias(self, driver, conn, sample_table: str) -> None: - super().test_execute_schema_noalias(driver, conn, sample_table) + pass