Skip to content

Releases: macbre/index-digest

Support MySQL 8.1 and MariaDB 10.6 + drop support for Python 3.7

13 Sep 11:26
6a2f9a5
Compare
Choose a tag to compare

What's Changed

Full Changelog: v1.5.1...v1.6.0

Container: Alpine-based + Python 3.10

19 Sep 14:19
4bb79fb
Compare
Choose a tag to compare

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

Read more

queries_not_using_index linter improved

10 Feb 12:53
e2ea3fa
Compare
Choose a tag to compare

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

24 Dec 12:40
6585c0e
Compare
Choose a tag to compare
  • #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

12 Jul 20:27
2267efd
Compare
Choose a tag to compare

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

04 Oct 19:11
Compare
Choose a tag to compare
  • #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

17 Mar 16:11
Compare
Choose a tag to compare
  • #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

27 Feb 20:47
Compare
Choose a tag to compare
  • #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

14 Jan 16:02
Compare
Choose a tag to compare
  • #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: use EXPLAIN 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

30 Dec 15:12
Compare
Choose a tag to compare
  • #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)