Added --preserve-embedded-numbers. Still nedd to add tests

This commit is contained in:
Carlos Salguero
2016-08-23 12:59:54 -03:00
parent 68f373b8b4
commit 2b5e82c27c
4 changed files with 43 additions and 1 deletions

View File

@@ -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

View File

@@ -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.

View File

@@ -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.
# #############################################################################

View 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);