GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Search::QueryParser::SQL(3) User Contributed Perl Documentation Search::QueryParser::SQL(3)

Search::QueryParser::SQL - turn free-text queries into SQL WHERE clauses

 use Search::QueryParser::SQL;
 my $parser = Search::QueryParser::SQL->new(
            columns => [qw( first_name last_name email )]
        );
        
 my $query = $parser->parse('joe smith', 1); # 1 for explicit AND
 print $query;
 # prints:
 # (first_name='joe' OR last_name='joe' OR email='joe') AND \
 # (first_name='smith' OR last_name='smith' OR email='smith')
 
 # for the DBI
 my $query = $parser->parse('foo');
 print $query->dbi->[0];
 # prints
 # (first_name=? OR last_name=? OR email=?)
 
 # wildcard support
 my $query = $parser->parse('foo*');
 print $query;
 # prints
 # (first_name ILIKE 'foo%' OR last_name ILIKE 'foo%' OR email ILIKE 'foo%')

Search::QueryParser::SQL is a subclass of Search::QueryParser. Chiefly it extends the unparse() method to stringify free-text search queries as valid SQL WHERE clauses.

The idea is to allow you to treat your database like a free-text search index, when it really isn't.

Only new or overridden method are documented here.

Returns a new Parser. In addition to the args documented in Search::QueryParser, this new() method supports additional args:
columns
Required

May be a hash or array ref of column names. If a hash ref, the keys should be column names and the values either the column type (e.g., int, varchar, etc.) or a hashref of attributes used to instantiate a Search::QueryParser::SQL::Column object.

The values are used for determining correct quoting in strings and for operator selection with wildcards. If passed as an array ref, all column arguments will be treated like 'char'.

See Search::QueryParser::SQL::Column for more information.

default_column
Optional

The column name or names to be used when no explicit column name is used in a query string. If not present, defaults to columns.

quote_columns
Optional

The default behaviour is to not quote column names, but some SQL dialects expect column names to be quoted (escaped).

Set this arg to a quote value. Example:

 my $parser = Search::QueryParser::SQL->new(
            columns         => [qw( foo bar )],
            quote_columns   => '`'
            );
 # query will look like `foo` and `bar`
    
fuzzify
Optional

Treat all query keywords as if they had wildcards attached to the end. E.g., "foo" would be treated like "foo*".

fuzzify2
Optional

Like fuzzify but prepend wildcards as well. E.g., "foo" would be treated like "*foo*".

strict
Optional

Croak if any of the column names in string are not among the supplied column names in columns.

like
Optional

The SQL operator to use for wildcard query strings. The default is "ILIKE".

lower
Optional

Wrap the "LOWER()" function around column names for case-insensitive comparison.

column_class
Optional

The name of the class to bless Column objects into. Default is "Search::QueryParser::SQL::Column".

Acts like parse() method in Search::QueryParser, but returns a Search::QueryParser::SQL::Query object.

If a second, true, value is passed as implicit_AND, the query is assumed to "AND" terms together. The default is to "OR" them together.

Get/set the column descriptions, which is a hashref of Search::QueryParser::SQL::Column objects keyed by the column name.

Returns the Column object for name or croaks if it has not been defined.

Peter Karman, "<karman@cpan.org>"

Please report any bugs or feature requests to "bug-search-queryparser-sql@rt.cpan.org", or through the web interface at <http://rt.cpan.org>. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

The Minnesota Supercomputing Institute "http://www.msi.umn.edu/" sponsored the development of this software.

Copyright 2008 by the Regents of the University of Minnesota.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

2014-02-27 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.