/usr/local/CPAN/DBD-Amazon/SQL/Amazon/Functions.pm
#
# Copyright (c) 2005, Presicient Corp., USA
#
# Permission is granted to use this software according to the terms of the
# Artistic License, as specified in the Perl README file,
# with the exception that commercial redistribution, either
# electronic or via physical media, as either a standalone package,
# or incorporated into a third party product, requires prior
# written approval of the author.
#
# This software is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#
# Presicient Corp. reserves the right to provide support for this software
# to individual sites under a separate (possibly fee-based)
# agreement.
#
# History:
#
# 2005-Jan-27 D. Arnold
# Coded.
#
package SQL::Amazon::Functions;
use strict;
our $VERSION = '0.10';
sub SQL_FUNCTION_AMZN_MATCH_ANY { return undef; }
sub SQL_FUNCTION_AMZN_MATCH_ALL { return undef; }
sub SQL_FUNCTION_AMZN_MATCH_TEXT { return undef; }
sub SQL_FUNCTION_AMZN_POWER_SEARCH { return undef; }
sub SQL_FUNCTION_AMZN_IN_ANY {
my ($obj, $sth, $rowhash, $expr, @list) = @_;
return join(',', @list)
unless (defined($rowhash) &&
(scalar keys %$rowhash));
return undef
unless defined($expr);
foreach (@list) {
next unless defined($_);
return 1
if ((is_number($expr) && is_number($_) && ($expr == $_)) ||
($expr eq $_));
}
return undef;
}
sub SQL_FUNCTION_AMZN_NOT_IN_ANY {
my ($obj, $sth, $rowhash, $expr, @list) = @_;
return 1 unless defined($expr);
foreach (@list) {
next unless defined($_);
return undef
if ((is_number($expr) && is_number($_) && ($expr == $_)) ||
($expr eq $_));
}
return 1;
}
sub is_number {
my $v = shift;
return ($v=~/^([+-]?|\s+)(?=\d|\.\d)\d*(\.\d*)?([Ee]([+-]?\d+))?$/);
}
1;