DuckDB version: v0.10.2,
Python version: 3.11.4
When I am trying to use the DATE_ADD function it raises a ParserException.
To recreate the issue,
data = [['2020-01-01', 4], ['2020-01-02',5]]
p = pd.DataFrame(data, columns=['cdate', 'days'])
print(p.info())
q = """
SELECT DATE_ADD(CAST(p.cdate AS DATE), INTERVAL p.days DAY) pp
FROM p
"""
duckdb.sql(q).df()
which results in
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 2 entries, 0 to 1
Data columns (total 2 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 cdate 2 non-null object
1 days 2 non-null int64
dtypes: int64(1), object(1)
memory usage: 164.0+ bytes
None
---------------------------------------------------------------------------
ParserException Traceback (most recent call last)
Cell In[42], line 8
3 print(p.info())
4 q = """
5 SELECT DATE_ADD(CAST(p.cdate AS DATE), INTERVAL p.days DAY) pp
6 FROM p
7 """
----> 8 duckdb.sql(q).df()
ParserException: Parser Error: syntax error at or near "p"
If I change the line
SELECT DATE_ADD(CAST(p.cdate AS DATE), INTERVAL p.days DAY) pp
to
SELECT DATE_ADD(CAST(p.cdate AS DATE), INTERVAL 5 DAY) pp
it is working as expected. Tried an explicit casting of p.days to INTEGER, which also led to the same exception.