Closed simonw closed 4 years ago
Could this be because country_id
should be an integer but is a string? I don't understand why that would break though.
https://parlgov.datasettes.com/parlgov/election?country_id__exact=44 is showing 0 results too - which is really strange because https://parlgov.datasettes.com/parlgov/election?_where=country_id=44 DOES show results.
Faceting https://parlgov.datasettes.com/parlgov/election?_facet=country_id works but if you select a facet you get zero results.
Looks like this is a Datasette bug, not a datasette-graphql
bug.
The schema for the election
table is missing any type information at all: https://parlgov.datasettes.com/parlgov/election
CREATE TABLE election("id", "type_id", "country_id", "date", "first_round_election_id", "early", "wikipedia", "seats_total", "electorate", "votes_cast", "votes_valid", "data_source", "description", "comment", "previous_parliament_election_id", "previous_ep_election_id", "previous_cabinet_id", "old_countryID", "old_parlID",
FOREIGN KEY(country_id) REFERENCES country(id),
FOREIGN KEY(previous_cabinet_id) REFERENCES cabinet(id),
FOREIGN KEY(previous_parliament_election_id) REFERENCES election(id),
FOREIGN KEY(previous_ep_election_id) REFERENCES election(id)
);
select * from pragma_table_info("election")
confirms that those columns have no type: https://parlgov.datasettes.com/parlgov?sql=select+*+from+pragma_table_info%28%22election%22%29
I checked the original parlgov.db
(from before I ran my fix_db.py
script) and it too fails to define column types for the elections
table:
CREATE TABLE election("id", "type_id", "country_id", "date", "first_round_election_id", "early", "wikipedia", "seats_total", "electorate", "votes_cast", "votes_valid", "data_source", "description", "comment", "previous_parliament_election_id", "previous_ep_election_id", "previous_cabinet_id", "old_countryID", "old_parlID");
Here's the full schema: https://gist.github.com/simonw/14c624a79b7734c0ea45448e03c68ab0
So this seems to be a SQLite bug!
Issue reported on the SQLite forum (which is where they ask you to post bug reports): https://www.sqlite.org/forum/forumpost/8a388072a1?t=h
Closing this since it's not a bug in datasette-graphql
.
Bug showed up here: https://parlgov.datasettes.com/graphql?query=%7B%0A%20%20country(search%3A%20%22united%22)%20%7B%0A%20%20%20%20edges%20%7B%0A%20%20%20%20%20%20node%20%7B%0A%20%20%20%20%20%20%20%20id%0A%20%20%20%20%20%20%20%20name%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20this_does_not_work%3A%20election(sort_desc%3A%20date%2C%20filter%3A%7Bcountry_id%3A%7Beq%3A%2244%22%7D%7D)%20%7B%0A%20%20%20%20totalCount%0A%20%20%20%20nodes%20%7B%0A%20%20%20%20%20%20date%0A%20%20%20%20%20%20comment%0A%20%20%20%20%20%20country_id%20%7B%0A%20%20%20%20%20%20%20%20id%0A%20%20%20%20%20%20%20%20name%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20this_works%3A%20election(sort_desc%3A%20date%2C%20where%3A%20%22country_id%20%3D%2044%22)%20%7B%0A%20%20%20%20totalCount%0A%20%20%20%20nodes%20%7B%0A%20%20%20%20%20%20date%0A%20%20%20%20%20%20comment%0A%20%20%20%20%20%20country_id%20%7B%0A%20%20%20%20%20%20%20%20id%0A%20%20%20%20%20%20%20%20name%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D