issue_comments
8,358 rows where author_association = "OWNER" sorted by updated_at descending
This data as json, CSV (advanced)
created_at (date) 806 ✖
- 2021-03-22 63
- 2021-11-19 59
- 2020-10-15 52
- 2020-09-22 51
- 2020-10-30 47
- 2022-03-21 45
- 2020-06-09 42
- 2020-12-18 42
- 2020-06-18 41
- 2020-05-27 38
- 2020-12-30 38
- 2021-12-16 38
- 2022-01-09 38
- 2020-10-20 37
- 2021-11-16 36
- 2020-09-15 34
- 2021-11-20 34
- 2022-01-20 34
- 2022-03-19 34
- 2020-06-08 33
- 2020-06-01 32
- 2020-10-09 32
- 2021-05-27 31
- 2021-08-13 30
- 2021-11-29 30
- 2019-06-24 29
- 2020-06-16 29
- 2020-10-16 29
- 2021-08-09 29
- 2022-02-06 29
- 2022-03-05 29
- 2019-06-23 28
- 2020-02-14 28
- 2020-06-06 28
- 2020-11-24 28
- 2021-01-04 28
- 2021-12-18 28
- 2021-12-19 28
- 2017-11-13 27
- 2020-05-30 27
- 2018-04-16 26
- 2021-01-03 26
- 2021-02-14 26
- 2022-04-26 26
- 2020-06-29 25
- 2020-09-14 24
- 2020-12-29 24
- 2021-01-25 24
- 2021-06-03 24
- 2021-06-16 24
- 2022-02-02 24
- 2020-09-24 23
- 2020-10-31 23
- 2020-12-31 23
- 2021-11-14 23
- 2020-05-31 22
- 2020-09-21 22
- 2020-09-30 22
- 2020-11-05 22
- 2022-03-15 22
- 2017-11-19 21
- 2020-08-18 21
- 2021-06-19 21
- 2017-11-14 20
- 2018-05-27 20
- 2018-07-10 20
- 2019-05-11 20
- 2020-02-24 20
- 2020-10-29 20
- 2020-12-17 20
- 2021-01-06 20
- 2021-02-25 20
- 2021-08-18 20
- 2022-01-26 20
- 2019-11-11 19
- 2020-06-11 19
- 2020-10-19 19
- 2021-02-18 19
- 2021-10-24 19
- 2022-01-06 19
- 2022-02-18 19
- 2022-03-07 19
- 2022-03-11 19
- 2020-03-25 18
- 2020-05-28 18
- 2020-06-03 18
- 2020-06-13 18
- 2020-08-12 18
- 2020-09-07 18
- 2021-01-01 18
- 2021-05-23 18
- 2021-05-29 18
- 2021-12-17 18
- 2017-10-24 17
- 2018-05-24 17
- 2019-05-23 17
- 2019-06-13 17
- 2020-03-24 17
- 2020-04-05 17
- 2020-06-28 17
- 2020-07-08 17
- 2020-10-23 17
- 2021-02-20 17
- 2021-12-11 17
- 2021-12-23 17
- 2022-02-03 17
- 2017-10-23 16
- 2017-11-11 16
- 2017-11-16 16
- 2018-05-28 16
- 2020-05-06 16
- 2020-08-11 16
- 2020-08-28 16
- 2020-09-23 16
- 2020-10-21 16
- 2020-12-03 16
- 2021-03-29 16
- 2021-07-10 16
- 2021-07-31 16
- 2021-08-10 16
- 2018-04-09 15
- 2018-05-16 15
- 2019-03-15 15
- 2019-05-03 15
- 2020-04-27 15
- 2020-06-05 15
- 2020-08-16 15
- 2021-03-27 15
- 2021-06-05 15
- 2021-11-15 15
- 2017-12-10 14
- 2019-03-17 14
- 2019-07-05 14
- 2020-03-26 14
- 2020-05-08 14
- 2020-06-07 14
- 2020-08-09 14
- 2020-10-08 14
- 2020-10-14 14
- 2020-11-06 14
- 2021-05-31 14
- 2021-08-28 14
- 2022-02-07 14
- 2022-03-20 14
- 2018-03-28 13
- 2018-04-08 13
- 2018-06-18 13
- 2018-06-21 13
- 2019-02-24 13
- 2019-11-04 13
- 2019-11-13 13
- 2020-02-25 13
- 2020-05-03 13
- 2020-06-10 13
- 2020-06-23 13
- 2020-09-12 13
- 2020-10-10 13
- 2020-11-30 13
- 2020-12-09 13
- 2021-02-19 13
- 2021-06-26 13
- 2021-08-01 13
- 2021-08-19 13
- 2021-08-24 13
- 2022-01-08 13
- 2022-01-11 13
- 2022-01-13 13
- 2022-02-05 13
- 2022-04-24 13
- 2017-10-25 12
- 2017-11-12 12
- 2017-11-15 12
- 2017-11-17 12
- 2018-05-22 12
- 2019-04-12 12
- 2019-11-12 12
- 2020-02-04 12
- 2020-04-29 12
- 2020-06-12 12
- 2020-10-22 12
- 2020-10-25 12
- 2021-06-06 12
- 2021-07-16 12
- 2022-01-14 12
- 2022-01-21 12
- 2018-04-17 11
- 2018-05-31 11
- 2018-07-24 11
- 2019-05-16 11
- 2019-06-22 11
- 2019-06-30 11
- 2020-02-23 11
- 2020-04-26 11
- 2020-05-04 11
- 2020-06-02 11
- 2020-06-30 11
- 2020-07-01 11
- 2020-07-27 11
- 2020-11-29 11
- 2021-02-26 11
- 2021-03-23 11
- 2021-04-04 11
- 2021-06-18 11
- 2021-12-20 11
- 2021-12-22 11
- 2022-01-10 11
- 2022-03-06 11
- 2017-12-07 10
- 2018-06-15 10
- 2018-06-16 10
- 2019-07-08 10
- 2019-11-08 10
- 2020-02-22 10
- 2020-04-02 10
- 2020-05-11 10
- 2020-08-21 10
- 2020-08-30 10
- 2020-09-28 10
- 2020-10-11 10
- 2020-12-12 10
- 2021-01-05 10
- 2021-04-03 10
- 2021-04-05 10
- 2021-06-02 10
- 2021-06-15 10
- 2021-08-02 10
- 2021-08-17 10
- 2021-12-10 10
- 2017-12-09 9
- 2018-04-20 9
- 2019-05-28 9
- 2019-07-07 9
- 2019-07-19 9
- 2020-02-13 9
- 2020-03-08 9
- 2020-04-06 9
- 2020-04-13 9
- 2020-05-01 9
- 2020-07-26 9
- 2020-11-02 9
- 2021-02-27 9
- 2021-03-20 9
- 2021-05-19 9
- 2021-07-15 9
- 2021-12-12 9
- 2022-03-23 9
- 2022-04-13 9
- 2018-03-30 8
- 2018-05-25 8
- 2019-05-19 8
- 2019-05-25 8
- 2019-06-15 8
- 2020-03-16 8
- 2020-07-24 8
- 2020-07-31 8
- 2020-08-19 8
- 2020-11-12 8
- 2020-12-04 8
- 2020-12-16 8
- 2021-01-02 8
- 2021-01-24 8
- 2021-02-02 8
- 2021-02-12 8
- 2021-02-15 8
- 2021-05-24 8
- 2021-06-22 8
- 2021-09-23 8
- 2021-10-08 8
- 2022-01-19 8
- 2022-03-08 8
- 2017-11-09 7
- 2017-11-29 7
- 2017-11-30 7
- 2018-04-14 7
- 2018-04-15 7
- 2018-05-23 7
- 2018-05-29 7
- 2018-06-17 7
- 2018-07-26 7
- 2019-01-28 7
- 2019-05-29 7
- 2019-10-14 7
- 2019-11-26 7
- 2020-01-31 7
- 2020-02-16 7
- 2020-02-27 7
- 2020-03-06 7
- 2020-04-10 7
- 2020-05-15 7
- 2020-05-29 7
- 2020-06-20 7
- 2020-08-29 7
- 2020-10-01 7
- 2020-11-07 7
- 2020-12-14 7
- 2021-05-28 7
- 2021-06-07 7
- 2021-07-02 7
- 2021-07-14 7
- 2021-08-12 7
- 2021-08-14 7
- 2021-10-13 7
- 2021-12-07 7
- 2022-01-07 7
- 2022-01-12 7
- 2022-02-04 7
- 2022-02-09 7
- 2022-03-17 7
- 2022-03-25 7
- 2017-10-26 6
- 2017-11-20 6
- 2017-11-23 6
- 2018-04-18 6
- 2018-04-26 6
- 2018-05-12 6
- 2018-05-13 6
- 2018-05-14 6
- 2018-05-26 6
- 2018-06-04 6
- 2019-04-13 6
- 2019-05-02 6
- 2019-05-21 6
- 2019-06-09 6
- 2019-06-25 6
- 2019-07-03 6
- 2019-07-11 6
- 2019-07-14 6
- 2019-11-01 6
- 2019-12-22 6
- 2020-03-05 6
- 2020-03-14 6
- 2020-04-15 6
- 2020-06-14 6
- 2020-06-21 6
- 2020-06-24 6
- 2020-07-02 6
- 2020-09-16 6
- 2020-10-24 6
- 2020-11-04 6
- 2021-01-12 6
- 2021-03-12 6
- 2021-03-28 6
- 2021-04-02 6
- 2021-06-01 6
- 2021-07-08 6
- 2021-07-11 6
- 2021-07-30 6
- 2021-08-04 6
- 2021-08-08 6
- 2021-09-22 6
- 2021-11-28 6
- 2021-11-30 6
- 2021-12-14 6
- 2022-03-02 6
- 2022-03-14 6
- 2022-03-22 6
- 2022-04-11 6
- 2022-04-25 6
- 2022-04-27 6
- 2017-12-08 5
- 2018-03-27 5
- 2018-04-03 5
- 2018-05-17 5
- 2018-06-05 5
- 2018-07-11 5
- 2018-08-11 5
- 2018-11-05 5
- 2019-06-28 5
- 2019-07-23 5
- 2019-10-18 5
- 2019-11-14 5
- 2019-12-26 5
- 2020-02-15 5
- 2020-02-28 5
- 2020-03-22 5
- 2020-04-16 5
- 2020-04-24 5
- 2020-05-10 5
- 2020-06-19 5
- 2020-06-22 5
- 2020-06-27 5
- 2020-07-30 5
- 2020-08-10 5
- 2020-09-08 5
- 2020-09-09 5
- 2020-10-26 5
- 2020-10-27 5
- 2020-12-05 5
- 2020-12-22 5
- 2021-01-17 5
- 2021-01-28 5
- 2021-03-08 5
- 2021-06-13 5
- 2021-08-06 5
- 2021-08-23 5
- 2021-09-21 5
- 2021-11-17 5
- 2021-12-01 5
- 2022-03-16 5
- 2022-03-30 5
- 2022-04-22 5
- 2017-11-10 4
- 2017-11-18 4
- 2017-11-21 4
- 2017-11-22 4
- 2017-11-27 4
- 2017-12-01 4
- 2017-12-04 4
- 2017-12-05 4
- 2018-05-30 4
- 2018-06-28 4
- 2018-07-12 4
- 2018-07-13 4
- 2018-07-18 4
- 2019-01-02 4
- 2019-01-17 4
- 2019-04-11 4
- 2019-05-05 4
- 2019-05-09 4
- 2019-06-04 4
- 2019-06-18 4
- 2019-07-06 4
- 2019-07-09 4
- 2019-07-28 4
- 2019-08-17 4
- 2019-10-07 4
- 2019-10-21 4
- 2019-10-30 4
- 2019-11-09 4
- 2019-11-18 4
- 2019-11-19 4
- 2019-11-27 4
- 2019-12-08 4
- 2019-12-27 4
- 2020-01-29 4
- 2020-01-30 4
- 2020-02-01 4
- 2020-04-30 4
- 2020-05-02 4
- 2020-05-12 4
- 2020-05-21 4
- 2020-07-16 4
- 2020-08-15 4
- 2020-08-24 4
- 2020-10-07 4
- 2020-11-03 4
- 2020-11-21 4
- 2020-12-08 4
- 2020-12-13 4
- 2020-12-21 4
- 2021-01-07 4
- 2021-01-15 4
- 2021-02-23 4
- 2021-03-10 4
- 2021-05-17 4
- 2021-06-11 4
- 2021-06-23 4
- 2021-06-25 4
- 2021-07-07 4
- 2021-08-05 4
- 2021-08-07 4
- 2021-09-07 4
- 2021-09-13 4
- 2021-10-07 4
- 2021-10-14 4
- 2021-11-21 4
- 2021-12-06 4
- 2021-12-15 4
- 2022-01-25 4
- 2022-02-08 4
- 2022-02-16 4
- 2022-03-01 4
- 2022-03-18 4
- 2022-03-24 4
- 2022-03-26 4
- 2017-11-24 3
- 2017-12-02 3
- 2018-04-11 3
- 2018-04-12 3
- 2018-04-22 3
- 2018-05-03 3
- 2018-05-06 3
- 2018-05-21 3
- 2018-07-31 3
- 2018-08-12 3
- 2018-08-16 3
- 2018-08-28 3
- 2018-09-19 3
- 2018-11-19 3
- 2019-01-10 3
- 2019-01-13 3
- 2019-02-06 3
- 2019-02-23 3
- 2019-03-19 3
- 2019-04-07 3
- 2019-04-18 3
- 2019-05-13 3
- 2019-05-14 3
- 2019-05-20 3
- 2019-05-26 3
- 2019-05-27 3
- 2019-06-08 3
- 2019-06-11 3
- 2019-06-14 3
- 2019-07-04 3
- 2019-08-23 3
- 2019-09-02 3
- 2019-10-02 3
- 2019-10-16 3
- 2019-11-02 3
- 2019-11-03 3
- 2019-11-15 3
- 2019-11-22 3
- 2019-12-09 3
- 2020-02-29 3
- 2020-03-02 3
- 2020-03-09 3
- 2020-03-21 3
- 2020-05-07 3
- 2020-06-15 3
- 2020-06-26 3
- 2020-08-01 3
- 2020-08-13 3
- 2020-08-25 3
- 2020-09-11 3
- 2020-09-20 3
- 2020-10-02 3
- 2020-10-05 3
- 2020-10-06 3
- 2020-10-12 3
- 2020-10-28 3
- 2020-11-01 3
- 2020-11-11 3
- 2020-11-13 3
- 2020-11-15 3
- 2020-11-22 3
- 2020-12-02 3
- 2020-12-23 3
- 2021-01-09 3
- 2021-01-18 3
- 2021-01-26 3
- 2021-02-22 3
- 2021-03-01 3
- 2021-03-21 3
- 2021-04-24 3
- 2021-06-20 3
- 2021-07-26 3
- 2021-08-25 3
- 2021-10-02 3
- 2021-11-22 3
- 2021-12-13 3
- 2022-02-11 3
- 2022-02-15 3
- 2022-02-23 3
- 2022-04-08 3
- 2022-04-12 3
- 2022-04-21 3
- 2017-10-27 2
- 2017-11-06 2
- 2017-11-07 2
- 2017-12-03 2
- 2018-03-21 2
- 2018-04-10 2
- 2018-04-13 2
- 2018-04-19 2
- 2018-04-21 2
- 2018-05-04 2
- 2018-05-05 2
- 2018-05-11 2
- 2018-05-15 2
- 2018-05-18 2
- 2018-06-07 2
- 2018-06-20 2
- 2018-06-29 2
- 2018-08-06 2
- 2019-01-03 2
- 2019-01-11 2
- 2019-01-18 2
- 2019-03-20 2
- 2019-03-28 2
- 2019-03-31 2
- 2019-04-15 2
- 2019-04-21 2
- 2019-05-01 2
- 2019-05-24 2
- 2019-06-16 2
- 2019-07-12 2
- 2019-07-15 2
- 2019-07-16 2
- 2019-07-20 2
- 2019-09-03 2
- 2019-10-06 2
- 2019-10-17 2
- 2019-10-24 2
- 2019-10-25 2
- 2019-11-10 2
- 2019-11-23 2
- 2019-12-01 2
- 2019-12-04 2
- 2019-12-31 2
- 2020-01-05 2
- 2020-01-10 2
- 2020-01-19 2
- 2020-02-03 2
- 2020-03-17 2
- 2020-03-31 2
- 2020-04-04 2
- 2020-04-22 2
- 2020-05-26 2
- 2020-06-04 2
- 2020-07-12 2
- 2020-07-17 2
- 2020-07-18 2
- 2020-07-25 2
- 2020-09-26 2
- 2020-09-29 2
- 2020-10-17 2
- 2020-11-09 2
- 2020-11-25 2
- 2020-11-28 2
- 2020-12-28 2
- 2021-01-08 2
- 2021-01-14 2
- 2021-01-19 2
- 2021-02-08 2
- 2021-02-28 2
- 2021-03-09 2
- 2021-03-15 2
- 2021-03-25 2
- 2021-07-09 2
- 2021-07-13 2
- 2021-07-24 2
- 2021-07-28 2
- 2021-08-03 2
- 2021-08-16 2
- 2021-08-20 2
- 2021-08-22 2
- 2021-09-04 2
- 2021-10-09 2
- 2021-10-16 2
- 2021-12-02 2
- 2021-12-24 2
- 2021-12-27 2
- 2022-01-15 2
- 2022-01-28 2
- 2022-03-13 2
- 2022-03-28 2
- 2022-04-10 2
- 2017-10-30 1
- 2017-10-31 1
- 2017-11-04 1
- 2017-11-05 1
- 2017-12-21 1
- 2018-01-14 1
- 2018-03-04 1
- 2018-03-29 1
- 2018-04-23 1
- 2018-04-24 1
- 2018-04-25 1
- 2018-05-19 1
- 2018-05-20 1
- 2018-06-01 1
- 2018-06-10 1
- 2018-06-24 1
- 2018-06-26 1
- 2018-07-03 1
- 2018-07-08 1
- 2018-07-09 1
- 2018-07-14 1
- 2018-07-16 1
- 2018-07-23 1
- 2018-07-27 1
- 2018-07-28 1
- 2018-08-01 1
- 2018-08-05 1
- 2018-09-03 1
- 2018-09-21 1
- 2018-10-28 1
- 2018-11-20 1
- 2018-12-16 1
- 2018-12-19 1
- 2019-01-06 1
- 2019-02-26 1
- 2019-03-18 1
- 2019-03-21 1
- 2019-04-09 1
- 2019-04-10 1
- 2019-04-29 1
- 2019-05-10 1
- 2019-05-17 1
- 2019-05-30 1
- 2019-06-06 1
- 2019-06-19 1
- 2019-07-18 1
- 2019-07-22 1
- 2019-07-24 1
- 2019-08-03 1
- 2019-08-04 1
- 2019-08-31 1
- 2019-09-04 1
- 2019-09-12 1
- 2019-10-03 1
- 2019-10-04 1
- 2019-10-05 1
- 2019-11-05 1
- 2019-11-06 1
- 2019-11-07 1
- 2019-11-20 1
- 2019-11-28 1
- 2019-12-02 1
- 2019-12-03 1
- 2019-12-06 1
- 2019-12-10 1
- 2019-12-15 1
- 2019-12-16 1
- 2019-12-30 1
- 2020-01-06 1
- 2020-01-21 1
- 2020-02-05 1
- 2020-02-08 1
- 2020-02-11 1
- 2020-03-01 1
- 2020-03-15 1
- 2020-03-23 1
- 2020-04-07 1
- 2020-04-17 1
- 2020-04-18 1
- 2020-04-23 1
- 2020-05-05 1
- 2020-05-18 1
- 2020-05-19 1
- 2020-07-03 1
- 2020-07-06 1
- 2020-07-09 1
- 2020-07-21 1
- 2020-07-22 1
- 2020-07-29 1
- 2020-08-14 1
- 2020-08-23 1
- 2020-08-26 1
- 2020-08-31 1
- 2020-09-17 1
- 2020-09-19 1
- 2020-09-27 1
- 2020-11-08 1
- 2020-11-14 1
- 2020-11-16 1
- 2020-12-01 1
- 2020-12-07 1
- 2020-12-10 1
- 2020-12-19 1
- 2020-12-24 1
- 2021-01-11 1
- 2021-01-22 1
- 2021-01-23 1
- 2021-01-29 1
- 2021-02-03 1
- 2021-02-06 1
- 2021-02-11 1
- 2021-02-21 1
- 2021-03-04 1
- 2021-03-07 1
- 2021-03-11 1
- 2021-03-13 1
- 2021-03-18 1
- 2021-03-19 1
- 2021-03-24 1
- 2021-03-26 1
- 2021-03-31 1
- 2021-04-11 1
- 2021-05-07 1
- 2021-05-18 1
- 2021-05-25 1
- 2021-05-26 1
- 2021-06-08 1
- 2021-06-09 1
- 2021-06-12 1
- 2021-06-21 1
- 2021-06-24 1
- 2021-06-28 1
- 2021-07-17 1
- 2021-07-18 1
- 2021-07-19 1
- 2021-07-29 1
- 2021-08-31 1
- 2021-09-05 1
- 2021-09-17 1
- 2021-09-20 1
- 2021-10-10 1
- 2021-10-18 1
- 2021-10-19 1
- 2021-10-22 1
- 2021-10-28 1
- 2021-10-30 1
- 2021-11-06 1
- 2021-11-25 1
- 2022-01-01 1
- 2022-01-05 1
- 2022-01-24 1
- 2022-02-13 1
- 2022-02-28 1
- 2022-03-09 1
- 2022-04-01 1
- 2022-04-03 1
- 2022-04-14 1
- 2022-04-18 1
user 1
- simonw 6,304
id | html_url | issue_url | node_id | user | created_at | updated_at ▲ | author_association | body | reactions | issue | performed_via_github_app |
---|---|---|---|---|---|---|---|---|---|---|---|
1111390433 | https://github.com/simonw/datasette/issues/1727#issuecomment-1111390433 | https://api.github.com/repos/simonw/datasette/issues/1727 | IC_kwDOBm6k_c5CPnjh | simonw 9599 | 2022-04-27T19:21:02Z | 2022-04-27T19:21:02Z | OWNER | One weird thing: I noticed that in the parallel trace above the SQL query bars are wider. Mousover shows duration in ms, and I got 13ms for this query:
But in the Given those numbers though I would expect the overall page time to be MUCH worse for the parallel version - but the page load times are instead very close to each other, with parallel often winning. This is super-weird. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Research: demonstrate if parallel SQL queries are worthwhile 1217759117 | |
1111385875 | https://github.com/simonw/datasette/issues/1727#issuecomment-1111385875 | https://api.github.com/repos/simonw/datasette/issues/1727 | IC_kwDOBm6k_c5CPmcT | simonw 9599 | 2022-04-27T19:16:57Z | 2022-04-27T19:16:57Z | OWNER | I just remembered the Would explain why the first trace never seems to show more than three SQL queries executing at once. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Research: demonstrate if parallel SQL queries are worthwhile 1217759117 | |
1111380282 | https://github.com/simonw/datasette/issues/1727#issuecomment-1111380282 | https://api.github.com/repos/simonw/datasette/issues/1727 | IC_kwDOBm6k_c5CPlE6 | simonw 9599 | 2022-04-27T19:10:27Z | 2022-04-27T19:10:27Z | OWNER | Wrote more about that here: https://simonwillison.net/2022/Apr/27/parallel-queries/ Compare https://latest-with-plugins.datasette.io/github/commits?_facet=repo&_facet=committer&_trace=1 With the same thing but with parallel execution disabled: Those total page load time numbers are very similar. Is this parallel optimization worthwhile? Maybe it's only worth it on larger databases? Or maybe larger databases perform worse with this? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Research: demonstrate if parallel SQL queries are worthwhile 1217759117 | |
1110585475 | https://github.com/simonw/datasette/issues/1724#issuecomment-1110585475 | https://api.github.com/repos/simonw/datasette/issues/1724 | IC_kwDOBm6k_c5CMjCD | simonw 9599 | 2022-04-27T06:15:14Z | 2022-04-27T06:15:14Z | OWNER | Yeah, that page is 438K (but only 20K gzipped). |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_trace=1 doesn't work on Global Power Plants demo 1216619276 | |
1110370095 | https://github.com/simonw/datasette/issues/1724#issuecomment-1110370095 | https://api.github.com/repos/simonw/datasette/issues/1724 | IC_kwDOBm6k_c5CLucv | simonw 9599 | 2022-04-27T00:18:30Z | 2022-04-27T00:18:30Z | OWNER | So this isn't a bug here, it's working as intended. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_trace=1 doesn't work on Global Power Plants demo 1216619276 | |
1110369004 | https://github.com/simonw/datasette/issues/1724#issuecomment-1110369004 | https://api.github.com/repos/simonw/datasette/issues/1724 | IC_kwDOBm6k_c5CLuLs | simonw 9599 | 2022-04-27T00:16:35Z | 2022-04-27T00:17:04Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_trace=1 doesn't work on Global Power Plants demo 1216619276 | ||
1110330554 | https://github.com/simonw/datasette/issues/1723#issuecomment-1110330554 | https://api.github.com/repos/simonw/datasette/issues/1723 | IC_kwDOBm6k_c5CLky6 | simonw 9599 | 2022-04-26T23:06:20Z | 2022-04-26T23:06:20Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Research running SQL in table view in parallel using `asyncio.gather()` 1216508080 | ||
1110305790 | https://github.com/simonw/datasette/issues/1723#issuecomment-1110305790 | https://api.github.com/repos/simonw/datasette/issues/1723 | IC_kwDOBm6k_c5CLev- | simonw 9599 | 2022-04-26T22:19:04Z | 2022-04-26T22:19:04Z | OWNER | I realized that seeing the total time in queries wasn't enough to understand this, because if the queries were executed in serial or parallel it should still sum up to the same amount of SQL time (roughly). Instead I need to know how long the page took to render. But that's hard to display on the page since you can't measure it until rendering has finished! So I built an ASGI plugin to handle that measurement: https://github.com/simonw/datasette-total-page-time And with that plugin installed, While |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Research running SQL in table view in parallel using `asyncio.gather()` 1216508080 | |
1110279869 | https://github.com/simonw/datasette/issues/1723#issuecomment-1110279869 | https://api.github.com/repos/simonw/datasette/issues/1723 | IC_kwDOBm6k_c5CLYa9 | simonw 9599 | 2022-04-26T21:45:39Z | 2022-04-26T21:45:39Z | OWNER | Getting some nice traces out of this: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Research running SQL in table view in parallel using `asyncio.gather()` 1216508080 | |
1110278577 | https://github.com/simonw/datasette/issues/1723#issuecomment-1110278577 | https://api.github.com/repos/simonw/datasette/issues/1723 | IC_kwDOBm6k_c5CLYGx | simonw 9599 | 2022-04-26T21:44:04Z | 2022-04-26T21:44:04Z | OWNER | And some simple benchmarks with ```
~ % ab -n 100 'http://127.0.0.1:8001/global-power-plants/global-power-plants?_facet=primary_fuel&_facet=other_fuel1&_facet=other_fuel3&_facet=other_fuel2' Benchmarking 127.0.0.1 (be patient).....done Server Software: uvicorn Server Hostname: 127.0.0.1 Server Port: 8001 Document Path: /global-power-plants/global-power-plants?_facet=primary_fuel&_facet=other_fuel1&_facet=other_fuel3&_facet=other_fuel2 Document Length: 314187 bytes Concurrency Level: 1 Time taken for tests: 68.279 seconds Complete requests: 100 Failed requests: 13 (Connect: 0, Receive: 0, Length: 13, Exceptions: 0) Total transferred: 31454937 bytes HTML transferred: 31418437 bytes Requests per second: 1.46 [#/sec] (mean) Time per request: 682.787 [ms] (mean) Time per request: 682.787 [ms] (mean, across all concurrent requests) Transfer rate: 449.89 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.0 0 0 Processing: 621 683 68.0 658 993 Waiting: 620 682 68.0 657 992 Total: 621 683 68.0 658 993 Percentage of the requests served within a certain time (ms) 50% 658 66% 678 75% 687 80% 711 90% 763 95% 879 98% 926 99% 993 100% 993 (longest request) In parallel: ~ % ab -n 100 'http://127.0.0.1:8001/global-power-plants/global-power-plants?_facet=primary_fuel&_facet=other_fuel1&_facet=other_fuel3&_facet=other_fuel2&_parallel=1' This is ApacheBench, Version 2.3 <$Revision: 1879490 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking 127.0.0.1 (be patient).....done Server Software: uvicorn Server Hostname: 127.0.0.1 Server Port: 8001 Document Path: /global-power-plants/global-power-plants?_facet=primary_fuel&_facet=other_fuel1&_facet=other_fuel3&_facet=other_fuel2&_parallel=1 Document Length: 315703 bytes Concurrency Level: 1 Time taken for tests: 34.763 seconds Complete requests: 100 Failed requests: 11 (Connect: 0, Receive: 0, Length: 11, Exceptions: 0) Total transferred: 31607988 bytes HTML transferred: 31570288 bytes Requests per second: 2.88 [#/sec] (mean) Time per request: 347.632 [ms] (mean) Time per request: 347.632 [ms] (mean, across all concurrent requests) Transfer rate: 887.93 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.0 0 0 Processing: 311 347 28.0 338 450 Waiting: 311 347 28.0 338 450 Total: 312 348 28.0 338 451 Percentage of the requests served within a certain time (ms) 50% 338 66% 348 75% 361 80% 367 90% 396 95% 408 98% 436 99% 451 100% 451 (longest request) With concurrency 10, not parallel: ~ % ab -c 10 -n 100 'http://127.0.0.1:8001/global-power-plants/global-power-plants?_facet=primary_fuel&_facet=other_fuel1&_facet=other_fuel3&_facet=other_fuel2&_parallel=' This is ApacheBench, Version 2.3 <$Revision: 1879490 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking 127.0.0.1 (be patient).....done Server Software: uvicorn Server Hostname: 127.0.0.1 Server Port: 8001 Document Path: /global-power-plants/global-power-plants?_facet=primary_fuel&_facet=other_fuel1&_facet=other_fuel3&_facet=other_fuel2&_parallel= Document Length: 314346 bytes Concurrency Level: 10 Time taken for tests: 38.408 seconds Complete requests: 100 Failed requests: 93 (Connect: 0, Receive: 0, Length: 93, Exceptions: 0) Total transferred: 31471333 bytes HTML transferred: 31433733 bytes Requests per second: 2.60 [#/sec] (mean) Time per request: 3840.829 [ms] (mean) Time per request: 384.083 [ms] (mean, across all concurrent requests) Transfer rate: 800.18 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.1 0 1 Processing: 685 3719 354.0 3774 4096 Waiting: 684 3707 353.7 3750 4095 Total: 685 3719 354.0 3774 4096 Percentage of the requests served within a certain time (ms) 50% 3774 66% 3832 75% 3855 80% 3878 90% 3944 95% 4006 98% 4057 99% 4096 100% 4096 (longest request) Concurrency 10 parallel: ~ % ab -c 10 -n 100 'http://127.0.0.1:8001/global-power-plants/global-power-plants?_facet=primary_fuel&_facet=other_fuel1&_facet=other_fuel3&_facet=other_fuel2&_parallel=1' This is ApacheBench, Version 2.3 <$Revision: 1879490 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking 127.0.0.1 (be patient).....done Server Software: uvicorn Server Hostname: 127.0.0.1 Server Port: 8001 Document Path: /global-power-plants/global-power-plants?_facet=primary_fuel&_facet=other_fuel1&_facet=other_fuel3&_facet=other_fuel2&_parallel=1 Document Length: 315703 bytes Concurrency Level: 10 Time taken for tests: 36.762 seconds Complete requests: 100 Failed requests: 89 (Connect: 0, Receive: 0, Length: 89, Exceptions: 0) Total transferred: 31606516 bytes HTML transferred: 31568816 bytes Requests per second: 2.72 [#/sec] (mean) Time per request: 3676.182 [ms] (mean) Time per request: 367.618 [ms] (mean, across all concurrent requests) Transfer rate: 839.61 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.1 0 0 Processing: 381 3602 419.6 3609 4458 Waiting: 381 3586 418.7 3607 4457 Total: 381 3603 419.6 3609 4458 Percentage of the requests served within a certain time (ms) 50% 3609 66% 3741 75% 3791 80% 3821 90% 3972 95% 4074 98% 4386 99% 4458 100% 4458 (longest request) Trying -c 3 instead. Non parallel: ~ % ab -c 3 -n 100 'http://127.0.0.1:8001/global-power-plants/global-power-plants?_facet=primary_fuel&_facet=other_fuel1&_facet=other_fuel3&_facet=other_fuel2&_parallel=' This is ApacheBench, Version 2.3 <$Revision: 1879490 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking 127.0.0.1 (be patient).....done Server Software: uvicorn Server Hostname: 127.0.0.1 Server Port: 8001 Document Path: /global-power-plants/global-power-plants?_facet=primary_fuel&_facet=other_fuel1&_facet=other_fuel3&_facet=other_fuel2&_parallel= Document Length: 314346 bytes Concurrency Level: 3 Time taken for tests: 39.365 seconds Complete requests: 100 Failed requests: 83 (Connect: 0, Receive: 0, Length: 83, Exceptions: 0) Total transferred: 31470808 bytes HTML transferred: 31433208 bytes Requests per second: 2.54 [#/sec] (mean) Time per request: 1180.955 [ms] (mean) Time per request: 393.652 [ms] (mean, across all concurrent requests) Transfer rate: 780.72 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.0 0 0 Processing: 731 1153 126.2 1189 1359 Waiting: 730 1151 125.9 1188 1358 Total: 731 1153 126.2 1189 1359 Percentage of the requests served within a certain time (ms) 50% 1189 66% 1221 75% 1234 80% 1247 90% 1296 95% 1309 98% 1343 99% 1359 100% 1359 (longest request) Parallel: ~ % ab -c 3 -n 100 'http://127.0.0.1:8001/global-power-plants/global-power-plants?_facet=primary_fuel&_facet=other_fuel1&_facet=other_fuel3&_facet=other_fuel2&_parallel=1' This is ApacheBench, Version 2.3 <$Revision: 1879490 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking 127.0.0.1 (be patient).....done Server Software: uvicorn Server Hostname: 127.0.0.1 Server Port: 8001 Document Path: /global-power-plants/global-power-plants?_facet=primary_fuel&_facet=other_fuel1&_facet=other_fuel3&_facet=other_fuel2&_parallel=1 Document Length: 315703 bytes Concurrency Level: 3 Time taken for tests: 34.530 seconds Complete requests: 100 Failed requests: 18 (Connect: 0, Receive: 0, Length: 18, Exceptions: 0) Total transferred: 31606179 bytes HTML transferred: 31568479 bytes Requests per second: 2.90 [#/sec] (mean) Time per request: 1035.902 [ms] (mean) Time per request: 345.301 [ms] (mean, across all concurrent requests) Transfer rate: 893.87 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.0 0 0 Processing: 412 1020 104.4 1018 1280 Waiting: 411 1018 104.1 1014 1275 Total: 412 1021 104.4 1018 1280 Percentage of the requests served within a certain time (ms) 50% 1018 66% 1041 75% 1061 80% 1079 90% 1136 95% 1176 98% 1251 99% 1280 100% 1280 (longest request) ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Research running SQL in table view in parallel using `asyncio.gather()` 1216508080 | |
1110278182 | https://github.com/simonw/datasette/issues/1723#issuecomment-1110278182 | https://api.github.com/repos/simonw/datasette/issues/1723 | IC_kwDOBm6k_c5CLYAm | simonw 9599 | 2022-04-26T21:43:34Z | 2022-04-26T21:43:34Z | OWNER | Here's the diff I'm using: ```diff diff --git a/datasette/views/table.py b/datasette/views/table.py index d66adb8..f15ef1e 100644 --- a/datasette/views/table.py +++ b/datasette/views/table.py @@ -1,3 +1,4 @@ +import asyncio import itertools import json @@ -5,6 +6,7 @@ import markupsafe from datasette.plugins import pm from datasette.database import QueryInterrupted +from datasette import tracer from datasette.utils import ( await_me_maybe, CustomRow, @@ -150,6 +152,16 @@ class TableView(DataView): default_labels=False, _next=None, _size=None, + ): + with tracer.trace_child_tasks(): + return await self._data_traced(request, default_labels, _next, _size) + + async def _data_traced( + self, + request, + default_labels=False, + _next=None, + _size=None, ): database_route = tilde_decode(request.url_vars["database"]) table_name = tilde_decode(request.url_vars["table"]) @@ -159,6 +171,20 @@ class TableView(DataView): raise NotFound("Database not found: {}".format(database_route)) database_name = db.name
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Research running SQL in table view in parallel using `asyncio.gather()` 1216508080 | |
1110265087 | https://github.com/simonw/datasette/issues/1715#issuecomment-1110265087 | https://api.github.com/repos/simonw/datasette/issues/1715 | IC_kwDOBm6k_c5CLUz_ | simonw 9599 | 2022-04-26T21:26:17Z | 2022-04-26T21:26:17Z | OWNER | Running facets and facet suggestions in parallel using
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor TableView to use asyncinject 1212823665 | |
1110246593 | https://github.com/simonw/datasette/issues/1715#issuecomment-1110246593 | https://api.github.com/repos/simonw/datasette/issues/1715 | IC_kwDOBm6k_c5CLQTB | simonw 9599 | 2022-04-26T21:03:56Z | 2022-04-26T21:03:56Z | OWNER | Well this is fun... I applied this change: ```diff diff --git a/datasette/views/table.py b/datasette/views/table.py index d66adb8..85f9e44 100644 --- a/datasette/views/table.py +++ b/datasette/views/table.py @@ -1,3 +1,4 @@ +import asyncio import itertools import json @@ -5,6 +6,7 @@ import markupsafe from datasette.plugins import pm from datasette.database import QueryInterrupted +from datasette import tracer from datasette.utils import ( await_me_maybe, CustomRow, @@ -174,8 +176,11 @@ class TableView(DataView): write=bool(canned_query.get("write")), )
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor TableView to use asyncinject 1212823665 | |
1110219185 | https://github.com/simonw/datasette/issues/1715#issuecomment-1110219185 | https://api.github.com/repos/simonw/datasette/issues/1715 | IC_kwDOBm6k_c5CLJmx | simonw 9599 | 2022-04-26T20:28:40Z | 2022-04-26T20:56:48Z | OWNER | The refactor I did in #1719 pretty much clashes with all of the changes in https://github.com/simonw/datasette/commit/5053f1ea83194ecb0a5693ad5dada5b25bf0f7e6 so I'll probably need to start my Using a new |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor TableView to use asyncinject 1212823665 | |
1110239536 | https://github.com/simonw/datasette/issues/1715#issuecomment-1110239536 | https://api.github.com/repos/simonw/datasette/issues/1715 | IC_kwDOBm6k_c5CLOkw | simonw 9599 | 2022-04-26T20:54:53Z | 2022-04-26T20:54:53Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor TableView to use asyncinject 1212823665 | |
1110238896 | https://github.com/simonw/datasette/issues/1715#issuecomment-1110238896 | https://api.github.com/repos/simonw/datasette/issues/1715 | IC_kwDOBm6k_c5CLOaw | simonw 9599 | 2022-04-26T20:53:59Z | 2022-04-26T20:53:59Z | OWNER | I'm going to rename |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor TableView to use asyncinject 1212823665 | |
1110229319 | https://github.com/simonw/datasette/issues/1715#issuecomment-1110229319 | https://api.github.com/repos/simonw/datasette/issues/1715 | IC_kwDOBm6k_c5CLMFH | simonw 9599 | 2022-04-26T20:41:32Z | 2022-04-26T20:44:38Z | OWNER | This time I'm not going to bother with the Most importantly: I want that |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor TableView to use asyncinject 1212823665 | |
1110212021 | https://github.com/simonw/datasette/issues/1720#issuecomment-1110212021 | https://api.github.com/repos/simonw/datasette/issues/1720 | IC_kwDOBm6k_c5CLH21 | simonw 9599 | 2022-04-26T20:20:27Z | 2022-04-26T20:20:27Z | OWNER | Closing this because I have a good enough idea of the design for now - the details of the parameters can be figured out when I implement this. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Design plugin hook for extras 1215174094 | |
1109309683 | https://github.com/simonw/datasette/issues/1720#issuecomment-1109309683 | https://api.github.com/repos/simonw/datasette/issues/1720 | IC_kwDOBm6k_c5CHrjz | simonw 9599 | 2022-04-26T04:12:39Z | 2022-04-26T04:12:39Z | OWNER | I think the rough shape of the three plugin hooks is right. The detailed decisions that are needed concern what the parameters should be, which I think will mainly happen as part of:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Design plugin hook for extras 1215174094 | |
1109306070 | https://github.com/simonw/datasette/issues/1720#issuecomment-1109306070 | https://api.github.com/repos/simonw/datasette/issues/1720 | IC_kwDOBm6k_c5CHqrW | simonw 9599 | 2022-04-26T04:05:20Z | 2022-04-26T04:05:20Z | OWNER | The proposed plugin for annotations - allowing users to attach comments to database tables, columns and rows - would be a great application for all three of those |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Design plugin hook for extras 1215174094 | |
1109305184 | https://github.com/simonw/datasette/issues/1720#issuecomment-1109305184 | https://api.github.com/repos/simonw/datasette/issues/1720 | IC_kwDOBm6k_c5CHqdg | simonw 9599 | 2022-04-26T04:03:35Z | 2022-04-26T04:03:35Z | OWNER | I bet there's all kinds of interesting potential extras that could be calculated by loading the results of the query into a Pandas DataFrame. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Design plugin hook for extras 1215174094 | |
1109200774 | https://github.com/simonw/datasette/issues/1720#issuecomment-1109200774 | https://api.github.com/repos/simonw/datasette/issues/1720 | IC_kwDOBm6k_c5CHQ-G | simonw 9599 | 2022-04-26T01:25:43Z | 2022-04-26T01:26:15Z | OWNER | Had a thought: if a custom HTML template is going to make use of stuff generated using these extras, it will need a way to tell Datasette to execute those extras even in the absence of the Is that necessary? Or should those kinds of plugins use the existing Or maybe the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Design plugin hook for extras 1215174094 | |
1109200335 | https://github.com/simonw/datasette/issues/1720#issuecomment-1109200335 | https://api.github.com/repos/simonw/datasette/issues/1720 | IC_kwDOBm6k_c5CHQ3P | simonw 9599 | 2022-04-26T01:24:47Z | 2022-04-26T01:24:47Z | OWNER | Sketching out a ```python from datasette import hookimpl @hookimpl def register_table_extras(datasette): return [statistics] async def statistics(datasette, query, columns, sql): # ... need to figure out which columns are integer/floats # then build and execute a SQL query that calculates sum/avg/etc for each column ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Design plugin hook for extras 1215174094 | |
1109190401 | https://github.com/simonw/sqlite-utils/issues/428#issuecomment-1109190401 | https://api.github.com/repos/simonw/sqlite-utils/issues/428 | IC_kwDOCGYnMM5CHOcB | simonw 9599 | 2022-04-26T01:05:29Z | 2022-04-26T01:05:29Z | OWNER | Django makes extensive use of savepoints for nested transactions: https://docs.djangoproject.com/en/4.0/topics/db/transactions/#savepoints |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Research adding support for savepoints 1215216249 | |
1109174715 | https://github.com/simonw/datasette/issues/1720#issuecomment-1109174715 | https://api.github.com/repos/simonw/datasette/issues/1720 | IC_kwDOBm6k_c5CHKm7 | simonw 9599 | 2022-04-26T00:40:13Z | 2022-04-26T00:43:33Z | OWNER | Some of the things I'd like to use
Looking at https://github-to-sqlite.dogsheep.net/github/commits.json?_labels=on&_shape=objects for inspiration. I think there's a separate potential mechanism in the future that lets you add custom columns to a table. This would affect |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Design plugin hook for extras 1215174094 | |
1109171871 | https://github.com/simonw/datasette/issues/1720#issuecomment-1109171871 | https://api.github.com/repos/simonw/datasette/issues/1720 | IC_kwDOBm6k_c5CHJ6f | simonw 9599 | 2022-04-26T00:34:48Z | 2022-04-26T00:34:48Z | OWNER | Let's try sketching out a The first idea I came up with suggests adding new fields to the individual row records that come back - my mental model for extras so far has been that they add new keys to the root object. So if a table result looked like this:
Here's a plugin idea I came up with that would probably justify adding to the individual row objects instead:
This could also work by adding a I think I need some better plugin concepts before committing to this new hook. There's overlap between this and how I want the enrichments mechanism (see here) to work. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Design plugin hook for extras 1215174094 | |
1109165411 | https://github.com/simonw/datasette/issues/1720#issuecomment-1109165411 | https://api.github.com/repos/simonw/datasette/issues/1720 | IC_kwDOBm6k_c5CHIVj | simonw 9599 | 2022-04-26T00:22:42Z | 2022-04-26T00:22:42Z | OWNER | Passing |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Design plugin hook for extras 1215174094 | |
1109164803 | https://github.com/simonw/datasette/issues/1720#issuecomment-1109164803 | https://api.github.com/repos/simonw/datasette/issues/1720 | IC_kwDOBm6k_c5CHIMD | simonw 9599 | 2022-04-26T00:21:40Z | 2022-04-26T00:21:40Z | OWNER | What would the existing https://latest.datasette.io/fixtures/simple_primary_key/1.json?_extras=foreign_key_tables feature look like if it was re-imagined as a Rough sketch, copying most of the code from https://github.com/simonw/datasette/blob/579f59dcec43a91dd7d404e00b87a00afd8515f2/datasette/views/row.py#L98 ```python from datasette import hookimpl @hookimpl def register_row_extras(datasette): return [foreign_key_tables] async def foreign_key_tables(datasette, database, table, pk_values): if len(pk_values) != 1: return [] db = datasette.get_database(database) all_foreign_keys = await db.get_all_foreign_keys() foreign_keys = all_foreign_keys[table]["incoming"] if len(foreign_keys) == 0: return []
``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Design plugin hook for extras 1215174094 | |
1109162123 | https://github.com/simonw/datasette/issues/1720#issuecomment-1109162123 | https://api.github.com/repos/simonw/datasette/issues/1720 | IC_kwDOBm6k_c5CHHiL | simonw 9599 | 2022-04-26T00:16:42Z | 2022-04-26T00:16:51Z | OWNER | Actually I'm going to imitate the existing
So I'm going to call the new hooks:
They'll return a list of |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Design plugin hook for extras 1215174094 | |
1109160226 | https://github.com/simonw/datasette/issues/1720#issuecomment-1109160226 | https://api.github.com/repos/simonw/datasette/issues/1720 | IC_kwDOBm6k_c5CHHEi | simonw 9599 | 2022-04-26T00:14:11Z | 2022-04-26T00:14:11Z | OWNER | There are four existing plugin hooks that include the word "extra" but use it to mean something else - to mean additional CSS/JS/variables to be injected into the page:
I think |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Design plugin hook for extras 1215174094 | |
1109159307 | https://github.com/simonw/datasette/issues/1720#issuecomment-1109159307 | https://api.github.com/repos/simonw/datasette/issues/1720 | IC_kwDOBm6k_c5CHG2L | simonw 9599 | 2022-04-26T00:12:28Z | 2022-04-26T00:12:28Z | OWNER | I'm going to keep table and row separate. So I think I need to add three new plugin hooks:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Design plugin hook for extras 1215174094 | |
1109158903 | https://github.com/simonw/datasette/issues/1720#issuecomment-1109158903 | https://api.github.com/repos/simonw/datasette/issues/1720 | IC_kwDOBm6k_c5CHGv3 | simonw 9599 | 2022-04-26T00:11:42Z | 2022-04-26T00:11:42Z | OWNER | Places this plugin hook (or hooks?) should be able to affect:
I'm going to combine those last two, which means there are three places. But maybe I can combine the table one and the row one as well? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Design plugin hook for extras 1215174094 | |
1108907238 | https://github.com/simonw/datasette/issues/1719#issuecomment-1108907238 | https://api.github.com/repos/simonw/datasette/issues/1719 | IC_kwDOBm6k_c5CGJTm | simonw 9599 | 2022-04-25T18:34:21Z | 2022-04-25T18:34:21Z | OWNER | Well this refactor turned out to be pretty quick and really does greatly simplify both the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor `RowView` and remove `RowTableShared` 1214859703 | |
1108890170 | https://github.com/simonw/datasette/issues/262#issuecomment-1108890170 | https://api.github.com/repos/simonw/datasette/issues/262 | IC_kwDOBm6k_c5CGFI6 | simonw 9599 | 2022-04-25T18:17:09Z | 2022-04-25T18:18:39Z | OWNER | I spotted in https://github.com/simonw/datasette/issues/1719#issuecomment-1108888494 that there's actually already an undocumented implementation of I added that feature all the way back in November 2017! https://github.com/simonw/datasette/commit/a30c5b220c15360d575e94b0e67f3255e120b916 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add ?_extra= mechanism for requesting extra properties in JSON 323658641 | |
1108888494 | https://github.com/simonw/datasette/issues/1719#issuecomment-1108888494 | https://api.github.com/repos/simonw/datasette/issues/1719 | IC_kwDOBm6k_c5CGEuu | simonw 9599 | 2022-04-25T18:15:42Z | 2022-04-25T18:15:42Z | OWNER | Here's an undocumented feature I forgot existed: https://latest.datasette.io/fixtures/simple_primary_key/1.json?_extras=foreign_key_tables
It's even covered by the tests: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor `RowView` and remove `RowTableShared` 1214859703 | |
1108884171 | https://github.com/simonw/datasette/issues/1719#issuecomment-1108884171 | https://api.github.com/repos/simonw/datasette/issues/1719 | IC_kwDOBm6k_c5CGDrL | simonw 9599 | 2022-04-25T18:10:46Z | 2022-04-25T18:12:45Z | OWNER | It looks like the only class method from that shared class needed by Which I've been wanting to refactor to provide to
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor `RowView` and remove `RowTableShared` 1214859703 | |
1108875068 | https://github.com/simonw/datasette/issues/1715#issuecomment-1108875068 | https://api.github.com/repos/simonw/datasette/issues/1715 | IC_kwDOBm6k_c5CGBc8 | simonw 9599 | 2022-04-25T18:03:13Z | 2022-04-25T18:06:33Z | OWNER | The I'm going to split the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor TableView to use asyncinject 1212823665 | |
1108877454 | https://github.com/simonw/datasette/issues/1715#issuecomment-1108877454 | https://api.github.com/repos/simonw/datasette/issues/1715 | IC_kwDOBm6k_c5CGCCO | simonw 9599 | 2022-04-25T18:04:27Z | 2022-04-25T18:04:27Z | OWNER | Pushed my WIP on this to the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor TableView to use asyncinject 1212823665 | |
1107873311 | https://github.com/simonw/datasette/issues/1718#issuecomment-1107873311 | https://api.github.com/repos/simonw/datasette/issues/1718 | IC_kwDOBm6k_c5CCM4f | simonw 9599 | 2022-04-24T16:24:14Z | 2022-04-24T16:24:14Z | OWNER | Wrote up what I learned in a TIL: https://til.simonwillison.net/sphinx/blacken-docs |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Code examples in the documentation should be formatted with Black 1213683988 | |
1107873271 | https://github.com/simonw/datasette/issues/1718#issuecomment-1107873271 | https://api.github.com/repos/simonw/datasette/issues/1718 | IC_kwDOBm6k_c5CCM33 | simonw 9599 | 2022-04-24T16:23:57Z | 2022-04-24T16:23:57Z | OWNER | Turns out I didn't need that Submitted a documentation PR to that project instead: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Code examples in the documentation should be formatted with Black 1213683988 | |
1107870788 | https://github.com/simonw/datasette/issues/1718#issuecomment-1107870788 | https://api.github.com/repos/simonw/datasette/issues/1718 | IC_kwDOBm6k_c5CCMRE | simonw 9599 | 2022-04-24T16:09:23Z | 2022-04-24T16:09:23Z | OWNER | One more attempt at testing the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Code examples in the documentation should be formatted with Black 1213683988 | |
1107869884 | https://github.com/simonw/datasette/issues/1718#issuecomment-1107869884 | https://api.github.com/repos/simonw/datasette/issues/1718 | IC_kwDOBm6k_c5CCMC8 | simonw 9599 | 2022-04-24T16:04:03Z | 2022-04-24T16:04:03Z | OWNER | OK, I'm expecting this one to fail at the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Code examples in the documentation should be formatted with Black 1213683988 | |
1107869556 | https://github.com/simonw/datasette/issues/1718#issuecomment-1107869556 | https://api.github.com/repos/simonw/datasette/issues/1718 | IC_kwDOBm6k_c5CCL90 | simonw 9599 | 2022-04-24T16:02:27Z | 2022-04-24T16:02:27Z | OWNER | Looking at that first error it appears to be a place where I had deliberately omitted the body of the function: I can use Fixing those warnings actually helped me spot a couple of bugs, so I'm glad this happened. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Code examples in the documentation should be formatted with Black 1213683988 | |
1107868585 | https://github.com/simonw/datasette/issues/1718#issuecomment-1107868585 | https://api.github.com/repos/simonw/datasette/issues/1718 | IC_kwDOBm6k_c5CCLup | simonw 9599 | 2022-04-24T15:57:10Z | 2022-04-24T15:57:19Z | OWNER | The tests failed there because of what I thought were warnings but turn out to be treated as errors:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Code examples in the documentation should be formatted with Black 1213683988 | |
1107867281 | https://github.com/simonw/datasette/issues/1718#issuecomment-1107867281 | https://api.github.com/repos/simonw/datasette/issues/1718 | IC_kwDOBm6k_c5CCLaR | simonw 9599 | 2022-04-24T15:49:23Z | 2022-04-24T15:49:23Z | OWNER | I'm going to push the first commit with a deliberate missing formatting to check that the tests fail. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Code examples in the documentation should be formatted with Black 1213683988 | |
1107866013 | https://github.com/simonw/datasette/issues/1718#issuecomment-1107866013 | https://api.github.com/repos/simonw/datasette/issues/1718 | IC_kwDOBm6k_c5CCLGd | simonw 9599 | 2022-04-24T15:42:07Z | 2022-04-24T15:42:07Z | OWNER | In the absence of |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Code examples in the documentation should be formatted with Black 1213683988 | |
1107865493 | https://github.com/simonw/datasette/issues/1718#issuecomment-1107865493 | https://api.github.com/repos/simonw/datasette/issues/1718 | IC_kwDOBm6k_c5CCK-V | simonw 9599 | 2022-04-24T15:39:02Z | 2022-04-24T15:39:02Z | OWNER | There's no |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Code examples in the documentation should be formatted with Black 1213683988 | |
1107863924 | https://github.com/simonw/datasette/issues/1718#issuecomment-1107863924 | https://api.github.com/repos/simonw/datasette/issues/1718 | IC_kwDOBm6k_c5CCKl0 | simonw 9599 | 2022-04-24T15:30:03Z | 2022-04-24T15:30:03Z | OWNER | On the one hand, I'm not crazy about some of the indentation decisions Black made here - in particular this one, which I had indented deliberately for readability:
Also: I've been mentally trying to keep the line lengths a bit shorter to help them be more readable on mobile devices. I'll try a different line length using I like this more - here's the result for that example:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Code examples in the documentation should be formatted with Black 1213683988 | |
1107863365 | https://github.com/simonw/datasette/issues/1718#issuecomment-1107863365 | https://api.github.com/repos/simonw/datasette/issues/1718 | IC_kwDOBm6k_c5CCKdF | simonw 9599 | 2022-04-24T15:26:41Z | 2022-04-24T15:26:41Z | OWNER | Tried this:
Note that you need to pass @@ -412,12 +408,16 @@ To include an expiry, add a
The resulting cookie will encode data that looks something like this: diff --git a/docs/spatialite.rst b/docs/spatialite.rst index d1b300b..556bad8 100644 --- a/docs/spatialite.rst +++ b/docs/spatialite.rst @@ -58,19 +58,22 @@ Here's a recipe for taking a table with existing latitude and longitude columns, .. code-block:: python
Querying polygons using within()
diff --git a/docs/writing_plugins.rst b/docs/writing_plugins.rst
index bd60a4b..5af01f6 100644
--- a/docs/writing_plugins.rst
+++ b/docs/writing_plugins.rst
@@ -18,9 +18,10 @@ The quickest way to start writing a plugin is to create a
+ @hookimpl def prepare_connection(conn): - conn.create_function('hello_world', 0, lambda: 'Hello world!') + conn.create_function("hello_world", 0, lambda: "Hello world!") If you save this in @@ -60,22 +61,18 @@ The example consists of two files: a
And a Python module file,
Having built a plugin in this way you can turn it into an installable package using the following command:: @@ -123,11 +120,13 @@ To bundle the static assets for a plugin in the package that you publish to PyPI .. code-block:: python
Where @@ -152,11 +151,13 @@ Templates should be bundled for distribution using the same .. code-block:: python
You can also use wildcards here such as |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Code examples in the documentation should be formatted with Black 1213683988 | |
1107862882 | https://github.com/simonw/datasette/issues/1718#issuecomment-1107862882 | https://api.github.com/repos/simonw/datasette/issues/1718 | IC_kwDOBm6k_c5CCKVi | simonw 9599 | 2022-04-24T15:23:56Z | 2022-04-24T15:23:56Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Code examples in the documentation should be formatted with Black 1213683988 | ||
1107848097 | https://github.com/simonw/datasette/pull/1717#issuecomment-1107848097 | https://api.github.com/repos/simonw/datasette/issues/1717 | IC_kwDOBm6k_c5CCGuh | simonw 9599 | 2022-04-24T14:02:37Z | 2022-04-24T14:02:37Z | OWNER | This is a neat feature, thanks! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add timeout option to Cloudrun build 1213281044 | |
1106989581 | https://github.com/simonw/datasette/issues/1715#issuecomment-1106989581 | https://api.github.com/repos/simonw/datasette/issues/1715 | IC_kwDOBm6k_c5B-1IN | simonw 9599 | 2022-04-22T23:03:29Z | 2022-04-22T23:03:29Z | OWNER | I'm having second thoughts about injecting |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor TableView to use asyncinject 1212823665 | |
1106947168 | https://github.com/simonw/datasette/issues/1715#issuecomment-1106947168 | https://api.github.com/repos/simonw/datasette/issues/1715 | IC_kwDOBm6k_c5B-qxg | simonw 9599 | 2022-04-22T22:25:57Z | 2022-04-22T22:26:06Z | OWNER | ```python async def database(request: Request, datasette: Datasette) -> Database: database_route = tilde_decode(request.url_vars["database"]) try: return datasette.get_database(route=database_route) except KeyError: raise NotFound("Database not found: {}".format(database_route)) async def table_name(request: Request) -> str: return tilde_decode(request.url_vars["table"]) ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor TableView to use asyncinject 1212823665 | |
1106945876 | https://github.com/simonw/datasette/issues/1715#issuecomment-1106945876 | https://api.github.com/repos/simonw/datasette/issues/1715 | IC_kwDOBm6k_c5B-qdU | simonw 9599 | 2022-04-22T22:24:29Z | 2022-04-22T22:24:29Z | OWNER | Looking at the start of I'm going to resolve |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor TableView to use asyncinject 1212823665 | |
1106923258 | https://github.com/simonw/datasette/issues/1716#issuecomment-1106923258 | https://api.github.com/repos/simonw/datasette/issues/1716 | IC_kwDOBm6k_c5B-k76 | simonw 9599 | 2022-04-22T22:02:07Z | 2022-04-22T22:02:07Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Configure git blame to ignore Black commit 1212838949 | ||
1106908642 | https://github.com/simonw/datasette/issues/1715#issuecomment-1106908642 | https://api.github.com/repos/simonw/datasette/issues/1715 | IC_kwDOBm6k_c5B-hXi | simonw 9599 | 2022-04-22T21:47:55Z | 2022-04-22T21:47:55Z | OWNER | I need a Something like this perhaps:
One thing I could do: break out is the code that turns a request into a list of pairs extracted from the request - this code here: https://github.com/simonw/datasette/blob/8338c66a57502ef27c3d7afb2527fbc0663b2570/datasette/views/table.py#L442-L449 I could turn that into a typed dependency injection function like this:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor TableView to use asyncinject 1212823665 | |
1105615625 | https://github.com/simonw/datasette/issues/1101#issuecomment-1105615625 | https://api.github.com/repos/simonw/datasette/issues/1101 | IC_kwDOBm6k_c5B5lsJ | simonw 9599 | 2022-04-21T18:31:41Z | 2022-04-21T18:32:22Z | OWNER | The ```python
My PostgreSQL/MySQL engineering brain says that this would be better handled by doing a chunk of these (maybe 100) at once, to avoid the per-query-overhead - but with SQLite that might not be necessary. At any rate, this is one of the reasons I'm interested in "iterate over this sequence of chunks of 100 rows at a time" as a potential option here. Of course, a better solution would be for |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
register_output_renderer() should support streaming data 749283032 | |
1105608964 | https://github.com/simonw/datasette/issues/1101#issuecomment-1105608964 | https://api.github.com/repos/simonw/datasette/issues/1101 | IC_kwDOBm6k_c5B5kEE | simonw 9599 | 2022-04-21T18:26:29Z | 2022-04-21T18:26:29Z | OWNER | I'm questioning if the mechanisms should be separate at all now - a single response rendering is really just a case of a streaming response that only pulls the first N records from the iterator. It probably needs to be an This actually gets a fair bit more complicated due to the work I'm doing right now to improve the default JSON API:
I want to do things like make faceting results optionally available to custom renderers - which is a separate concern from streaming rows. I'm going to poke around with a bunch of prototypes and see what sticks. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
register_output_renderer() should support streaming data 749283032 | |
1105571003 | https://github.com/simonw/datasette/issues/1101#issuecomment-1105571003 | https://api.github.com/repos/simonw/datasette/issues/1101 | IC_kwDOBm6k_c5B5ay7 | simonw 9599 | 2022-04-21T18:10:38Z | 2022-04-21T18:10:46Z | OWNER | Maybe the simplest design for this is to add an optional
Or it could use the existing |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
register_output_renderer() should support streaming data 749283032 | |
1101594549 | https://github.com/simonw/sqlite-utils/issues/425#issuecomment-1101594549 | https://api.github.com/repos/simonw/sqlite-utils/issues/425 | IC_kwDOCGYnMM5BqP-1 | simonw 9599 | 2022-04-18T17:36:14Z | 2022-04-18T17:36:14Z | OWNER | Releated: - #408 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`sqlite3.NotSupportedError`: deterministic=True requires SQLite 3.8.3 or higher 1203842656 | |
1098628334 | https://github.com/simonw/datasette/issues/1713#issuecomment-1098628334 | https://api.github.com/repos/simonw/datasette/issues/1713 | IC_kwDOBm6k_c5Be7zu | simonw 9599 | 2022-04-14T01:43:00Z | 2022-04-14T01:43:13Z | OWNER | Current workaround for fast publishing to S3:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Datasette feature for publishing snapshots of query results 1203943272 | |
1098548931 | https://github.com/simonw/sqlite-utils/issues/421#issuecomment-1098548931 | https://api.github.com/repos/simonw/sqlite-utils/issues/421 | IC_kwDOCGYnMM5BeobD | simonw 9599 | 2022-04-13T22:41:59Z | 2022-04-13T22:41:59Z | OWNER | I'm going to close this ticket since it looks like this is a bug in the way the Dockerfile builds Python, but I'm going to ship a fix for that issue I found so the |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"Error: near "(": syntax error" when using sqlite-utils indexes CLI 1180427792 | |
1098548090 | https://github.com/simonw/sqlite-utils/issues/424#issuecomment-1098548090 | https://api.github.com/repos/simonw/sqlite-utils/issues/424 | IC_kwDOCGYnMM5BeoN6 | simonw 9599 | 2022-04-13T22:40:15Z | 2022-04-13T22:40:15Z | OWNER | New error: ```pycon
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Better error message if you try to create a table with no columns 1200866134 | |
1098545390 | https://github.com/simonw/sqlite-utils/issues/425#issuecomment-1098545390 | https://api.github.com/repos/simonw/sqlite-utils/issues/425 | IC_kwDOCGYnMM5Benju | simonw 9599 | 2022-04-13T22:34:52Z | 2022-04-13T22:34:52Z | OWNER | That broke Python 3.7 because it doesn't support
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`sqlite3.NotSupportedError`: deterministic=True requires SQLite 3.8.3 or higher 1203842656 | |
1098537000 | https://github.com/simonw/sqlite-utils/issues/425#issuecomment-1098537000 | https://api.github.com/repos/simonw/sqlite-utils/issues/425 | IC_kwDOCGYnMM5Belgo | simonw 9599 | 2022-04-13T22:18:22Z | 2022-04-13T22:18:22Z | OWNER | I figured out a workaround in https://github.com/simonw/sqlite-utils/issues/421#issuecomment-1098535531 The current This alternative implementation worked in the environment where that failed:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`sqlite3.NotSupportedError`: deterministic=True requires SQLite 3.8.3 or higher 1203842656 | |
1098535531 | https://github.com/simonw/sqlite-utils/issues/421#issuecomment-1098535531 | https://api.github.com/repos/simonw/sqlite-utils/issues/421 | IC_kwDOCGYnMM5BelJr | simonw 9599 | 2022-04-13T22:15:48Z | 2022-04-13T22:15:48Z | OWNER | Trying this alternative implementation of the
countries idx_countries_country_name 0 1 country 0 BINARY 1 countries idx_countries_country_name 1 2 name 0 BINARY 1 ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"Error: near "(": syntax error" when using sqlite-utils indexes CLI 1180427792 | |
1098532220 | https://github.com/simonw/sqlite-utils/issues/421#issuecomment-1098532220 | https://api.github.com/repos/simonw/sqlite-utils/issues/421 | IC_kwDOCGYnMM5BekV8 | simonw 9599 | 2022-04-13T22:09:52Z | 2022-04-13T22:09:52Z | OWNER | That error is weird - it's not supposed to happen according to this code here: https://github.com/simonw/sqlite-utils/blob/95522ad919f96eb6cc8cd3cd30389b534680c717/sqlite_utils/db.py#L389-L400 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"Error: near "(": syntax error" when using sqlite-utils indexes CLI 1180427792 | |
1098531354 | https://github.com/simonw/sqlite-utils/issues/421#issuecomment-1098531354 | https://api.github.com/repos/simonw/sqlite-utils/issues/421 | IC_kwDOCGYnMM5BekIa | simonw 9599 | 2022-04-13T22:08:20Z | 2022-04-13T22:08:20Z | OWNER | OK I figured out what's going on here. First I added an extra
Error: near "(": syntax error
Then I checked the version that So the problem here is that the Python in that Docker image is running a very old version of SQLite. I tried using the trick in https://til.simonwillison.net/sqlite/ld-preload as a workaround, and it almost worked:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"Error: near "(": syntax error" when using sqlite-utils indexes CLI 1180427792 | |
1098295517 | https://github.com/simonw/sqlite-utils/issues/421#issuecomment-1098295517 | https://api.github.com/repos/simonw/sqlite-utils/issues/421 | IC_kwDOCGYnMM5Bdqjd | simonw 9599 | 2022-04-13T17:16:20Z | 2022-04-13T17:16:20Z | OWNER | Aha! I was able to replicate the bug using your To build your |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"Error: near "(": syntax error" when using sqlite-utils indexes CLI 1180427792 | |
1098288158 | https://github.com/simonw/sqlite-utils/issues/421#issuecomment-1098288158 | https://api.github.com/repos/simonw/sqlite-utils/issues/421 | IC_kwDOCGYnMM5Bdowe | simonw 9599 | 2022-04-13T17:07:53Z | 2022-04-13T17:07:53Z | OWNER | I can't replicate the bug I'm afraid:
```
% wget "https://github.com/wri/global-power-plant-database/blob/232a6666/output_database/global_power_plant_database.csv?raw=true" % sqlite-utils extract global.db power_plants country country_long \
--table countries \
--fk-column country_id \
--rename country_long name
% sqlite-utils indexes global.db --table countries idx_countries_country_name 0 1 country 0 BINARY 1 countries idx_countries_country_name 1 2 name 0 BINARY 1 ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"Error: near "(": syntax error" when using sqlite-utils indexes CLI 1180427792 | |
1097115034 | https://github.com/simonw/datasette/issues/1712#issuecomment-1097115034 | https://api.github.com/repos/simonw/datasette/issues/1712 | IC_kwDOBm6k_c5BZKWa | simonw 9599 | 2022-04-12T19:12:21Z | 2022-04-12T19:12:21Z | OWNER | Got a TIL out of this too: https://til.simonwillison.net/spatialite/gunion-to-combine-geometries |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Make "<Binary: 2427344 bytes>" easier to read 1202227104 | |
1097076622 | https://github.com/simonw/datasette/issues/1712#issuecomment-1097076622 | https://api.github.com/repos/simonw/datasette/issues/1712 | IC_kwDOBm6k_c5BZA-O | simonw 9599 | 2022-04-12T18:42:04Z | 2022-04-12T18:42:04Z | OWNER | I'm not going to show the tooltip if the formatted number is in bytes. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Make "<Binary: 2427344 bytes>" easier to read 1202227104 | |
1097068474 | https://github.com/simonw/datasette/issues/1712#issuecomment-1097068474 | https://api.github.com/repos/simonw/datasette/issues/1712 | IC_kwDOBm6k_c5BY--6 | simonw 9599 | 2022-04-12T18:38:18Z | 2022-04-12T18:38:18Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Make "<Binary: 2427344 bytes>" easier to read 1202227104 | ||
1095687566 | https://github.com/simonw/datasette/issues/1708#issuecomment-1095687566 | https://api.github.com/repos/simonw/datasette/issues/1708 | IC_kwDOBm6k_c5BTt2O | simonw 9599 | 2022-04-11T23:24:30Z | 2022-04-11T23:24:30Z | OWNER | Redesigned template contextWarning: if you use any custom templates with your Datasette instance they are likely to break when you upgrade to 1.0. The template context has been redesigned to be based on the documented JSON API. This means that the template context can be considered stable going forward, so any custom templates you implement should continue to work when you upgrade Datasette in the future. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Datasette 1.0 alpha upcoming release notes 1200649124 | |
1095673947 | https://github.com/simonw/datasette/issues/1705#issuecomment-1095673947 | https://api.github.com/repos/simonw/datasette/issues/1705 | IC_kwDOBm6k_c5BTqhb | simonw 9599 | 2022-04-11T23:03:49Z | 2022-04-11T23:03:49Z | OWNER | I'll also encourage testing against both Datasette 0.x and Datasette 1.0 using a GitHub Actions matrix. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
How to upgrade your plugin for 1.0 documentation 1197926598 | |
1095673670 | https://github.com/simonw/datasette/issues/1710#issuecomment-1095673670 | https://api.github.com/repos/simonw/datasette/issues/1710 | IC_kwDOBm6k_c5BTqdG | simonw 9599 | 2022-04-11T23:03:25Z | 2022-04-11T23:03:25Z | OWNER | Dupe of: - #1705 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Guide for plugin authors to upgrade their plugins for 1.0 1200649889 | |
1095671940 | https://github.com/simonw/datasette/issues/1709#issuecomment-1095671940 | https://api.github.com/repos/simonw/datasette/issues/1709 | IC_kwDOBm6k_c5BTqCE | simonw 9599 | 2022-04-11T23:00:39Z | 2022-04-11T23:01:41Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Redesigned JSON API with ?_extra= parameters 1200649502 | |
1095672127 | https://github.com/simonw/datasette/issues/1711#issuecomment-1095672127 | https://api.github.com/repos/simonw/datasette/issues/1711 | IC_kwDOBm6k_c5BTqE_ | simonw 9599 | 2022-04-11T23:00:58Z | 2022-04-11T23:00:58Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Template context powered entirely by the JSON API format 1200650491 | |
1095277937 | https://github.com/simonw/datasette/issues/1707#issuecomment-1095277937 | https://api.github.com/repos/simonw/datasette/issues/1707 | IC_kwDOBm6k_c5BSJ1x | simonw 9599 | 2022-04-11T16:32:31Z | 2022-04-11T16:33:00Z | OWNER | That's a really interesting idea! That page is one of the least developed at the moment. There's plenty of room for it to grow new useful features. I like this suggestion because it feels like a good opportunity to introduce some unobtrusive JavaScript. Could use a details/summary element that uses Could even do something with the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
[feature] expanded detail page 1200224939 | |
1094152642 | https://github.com/simonw/datasette/issues/1706#issuecomment-1094152642 | https://api.github.com/repos/simonw/datasette/issues/1706 | IC_kwDOBm6k_c5BN3HC | simonw 9599 | 2022-04-10T01:11:54Z | 2022-04-10T01:11:54Z | OWNER | This relates to this much larger vision: - #417 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
[feature] immutable mode for a directory, not just individual sqlite file 1198822563 | |
1094152173 | https://github.com/simonw/datasette/issues/1706#issuecomment-1094152173 | https://api.github.com/repos/simonw/datasette/issues/1706 | IC_kwDOBm6k_c5BN2_t | simonw 9599 | 2022-04-10T01:08:50Z | 2022-04-10T01:08:50Z | OWNER | This is a good idea - it matches the way |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
[feature] immutable mode for a directory, not just individual sqlite file 1198822563 | |
1093454899 | https://github.com/simonw/datasette/pull/1693#issuecomment-1093454899 | https://api.github.com/repos/simonw/datasette/issues/1693 | IC_kwDOBm6k_c5BLMwz | simonw 9599 | 2022-04-08T23:07:04Z | 2022-04-08T23:07:04Z | OWNER | Tests failed here due to this issue: - https://github.com/psf/black/pull/2987 A future Black release should fix that. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Bump black from 22.1.0 to 22.3.0 1184850337 | |
1092361727 | https://github.com/simonw/datasette/issues/1699#issuecomment-1092361727 | https://api.github.com/repos/simonw/datasette/issues/1699 | IC_kwDOBm6k_c5BHB3_ | simonw 9599 | 2022-04-08T01:47:43Z | 2022-04-08T01:47:43Z | OWNER | A render mode for that plugin hook that writes to a stream is exactly what I have in mind: - #1062 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Proposal: datasette query 1193090967 | |
1092321966 | https://github.com/simonw/datasette/issues/1699#issuecomment-1092321966 | https://api.github.com/repos/simonw/datasette/issues/1699 | IC_kwDOBm6k_c5BG4Ku | simonw 9599 | 2022-04-08T00:20:32Z | 2022-04-08T00:20:56Z | OWNER | If we do this I'm keen to have it be more than just an alternative to the existing My best thought on how to differentiate them so far is plugins: if Datasette plugins that provide alternative outputs - like One way that could work: a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Proposal: datasette query 1193090967 | |
1086784547 | https://github.com/simonw/datasette/issues/1698#issuecomment-1086784547 | https://api.github.com/repos/simonw/datasette/issues/1698 | IC_kwDOBm6k_c5AxwQj | simonw 9599 | 2022-04-03T06:10:24Z | 2022-04-03T06:10:24Z | OWNER | Warning added here: https://docs.datasette.io/en/latest/publish.html#publishing-to-google-cloud-run |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add a warning about bots and Cloud Run 1190828163 | |
1085323192 | https://github.com/simonw/datasette/issues/1697#issuecomment-1085323192 | https://api.github.com/repos/simonw/datasette/issues/1697 | IC_kwDOBm6k_c5AsLe4 | simonw 9599 | 2022-04-01T02:01:51Z | 2022-04-01T02:01:51Z | OWNER | Huh, turns out |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`Request.fake(..., url_vars={})` 1189113609 | |
1083351437 | https://github.com/simonw/datasette/issues/1696#issuecomment-1083351437 | https://api.github.com/repos/simonw/datasette/issues/1696 | IC_kwDOBm6k_c5AkqGN | simonw 9599 | 2022-03-30T16:20:49Z | 2022-03-30T16:21:02Z | OWNER | Maybe like this: ```html 283 rows where dcode = 3 (Human Related: Other)``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Show foreign key label when filtering 1186696202 | |
1082663746 | https://github.com/simonw/datasette/issues/1692#issuecomment-1082663746 | https://api.github.com/repos/simonw/datasette/issues/1692 | IC_kwDOBm6k_c5AiCNC | simonw 9599 | 2022-03-30T06:14:39Z | 2022-03-30T06:14:51Z | OWNER | I like your design, though I think it should be I think |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
[plugins][feature request]: Support additional script tag attributes when loading custom JS 1182227211 | |
1082661795 | https://github.com/simonw/datasette/issues/1692#issuecomment-1082661795 | https://api.github.com/repos/simonw/datasette/issues/1692 | IC_kwDOBm6k_c5AiBuj | simonw 9599 | 2022-03-30T06:11:41Z | 2022-03-30T06:11:41Z | OWNER | This is a good idea. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
[plugins][feature request]: Support additional script tag attributes when loading custom JS 1182227211 | |
1082617386 | https://github.com/simonw/datasette/issues/1695#issuecomment-1082617386 | https://api.github.com/repos/simonw/datasette/issues/1695 | IC_kwDOBm6k_c5Ah24q | simonw 9599 | 2022-03-30T04:46:18Z | 2022-03-30T04:46:18Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Option to un-filter facet not shown for `?col__exact=value` 1185868354 | |
1082617241 | https://github.com/simonw/datasette/issues/1695#issuecomment-1082617241 | https://api.github.com/repos/simonw/datasette/issues/1695 | IC_kwDOBm6k_c5Ah22Z | simonw 9599 | 2022-03-30T04:45:55Z | 2022-03-30T04:45:55Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Option to un-filter facet not shown for `?col__exact=value` 1185868354 | ||
1081047053 | https://github.com/simonw/sqlite-utils/issues/420#issuecomment-1081047053 | https://api.github.com/repos/simonw/sqlite-utils/issues/420 | IC_kwDOCGYnMM5Ab3gN | simonw 9599 | 2022-03-28T19:22:37Z | 2022-03-28T19:22:37Z | OWNER | Wrote about this in my weeknotes: https://simonwillison.net/2022/Mar/28/datasette-auth0/#new-features-as-documentation |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Document how to use a `--convert` function that runs initialization code first 1178546862 | |
1080141111 | https://github.com/simonw/sqlite-utils/issues/420#issuecomment-1080141111 | https://api.github.com/repos/simonw/sqlite-utils/issues/420 | IC_kwDOCGYnMM5AYaU3 | simonw 9599 | 2022-03-28T03:25:57Z | 2022-03-28T03:54:37Z | OWNER | So now this should solve your problem: ``` echo '[{"name": "notaword"}, {"name": "word"}] ' | python3 -m sqlite_utils insert listings.db listings - --convert ' import enchant d = enchant.Dict("en_US") def convert(row): global d row["is_dictionary_word"] = d.check(row["name"]) ' ``` |
{ "total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Document how to use a `--convert` function that runs initialization code first 1178546862 | |
1079788375 | https://github.com/simonw/datasette/issues/1690#issuecomment-1079788375 | https://api.github.com/repos/simonw/datasette/issues/1690 | IC_kwDOBm6k_c5AXENX | simonw 9599 | 2022-03-26T22:43:00Z | 2022-03-26T22:43:00Z | OWNER | Then I can update this section of the documentation which currently recommends the above pattern: https://docs.datasette.io/en/stable/authentication.html#the-ds-actor-cookie |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Idea: `datasette.set_actor_cookie(response, actor)` 1182141761 | |
1079788346 | https://github.com/simonw/datasette/issues/1690#issuecomment-1079788346 | https://api.github.com/repos/simonw/datasette/issues/1690 | IC_kwDOBm6k_c5AXEM6 | simonw 9599 | 2022-03-26T22:42:40Z | 2022-03-26T22:42:40Z | OWNER | I don't want to do a So |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Idea: `datasette.set_actor_cookie(response, actor)` 1182141761 | |
1079779040 | https://github.com/simonw/datasette/issues/1689#issuecomment-1079779040 | https://api.github.com/repos/simonw/datasette/issues/1689 | IC_kwDOBm6k_c5AXB7g | simonw 9599 | 2022-03-26T21:35:57Z | 2022-03-26T21:35:57Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
datasette.add_message() documentation is incorrect 1182065616 | ||
1079582485 | https://github.com/simonw/datasette/issues/1688#issuecomment-1079582485 | https://api.github.com/repos/simonw/datasette/issues/1688 | IC_kwDOBm6k_c5AWR8V | simonw 9599 | 2022-03-26T03:15:34Z | 2022-03-26T03:15:34Z | OWNER | Yup, you're right in what you figured out here: stand-alone plugins can't currently package static assets other then using the static folder. The You can run that yourself, or you can run it using this GitHub template repository: https://github.com/simonw/datasette-plugin-template-repository |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
[plugins][documentation] Is it possible to serve per-plugin static folders when writing one-off (single file) plugins? 1181432624 | |
1079441621 | https://github.com/simonw/sqlite-utils/issues/417#issuecomment-1079441621 | https://api.github.com/repos/simonw/sqlite-utils/issues/417 | IC_kwDOCGYnMM5AVvjV | simonw 9599 | 2022-03-25T21:18:37Z | 2022-03-25T21:18:37Z | OWNER | Updated documentation: https://sqlite-utils.datasette.io/en/latest/cli.html#inserting-newline-delimited-json |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
insert fails on JSONL with whitespace 1175744654 | |
1079407962 | https://github.com/simonw/sqlite-utils/issues/421#issuecomment-1079407962 | https://api.github.com/repos/simonw/sqlite-utils/issues/421 | IC_kwDOCGYnMM5AVnVa | simonw 9599 | 2022-03-25T20:25:10Z | 2022-03-25T20:25:18Z | OWNER | Can you share either your whole My hunch is that you may have a table or column with a name that triggers the error. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"Error: near "(": syntax error" when using sqlite-utils indexes CLI 1180427792 | |
1079406708 | https://github.com/simonw/sqlite-utils/issues/422#issuecomment-1079406708 | https://api.github.com/repos/simonw/sqlite-utils/issues/422 | IC_kwDOCGYnMM5AVnB0 | simonw 9599 | 2022-03-25T20:23:21Z | 2022-03-25T20:23:21Z | OWNER | Fixing this would require a bump to 4.0 because it would break existing code. The alternative would be to introduce a new |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Reconsider not running convert functions against null values 1181236173 |
Advanced export
JSON shape: default, array, newline-delimited, object
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]);
issue >1000