home / github / issue_comments

Menu
  • GraphQL API

issue_comments: 1229279539

This data as json

html_url issue_url id node_id user created_at updated_at author_association body reactions issue performed_via_github_app
https://github.com/simonw/sqlite-utils/pull/468#issuecomment-1229279539 https://api.github.com/repos/simonw/sqlite-utils/issues/468 1229279539 IC_kwDOCGYnMM5JRVEz 9599 2022-08-27T22:24:33Z 2022-08-27T22:24:33Z OWNER Interesting challenge with `default_value`: I need to be able to tell if the default values passed to `.create()` differ from those in the database already. Introspecting that is a bit tricky: ```pycon >>> import sqlite_utils >>> db = sqlite_utils.Database(memory=True) >>> db["blah"].create({"id": int, "name": str}, not_null=("name",), defaults={"name": "bob"}) <Table blah (id, name)> >>> db["blah"].columns [Column(cid=0, name='id', type='INTEGER', notnull=0, default_value=None, is_pk=0), Column(cid=1, name='name', type='TEXT', notnull=1, default_value="'bob'", is_pk=0)] ``` Note how a default value of the Python string `bob` is represented in the results of `PRAGMA table_info()` as `default_value="'bob'"` - it's got single quotes added to it! So comparing default values from introspecting the database needs me to first parse that syntax. This may require a new table introspection method. {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} 1348294436  
Powered by Datasette · Queries took 1.157ms