home / github

Menu
  • Search all tables
  • GraphQL API

issue_comments

Table actions
  • GraphQL API for issue_comments

8 rows where author_association = "OWNER", issue = 1102899312 and user = 9599 sorted by updated_at descending

✖
✖
✖
✖

✎ View and edit SQL

This data as json, CSV (advanced)

user 1

  • simonw · 8 ✖

issue 1

  • Add new spatialite helper methods · 8 ✖

author_association 1

  • OWNER · 8 ✖
id html_url issue_url node_id user created_at updated_at ▲ author_association body reactions issue performed_via_github_app
1029703216 https://github.com/simonw/sqlite-utils/pull/385#issuecomment-1029703216 https://api.github.com/repos/simonw/sqlite-utils/issues/385 IC_kwDOCGYnMM49YAYw simonw 9599 2022-02-04T06:45:43Z 2022-02-04T06:45:43Z OWNER

Shipped this as sqlite-utils 3.23: https://sqlite-utils.datasette.io/en/stable/changelog.html#v3-23

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Add new spatialite helper methods 1102899312  
1029682294 https://github.com/simonw/sqlite-utils/pull/385#issuecomment-1029682294 https://api.github.com/repos/simonw/sqlite-utils/issues/385 IC_kwDOCGYnMM49X7R2 simonw 9599 2022-02-04T05:53:26Z 2022-02-04T05:53:26Z OWNER

This looks fantastic, thanks for all of the work you put into this!

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Add new spatialite helper methods 1102899312  
1029335225 https://github.com/simonw/sqlite-utils/pull/385#issuecomment-1029335225 https://api.github.com/repos/simonw/sqlite-utils/issues/385 IC_kwDOCGYnMM49Wmi5 simonw 9599 2022-02-03T19:39:40Z 2022-02-03T19:39:40Z OWNER

I thought about adding these as methods on Database and Table, and I'm back and forth on it for the same reasons you are. It's certainly cleaner, and it's clearer what you're operating on. I could go either way.

I do sort of like having all the Spatialite stuff in its own module, just because it's built around an extension you might not have or want, but I don't know if that's a good reason to have a different API.

You could have init_spatialite add methods to Database and Table, so they're only there if you have Spatialite set up. Is that too clever? It feels too clever.

Yeah that's too clever. You know what? I'm pretty confident we are both massively over-thinking this. We should put the methods on Database and Table! API simplicity and consistency matters more than vague concerns about purity.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Add new spatialite helper methods 1102899312  
1029297971 https://github.com/simonw/sqlite-utils/pull/385#issuecomment-1029297971 https://api.github.com/repos/simonw/sqlite-utils/issues/385 IC_kwDOCGYnMM49Wdcz simonw 9599 2022-02-03T18:52:50Z 2022-02-03T18:52:50Z OWNER

I'm not sure I like name="geometry" as the default argument to add_geometry_column - mainly because of this example here: python add_geometry_column(db["locations"], "POINT") create_spatial_index(db["locations"], "geometry") I had to go and look at the code to figure out if "POINT" was the name of the column - and I don't like how inconsistent it looks next to the following create_spatial_index() call where you DO need to pass the column name.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Add new spatialite helper methods 1102899312  
1029296782 https://github.com/simonw/sqlite-utils/pull/385#issuecomment-1029296782 https://api.github.com/repos/simonw/sqlite-utils/issues/385 IC_kwDOCGYnMM49WdKO simonw 9599 2022-02-03T18:51:21Z 2022-02-03T18:51:21Z OWNER

What do you think about adding these as methods on the Database class instead? Then you could do:

```python

This is with an optional argument, which if omitted runs find_spatialite() for you:

db.init_spatialite()

Instead of:

init_spatialite(db, find_spatialite()) Likewise, the `add_geometry_column` and `create_spatial_index` methods could live on `Table`:python

Instead of this:

add_geometry_column(db["locations"], "POINT", "geometry") create_spatial_index(db["locations"], "geometry")

Could have this:

db["locations"].add_geometry_column("POINT") db["locations"].create_spatial_index("geometry") `` On the one hand, this is much more consistent with the existingsqlite-utils` Python API.

But on the other hand... this is mixing SpatiaLite functionality directly into the core classes. Is that a good idea, seeing as SpatiaLite is both an optional extension (which can be tricky to install) AND something that has a very different release cadence and quality-of-documentation from SQLite itself?

There's a third option: the SpatiaLite could exist on subclasses of Database and Table - so the above examples would look something like this:

```python from sqlite_utils.gis import SpatiaLiteDatabase

db = SpatiaLiteDatabase("geo.db") db.init_spatialite() db["locations"].add_geometry_column("POINT") db["locations"].create_spatial_index("geometry") ```

On the one hand, this would keep the SpatiaLite-specific stuff out of the core Database/Table classes. But it feels a bit untidy to me, especially since it raises the spectre of someone who was already subclassing Database for some reason now needing to instead subclass SpatiaLiteDatabase (not too keen on that capitalization) - or even (horror) trying to dabble with multiple inheritance, which can only lead to pain.

So I don't have a strong opinion formed on this question yet!

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Add new spatialite helper methods 1102899312  
1029285985 https://github.com/simonw/sqlite-utils/pull/385#issuecomment-1029285985 https://api.github.com/repos/simonw/sqlite-utils/issues/385 IC_kwDOCGYnMM49Wahh simonw 9599 2022-02-03T18:37:48Z 2022-02-03T18:37:48Z OWNER

from sqlite_utils.utils import find_spatialite is part of the documented API already:

https://sqlite-utils.datasette.io/en/3.22.1/python-api.html#finding-spatialite

To avoid needing to bump the major version number to 4 to indicate a backwards incompatible change, we should keep a from .gis import find_spatialite line at the top of utils.py such that any existing code with that documented import continues to work.

{
    "total_count": 1,
    "+1": 1,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Add new spatialite helper methods 1102899312  
1029273853 https://github.com/simonw/sqlite-utils/pull/385#issuecomment-1029273853 https://api.github.com/repos/simonw/sqlite-utils/issues/385 IC_kwDOCGYnMM49WXj9 simonw 9599 2022-02-03T18:23:30Z 2022-02-03T18:31:21Z OWNER

OK, this change makes a bunch of sense to me - and also raises some interesting questions about future additions to sqlite-utils with regards to SpatiaLite. Would sqlite-utils add-geometry-column ... be a good CLI enhancement. for example?

I see you've already talked about that in #79 - moving this conversation there!

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Add new spatialite helper methods 1102899312  
1029177015 https://github.com/simonw/sqlite-utils/pull/385#issuecomment-1029177015 https://api.github.com/repos/simonw/sqlite-utils/issues/385 IC_kwDOCGYnMM49V_63 simonw 9599 2022-02-03T16:38:02Z 2022-02-03T16:38:02Z OWNER

Sorry had missed this - tests should run now.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Add new spatialite helper methods 1102899312  

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 1929.752ms · About: github-to-sqlite
  • Sort ascending
  • Sort descending
  • Facet by this
  • Hide this column
  • Show all columns
  • Show not-blank rows