chdb-io / chdb

chDB is an in-process OLAP SQL Engine 🚀 powered by ClickHouse
https://clickhouse.com/docs/en/chdb
Apache License 2.0
2.03k stars 72 forks source link

Importing `dbapi` results in error #146

Closed nalgeon closed 9 months ago

nalgeon commented 9 months ago

Describe what's wrong

from chdb import dbapi leads to a TypeError.

Does it reproduce on recent release?

Reproduces on 1.0.0 and 1.0.1.

How to reproduce

Dockerfile:

FROM python:3.11-slim

RUN pip install "chdb==1.0.1"

ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1

Build an image:

docker build --tag chdb/python .

Run:

docker run --rm chdb/python python -c "from chdb import dbapi"

Result:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/local/lib/python3.11/site-packages/chdb/dbapi/__init__.py", line 13, in <module>
    VERSION_STRING = "%d.%d.%d" % chdb_version[:3]
                     ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
TypeError: %d format: a real number is required, not str

Expected behavior

The following example should work as described in the documentation (Python DB-API 2.0 example):

import chdb.dbapi as dbapi
print("chdb driver version: {0}".format(dbapi.get_client_info()))

conn1 = dbapi.connect()
cur1 = conn1.cursor()
cur1.execute('select version()')
print("description: ", cur1.description)
print("data: ", cur1.fetchone())
cur1.close()
conn1.close()