{"html_url": "https://github.com/simonw/datasette/pull/653#issuecomment-582211745", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/653", "id": 582211745, "node_id": "MDEyOklzc3VlQ29tbWVudDU4MjIxMTc0NQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-02-05T02:28:05Z", "updated_at": "2020-02-05T02:28:05Z", "author_association": "OWNER", "body": "This is shipped in Datasette 0.35. Here's a demo of it working:\r\n\r\nhttps://latest.datasette.io/fixtures?sql=--+this+is+a+comment%0D%0Aselect+*+from+%5B123_starts_with_digits%5D\r\n\r\nCompare with https://v0-34.datasette.io/fixtures?sql=--+this+is+a+comment%0D%0Aselect+*+from+%5B123_starts_with_digits%5D which returned an error.", "reactions": "{\"total_count\": 1, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 1, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 541331755, "label": "allow leading comments in SQL input field"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/653#issuecomment-582141626", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/653", "id": 582141626, "node_id": "MDEyOklzc3VlQ29tbWVudDU4MjE0MTYyNg==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-02-04T22:13:31Z", "updated_at": "2020-02-04T22:13:31Z", "author_association": "OWNER", "body": "Looks like SQLite supports `/* ... */` style comments as well. I don't think supporting those should be a requirement to land this though. https://www.sqlite.org/lang_comment.html", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 541331755, "label": "allow leading comments in SQL input field"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/653#issuecomment-582141086", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/653", "id": 582141086, "node_id": "MDEyOklzc3VlQ29tbWVudDU4MjE0MTA4Ng==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-02-04T22:12:00Z", "updated_at": "2020-02-04T22:12:00Z", "author_association": "OWNER", "body": "You may well be right there! Let's add a test that demonstrates it.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 541331755, "label": "allow leading comments in SQL input field"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/653#issuecomment-582106085", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/653", "id": 582106085, "node_id": "MDEyOklzc3VlQ29tbWVudDU4MjEwNjA4NQ==", "user": {"value": 418191, "label": "jaywgraves"}, "created_at": "2020-02-04T20:43:43Z", "updated_at": "2020-02-04T20:43:43Z", "author_association": "CONTRIBUTOR", "body": "but this also doesn't have to land at all if it doesn't match your use case. ", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 541331755, "label": "allow leading comments in SQL input field"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/653#issuecomment-582105810", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/653", "id": 582105810, "node_id": "MDEyOklzc3VlQ29tbWVudDU4MjEwNTgxMA==", "user": {"value": 418191, "label": "jaywgraves"}, "created_at": "2020-02-04T20:43:01Z", "updated_at": "2020-02-04T20:43:01Z", "author_association": "CONTRIBUTOR", "body": "I *think* the existing code will be OK even if I strip the lines in the middle of a new line delimited string.\r\n\r\nIt's only used for the validation, SQLite handles the `--` just fine and the whole SQL textarea still gets sent once it passes validation.\r\n\r\nI can add your test case to my branch later this evening though.\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 541331755, "label": "allow leading comments in SQL input field"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/653#issuecomment-582103856", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/653", "id": 582103856, "node_id": "MDEyOklzc3VlQ29tbWVudDU4MjEwMzg1Ng==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-02-04T20:38:18Z", "updated_at": "2020-02-04T20:38:18Z", "author_association": "OWNER", "body": "We can probably solve this without a SQL parser though. Really all we care about here is that if the FIRST lines of the statement begin with `--` we ignore them and only validate the statement starting from the first non-commented line. I think we can do that without single quoted strings causing us confusion.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 541331755, "label": "allow leading comments in SQL input field"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/653#issuecomment-582101530", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/653", "id": 582101530, "node_id": "MDEyOklzc3VlQ29tbWVudDU4MjEwMTUzMA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-02-04T20:32:11Z", "updated_at": "2020-02-04T20:32:11Z", "author_association": "OWNER", "body": "This is the kind of problem that has made me think that Datasette would really benefit from including a smart SQLite-syntax SQL parser.\r\n\r\nWriting one is a bit of a challenge though! There's an example (derived from SQLite SELECT statements) included in pyparsing here but I've not spent much time evaluating it: https://github.com/pyparsing/pyparsing/blob/master/examples/select_parser.py", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 541331755, "label": "allow leading comments in SQL input field"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/653#issuecomment-582100643", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/653", "id": 582100643, "node_id": "MDEyOklzc3VlQ29tbWVudDU4MjEwMDY0Mw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-02-04T20:29:56Z", "updated_at": "2020-02-04T20:29:56Z", "author_association": "OWNER", "body": "I think there's one nasty edge-case here that we need to worry about: SQLite allows newlines inside of single quoted strings and I've actually started using that in quite a few places - it's great for [embedding markdown in a string](https://github.com/simonw/datasette-render-markdown) for example.\r\n\r\nThe way you're stripping comments right now splits on newlines and removes any lines that start with `--`. I believe that will mangle the following example:\r\n\r\n```sql\r\nselect '# Hello there\r\n\r\n* This is a list\r\n* of items\r\n--\r\n[And a link](https://github.com/simonw/datasette-render-markdown).'\r\nas demo_markdown\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 541331755, "label": "allow leading comments in SQL input field"}, "performed_via_github_app": null}