File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / sqlite3 / test / fts2h.test
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 17:04:16 2012 UTC (12 years, 4 months ago) by misho
Branches: sqlite3, MAIN
CVS tags: v3_7_10, HEAD
sqlite3

    1: # 2006 October 31 (scaaarey)
    2: #
    3: # The author disclaims copyright to this source code.
    4: #
    5: #*************************************************************************
    6: # This file implements regression tests for SQLite library.  The focus
    7: # here is testing correct handling of excessively long terms.
    8: #
    9: # $Id: fts2h.test,v 1.1.1.1 2012/02/21 17:04:16 misho Exp $
   10: #
   11: 
   12: set testdir [file dirname $argv0]
   13: source $testdir/tester.tcl
   14: 
   15: # If SQLITE_ENABLE_FTS2 is defined, omit this file.
   16: ifcapable !fts2 {
   17:   finish_test
   18:   return
   19: }
   20: 
   21: # Generate a term of len copies of char.
   22: proc bigterm {char len} {
   23:   for {set term ""} {$len>0} {incr len -1} {
   24:     append term $char
   25:   }
   26:   return $term
   27: }
   28: 
   29: # Generate a document of bigterms based on characters from the list
   30: # chars.
   31: proc bigtermdoc {chars len} {
   32:   set doc ""
   33:   foreach char $chars {
   34:     append doc " " [bigterm $char $len]
   35:   }
   36:   return $doc
   37: }
   38: 
   39: set len 5000
   40: set doc1 [bigtermdoc {a b c d} $len]
   41: set doc2 [bigtermdoc {b d e f} $len]
   42: set doc3 [bigtermdoc {a c e} $len]
   43: 
   44: set aterm [bigterm a $len]
   45: set bterm [bigterm b $len]
   46: set xterm [bigterm x $len]
   47: 
   48: db eval {
   49:   CREATE VIRTUAL TABLE t1 USING fts2(content);
   50:   INSERT INTO t1 (rowid, content) VALUES(1, $doc1);
   51:   INSERT INTO t1 (rowid, content) VALUES(2, $doc2);
   52:   INSERT INTO t1 (rowid, content) VALUES(3, $doc3);
   53: }
   54: 
   55: # No hits at all.  Returns empty doclists from termSelect().
   56: do_test fts2h-1.1 {
   57:   execsql {SELECT rowid FROM t1 WHERE t1 MATCH 'something'}
   58: } {}
   59: 
   60: do_test fts2h-1.2 {
   61:   execsql {SELECT rowid FROM t1 WHERE t1 MATCH $aterm}
   62: } {1 3}
   63: 
   64: do_test fts2h-1.2 {
   65:   execsql {SELECT rowid FROM t1 WHERE t1 MATCH $xterm}
   66: } {}
   67: 
   68: do_test fts2h-1.3 {
   69:   execsql "SELECT rowid FROM t1 WHERE t1 MATCH '$aterm -$xterm'"
   70: } {1 3}
   71: 
   72: do_test fts2h-1.4 {
   73:   execsql "SELECT rowid FROM t1 WHERE t1 MATCH '\"$aterm $bterm\"'"
   74: } {1}
   75: 
   76: finish_test

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>