github
html_url | issue_url | id | node_id | user | created_at | updated_at | author_association | body | reactions | issue | performed_via_github_app |
---|---|---|---|---|---|---|---|---|---|---|---|
https://github.com/simonw/sqlite-utils/issues/329#issuecomment-926208819 | https://api.github.com/repos/simonw/sqlite-utils/issues/329 | 926208819 | IC_kwDOCGYnMM43NNMz | 9599 | 2021-09-23T22:26:54Z | 2021-09-23T22:26:54Z | OWNER | I could even have those replacement characters be properties of the `Database` class, so uses can sub-class and change them. ```python class Database: left_brace_replace = "_" right_brace_replace = "_" ... ``` | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
1005891028 | |
https://github.com/simonw/sqlite-utils/issues/329#issuecomment-926207719 | https://api.github.com/repos/simonw/sqlite-utils/issues/329 | 926207719 | IC_kwDOCGYnMM43NM7n | 9599 | 2021-09-23T22:24:09Z | 2021-09-23T22:24:09Z | OWNER | I think I like the underscore option best. I don't like the idea of injecting surprise `( )` parenthesis, and having them vanish entirely could result in things like `item[price]` becoming `itemprice` which feels confusing. `item_price_` is a little ugly but I think I can live with it. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
1005891028 | |
https://github.com/simonw/sqlite-utils/issues/329#issuecomment-926207246 | https://api.github.com/repos/simonw/sqlite-utils/issues/329 | 926207246 | IC_kwDOCGYnMM43NM0O | 9599 | 2021-09-23T22:23:09Z | 2021-09-23T22:23:09Z | OWNER | What are my options for replacing those characters? - `[` becomes `(` and `]` becomes `)` - `[` and `]` are removed entirely - `[` and `]` both become `_` | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
1005891028 | |
https://github.com/simonw/sqlite-utils/issues/329#issuecomment-926206705 | https://api.github.com/repos/simonw/sqlite-utils/issues/329 | 926206705 | IC_kwDOCGYnMM43NMrx | 9599 | 2021-09-23T22:21:58Z | 2021-09-23T22:21:58Z | OWNER | I'm inclined to just fix them and not have an option for opting-out of fixing them, since it adds quite a bit of cruft to the overall API design for an option that maybe no-one will ever use. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
1005891028 | |
https://github.com/simonw/sqlite-utils/issues/329#issuecomment-926206220 | https://api.github.com/repos/simonw/sqlite-utils/issues/329 | 926206220 | IC_kwDOCGYnMM43NMkM | 9599 | 2021-09-23T22:20:55Z | 2021-09-23T22:21:19Z | OWNER | If I add a new parameter for opting in and out of fixing these, what should it be called? A few options: - `fix_columns=False` - `rename_bad_columns=False` - `fix_column_names=False` - `error_on_invalid_column_names=True` | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
1005891028 | |
https://github.com/simonw/sqlite-utils/issues/329#issuecomment-926205047 | https://api.github.com/repos/simonw/sqlite-utils/issues/329 | 926205047 | IC_kwDOCGYnMM43NMR3 | 9599 | 2021-09-23T22:18:34Z | 2021-09-23T22:19:38Z | OWNER | Here's the code where this happens: https://github.com/simonw/sqlite-utils/blob/54191d4dc114d7dc21e849b48a4d5ae4f9e601ca/sqlite_utils/db.py#L2943-L2948 It's called from three different methods in `db.py`: `create_table_sql()`, `update()` and `insert_all()`. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
1005891028 | |
https://github.com/simonw/sqlite-utils/issues/329#issuecomment-926204046 | https://api.github.com/repos/simonw/sqlite-utils/issues/329 | 926204046 | IC_kwDOCGYnMM43NMCO | 9599 | 2021-09-23T22:16:18Z | 2021-09-23T22:16:18Z | OWNER | So either I do the automatic replacement, or I let the user request automatic replacement, or a third option: I do automatic replacement but let the user opt to receive an error instead. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
1005891028 | |
https://github.com/simonw/sqlite-utils/issues/329#issuecomment-926203501 | https://api.github.com/repos/simonw/sqlite-utils/issues/329 | 926203501 | IC_kwDOCGYnMM43NL5t | 9599 | 2021-09-23T22:15:07Z | 2021-09-23T22:15:30Z | OWNER | Quoting https://github.com/simonw/sqlite-utils/issues/86#issuecomment-586676856 in full: > I'm not sure what to do about this one. > > I can't fix it: this bug in Python's `sqlite3` module means that even if I write a database out with column names that include `[]` I won't be able to read them back again. > > So... I could do one of the following: > > * Throw an error if a column name includes those characters. That's my preferred option I think. > * Automatically replace `[` in column names with `(` and `]` with `)` > * Do the automatic replacement but show a user-visible warning when I do it > * Throw an error, but give the user an option to run with e.g. `--fix-column-names` which applies that automatic fix. > > > Since this is likely to be an incredibly rare edge-case I think I'd rather minimize the amount of code that deals with it, so my preferred option is to just throw that error and stop. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
1005891028 |