~ubuntu-branches/ubuntu/maverick/sqlite3/maverick-updates

« back to all changes in this revision

Viewing changes to test/fts2h.test

  • Committer: Bazaar Package Importer
  • Author(s): Laszlo Boszormenyi (GCS)
  • Date: 2008-10-01 20:16:18 UTC
  • mfrom: (3.1.20 intrepid)
  • Revision ID: james.westby@ubuntu.com-20081001201618-yfvqqj1qs29wdtcc
Tags: 3.5.9-5
Backport fix for distinct on indexes (closes: #500792).

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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 2006/11/29 21:03:01 shess 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