)]}'
{"oslo_db/sqlalchemy/types.py":[{"author":{"_account_id":11816,"name":"mike bayer","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"db88f45758a0cc1a782de70657b2bea98ecfa2c4","unresolved":false,"context_lines":[{"line_number":75,"context_line":"    type \u003d list"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"class SoftDeleteInteger(TypeDecorator):"},{"line_number":79,"context_line":"    \"\"\"Coerce a bound param to be a proper integer before passing it to DBAPI."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    Some backends like PostgreSQL are very strict about types and do not"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a74a57a_4d7c21ec","line":78,"updated":"2016-11-28 14:32:23.000000000","message":"how is this specific to \"soft delete\"?  at most, it\u0027s BooleanInt.","commit_id":"8be136528e99d8ea6ae8f1ae8767738b4c876759"},{"author":{"_account_id":11816,"name":"mike bayer","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"15e4d495f9c41a6258e3b0417c12c84eaa3d7039","unresolved":false,"context_lines":[{"line_number":75,"context_line":"    type \u003d list"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"class SoftDeleteInteger(TypeDecorator):"},{"line_number":79,"context_line":"    \"\"\"Coerce a bound param to be a proper integer before passing it to DBAPI."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    Some backends like PostgreSQL are very strict about types and do not"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a74a57a_7c326da8","line":78,"in_reply_to":"5a74a57a_216c4e9b","updated":"2016-11-28 15:38:56.000000000","message":"right i forgot, can we add that to the docstring here?   e.g. \"integer that may in some cases also mirror the primary key of the table so that it can be part of the PK on the history table\" if that\u0027s what it was","commit_id":"8be136528e99d8ea6ae8f1ae8767738b4c876759"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"e1c101af5fd5b3a404f6df13699ae09a35bcdd47","unresolved":false,"context_lines":[{"line_number":75,"context_line":"    type \u003d list"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"class SoftDeleteInteger(TypeDecorator):"},{"line_number":79,"context_line":"    \"\"\"Coerce a bound param to be a proper integer before passing it to DBAPI."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    Some backends like PostgreSQL are very strict about types and do not"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a74a57a_216c4e9b","line":78,"in_reply_to":"5a74a57a_4d7c21ec","updated":"2016-11-28 15:33:54.000000000","message":"So it\u0027s a good question. Actually it\u0027s kind of is: we specifically allow non-boolean values like arbitrary positive integers (this is for historical reasons to allow for the Nova use case: there are unique constraints on something + deleted - we set deleted to the PK value on soft-deletion, if it was a boolean, then we would run into integrity errors).\n\nThus, it\u0027s not really a general purpose BooleanInt.","commit_id":"8be136528e99d8ea6ae8f1ae8767738b4c876759"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"2ef062f4d7239d76fc0573aa1aebfdb0bc75fef6","unresolved":false,"context_lines":[{"line_number":75,"context_line":"    type \u003d list"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"class SoftDeleteInteger(TypeDecorator):"},{"line_number":79,"context_line":"    \"\"\"Coerce a bound param to be a proper integer before passing it to DBAPI."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    Some backends like PostgreSQL are very strict about types and do not"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a74a57a_79d6fa28","line":78,"in_reply_to":"5a74a57a_7c326da8","updated":"2016-11-28 16:46:47.000000000","message":"Done","commit_id":"8be136528e99d8ea6ae8f1ae8767738b4c876759"},{"author":{"_account_id":11816,"name":"mike bayer","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"db88f45758a0cc1a782de70657b2bea98ecfa2c4","unresolved":false,"context_lines":[{"line_number":89,"context_line":"    impl \u003d Integer"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def process_bind_param(self, value, dialect):"},{"line_number":92,"context_line":"        return int(value)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a74a57a_adea1572","line":92,"updated":"2016-11-28 14:32:23.000000000","message":"validate the value is 0, 1, True, False ?  SQLAlchemy\u0027s Boolean does this IIRC.  Also None is a valid value for NULL, unless this type assumes non-NULL.","commit_id":"8be136528e99d8ea6ae8f1ae8767738b4c876759"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"e1c101af5fd5b3a404f6df13699ae09a35bcdd47","unresolved":false,"context_lines":[{"line_number":89,"context_line":"    impl \u003d Integer"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def process_bind_param(self, value, dialect):"},{"line_number":92,"context_line":"        return int(value)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a74a57a_01c3d289","line":92,"in_reply_to":"5a74a57a_adea1572","updated":"2016-11-28 15:33:54.000000000","message":"ah, good point on None, totally forgot about it :(","commit_id":"8be136528e99d8ea6ae8f1ae8767738b4c876759"}]}
