home / github

Menu
  • Search all tables
  • GraphQL API

issue_comments

Table actions
  • GraphQL API for issue_comments

17 rows where "updated_at" is on date 2018-06-21 sorted by updated_at descending

✖
✖

✎ View and edit SQL

This data as json, CSV (advanced)

Suggested facets: issue_url, created_at (date), updated_at (date)

issue 7

  • Wildcard support in query parameters 8
  • On 404s with a trailing slash redirect to that page without a trailing slash 2
  • Travis CI fails to upload new releases to PyPI 2
  • Incorrect display of compound primary keys with foreign key relationships 2
  • inspect() should detect many-to-many relationships 1
  • HTML table does not correctly display entirely blank rows 1
  • Facets with value of 0 displayed incorrectly 1

user 2

  • simonw 13
  • bsilverm 4

author_association 2

  • OWNER 13
  • NONE 4
id html_url issue_url node_id user created_at updated_at ▲ author_association body reactions issue performed_via_github_app
399173916 https://github.com/simonw/datasette/issues/321#issuecomment-399173916 https://api.github.com/repos/simonw/datasette/issues/321 MDEyOklzc3VlQ29tbWVudDM5OTE3MzkxNg== bsilverm 12617395 2018-06-21T17:00:10Z 2018-06-21T17:00:10Z NONE

Oh I see.. My issue is that the query executes with an empty string prior to the user submitting the parameters. I'll try adding your workaround to some of my queries. Thanks again,

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Wildcard support in query parameters 334190959  
398973176 https://github.com/simonw/datasette/issues/321#issuecomment-398973176 https://api.github.com/repos/simonw/datasette/issues/321 MDEyOklzc3VlQ29tbWVudDM5ODk3MzE3Ng== simonw 9599 2018-06-21T04:34:11Z 2018-06-21T16:53:57Z OWNER

This is a little bit fiddly, but it's possible to do it using SQLite string concatenation. Here's an example:

select * from facetable where neighborhood like "%" || :text || "%";

Try it here: https://latest.datasette.io/fixtures-35b6eb6?sql=select+*+from+facetable+where+neighborhood+like+%22%25%22+%7C%7C+%3Atext+%7C%7C+%22%25%22%3B&text=town

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Wildcard support in query parameters 334190959  
399171239 https://github.com/simonw/datasette/issues/321#issuecomment-399171239 https://api.github.com/repos/simonw/datasette/issues/321 MDEyOklzc3VlQ29tbWVudDM5OTE3MTIzOQ== simonw 9599 2018-06-21T16:51:08Z 2018-06-21T16:51:29Z OWNER

I may have misunderstood your problem here.

I understood that the problem is that when using the "%" || :text || "%" construct the first hit to that page (with an empty string for :text) results in a where neighborhood like "%%" query which is slow because it matches every row in the database.

My fix was to add this to the where clause:

where :text != '' and ...

Which means that when you first load the page the where fails to match any rows and you get no results (and hopefully instant loading times assuming SQLite is smart enough to optimize this away). That's why you don't see any rows returned on this page: https://latest.datasette.io/fixtures-cafd088?sql=select+neighborhood%2C+facet_cities.name%2C+state%0D%0Afrom+facetable%0D%0A++++join+facet_cities+on+facetable.city_id+%3D+facet_cities.id%0D%0Awhere+%3Atext+%21%3D+%22%22+and+neighborhood+like+%27%25%27+%7C%7C+%3Atext+%7C%7C+%27%25%27%0D%0Aorder+by+neighborhood%3B

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Wildcard support in query parameters 334190959  
399157944 https://github.com/simonw/datasette/issues/259#issuecomment-399157944 https://api.github.com/repos/simonw/datasette/issues/259 MDEyOklzc3VlQ29tbWVudDM5OTE1Nzk0NA== simonw 9599 2018-06-21T16:07:49Z 2018-06-21T16:07:49Z OWNER

Thanks to #319 the test suite now includes a m2m table: https://latest.datasette.io/fixtures-e14e080/searchable_tags

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
inspect() should detect many-to-many relationships 322787470  
399156960 https://github.com/simonw/datasette/issues/314#issuecomment-399156960 https://api.github.com/repos/simonw/datasette/issues/314 MDEyOklzc3VlQ29tbWVudDM5OTE1Njk2MA== simonw 9599 2018-06-21T16:04:59Z 2018-06-21T16:04:59Z OWNER

