dremio / dbt-dremio

dbt (data build tool) adapter for the Dremio
Apache License 2.0
44 stars 21 forks source link

[Bug]: Cursor should exit early if now more rows are returned. #235

Open c-thiel opened 4 months ago

c-thiel commented 4 months ago

Is there an existing issue for this?

Current Behavior

On many Operations, Dremio does not return the actual row count of the result sets as "rowCount", but instead a number related to the operation. A good example is an insert: If you insert 1_000_000 rows into a table, Dremio will show a "rowCount" of 1_000_000 (Dremio 24.2.6). However, the result set of course only has one row - the number of inserted rows.

Due to the implementation here: https://github.com/dremio/dbt-dremio/blob/9a9391e8fdfd1d4e03a8d214e5f0647894ecb06d/dbt/adapters/dremio/api/cursor.py#L172

the cursor iterates over hundreds of thousands of empty resultsets.

Expected Behavior

As we cannot count on Dremio returning the number of results in "rowCount" we should probably just break when we hit the first empty batch of results.

Steps To Reproduce

No response

Environment

- OS: K8s
- dbt-dremio: 1.7.0
- Dremio Software: 24.2.6
- Dremio Cloud: -

Relevant log output

No response