{"sha": "3cce63b59851495b6d9d38936356e21ea8fbad3a", "message": "URL to allow direct database download\n\nIt's just the database URL with .db on the end, e.g. /flights.db\n\nCloses #19", "author_date": "2017-10-25T15:19:32Z", "committer_date": "2017-10-25T15:19:32Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "f1b0521810bbc467721e4dcc5a2ff1bf2a1ddbb8", "message": "Preserve .json through redirects", "author_date": "2017-10-25T15:01:22Z", "committer_date": "2017-10-25T15:01:22Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "d94d4465d7e72e668122f81206397f4f20cf555b", "message": "Double quote around column names\n\nThis means filters still work even with column names that contain spaces", "author_date": "2017-10-25T14:47:20Z", "committer_date": "2017-10-25T14:47:20Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "e55bc3b2fa6e1e8be7b7c1f5b6cb3764713b6faa", "message": "th align left for all tables", "author_date": "2017-10-25T14:46:38Z", "committer_date": "2017-10-25T14:46:38Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "1c5977961f596dae5aaa18c8b2d7a10e9f42a543", "message": "Added glob and like lookups - refs #23", "author_date": "2017-10-25T01:53:01Z", "committer_date": "2017-10-25T01:53:01Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "630b40038ef31b351abc2e39c3a0c7b3648814f8", "message": "Added support for gt, gte, lt, lte lookups\n\nRefs #23", "author_date": "2017-10-25T01:46:49Z", "committer_date": "2017-10-25T01:46:55Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "6823b094066c5cb1dcd3581da2ed877ed72298b7", "message": "Set time limit of 1000ms on SQL queries\n\nUsing the (undocumented in the Python docs) fact that if you return 1 from a\nset_progress_handler callback, SQLite will cancel the current query.\n\nCloses #35", "author_date": "2017-10-25T01:34:54Z", "committer_date": "2017-10-25T01:34:54Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "2fe94641b0b2dc291d1fce3dad0fbf96294b3a32", "message": "Don't try to show row counts for views\n\nAlso handle tables/views with spaces in their name in the URL.", "author_date": "2017-10-25T01:33:12Z", "committer_date": "2017-10-25T01:33:12Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "bd5f3b2ba1a627383d512d613b77d15501dfccc4", "message": "Show time taken at bottom of table page", "author_date": "2017-10-25T01:31:54Z", "committer_date": "2017-10-25T01:31:54Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "3eb79e1a5fa4c164a224ae0adbe0ea16fde35758", "message": "Show total row count at top of table page", "author_date": "2017-10-25T01:31:43Z", "committer_date": "2017-10-25T01:31:43Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "eef213ab4d57622dfc60c8655c0c7a18afcc844f", "message": "Show total number of rows in table", "author_date": "2017-10-25T00:11:36Z", "committer_date": "2017-10-25T00:11:36Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "1ae8ea0f03cfb9f25b1e25f3194c456c3649789c", "message": "Started implementing ?name__contains=X filters\n\nSo far we support __contains=, __startswith=, __endswith= and __exact=\n\nRefs #23", "author_date": "2017-10-25T00:06:23Z", "committer_date": "2017-10-25T00:06:23Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}} {"sha": "4c7379a898df426af0c31159e5cb06d672189301", "message": "Don't crash on weird character encodings\n\nExpecting SQLite columns to all be valid utf8 doesn't work, because we are\ndeailing with all kinds of databases. Instead, we now use the 'replace'\nencoding mode to replace any non-UTF8 characters with a [X] character.", "author_date": "2017-10-25T00:01:34Z", "committer_date": "2017-10-25T00:01:34Z", "raw_author": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "raw_committer": {"value": "2946d096d0cdefdc017559e6b57e87658736e843", "label": "Simon Willison"}, "repo": {"value": 107914493, "label": "datasette"}, "author": {"value": 9599, "label": "simonw"}, "committer": {"value": 9599, "label": "simonw"}}