snowflakedb / snowflakedb/snowflake-connector-python

SNOW-3818968: Does not compile out of the box on FreeBSD due to \"ENODATA not defined in errno.h\"

Open
#2,967 2 comments 0 reactions 1 assignee View on GitHub

@sfc-gh-snow-drivers-warsaw-dl is already working on this.

Since Jul 28, 2026.

bug status-triage_done
Dominant language
Python
Stars
730
Forks
574
Avg merge
5h 45m
Merged PRs (30d)
16

Description

Python version

Python 3.10.20 (main, Jun 20 2026, 01:08:14) [Clang 19.1.7 (https://github.com/llvm/llvm-project.git llvmorg-19.1.7-0-gcd7080

Operating system and processor architecture

FreeBSD-14.4-STABLE-amd64-64bit-ELF

Installed packages
build==1.5.0
cachetools==7.1.4
certifi==2026.2.25
charset-normalizer==3.4.6
colorama==0.4.6
Cython==3.2.8
distlib==0.4.3
filelock==3.31.2
idna==3.11
maturin==1.14.1
meson==1.10.2
packaging==26.2
platformdirs==4.10.1
pluggy==1.6.0
pyproject-api==1.10.1
pyproject_hooks==1.2.0
python-discovery==1.4.4
requests==2.32.5
sqlite3==3.10.20
tomli==2.4.1
tomli_w==1.2.0
tox==4.57.2
truststore==0.10.4
typing_extensions==4.16.0
urllib3==2.6.3
virtualenv==21.6.1
What did you do?
Building a wheel from source, fails to compile because there is no ENODATA on FreeBSD:

      src/snowflake/connector/nanoarrow_cpp/ArrowIterator/flatcc.c:1135:17:
      warning: code will never be executed [-Wunreachable-code]
       1135 |     if (!(vt_ = reserve_buffer(B, flatcc_builder_alloc_vb,
      B->vb_end, vt_size,
            |                 ^~~~~~~~~~~~~~
      1 warning generated.
      src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow_ipc.c:32046:12:
      error: use of undeclared identifier 'ENODATA'
       32046 |     return ENODATA;
             |            ^
      src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow_ipc.c:33031:12:
      error: use of undeclared identifier 'ENODATA'
       33031 |     return ENODATA;
             |            ^
      src/snowflake/connector/nanoarrow_cpp/ArrowIterator/nanoarrow_ipc.c:33183:17:
      error: use of undeclared identifier 'ENODATA'
       33183 |   if (result == ENODATA) {
             |                 ^
      3 errors generated.
What did you expect to see?

Wheel file.

Can you set logging to DEBUG and collect the logs?
N/A

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.