- Notifications
You must be signed in to change notification settings - Fork 10
Closed
Description
Describe the bug
When specifying None for a column value in Sender.row(), I see this error message:
Traceback (most recent call last): File "reproduce.py", line 7, in <module> sender.row('test', File "src/questdb/ingress.pyx", line 1237, in questdb.ingress.Sender.row File "src/questdb/ingress.pyx", line 719, in questdb.ingress.Buffer.row File "src/questdb/ingress.pyx", line 654, in questdb.ingress.Buffer._row File "src/questdb/ingress.pyx", line 649, in questdb.ingress.Buffer._row File "src/questdb/ingress.pyx", line 583, in questdb.ingress.Buffer._column TypeError: Unsupported type: <class 'NoneType'>. Must be one of: bool, int, float, str, TimestampMicros, datetime.datetime
To reproduce
Web console:
CREATE TABLE test(data STRING)
reproduce.py:
from questdb.ingress import Sender with Sender('localhost', 9009) as sender: # This works as expected: sender.row('test', columns={'data': 'somedata'} ) # This fails: sender.row('test', columns={'data': None} ) sender.flush()
Expected behaviour:
I would expect a NULL value to be inserted into the table when I specify None
.
I am aware that I can work around this issue by leaving out the column I want to NULL from the columns parameter. However it would be nice if the client library would take care of that. Also, such a workaround fails if the column to be nulled is the only one or if I want to null all columns ("questdb.ingress.IngressError: Must specify at least one symbol or column").
Environment
Linux desktop 5.15.0-41-generic #44-Ubuntu SMP Wed Jun 22 14:20:53 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
questdb-6.4.3-rt-linux-amd64
Python 3.10.4
Metadata
Metadata
Assignees
Labels
No labels