&eq_sql_bind &eq_sql &eq_bind
$case_sensitive $sql_differ/;
+my $sqlat = SQL::Abstract::Tree->new;
+
our $case_sensitive = 0;
our $parenthesis_significant = 0;
our $sql_differ; # keeps track of differing portion between SQLs
my ($sql1, $sql2) = @_;
# parse
- my $tree1 = parse($sql1);
- my $tree2 = parse($sql2);
+ my $tree1 = $sqlat->parse($sql1);
+ my $tree2 = $sqlat->parse($sql2);
return 1 if _eq_sql($tree1, $tree2);
}
}
# one is a list, the other is an op with a list
elsif (ref $left->[0] xor ref $right->[0]) {
- $sql_differ = sprintf ("left: %s\nright: %s\n", map { unparse ($_) } ($left, $right) );
+ $sql_differ = sprintf ("left: %s\nright: %s\n", map { $sqlat->unparse ($_) } ($left, $right) );
return 0;
}
# one is a list, so is the other
# if operators are different
if ( $left->[0] ne $right->[0] ) {
$sql_differ = sprintf "OP [$left->[0]] != [$right->[0]] in\nleft: %s\nright: %s\n",
- unparse($left),
- unparse($right);
+ $sqlat->unparse($left),
+ $sqlat->unparse($right);
return 0;
}
# elsif operators are identical, compare operands
}
else {
my $eq = _eq_sql($left->[1], $right->[1]);
- $sql_differ ||= sprintf ("left: %s\nright: %s\n", map { unparse ($_) } ($left, $right) ) if not $eq;
+ $sql_differ ||= sprintf ("left: %s\nright: %s\n", map { $sqlat->unparse ($_) } ($left, $right) ) if not $eq;
return $eq;
}
}
}
-sub parse { goto &SQL::Abstract::Tree::parse }
-
-sub unparse { goto &SQL::Abstract::Tree::unparse }
-
-
1;