Releases: macbre/index-digest
Releases · macbre/index-digest
Support MySQL 8.1 and MariaDB 10.6 + drop support for Python 3.7
- Drop Python 3.7 support by @macbre in #416
- CI - Update the list of MySQL containers by @macbre in #415
What's Changed
- Bump pylint from 2.15.2 to 2.15.3 by @dependabot in #342
- Bump coverage from 6.4.4 to 6.5.0 by @dependabot in #344
- Bump dependabot/fetch-metadata from 1.3.3 to 1.3.4 by @dependabot in #345
- Bump actions/checkout from 3.0.2 to 3.1.0 by @dependabot in #346
- Bump pylint from 2.15.3 to 2.15.4 by @dependabot in #347
- Bump pylint from 2.15.4 to 2.15.5 by @dependabot in #348
- Bump pytest from 7.1.3 to 7.2.0 by @dependabot in #349
- Bump termcolor from 2.0.1 to 2.1.0 by @dependabot in #350
- Bump dependabot/fetch-metadata from 1.3.4 to 1.3.5 by @dependabot in #351
- Bump termcolor from 2.1.0 to 2.1.1 by @dependabot in #352
- Bump pylint from 2.15.5 to 2.15.7 by @dependabot in #354
- Bump twine from 4.0.1 to 4.0.2 by @dependabot in #355
- Bump pylint from 2.15.7 to 2.15.8 by @dependabot in #356
- Bump actions/checkout from 3.1.0 to 3.2.0 by @dependabot in #357
- Bump pytest-cov from 3.0.0 to 4.0.0 by @dependabot in #343
- Bump pylint from 2.15.8 to 2.15.9 by @dependabot in #358
- Bump actions/checkout from 3.2.0 to 3.3.0 by @dependabot in #364
- Bump termcolor from 2.1.1 to 2.2.0 by @dependabot in #362
- Bump pylint from 2.15.9 to 2.15.10 by @dependabot in #366
- Bump pytest from 7.2.0 to 7.2.1 by @dependabot in #368
- Bump dependabot/fetch-metadata from 1.3.5 to 1.3.6 by @dependabot in #369
- Bump pylint from 2.15.10 to 2.16.0 by @dependabot in #371
- Bump pylint from 2.16.0 to 2.16.1 by @dependabot in #372
- Bump pylint from 2.16.1 to 2.16.2 by @dependabot in #373
- Bump pytest from 7.2.1 to 7.2.2 by @dependabot in #376
- Bump pylint from 2.16.2 to 2.16.3 by @dependabot in #377
- Bump pylint from 2.16.3 to 2.16.4 by @dependabot in #378
- Bump pylint from 2.16.4 to 2.17.0 by @dependabot in #379
- Bump actions/checkout from 3.3.0 to 3.4.0 by @dependabot in #380
- Bump pylint from 2.17.0 to 2.17.1 by @dependabot in #382
- Bump sql-metadata from 2.6.0 to 2.7.0 by @dependabot in #383
- Bump actions/checkout from 3.4.0 to 3.5.0 by @dependabot in #384
- Bump pylint from 2.17.1 to 2.17.2 by @dependabot in #385
- Bump pytest from 7.2.2 to 7.3.0 by @dependabot in #387
- Bump actions/checkout from 3.5.0 to 3.5.1 by @dependabot in #388
- Bump actions/checkout from 3.5.1 to 3.5.2 by @dependabot in #389
- Bump pytest from 7.3.0 to 7.3.1 by @dependabot in #390
- Bump dependabot/fetch-metadata from 1.3.6 to 1.4.0 by @dependabot in #391
- Bump sql-metadata from 2.7.0 to 2.8.0 by @dependabot in #392
- Bump termcolor from 2.2.0 to 2.3.0 by @dependabot in #393
- Bump pylint from 2.17.2 to 2.17.3 by @dependabot in #394
- Bump pylint from 2.17.3 to 2.17.4 by @dependabot in #396
- Bump dependabot/fetch-metadata from 1.4.0 to 1.5.0 by @dependabot in #397
- Bump dependabot/fetch-metadata from 1.5.0 to 1.5.1 by @dependabot in #399
- Bump pytest-cov from 4.0.0 to 4.1.0 by @dependabot in #400
- Bump pytest from 7.3.1 to 7.3.2 by @dependabot in #402
- Bump pytest from 7.3.2 to 7.4.0 by @dependabot in #405
- Bump dependabot/fetch-metadata from 1.5.1 to 1.6.0 by @dependabot in #406
- Bump actions/checkout from 3.5.2 to 3.5.3 by @dependabot in #403
- Bump pyyaml from 6.0 to 6.0.1 by @dependabot in #407
- Bump pylint from 2.17.4 to 2.17.5 by @dependabot in #408
- Bump actions/checkout from 3.5.3 to 3.6.0 by @dependabot in #410
- Bump pytest from 7.4.0 to 7.4.1 by @dependabot in #411
- Bump pytest from 7.4.1 to 7.4.2 by @dependabot in #414
- Bump actions/checkout from 3.6.0 to 4.0.0 by @dependabot in #412
- Bump mysqlclient from 2.1.1 to 2.2.0 by @dependabot in #404
Full Changelog: v1.5.1...v1.6.0
Container: Alpine-based + Python 3.10
The Dockerfile
is now Alpine-based resulting in a smaller container image. And the image is now running the latest Python 3.10.
What's Changed
- Bump pylint from 2.6.0 to 2.6.2 by @dependabot in #214
- Bump sql-metadata from 1.10.0 to 1.11.0 by @dependabot in #215
- Bump pylint from 2.6.2 to 2.7.0 by @dependabot in #216
- Dockerfile - use python:3.9-slim-buster by @macbre in #218
- Docker - use alpine as a base image by @macbre in #219
- Label the image with git URL and commit hash by @macbre in #221
- Build and test a Docker image - split jobs by @macbre in #222
- Bump pylint from 2.7.0 to 2.7.1 by @dependabot in #217
- Show commit hash in --version output (when running using Docker container) by @macbre in #223
- Bump coverage from 5.4 to 5.5 by @dependabot in #224
- Docker - remove more not needed files from the container by @macbre in #226
- Bump pylint from 2.7.1 to 2.7.2 by @dependabot in #225
- python.yml - test with Python 3.10.0-alpha.5 by @macbre in #227
- test_0031_low_cardinality_index is not stable by @macbre in #228
- Update Dockerfile by @macbre in #229
- Configure WhiteSource Bolt for GitHub by @mend-bolt-for-github in #230
- Bump twine from 3.3.0 to 3.4.1 by @dependabot in #232
- Bump pylint from 2.7.2 to 2.7.3 by @dependabot in #233
- Bump pylint from 2.7.3 to 2.7.4 by @dependabot in #235
- Bump pytest from 6.2.2 to 6.2.3 by @dependabot in #236
- Bump pylint from 2.7.4 to 2.8.2 by @dependabot in #238
- Bump sql-metadata from 1.11.0 to 1.12.0 by @dependabot in #239
- Bump pytest from 6.2.3 to 6.2.4 by @dependabot in #240
- Bump sql-metadata from 1.12.0 to 2.0.0 by @dependabot in #241
- Bump pylint from 2.8.2 to 2.8.3 by @dependabot in #243
- Bump sql-metadata from 2.0.0 to 2.2.1 by @dependabot in #245
- Send code coverage report to Coveralls by @macbre in #246
- Improve code coverage by @macbre in #247
- Bump pylint from 2.8.3 to 2.9.3 by @dependabot in #250
- Bump sql-metadata from 2.2.1 to 2.2.2 by @dependabot in #251
- Bump coveralls from 3.1.0 to 3.2.0 by @dependabot in #252
- Bump pylint from 2.9.3 to 2.9.5 by @dependabot in #255
- Push to docker.io by @macbre in #256
- Dockerfile: labelling happens in the action that builds and publishes an image by @macbre in #257
- Bump twine from 3.4.1 to 3.4.2 by @dependabot in #253
- CI - use python 3.10.0-rc.1 by @macbre in #259
- Bump pylint from 2.9.5 to 2.9.6 by @dependabot in #258
- Bump actions/checkout from 1 to 2.3.4 by @dependabot in #260
- Bump pytest from 6.2.4 to 6.2.5 by @dependabot in #263
- Bump pylint from 2.9.6 to 2.10.2 by @dependabot in #261
- Bump sql-metadata from 2.2.2 to 2.3.0 by @dependabot in #264
- Bump pylint from 2.10.2 to 2.11.1 by @dependabot in #265
- Bump pytest-cov from 2.12.1 to 3.0.0 by @dependabot in #267
- Bump actions/checkout from 2.3.4 to 2.3.5 by @dependabot in #271
- Python 3.10 has just been released by @macbre in #272
- Bump pyyaml from 5.4.1 to 6.0 by @dependabot in #270
- Bump actions/checkout from 2.3.5 to 2.4.0 by @dependabot in #274
- Bump coveralls from 3.2.0 to 3.3.0 by @dependabot in #275
- Bump twine from 3.4.2 to 3.5.0 by @dependabot in #276
- Bump coverage from 5.5 to 6.1.1 by @dependabot in #273
- Bump coverage from 6.1.1 to 6.1.2 by @dependabot in #277
- Bump twine from 3.5.0 to 3.6.0 by @dependabot in #278
- Bump coveralls from 3.3.0 to 3.3.1 by @dependabot in #279
- Bump mysqlclient from 2.0.3 to 2.1.0 by @dependabot in #280
- Bump coverage from 6.1.2 to 6.2 by @dependabot in #282
- Bump twine from 3.6.0 to 3.7.0 by @dependabot in #283
- Bump twine from 3.7.0 to 3.7.1 by @dependabot in #285
- Bump pylint from 2.11.1 to 2.12.2 by @dependabot in #284
- Bump coverage from 6.2 to 6.3 by @dependabot in #286
- Bump coverage from 6.3 to 6.3.1 by @dependabot in #287
- Bump twine from 3.7.1 to 3.8.0 by @dependabot in #288
- Bump pytest from 6.2.5 to 7.0.0 by @dependabot in #289
- Bump pytest from 7.0.0 to 7.0.1 by @dependabot in #290
- Bump dependabot/fetch-metadata from 1.1.1 to 1.2.0 by @dependabot in #291
- Bump coverage from 6.3.1 to 6.3.2 by @dependabot in #292
- Bump dependabot/fetch-metadata from 1.2.0 to 1.2.1 by @dependabot in #293
- Bump dependabot/fetch-metadata from 1.2.1 to 1.3.0 by @dependabot in #296
- Bump sql-metadata from 2.3.0 to 2.4.0 by @dependabot in #297
- Bump pytest from 7.0.1 to 7.1.0 by @dependabot in #298
- Bump pytest from 7.1.0 to 7.1.1 by @dependabot in #299
- Bump pylint from 2.12.2 to 2.13.0 by @dependabot in #301
- Bump pylint from 2.13.0 to 2.13.2 by @dependabot in #302
- Bump pylint from 2.13.2 to 2.13.3 by @dependabot in #303
- Bump pylint from 2.13.3 to 2.13.4 by @dependabot in #305
- Bump pylint from 2.13.4 to 2.13.5 by @dependabot in #308
- Bump pylint from 2.13.5 to 2.13.7 by @dependabot in #312
- Bump dependabot/fetch-metadata from 1.3.0 to 1.3.1 by @dependabot in #313
- Bump pytest from 7.1.1 to 7.1.2 by @dependabot in #315
- Bump sql-metadata from 2.4.0 to 2.5.0 by @dependabot in #316
- Bump pylint from 2.13.7 to 2.13.8 by @dependabot in #317
- Bump coverage from 6.3.2 to 6.3.3 by @dependabot in #318
- Bump pylint from 2.13.8 to 2.13.9 by @dependabot in #319
- Bump coverage from 6.3.3 to 6.4 by @dependabot in #320
- Bump pylint from 2.13.9 to 2.14.0 by @dependabot in #321
- Bump coverage from 6.4 to 6.4.1 by @dependabot in #323
- Bump twine from 3.8.0 to 4.0.1 by @dependabot in #322
- Bump actions/cache from 2 to 3.0.1 by @dependabot in #304
- Bump actions/setup-python from 2 to 3.1.1 by @dependabot in #309
- Bump actions/checkout from 2.4.0 to 3.0.2 by @dependabot in #314
- Bump pylint from 2.14.0 to 2.14.1 by @dependabot in #324
- Bump actions/setup-python from 3 to 4 by @dependabot in #325
- Bump pylint from 2.14.1 to 2.14.2 by @dependabot in #326
- Bump sql-metadata from 2.5.0 to 2.6.0 by @dependabot in #327
- Bump pylint from 2.14.2 to 2.14.3 by @dependabot in https://github.co...
queries_not_using_index linter improved
This release brings one bug fix (#210) and introduces GitHub's action allowing you to use index-digest
to check for database performance regressions as part of your CI pipeline.
Changelog
- #210
bug
- queries_not_using_index - ignore reports with "No matching min/max row" / "Select tables optimized away" - #198
dependencies
- Bump twine from 3.2.0 to 3.3.0 (by @dependabot[bot]) - #199
internals
- Use Docker layers cache to speed up CI builds - #201
docker
- Try to use Docker's BuildKit - #202
dependencies
- Update databases used in integration tests - #208
pr
- CI | With Docker Build there's not need to pull an image first - #209
pr
- docker build - use --cache-from - #212
internals
- CI | run database on a custom port
SQL parsing improved + tests stability
- #176
dependencies
- Bump coverage from 5.2 to 5.2.1 (by @dependabot[bot]) - #177
dependencies
- Bump pytest from 5.4.3 to 6.0.0 (by @dependabot[bot]) - #178
dependencies
- Bump pytest from 6.0.0 to 6.0.1 (by @dependabot[bot]) - #179
docker
- Dockerfile: use python:3.8-slim-buster - #180
dependencies
- Bump sql_metadata from 1.7.1 to 1.8.0 - #182
pr
- Delete wait_for_mysql.sh - #183
dependencies
- Bump coverage from 5.2.1 to 5.3 (by @dependabot[bot]) - #184
dependencies
- Bump pytest from 6.0.1 to 6.0.2 (by @dependabot[bot]) - #186
dependencies
- Bump pytest from 6.0.2 to 6.1.1 (by @dependabot[bot]) - #187
dependencies
- Bump sql-metadata from 1.8.0 to 1.9.1 (by @dependabot[bot]) - #188
pr
- Use Python 3.9 - #189
dependencies
- Bump pytest from 6.1.1 to 6.1.2 (by @dependabot[bot]) - #190
internals
- CI: cache pip dependencies - #191
dependencies
- Bump mysqlclient from 2.0.1 to 2.0.2 (by @dependabot[bot]) - #193
dependencies
- Bump pytest from 6.1.2 to 6.2.1 (by @dependabot[bot]) - #194
dependencies
- Bump coverage from 5.3 to 5.3.1 (by @dependabot[bot]) - #195
enhancement
- Improve low cardinality indices detection - #196
pr
- Decrease cardinality to stabilize tests - #197
dependencies
- Bump sql-metadata from 1.9.1 to 1.10.0 (by @dependabot[bot])
Dependencies and SQL queries parsing updated
- #163 - Allow port to be specified in DSN (thanks to @EricTendian)
Internals
Tests are now executed using GitHub Actions instead of TravisCI.
All dependencies are now up to date . sql_metadata
library (that parses SQL for us) is updated as well.
All code changes are now tested against MariaDB 10.5 and the latest Percona Server.
v1.2.1
- #144 -
non_utf_columns
| handle blobs and other UTF character sets - #145 -
non_utf_columns
| add table schema in reported context #145 - #147 - Detect empty databases
- #149 -
queries_not_using_index
| handle "No tables used" - #157 - Report low cardinality indices
- #160 - drop support for Python 2.7, MySQL 5.5, 5.6 and MariaDB 10.0
MySQL 5.5 support ended in December 2015
MySQL 5.6 - February 2018
MariaDB 10.0 - March 201
Python 2.7 will be gone by the end of 2019
v1.2.0
- #36 [linters] - Suggest InnoDB over MyISAM
- #128 [linters] -
data-too-old
: check columns with non-timestamp types, but with "time" in their names - #129 [bug] -
data_too_old
- handle incorrect or missing timestamp values - #130 [bug] - Ignore views
- #131 [enhancement] - Treat
forum_creation_temp
as temporary table - #132 [bug] - Handle tables names with dashes
- #137 [bug] -
get_boundary_times
| handle tables with dashes - #138 [bug] -
select_star
| queries with comments should be handled as well - #140 [bug] -
high_offset_selects
| insert queries should be skipped by this check
v1.1.0
- #28 [linters] - Check timestamp columns if they contain old data
- #54 [command line tool] - Process selected checks when
--checks
/--skip-checks
option is provided - #55 [command line tool] - Process only selected tables when
--tables
/--skip-tables
option is provided - #94 [linters] - Report primary keys with a generic "id" name
- #106 [bug] -
get_table_schema
: cast to str - #107 [enhancement] - Do not add partitions in schema returned by the database helper
- #109 [enhancement] - Improve
get_used_tables_from_queries
handling of table aliases - #112 [bug] - Fix
Database error #1146 - Cannot get columns list for table
- #114 [performance] - get_boundary_times: add
@memoize
- #115 [bug] -
check_data_not_updated_recently
/check_data_too_old
- cast timestamps to str - #116 [internals] - cli:
extract get_reports()
function and improve syslog reporter tests coverage - #118 [linters] - Avoid high offsets in queries
- #119 [internals] - Update dependencies
- #120 [enhancement] -
data_too_old
/data_not_updated_recently
- report timestamp column name and table size
v1.0.0
- #73 [linters] - Consider adding checks from
sqlcheck
- #84 [linters] - Consider adding checks from
SchemaCrawler
- #85 [bug] - tests: do not assume the version, silly me...
- #86 [internals] - Cache table schema
- #87 [formatters] - syslog: emit
appname
field - #89 [linters] - Report empty tables
- #90 [internals] -
add_linter
helper script - #92 [linters] - Report select queries with
*
- #93 [linters] - Report queries with
HAVING
clause - #95 [bug] -
empty_tables
: useEXPLAIN SELECT count(*)
to estimate rows count - #97 [internals] -
get_query_tables
: improve SQL queries parsing - #98 [enhancement] - Gracefully handle complex queries that can't be parsed
- #100 [internals] -
sql_metadata
| use a new Python package extracted from index-digest - #101 [internals] - Use
sql_metadata==1.0.2
- #104 [enhancement] -
not_used_tables
: report rows count, table size and its schema
v0.2.0
- #34 [linters] - Check for missing primary or unique keys
- #35 [formatters] - Support more formatters
- #68 [formatters] - Add YAML results formatter
- #70 [linters] - Report
INSERT IGNORE
queries - #72 [formatters] - Add
syslog
results reporter - #74 [linters] - Report tables with just a single column
- #75 [linters] - Report tables with "test" word in a name
- #77 [internals] - travis: make build matrix a bit smaller (and faster)