duckdb / duckdb/duckdb-python

ColumnExpression doesn't escape column name containing `.`

Offen
#46 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Python
Sterne
187
Forks
112
Ø Merge
13 Std. 29 Min.
Gemergte PRs (30 T.)
17

Beschreibung

### What happens?

If a column name contains a `'.'` I can't select it with `duckdb.ColumnExpression`. Should `ColumnExpression` not do the escaping for us, so we can just pass the column name?

At least, that's what happens for column names that contains spaces

### To Reproduce

```python
import duckdb

rel = duckdb.sql("""select * from values (1, 2), (3, 4) df(a, "b.a")""")
rel.select(duckdb.ColumnExpression('b.a'))
```
```python-traceback
---------------------------------------------------------------------------
BinderException Traceback (most recent call last)
Cell In[3], line 1
----> 1 rel.select(duckdb.ColumnExpression('b.a'))

BinderException: Binder Error: Referenced table "b" not found!
Candidate tables: "unnamed_relation_0ba05ea8514d33bd"
```

### OS:

linux

### DuckDB Package Version:

1.3.2

### Python Version:

3.12

### Full Name:

Marco Gorelli

### Affiliation:

Quansight Labs

### What is the latest build you tested with? If possible, we recommend testing with the latest nightly build.

I have tested with a nightly build

### Did you include all relevant data sets for reproducing the issue?

No - Other reason (please specify in the issue body)

### Did you include all code required to reproduce the issue?

- [x] Yes, I have

### Did you include all relevant configuration to reproduce the issue?

- [x] Yes, I have

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.