{"html_url": "https://github.com/simonw/datasette/issues/135#issuecomment-349860851", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/135", "id": 349860851, "node_id": "MDEyOklzc3VlQ29tbWVudDM0OTg2MDg1MQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-12-07T04:37:59Z", "updated_at": "2017-12-07T04:37:59Z", "author_association": "OWNER", "body": "I'm testing this like so:\r\n\r\n datasette ~/Dropbox/Development/timezones-api/timezones.db --reload --load-extension /usr/local/lib/mod_spatialite.dylib \r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 275179724, "label": "?_search=x should work if used directly against a FTS virtual table"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/135#issuecomment-349861461", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/135", "id": 349861461, "node_id": "MDEyOklzc3VlQ29tbWVudDM0OTg2MTQ2MQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-12-07T04:43:12Z", "updated_at": "2017-12-07T04:43:12Z", "author_association": "OWNER", "body": "This query looks like it does the right thing:\r\n\r\n select * from sqlite_master\r\n where rootpage = 0\r\n and (\r\n sql like '%VIRTUAL TABLE%USING FTS%content=\"ElementaryGeometries\"%'\r\n or (\r\n tbl_name = \"ElementaryGeometries\"\r\n and sql like '%VIRTUAL TABLE%USING FTS%'\r\n )\r\n ) \r\n\r\nAgainst a table that should not be shown as FTS: https://timezones-now-hrjgkinozh.now.sh/timezones-0d61a90?sql=++++++++select+*+from+sqlite_master%0D%0A++++++++++++where+rootpage+%3D+0%0D%0A++++++++++++and+%28%0D%0A++++++++++++++++sql+like+%27%25VIRTUAL+TABLE%25USING+FTS%25content%3D%22ElementaryGeometries%22%25%27%0D%0A++++++++++++++++or+%28%0D%0A++++++++++++++++++tbl_name+%3D+%22ElementaryGeometries%22%0D%0A++++++++++++++++++and+sql+like+%27%25VIRTUAL+TABLE%25USING+FTS%25%27%0D%0A++++++++++++++++%29%0D%0A++++++++++++%29+\r\n\r\nAgainst a table that SHOULD match: https://sf-trees.now.sh/sf-trees-ebc2ad9?sql=++++++++select+*+from+sqlite_master%0D%0A++++++++++++where+rootpage+%3D+0%0D%0A++++++++++++and+%28%0D%0A++++++++++++++++sql+like+%27%25VIRTUAL+TABLE%25USING+FTS%25content%3D%22Street_Tree_List_fts%22%25%27%0D%0A++++++++++++++++or+%28%0D%0A++++++++++++++++++tbl_name+%3D+%22Street_Tree_List_fts%22%0D%0A++++++++++++++++++and+sql+like+%27%25VIRTUAL+TABLE%25USING+FTS%25%27%0D%0A++++++++++++++++%29%0D%0A++++++++++++%29+", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 275179724, "label": "?_search=x should work if used directly against a FTS virtual table"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/158#issuecomment-349868849", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/158", "id": 349868849, "node_id": "MDEyOklzc3VlQ29tbWVudDM0OTg2ODg0OQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-12-07T05:41:08Z", "updated_at": "2017-12-07T05:41:08Z", "author_association": "OWNER", "body": "I'm happy with this - we have extra_head, content, body_class and title blocks which should provide enough hooks for most reasonable customizations.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 278190981, "label": "Ensure default templates are designed to be extended"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/153#issuecomment-349874052", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/153", "id": 349874052, "node_id": "MDEyOklzc3VlQ29tbWVudDM0OTg3NDA1Mg==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-12-07T06:17:33Z", "updated_at": "2017-12-07T06:17:33Z", "author_association": "OWNER", "body": "In #159 I added a mechanism for easily customizing per-column displays, and I've added documentation showing an example of using this mechanism to set certain columns to display as unescaped HTML: http://datasette.readthedocs.io/en/latest/custom_templates.html#custom-templates\r\n\r\nThis fixes item 3, so I'm closing this ticket!", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 276842536, "label": "Ability to customize presentation of specific columns in HTML view"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/164#issuecomment-349874709", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/164", "id": 349874709, "node_id": "MDEyOklzc3VlQ29tbWVudDM0OTg3NDcwOQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-12-07T06:22:10Z", "updated_at": "2017-12-07T06:22:10Z", "author_association": "OWNER", "body": "Example usage:\r\n\r\n datasette skeleton parlgov.db -m parlgov.json\r\n\r\nGenerates a `parlgov.json` file containing this:\r\n\r\n {\r\n \"title\": null,\r\n \"description\": null,\r\n \"description_html\": null,\r\n \"license\": null,\r\n \"license_url\": null,\r\n \"source\": null,\r\n \"source_url\": null,\r\n \"databases\": {\r\n \"parlgov\": {\r\n \"title\": null,\r\n \"description\": null,\r\n \"description_html\": null,\r\n \"license\": null,\r\n \"license_url\": null,\r\n \"source\": null,\r\n \"source_url\": null,\r\n \"queries\": {},\r\n \"tables\": {\r\n \"info_data_source\": {\r\n \"title\": null,\r\n \"description\": null,\r\n \"description_html\": null,\r\n \"license\": null,\r\n \"license_url\": null,\r\n \"source\": null,\r\n \"source_url\": null\r\n },\r\n \"external_party_castles_mair\": {\r\n \"title\": null,\r\n \"description\": null,\r\n \"description_html\": null,\r\n \"license\": null,\r\n \"license_url\": null,\r\n \"source\": null,\r\n \"source_url\": null\r\n },\r\n \"external_party_chess\": {\r\n \"title\": null,\r\n \"description\": null,\r\n \"description_html\": null,\r\n \"license\": null,\r\n \"license_url\": null,\r\n \"source\": null,\r\n \"source_url\": null\r\n },\r\n \"external_party_huber_inglehart\": {\r\n \"title\": null,\r\n \"description\": null,\r\n \"description_html\": null,\r\n \"license\": null,\r\n \"license_url\": null,\r\n \"source\": null,\r\n \"source_url\": null\r\n },\r\n \"info_table\": {\r\n \"title\": null,\r\n \"description\": null,\r\n \"description_html\": null,\r\n \"license\": null,\r\n \"license_url\": null,\r\n \"source\": null,\r\n \"source_url\": null\r\n },\r\n \"external_party_euprofiler\": {\r\n \"title\": null,\r\n \"description\": null,\r\n \"description_html\": null,\r\n \"license\": null,\r\n \"license_url\": null,\r\n \"source\": null,\r\n \"source_url\": null\r\n },\r\n \"party_family\": {\r\n \"title\": null,\r\n \"description\": null,\r\n \"description_html\": null,\r\n \"license\": null,\r\n \"license_url\": null,\r\n \"source\": null,\r\n \"source_url\": null\r\n },\r\n \"info_id\": {\r\n \"title\": null,\r\n \"description\": null,\r\n \"description_html\": null,\r\n \"license\": null,\r\n \"license_url\": null,\r\n \"source\": null,\r\n \"source_url\": null\r\n },\r\n \"sqlite_stat1\": {\r\n \"title\": null,\r\n \"description\": null,\r\n \"description_html\": null,\r\n \"license\": null,\r\n \"license_url\": null,\r\n \"source\": null,\r\n \"source_url\": null\r\n },\r\n \"external_party_benoit_laver\": {\r\n \"title\": null,\r\n \"description\": null,\r\n \"description_html\": null,\r\n \"license\": null,\r\n \"license_url\": null,\r\n \"source\": null,\r\n \"source_url\": null\r\n },\r\n \"external_country_iso\": {\r\n \"title\": null,\r\n \"description\": null,\r\n \"description_html\": null,\r\n \"license\": null,\r\n \"license_url\": null,\r\n \"source\": null,\r\n \"source_url\": null\r\n },\r\n \"viewcalc_party_position\": {\r\n \"title\": null,\r\n \"description\": null,\r\n \"description_html\": null,\r\n \"license\": null,\r\n \"license_url\": null,\r\n \"source\": null,\r\n \"source_url\": null\r\n },\r\n \"viewcalc_election_parameter\": {\r\n \"title\": null,\r\n \"description\": null,\r\n \"description_html\": null,\r\n \"license\": null,\r\n \"license_url\": null,\r\n \"source\": null,\r\n \"source_url\": null\r\n },\r\n \"viewcalc_parliament_composition\": {\r\n \"title\": null,\r\n \"description\": null,\r\n \"description_html\": null,\r\n \"license\": null,\r\n \"license_url\": null,\r\n \"source\": null,\r\n \"source_url\": null\r\n },\r\n \"viewcalc_country_year_share\": {\r\n \"title\": null,\r\n \"description\": null,\r\n \"description_html\": null,\r\n \"license\": null,\r\n \"license_url\": null,\r\n \"source\": null,\r\n \"source_url\": null\r\n },\r\n \"election\": {\r\n \"title\": null,\r\n \"description\": null,\r\n \"description_html\": null,\r\n \"license\": null,\r\n \"license_url\": null,\r\n \"source\": null,\r\n \"source_url\": null\r\n },\r\n \"politician_president\": {\r\n \"title\": null,\r\n \"description\": null,\r\n \"description_html\": null,\r\n \"license\": null,\r\n \"license_url\": null,\r\n \"source\": null,\r\n \"source_url\": null\r\n },\r\n \"party_name_change\": {\r\n \"title\": null,\r\n \"description\": null,\r\n \"description_html\": null,\r\n \"license\": null,\r\n \"license_url\": null,\r\n \"source\": null,\r\n \"source_url\": null\r\n },\r\n \"external_commissioner_doering\": {\r\n \"title\": null,\r\n \"description\": null,\r\n \"description_html\": null,\r\n \"license\": null,\r\n \"license_url\": null,\r\n \"source\": null,\r\n \"source_url\": null\r\n },\r\n \"external_party_ray\": {\r\n \"title\": null,\r\n \"description\": null,\r\n \"description_html\": null,\r\n \"license\": null,\r\n \"license_url\": null,\r\n \"source\": null,\r\n \"source_url\": null\r\n },\r\n \"party_change\": {\r\n \"title\": null,\r\n \"description\": null,\r\n \"description_html\": null,\r\n \"license\": null,\r\n \"license_url\": null,\r\n \"source\": null,\r\n \"source_url\": null\r\n },\r\n \"cabinet_party\": {\r\n \"title\": null,\r\n \"description\": null,\r\n \"description_html\": null,\r\n \"license\": null,\r\n \"license_url\": null,\r\n \"source\": null,\r\n \"source_url\": null\r\n },\r\n \"external_party_ees\": {\r\n \"title\": null,\r\n \"description\": null,\r\n \"description_html\": null,\r\n \"license\": null,\r\n \"license_url\": null,\r\n \"source\": null,\r\n \"source_url\": null\r\n },\r\n \"party\": {\r\n \"title\": null,\r\n \"description\": null,\r\n \"description_html\": null,\r\n \"license\": null,\r\n \"license_url\": null,\r\n \"source\": null,\r\n \"source_url\": null\r\n },\r\n \"external_party_cmp\": {\r\n \"title\": null,\r\n \"description\": null,\r\n \"description_html\": null,\r\n \"license\": null,\r\n \"license_url\": null,\r\n \"source\": null,\r\n \"source_url\": null\r\n },\r\n \"country\": {\r\n \"title\": null,\r\n \"description\": null,\r\n \"description_html\": null,\r\n \"license\": null,\r\n \"license_url\": null,\r\n \"source\": null,\r\n \"source_url\": null\r\n },\r\n \"cabinet\": {\r\n \"title\": null,\r\n \"description\": null,\r\n \"description_html\": null,\r\n \"license\": null,\r\n \"license_url\": null,\r\n \"source\": null,\r\n \"source_url\": null\r\n },\r\n \"info_variable\": {\r\n \"title\": null,\r\n \"description\": null,\r\n \"description_html\": null,\r\n \"license\": null,\r\n \"license_url\": null,\r\n \"source\": null,\r\n \"source_url\": null\r\n },\r\n \"election_result\": {\r\n \"title\": null,\r\n \"description\": null,\r\n \"description_html\": null,\r\n \"license\": null,\r\n \"license_url\": null,\r\n \"source\": null,\r\n \"source_url\": null\r\n }\r\n }\r\n }\r\n }\r\n }\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 280013907, "label": "datasette skeleton command for kick-starting database and table metadata"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/164#issuecomment-349874844", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/164", "id": 349874844, "node_id": "MDEyOklzc3VlQ29tbWVudDM0OTg3NDg0NA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-12-07T06:22:58Z", "updated_at": "2017-12-07T06:22:58Z", "author_association": "OWNER", "body": "This metadata doesn't yet do anything - need to implement #165", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 280013907, "label": "datasette skeleton command for kick-starting database and table metadata"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/165#issuecomment-350026183", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/165", "id": 350026183, "node_id": "MDEyOklzc3VlQ29tbWVudDM1MDAyNjE4Mw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-12-07T16:47:46Z", "updated_at": "2017-12-07T16:47:46Z", "author_association": "OWNER", "body": "Here's an example metadata.json file illustrating custom per-database and per-\r\ntable metadata:\r\n\r\n {\r\n \"title\": \"Overall datasette title\",\r\n \"description_html\": \"This is a description with HTML.\",\r\n \"databases\": {\r\n \"db1\": {\r\n \"title\": \"First database\",\r\n \"description\": \"This is a string description & has no HTML\",\r\n \"license_url\": \"http://example.com/\",\r\n \t\t\"license\": \"The example license\",\r\n \"queries\": {\r\n \t\"canned_query\": \"select * from table1 limit 3;\"\r\n },\r\n \"tables\": {\r\n \"table1\": {\r\n \"title\": \"Custom title for table1\",\r\n \"description\": \"Tables can have descriptions too\",\r\n \"source\": \"This has a custom source\",\r\n \"source_url\": \"http://example.com/\"\r\n }\r\n }\r\n }\r\n }\r\n }", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 280014287, "label": "metadata.json support for per-database and per-table information"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/165#issuecomment-350026452", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/165", "id": 350026452, "node_id": "MDEyOklzc3VlQ29tbWVudDM1MDAyNjQ1Mg==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-12-07T16:48:34Z", "updated_at": "2017-12-07T16:48:34Z", "author_association": "OWNER", "body": "Needs documentation, see #166 ", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 280014287, "label": "metadata.json support for per-database and per-table information"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/166#issuecomment-350035741", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/166", "id": 350035741, "node_id": "MDEyOklzc3VlQ29tbWVudDM1MDAzNTc0MQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-12-07T17:20:35Z", "updated_at": "2017-12-07T17:20:35Z", "author_association": "OWNER", "body": "http://datasette.readthedocs.io/en/latest/metadata.html\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 280023225, "label": "Documentation for metadata.json and datasette skeleton"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/161#issuecomment-350108113", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/161", "id": 350108113, "node_id": "MDEyOklzc3VlQ29tbWVudDM1MDEwODExMw==", "user": {"value": 388154, "label": "wsxiaoys"}, "created_at": "2017-12-07T22:02:24Z", "updated_at": "2017-12-07T22:02:24Z", "author_association": "NONE", "body": "It's not throwing the validation error anymore, but i still cannot run following with query:\r\n```\r\nWITH RECURSIVE cnt(x) AS (SELECT 1 UNION ALL SELECT x+1 FROM cnt LIMIT 10) SELECT x FROM cnt;\r\n```\r\n\r\nI got `near \"WITH\": syntax error`.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 278814220, "label": "Support WITH query "}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/167#issuecomment-350125953", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/167", "id": 350125953, "node_id": "MDEyOklzc3VlQ29tbWVudDM1MDEyNTk1Mw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2017-12-07T23:25:28Z", "updated_at": "2017-12-07T23:25:28Z", "author_association": "OWNER", "body": "My column/row HTML display logic has got way too convoluted. This is a sign I need to add proper unit tests for it and clean it up.\r\n\r\nThe complexity comes from:\r\n\r\n* Displaying a rowid for tables that do not have a primary key\r\n* Showing an additional Link column for rows with a primary key\r\n* Not displaying that Link column on the individual row pages\r\n* Trying to get foreign keys working correctly in all cases, e.g. #152 ", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 280315352, "label": "Nasty bug: last column not being correctly displayed"}, "performed_via_github_app": null}