Pandas shows all columns as object when reading from Dremio via pyodbc

  1. Environment

    • Dremio version: dremio-community-26.0.0

    • Python: Python 3.10.12

    • pyodbc: latest

    • pandas: 2.x

  2. What I’m doing

    python
    

    conn = pyodbc.connect("DSN=Dremio;UID=demo_user;PWD=demo_pass;AuthenticationType=Plain")
    df = pd.read_sql("SELECT * FROM my_table", conn)
    print(df.dtypes)

  3. What I expect
    Pandas should infer correct numeric, date, and boolean types from Dremio.

  4. What actually happens
    All columns come back as object type.

  5. What I’ve tried

    • Casting manually with .astype()

    • Checking column types in Dremio UI (INTEGER, FLOAT, DATE)

  6. Question
    Is there a way for Dremio ODBC to send proper types to pandas via pyodbc, or is manual casting always needed?