[Sqlalchemy-tickets] Issue #3514: Cannot insert JSON null via bulk_insert_mappings (zzzeek/sqlalche
Brought to you by:
zzzeek
|
From: thiefmaster <iss...@bi...> - 2015-08-17 16:37:32
|
New issue 3514: Cannot insert JSON null via bulk_insert_mappings https://bitbucket.org/zzzeek/sqlalchemy/issues/3514/cannot-insert-json-null-via thiefmaster: ```python from sqlalchemy import * from sqlalchemy.orm import * from sqlalchemy.dialects.postgresql import JSON from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() class A(Base): __tablename__ = 'test_a' id = Column(Integer, primary_key=True) data = Column(JSON(none_as_null=False), nullable=False) # e = create_engine('sqlite:///:memory:', echo=True) e = create_engine('postgresql:///test', echo=True) Base.metadata.create_all(e) s = Session(e) s.bulk_insert_mappings(A, [{'data': 'null'}]) s.bulk_insert_mappings(A, [{'data': None}]) s.commit() ``` output (only relevant parts) ``` 2015-08-17 18:34:06,882 INFO sqlalchemy.engine.base.Engine INSERT INTO test_a (data) VALUES (%(data)s) RETURNING test_a.id 2015-08-17 18:34:06,882 INFO sqlalchemy.engine.base.Engine {'data': '"null"'} 2015-08-17 18:34:06,883 INFO sqlalchemy.engine.base.Engine INSERT INTO test_a DEFAULT VALUES RETURNING test_a.id 2015-08-17 18:34:06,883 INFO sqlalchemy.engine.base.Engine {} ``` So the `None` is never converted to a `'null'` but the `'null'` string is converted to `'"null"'`... |