mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-10 05:00:45 +00:00
Added --preserve-embedded-numbers. Still nedd to add tests
This commit is contained in:
@@ -13045,7 +13045,7 @@ sub main {
|
||||
# #######################################################################
|
||||
my $q = new Quoter();
|
||||
my $qp = new QueryParser();
|
||||
my $qr = new QueryRewriter(QueryParser=>$qp);
|
||||
my $qr = new QueryRewriter(QueryParser=>$qp, match_embedded_numbers => $o->get('preserve-embedded-numbers') ? 1 : 0);
|
||||
my %common_modules = (
|
||||
OptionParser => $o,
|
||||
DSNParser => $dp,
|
||||
@@ -15863,6 +15863,14 @@ short form: -P; type: int
|
||||
|
||||
Port number to use for connection.
|
||||
|
||||
=item --preserve-embedded-numbers
|
||||
|
||||
Preserve numbers in database/table names when fingerprinting queries.
|
||||
The standar fingeprint method replaces numbers in db/tables names, making
|
||||
a query like 'SELECT * FROM db1.table2' to be figerprinted as 'SELECT * FROM db?.table?'.
|
||||
This option changes that behaviour and the fingerprint will become
|
||||
'SELECT * FROM db1.table2'.
|
||||
|
||||
=item --processlist
|
||||
|
||||
type: DSN
|
||||
|
@@ -1465,6 +1465,18 @@ is(
|
||||
);
|
||||
|
||||
|
||||
$qr = new QueryRewriter(
|
||||
QueryParser => $qp,
|
||||
match_embedded_numbers => 1,
|
||||
);
|
||||
|
||||
is(
|
||||
$qr->fingerprint(
|
||||
"SELECT * FROM prices2.t1 where id=1"
|
||||
),
|
||||
"select * from prices2.t1 where id=?",
|
||||
"Fingerprint db.tbl<number>name (preserve number)"
|
||||
);
|
||||
|
||||
# #############################################################################
|
||||
# Done.
|
||||
|
@@ -107,6 +107,23 @@ ok(
|
||||
"--explain sparkline uses event db and doesn't crash ea (issue 1196)"
|
||||
);
|
||||
|
||||
$sb->load_file('master', "t/pt-query-digest/samples/issue_1604834.sql");
|
||||
#
|
||||
warn "$trunk/t/pt-query-digest/samples/issue_1196.log";
|
||||
ok(
|
||||
no_diff(
|
||||
sub { pt_query_digest::main(@args,
|
||||
'--report-format', 'profile,query_report', "--preserve-embedded-numbers",
|
||||
"$trunk/t/pt-query-digest/samples/issue_1196.log",)
|
||||
},
|
||||
( $sandbox_version ge '5.7' ? "$sample/issue_1196-output-5.7.txt"
|
||||
: $sandbox_version ge '5.6' ? "$sample/issue_1196-output-5.6.txt"
|
||||
: $sandbox_version ge '5.1' ? "$sample/issue_1196-output.txt"
|
||||
: "$sample/issue_1196-output-5.0.txt"),
|
||||
),
|
||||
"--preserve-embedded-numbers"
|
||||
);
|
||||
|
||||
# #############################################################################
|
||||
# Done.
|
||||
# #############################################################################
|
||||
|
5
t/pt-query-digest/samples/issue_1604834.sql
Normal file
5
t/pt-query-digest/samples/issue_1604834.sql
Normal file
@@ -0,0 +1,5 @@
|
||||
drop database if exists issue_1196;
|
||||
create database issue_1196;
|
||||
use issue_1196;
|
||||
create table t (a int);
|
||||
insert into t values (1),(2),(4),(5),(20),(20900),(228),(33),(89),(22828),(9292),(3939),(1111),(0);
|
Reference in New Issue
Block a user