Skip to content

Microsoft SQL Server Connection with ConnectorX throwing timed out bb8 #528

@ryanvdw1997

Description

@ryanvdw1997

What language are you using?

Python

What version are you using?

polars version 0.18.15
connectorx version 0.3.1

What database are you using?

Microsoft SQL Server

What dataframe are you using?

Arrow

Can you describe your bug?

It takes a while to run read_database and then ultimately times out

What are the steps to reproduce the behavior?

Just using an MSSQL server connection uri and running read_database with a basic query

Database setup if the error only happens on specific data or data type

N/A

Example query / code
db_str = f"mssql://{username}:{password}@{server}:1433/{database}?driver=SQL+Server&trusted_connection=no"
pl.read_database(query="select * from foo", connection=db_str)

What is the error?

RuntimeError                              Traceback (most recent call last)
Input In [9], in <cell line: 7>()
      5 driver = '{ODBC Driver 17 for SQL Server}'
      6 db_str = f"mssql://{username}:{password}@{server}:1433/{database}?driver=SQL+Server&trusted_connection=no"
----> 7 pl.read_database(query="select * from player", connection=db_str)

File ~\anaconda3\lib\site-packages\polars\utils\deprecation.py:93, in deprecate_renamed_parameter.<locals>.decorate.<locals>.wrapper(*args, **kwargs)
     88 @wraps(function)
     89 def wrapper(*args: P.args, **kwargs: P.kwargs) -> T:
     90     _rename_keyword_argument(
     91         old_name, new_name, kwargs, function.__name__, version
     92     )
---> 93     return function(*args, **kwargs)

File ~\anaconda3\lib\site-packages\polars\io\database.py:122, in read_database(query, connection, partition_on, partition_range, partition_num, protocol, engine)
    119     engine = "connectorx"
    121 if engine == "connectorx":
--> 122     return _read_sql_connectorx(
    123         query,
    124         connection,
    125         partition_on=partition_on,
    126         partition_range=partition_range,
    127         partition_num=partition_num,
    128         protocol=protocol,
    129     )
    130 elif engine == "adbc":
    131     if not isinstance(query, str):

File ~\anaconda3\lib\site-packages\polars\io\database.py:153, in _read_sql_connectorx(query, connection_uri, partition_on, partition_range, partition_num, protocol)
    148 except ImportError:
    149     raise ImportError(
    150         "connectorx is not installed. Please run `pip install connectorx>=0.3.1`."
    151     ) from None
--> 153 tbl = cx.read_sql(
    154     conn=connection_uri,
    155     query=query,
    156     return_type="arrow2",
    157     partition_on=partition_on,
    158     partition_range=partition_range,
    159     partition_num=partition_num,
    160     protocol=protocol,
    161 )
    162 return from_arrow(tbl)

File ~\anaconda3\lib\site-packages\connectorx\__init__.py:257, in read_sql(conn, query, return_type, protocol, partition_on, partition_range, partition_num, index_col)
    254 except ModuleNotFoundError:
    255     raise ValueError("You need to install pyarrow first")
--> 257 result = _read_sql(
    258     conn,
    259     "arrow" if return_type in {"arrow", "polars"} else "arrow2",
    260     queries=queries,
    261     protocol=protocol,
    262     partition_query=partition_query,
    263 )
    264 df = reconstruct_arrow(result)
    265 if return_type in {"polars", "polars2"}:

RuntimeError: Timed out in bb8

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions