diff options
author | ivan <ivan> | 2010-03-30 03:28:14 +0000 |
---|---|---|
committer | ivan <ivan> | 2010-03-30 03:28:14 +0000 |
commit | 5706781c54820002799ce3a1d2d4893256b9b755 (patch) | |
tree | 3725c67dcdfac0cbd13b65cc214855ad95463cb8 /FS/FS/Record.pm | |
parent | 562a1aa9a6ad89347efe3f1a0b9fedc62b74c404 (diff) |
regexp_sql
Diffstat (limited to 'FS/FS/Record.pm')
-rw-r--r-- | FS/FS/Record.pm | 44 |
1 files changed, 43 insertions, 1 deletions
diff --git a/FS/FS/Record.pm b/FS/FS/Record.pm index 3b1967e..0845cc6 100644 --- a/FS/FS/Record.pm +++ b/FS/FS/Record.pm @@ -31,7 +31,7 @@ use Tie::IxHash; #export dbdef for now... everything else expects to find it here @EXPORT_OK = qw(dbh fields hfields qsearch qsearchs dbdef jsearch - str2time_sql str2time_sql_closing ); + str2time_sql str2time_sql_closing regexp_sql not_regexp_sql ); $DEBUG = 0; $me = '[FS::Record]'; @@ -2942,6 +2942,48 @@ sub str2time_sql_closing { return ' ) '; } +=item regexp_sql [ DRIVER_NAME ] + +Returns the operator to do a regular expression comparison based on database +type, such as '~' for Pg or 'REGEXP' for mysql. + +You can pass an optional driver name such as "Pg", "mysql" or +$dbh->{Driver}->{Name} to return a function for that database instead of +the current database. + +=cut + +sub regexp_sql { + my $driver = shift || driver_name; + + return '~' if $driver =~ /^Pg/i; + return 'REGEXP' if $driver =~ /^mysql/i; + + die "don't know how to use regular expressions in ". driver_name." databases"; + +} + +=item not_regexp_sql [ DRIVER_NAME ] + +Returns the operator to do a regular expression negation based on database +type, such as '!~' for Pg or 'NOT REGEXP' for mysql. + +You can pass an optional driver name such as "Pg", "mysql" or +$dbh->{Driver}->{Name} to return a function for that database instead of +the current database. + +=cut + +sub not_regexp_sql { + my $driver = shift || driver_name; + + return '!~' if $driver =~ /^Pg/i; + return 'NOT REGEXP' if $driver =~ /^mysql/i; + + die "don't know how to use regular expressions in ". driver_name." databases"; + +} + =back =head1 BUGS |