Demo of fix: https://latest.datasette.io/fixtures-e14e080/simple_view

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
HTML table does not correctly display entirely blank rows 333096176  
399154550 https://github.com/simonw/datasette/issues/319#issuecomment-399154550 https://api.github.com/repos/simonw/datasette/issues/319 MDEyOklzc3VlQ29tbWVudDM5OTE1NDU1MA== simonw 9599 2018-06-21T15:58:15Z 2018-06-21T15:58:15Z OWNER

Fixed here too now: https://registry.datasette.io/registry-c10707b/datasette_tags

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Incorrect display of compound primary keys with foreign key relationships 334149717  
399150285 https://github.com/simonw/datasette/issues/317#issuecomment-399150285 https://api.github.com/repos/simonw/datasette/issues/317 MDEyOklzc3VlQ29tbWVudDM5OTE1MDI4NQ== simonw 9599 2018-06-21T15:45:47Z 2018-06-21T15:45:47Z OWNER

That fixed it! https://travis-ci.org/simonw/datasette/jobs/395078407 ran successfully and https://pypi.org/project/datasette/ now hosts Datasette 0.23.1 deployed via Travis.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Travis CI fails to upload new releases to PyPI 333326107  
399144688 https://github.com/simonw/datasette/issues/317#issuecomment-399144688 https://api.github.com/repos/simonw/datasette/issues/317 MDEyOklzc3VlQ29tbWVudDM5OTE0NDY4OA== simonw 9599 2018-06-21T15:29:06Z 2018-06-21T15:29:16Z OWNER

From https://docs.travis-ci.com/user/deployment/pypi/

Note that if your PyPI password contains special characters you need to escape them before encrypting your password. Some people have reported difficulties connecting to PyPI with passwords containing anything except alphanumeric characters.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Travis CI fails to upload new releases to PyPI 333326107  
399142274 https://github.com/simonw/datasette/issues/309#issuecomment-399142274 https://api.github.com/repos/simonw/datasette/issues/309 MDEyOklzc3VlQ29tbWVudDM5OTE0MjI3NA== simonw 9599 2018-06-21T15:22:02Z 2018-06-21T15:22:02Z OWNER

Demo: https://latest.datasette.io/fixtures-e14e080/

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
On 404s with a trailing slash redirect to that page without a trailing slash 331343824  
399139462 https://github.com/simonw/datasette/issues/319#issuecomment-399139462 https://api.github.com/repos/simonw/datasette/issues/319 MDEyOklzc3VlQ29tbWVudDM5OTEzOTQ2Mg== simonw 9599 2018-06-21T15:13:58Z 2018-06-21T15:13:58Z OWNER

Demo of fix: https://latest.datasette.io/fixtures-e14e080/searchable_tags

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Incorrect display of compound primary keys with foreign key relationships 334149717  
399134680 https://github.com/simonw/datasette/issues/309#issuecomment-399134680 https://api.github.com/repos/simonw/datasette/issues/309 MDEyOklzc3VlQ29tbWVudDM5OTEzNDY4MA== simonw 9599 2018-06-21T14:59:57Z 2018-06-21T14:59:57Z OWNER

I can use Sanic middleware for this: http://sanic.readthedocs.io/en/latest/sanic/middleware.html#responding-early

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
On 404s with a trailing slash redirect to that page without a trailing slash 331343824  
399129220 https://github.com/simonw/datasette/issues/321#issuecomment-399129220 https://api.github.com/repos/simonw/datasette/issues/321 MDEyOklzc3VlQ29tbWVudDM5OTEyOTIyMA== bsilverm 12617395 2018-06-21T14:45:02Z 2018-06-21T14:45:02Z NONE

Those queries look identical. How can this be prevented if the queries are in a metadata.json file?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Wildcard support in query parameters 334190959  
399126228 https://github.com/simonw/datasette/issues/321#issuecomment-399126228 https://api.github.com/repos/simonw/datasette/issues/321 MDEyOklzc3VlQ29tbWVudDM5OTEyNjIyOA== simonw 9599 2018-06-21T14:36:40Z 2018-06-21T14:36:53Z OWNER

