90
92
my $original_result = $results->[0];
91
93
my $original_query = $original_result->query();
93
my ($transform_outcome, $transformed_query, $transformed_result) = $transformer->transformExecuteValidate($original_query, $original_result, $executor);
95
my ($transform_outcome, $transformed_queries, $transformed_results) = $transformer->transformExecuteValidate($original_query, $original_result, $executor);
94
96
return $transform_outcome if ($transform_outcome > STATUS_CRITICAL_FAILURE) || ($transform_outcome eq STATUS_OK);
96
98
say("Original query: $original_query failed transformation with Transformer ".$transformer->name());
97
say("Transformed query: $transformed_query");
99
say("Transformed query: ".join('; ', @$transformed_queries));
101
say(GenTest::Comparator::dumpDiff($original_result, $transformed_results->[0]));
103
say("Simplifying...");
99
105
my $simplifier_query = GenTest::Simplifier::SQL->new(
104
110
return ORACLE_ISSUE_STATUS_UNKNOWN if $oracle_result->status() != STATUS_OK;
106
my ($oracle_outcome, $oracle_transformed_query, $oracle_transformed_result) = $transformer->transformExecuteValidate($oracle_query, $oracle_result, $executor);
112
my ($oracle_outcome, $oracle_transformed_queries, $oracle_transformed_results) = $transformer->transformExecuteValidate($oracle_query, $oracle_result, $executor);
109
115
($oracle_outcome == STATUS_CONTENT_MISMATCH) ||
132
138
say("Simplified query: $simplified_query");
134
my $simplified_transformed_query = $transformer->transform($simplified_query, $executor);
135
$simplified_transformed_query = join('; ', @$simplified_transformed_query) if ref($simplified_transformed_query) eq 'ARRAY';
136
say("Simplified transformed query: $simplified_transformed_query");
138
my $simplified_transformed_result = $executor->execute($simplified_transformed_query, 1);
139
if (defined $simplified_transformed_result->warnings()) {
140
my ($transform_outcome, $simplified_transformed_queries, $simplified_transformed_results) = $transformer->transformExecuteValidate($simplified_query, $simplified_result, $executor);
142
$simplified_transformed_queries = join('; ', @$simplified_transformed_queries) if ref($simplified_transformed_queries) eq 'ARRAY';
143
say("Simplified transformed query: $simplified_transformed_queries");
145
if (defined $simplified_transformed_results->[0]->warnings()) {
140
146
say("Simplified transformed query produced warnings.");
141
147
# return STATUS_WONT_HANDLE;
144
say(GenTest::Comparator::dumpDiff($simplified_result, $simplified_transformed_result));
150
say(GenTest::Comparator::dumpDiff($simplified_result, $simplified_transformed_results->[0]));
146
152
my $simplifier_test = GenTest::Simplifier::Test->new(
147
153
executors => [ $executor ],
148
queries => [ $simplified_query, $simplified_transformed_query ]
154
results => [ [ $simplified_result, $simplified_transformed_results->[0] ] ],
155
queries => [ $simplified_query, $simplified_transformed_queries ]
151
158
my $test = $simplifier_test->simplify();