# ==================================================================
# Gossamer Threads Module Library - http://gossamer-threads.com/
#
#   GT::Search::MYSQL::Search
#   Author  : Aki Mimoto
#   CVS Info :                          
#   $Id: Search.pm,v 1.14 2004/01/13 01:35:19 jagerman Exp $
#
# Copyright (c) 2004 Gossamer Threads Inc.  All Rights Reserved.
# ==================================================================
#
# Description:
#   Class used to search indexed tables.
#

package GT::SQL::Search::MYSQL::Search;
# ------------------------------------------------------------------------------
    use strict;
    use vars qw/ @ISA $ATTRIBS $VERSION $DEBUG $AUTOLOAD /;
    use GT::SQL::Search::Base::Search;
    @ISA = qw( GT::SQL::Search::Base::Search );

# ------------------------------------------------------------------------------
# Preamble information related to the object

    $DEBUG   = 0;
    $VERSION = sprintf "%d.%03d", q$Revision: 1.14 $ =~ /(\d+)\.(\d+)/;
    $ATTRIBS = {
        min_word_size => 4
    };

sub load {
# --------------------------------------------------
    my $self = shift;
    my $opts = $self->common_param( @_ ); 

# determine which mysql search variant to use.
    my $tbl     = $opts->{table};
    my $ver_sth = $tbl->do_query( 'SELECT VERSION()' );
    my $version = $ver_sth->fetchrow_array();

    my ( $maj, $min ) = split /\./, $version;

    my $pkg = 'GT::SQL::Search::MYSQL::';
    $pkg   .= $maj > 3 ? 'VER4' : 'VER3';

    eval "require $pkg"; 
    return $pkg->new(@_)
}

1;
