From e2cf18376268269b8f6d3eab156bf15cfe626f43 Mon Sep 17 00:00:00 2001 From: Carlos Salguero Date: Thu, 24 May 2018 15:57:21 -0300 Subject: [PATCH] PT-1554 Updated pt-table-checksum var type In different OSes, using BIGINT to store the checksum for a query, will produce collisions and/or unstable values. Because of this, I changed the type for the checksum field in the history table from BIGINT to CHAR(32) and the checksum function is no longer truncating the MD5_HEX result to 16 chars. --- bin/pt-query-digest | 5 ++--- t/pt-query-digest/samples/slow006_AR_1.txt | 8 -------- t/pt-query-digest/samples/slow006_AR_2.txt | 8 -------- t/pt-query-digest/samples/slow006_AR_4.txt | 8 -------- t/pt-query-digest/samples/slow006_AR_5.txt | 8 -------- 5 files changed, 2 insertions(+), 35 deletions(-) diff --git a/bin/pt-query-digest b/bin/pt-query-digest index 3f5ee9f4..0f82db9e 100755 --- a/bin/pt-query-digest +++ b/bin/pt-query-digest @@ -2679,8 +2679,7 @@ sub any_unix_timestamp { sub make_checksum { my ( $val ) = @_; - my $checksum = uc substr(md5_hex($val), -16); - warn ($checksum, ' checksum for ', $val); + my $checksum = uc md5_hex($val); PTDEBUG && _d($checksum, 'checksum for', $val); return $checksum; } @@ -16189,7 +16188,7 @@ by pt-query-digest. MAGIC_create_review_table: CREATE TABLE IF NOT EXISTS query_review ( - checksum BIGINT UNSIGNED NOT NULL PRIMARY KEY, + checksum CHAR(32) NOT NULL PRIMARY KEY, fingerprint TEXT NOT NULL, sample TEXT NOT NULL, first_seen DATETIME, diff --git a/t/pt-query-digest/samples/slow006_AR_1.txt b/t/pt-query-digest/samples/slow006_AR_1.txt index 63407314..2a8d50f5 100644 --- a/t/pt-query-digest/samples/slow006_AR_1.txt +++ b/t/pt-query-digest/samples/slow006_AR_1.txt @@ -1,7 +1,3 @@ -538CA093E701E0CBA20C29AF174CE545 checksum for select col from foo_tbl at /home/karl/golang/src/github.com/percona/percona-toolkit/bin/pt-query-digest line 2683. -3E4FB43148C4B07CD4CD74934382A184 checksum for select col from bar_tbl at /home/karl/golang/src/github.com/percona/percona-toolkit/bin/pt-query-digest line 2683. -538CA093E701E0CBA20C29AF174CE545 checksum for select col from foo_tbl at /home/karl/golang/src/github.com/percona/percona-toolkit/bin/pt-query-digest line 2683. -3E4FB43148C4B07CD4CD74934382A184 checksum for select col from bar_tbl at /home/karl/golang/src/github.com/percona/percona-toolkit/bin/pt-query-digest line 2683. # Query 1: 0.05 QPS, 0.00x concurrency, ID 0x538CA093E701E0CBA20C29AF174CE545 at byte 1833 # This item is included in the report because it matches --limit. @@ -78,7 +74,3 @@ SELECT col FROM foo_tbl\G # SHOW CREATE TABLE `bar`.`bar_tbl`\G # EXPLAIN /*!50100 PARTITIONS*/ SELECT col FROM bar_tbl\G -538CA093E701E0CBA20C29AF174CE545 checksum for select col from foo_tbl at /home/karl/golang/src/github.com/percona/percona-toolkit/bin/pt-query-digest line 2683. -538CA093E701E0CBA20C29AF174CE545 checksum for select col from foo_tbl at /home/karl/golang/src/github.com/percona/percona-toolkit/bin/pt-query-digest line 2683. -3E4FB43148C4B07CD4CD74934382A184 checksum for select col from bar_tbl at /home/karl/golang/src/github.com/percona/percona-toolkit/bin/pt-query-digest line 2683. -3E4FB43148C4B07CD4CD74934382A184 checksum for select col from bar_tbl at /home/karl/golang/src/github.com/percona/percona-toolkit/bin/pt-query-digest line 2683. diff --git a/t/pt-query-digest/samples/slow006_AR_2.txt b/t/pt-query-digest/samples/slow006_AR_2.txt index 63407314..2a8d50f5 100644 --- a/t/pt-query-digest/samples/slow006_AR_2.txt +++ b/t/pt-query-digest/samples/slow006_AR_2.txt @@ -1,7 +1,3 @@ -538CA093E701E0CBA20C29AF174CE545 checksum for select col from foo_tbl at /home/karl/golang/src/github.com/percona/percona-toolkit/bin/pt-query-digest line 2683. -3E4FB43148C4B07CD4CD74934382A184 checksum for select col from bar_tbl at /home/karl/golang/src/github.com/percona/percona-toolkit/bin/pt-query-digest line 2683. -538CA093E701E0CBA20C29AF174CE545 checksum for select col from foo_tbl at /home/karl/golang/src/github.com/percona/percona-toolkit/bin/pt-query-digest line 2683. -3E4FB43148C4B07CD4CD74934382A184 checksum for select col from bar_tbl at /home/karl/golang/src/github.com/percona/percona-toolkit/bin/pt-query-digest line 2683. # Query 1: 0.05 QPS, 0.00x concurrency, ID 0x538CA093E701E0CBA20C29AF174CE545 at byte 1833 # This item is included in the report because it matches --limit. @@ -78,7 +74,3 @@ SELECT col FROM foo_tbl\G # SHOW CREATE TABLE `bar`.`bar_tbl`\G # EXPLAIN /*!50100 PARTITIONS*/ SELECT col FROM bar_tbl\G -538CA093E701E0CBA20C29AF174CE545 checksum for select col from foo_tbl at /home/karl/golang/src/github.com/percona/percona-toolkit/bin/pt-query-digest line 2683. -538CA093E701E0CBA20C29AF174CE545 checksum for select col from foo_tbl at /home/karl/golang/src/github.com/percona/percona-toolkit/bin/pt-query-digest line 2683. -3E4FB43148C4B07CD4CD74934382A184 checksum for select col from bar_tbl at /home/karl/golang/src/github.com/percona/percona-toolkit/bin/pt-query-digest line 2683. -3E4FB43148C4B07CD4CD74934382A184 checksum for select col from bar_tbl at /home/karl/golang/src/github.com/percona/percona-toolkit/bin/pt-query-digest line 2683. diff --git a/t/pt-query-digest/samples/slow006_AR_4.txt b/t/pt-query-digest/samples/slow006_AR_4.txt index 63407314..2a8d50f5 100644 --- a/t/pt-query-digest/samples/slow006_AR_4.txt +++ b/t/pt-query-digest/samples/slow006_AR_4.txt @@ -1,7 +1,3 @@ -538CA093E701E0CBA20C29AF174CE545 checksum for select col from foo_tbl at /home/karl/golang/src/github.com/percona/percona-toolkit/bin/pt-query-digest line 2683. -3E4FB43148C4B07CD4CD74934382A184 checksum for select col from bar_tbl at /home/karl/golang/src/github.com/percona/percona-toolkit/bin/pt-query-digest line 2683. -538CA093E701E0CBA20C29AF174CE545 checksum for select col from foo_tbl at /home/karl/golang/src/github.com/percona/percona-toolkit/bin/pt-query-digest line 2683. -3E4FB43148C4B07CD4CD74934382A184 checksum for select col from bar_tbl at /home/karl/golang/src/github.com/percona/percona-toolkit/bin/pt-query-digest line 2683. # Query 1: 0.05 QPS, 0.00x concurrency, ID 0x538CA093E701E0CBA20C29AF174CE545 at byte 1833 # This item is included in the report because it matches --limit. @@ -78,7 +74,3 @@ SELECT col FROM foo_tbl\G # SHOW CREATE TABLE `bar`.`bar_tbl`\G # EXPLAIN /*!50100 PARTITIONS*/ SELECT col FROM bar_tbl\G -538CA093E701E0CBA20C29AF174CE545 checksum for select col from foo_tbl at /home/karl/golang/src/github.com/percona/percona-toolkit/bin/pt-query-digest line 2683. -538CA093E701E0CBA20C29AF174CE545 checksum for select col from foo_tbl at /home/karl/golang/src/github.com/percona/percona-toolkit/bin/pt-query-digest line 2683. -3E4FB43148C4B07CD4CD74934382A184 checksum for select col from bar_tbl at /home/karl/golang/src/github.com/percona/percona-toolkit/bin/pt-query-digest line 2683. -3E4FB43148C4B07CD4CD74934382A184 checksum for select col from bar_tbl at /home/karl/golang/src/github.com/percona/percona-toolkit/bin/pt-query-digest line 2683. diff --git a/t/pt-query-digest/samples/slow006_AR_5.txt b/t/pt-query-digest/samples/slow006_AR_5.txt index 764499ee..eb50c7fa 100644 --- a/t/pt-query-digest/samples/slow006_AR_5.txt +++ b/t/pt-query-digest/samples/slow006_AR_5.txt @@ -1,7 +1,3 @@ -538CA093E701E0CBA20C29AF174CE545 checksum for select col from foo_tbl at /home/karl/golang/src/github.com/percona/percona-toolkit/bin/pt-query-digest line 2683. -3E4FB43148C4B07CD4CD74934382A184 checksum for select col from bar_tbl at /home/karl/golang/src/github.com/percona/percona-toolkit/bin/pt-query-digest line 2683. -538CA093E701E0CBA20C29AF174CE545 checksum for select col from foo_tbl at /home/karl/golang/src/github.com/percona/percona-toolkit/bin/pt-query-digest line 2683. -3E4FB43148C4B07CD4CD74934382A184 checksum for select col from bar_tbl at /home/karl/golang/src/github.com/percona/percona-toolkit/bin/pt-query-digest line 2683. # Query 1: 0.05 QPS, 0.00x concurrency, ID 0x538CA093E701E0CBA20C29AF174CE545 at byte 1833 # This item is included in the report because it matches --limit. @@ -80,7 +76,3 @@ SELECT col FROM foo_tbl\G # SHOW CREATE TABLE `bar`.`bar_tbl`\G # EXPLAIN /*!50100 PARTITIONS*/ SELECT col FROM bar_tbl\G -538CA093E701E0CBA20C29AF174CE545 checksum for select col from foo_tbl at /home/karl/golang/src/github.com/percona/percona-toolkit/bin/pt-query-digest line 2683. -538CA093E701E0CBA20C29AF174CE545 checksum for select col from foo_tbl at /home/karl/golang/src/github.com/percona/percona-toolkit/bin/pt-query-digest line 2683. -3E4FB43148C4B07CD4CD74934382A184 checksum for select col from bar_tbl at /home/karl/golang/src/github.com/percona/percona-toolkit/bin/pt-query-digest line 2683. -3E4FB43148C4B07CD4CD74934382A184 checksum for select col from bar_tbl at /home/karl/golang/src/github.com/percona/percona-toolkit/bin/pt-query-digest line 2683.