Hello, I'd like to report a bug report regarding JSON nulls and underscore-prefixed attributes as we're upgrading from 1.0.17 to 1.1.11.
I read through the behavior at http://docs.sqlalchemy.org/en/latest/changelog/migration_11.html#change-3514 and http://docs.sqlalchemy.org/en/latest/changelog/migration_11.html#behavior-change-3514, all of which makes sense to me. However, this does not seem to work for attributes which are prefixed with an underscore. Example: class A(db.Model): __tablename__ = 'a' id = db.Column(db.Integer, primary_key=True) column1 = db.Column('column1', JSON, nullable=False) _column2 = db.Column('column2', JSON, nullable=False) # Succeeds db.session.add(A(column1=[], _column2=[])) db.session.flush() # Succeeds db.session.add(A(column1=None, _column2=[])) db.session.flush() # Fails with integrity error db.session.add(A(column1=[], _column2=None)) db.session.flush() (psycopg2.IntegrityError) null value in column "column2" violates not-null constraint DETAIL: Failing row contains (5, [], null). [SQL: '-- manage.py:1242 in <module>\nINSERT INTO a (column1) VALUES (%(column1)s) RETURNING a.id'] [parameters: {'column1': '[]'}] Using db.Column('column2', JSON, nullable=False, default=JSON.NULL) ends up sending a JSON NULL, so basically it looks like it is ignoring explicitly set None values for attributes that start with an underscore. This is not workflow blocking for us (I will just change our usages to also use default=JSON.NULL), but wanted to file a bug report in case it's something others run into as well! -- SQLAlchemy - The Python SQL Toolkit and Object Relational Mapper http://www.sqlalchemy.org/ To post example code, please provide an MCVE: Minimal, Complete, and Verifiable Example. See http://stackoverflow.com/help/mcve for a full description. --- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at https://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.