This seems to fix that: select neighborhood, facet_cities.name, state from facetable join facet_cities on facetable.city_id = facet_cities.id where :text != '' and neighborhood like '%' || :text || '%' order by neighborhood; Compare this (with empty string): https://latest.datasette.io/fixtures-cafd088?sql=select+neighborhood%2C+facet_cities.name%2C+state%0D%0Afrom+facetable%0D%0A++++join+facet_cities+on+facetable.city_id+%3D+facet_cities.id%0D%0Awhere+%3Atext+%21%3D+%22%22+and+neighborhood+like+%27%25%27+%7C%7C+%3Atext+%7C%7C+%27%25%27%0D%0Aorder+by+neighborhood%3B

To this: https://latest.datasette.io/fixtures-cafd088?sql=select+neighborhood%2C+facet_cities.name%2C+state%0D%0Afrom+facetable%0D%0A++++join+facet_cities+on+facetable.city_id+%3D+facet_cities.id%0D%0Awhere+%3Atext+%21%3D+%22%22+and+neighborhood+like+%27%25%27+%7C%7C+%3Atext+%7C%7C+%27%25%27%0D%0Aorder+by+neighborhood%3B&text=town

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Wildcard support in query parameters 334190959  
399106871 https://github.com/simonw/datasette/issues/321#issuecomment-399106871 https://api.github.com/repos/simonw/datasette/issues/321 MDEyOklzc3VlQ29tbWVudDM5OTEwNjg3MQ== bsilverm 12617395 2018-06-21T13:39:37Z 2018-06-21T13:39:37Z NONE

One thing I've noticed with this approach is that the query is executed with no parameters which I do not believe was the case previously. In the case the table contains a lot of data, this adds some time executing the query before the user can enter their input and run it with the parameters they want.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Wildcard support in query parameters 334190959  
399098080 https://github.com/simonw/datasette/issues/321#issuecomment-399098080 https://api.github.com/repos/simonw/datasette/issues/321 MDEyOklzc3VlQ29tbWVudDM5OTA5ODA4MA== bsilverm 12617395 2018-06-21T13:10:48Z 2018-06-21T13:10:48Z NONE

Perfect, thank you!!

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Wildcard support in query parameters 334190959  
398976488 https://github.com/simonw/datasette/issues/321#issuecomment-398976488 https://api.github.com/repos/simonw/datasette/issues/321 MDEyOklzc3VlQ29tbWVudDM5ODk3NjQ4OA== simonw 9599 2018-06-21T04:59:33Z 2018-06-21T06:11:02Z OWNER

I've added this to the unit tests and the documentation.

Docs: http://datasette.readthedocs.io/en/latest/sql_queries.html#canned-queries Canned query demo: https://latest.datasette.io/fixtures/neighborhood_search?text=town

New unit test:

https://github.com/simonw/datasette/blob/3683a6b626b2e79f4dc9600d45853ca4ae8de11a/tests/test_api.py#L333-L344

https://github.com/simonw/datasette/blob/3683a6b626b2e79f4dc9600d45853ca4ae8de11a/tests/fixtures.py#L145-L153

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Wildcard support in query parameters 334190959  
398973309 https://github.com/simonw/datasette/issues/318#issuecomment-398973309 https://api.github.com/repos/simonw/datasette/issues/318 MDEyOklzc3VlQ29tbWVudDM5ODk3MzMwOQ== simonw 9599 2018-06-21T04:35:12Z 2018-06-21T04:37:37Z OWNER

Demo of fix: the on_earth facet on https://latest.datasette.io/fixtures-cafd088/facetable?_facet=planet_int&_facet=on_earth&_facet=city_id

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Facets with value of 0 displayed incorrectly 334148669  

Advanced export

JSON shape: default, array, newline-delimited, object

CSV options:

CREATE TABLE [issue_comments] (
   [html_url] TEXT,
   [issue_url] TEXT,
   [id] INTEGER PRIMARY KEY,
   [node_id] TEXT,
   [user] INTEGER REFERENCES [users]([id]),
   [created_at] TEXT,
   [updated_at] TEXT,
   [author_association] TEXT,
   [body] TEXT,
   [reactions] TEXT,
   [issue] INTEGER REFERENCES [issues]([id])
, [performed_via_github_app] TEXT);
CREATE INDEX [idx_issue_comments_issue]
                ON [issue_comments] ([issue]);
CREATE INDEX [idx_issue_comments_user]
                ON [issue_comments] ([user]);
Powered by Datasette · Queries took 786.443ms · About: github-to-sqlite
  • Sort ascending
  • Sort descending
  • Facet by this
  • Hide this column
  • Show all columns
  • Show not-blank rows