NAME

Search::Query::Dialect::SQL - SQL query dialect

SYNOPSIS

my $query = Search::Query->parser( dialect => 'SQL' )->parse('foo');
print $query;

DESCRIPTION

Search::Query::Dialect::SQL is a query dialect for Query objects returned by a Search::Query::Parser instance.

The SQL dialect class stringifies queries to work as SQL WHERE clauses. This behavior is similar to Search::QueryParser::SQL.

METHODS

This class is a subclass of Search::Query::Dialect. Only new or overridden methods are documented here.

BUILD

Called by new(). The new() constructor can accept the following params, which are also standard attribute accessors:

wildcard

Default value is %.

quote_fields

Default value is "". Set to (for example) ` to quote each field name in stringify() as some SQL variants require that syntax (e.g. mysql).

default_field

Override the default field set in Search::Query::Parser.

fuzzify

Append wildcard() to all terms.

fuzzify2

Prepend and append wildcard() to all terms.

like

The SQL reserved word for wildcard comparison. Default value is ILIKE.

quote_char

The string to use for quoting strings. Default is '.

fuzzy_space

The string to use to pad fuzzified terms. Default is a single space .

stringify

Returns the Query object as a normalized string.

stringify_clause( leaf, prefix )

Called by stringify() to handle each Clause in the Query tree.

get_field

Overrides default to set fuzzy_op and fuzzy_not_op.

field_class

Returns "Search::Query::Field::SQL".

AUTHOR

Peter Karman, <karman at cpan.org>

BUGS

Please report any bugs or feature requests to bug-search-query at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Search-Query. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc Search::Query

You can also look for information at:

ACKNOWLEDGEMENTS

This module started as a fork of Search::QueryParser by Laurent Dami.

COPYRIGHT & LICENSE

Copyright 2010 Peter Karman.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.