fts3aux2.test 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. # 2011 January 27
  2. #
  3. # The author disclaims copyright to this source code. In place of
  4. # a legal notice, here is a blessing:
  5. #
  6. # May you do good and not evil.
  7. # May you find forgiveness for yourself and forgive others.
  8. # May you share freely, never taking more than you give.
  9. #
  10. #*************************************************************************
  11. # This file implements regression tests for SQLite library. The
  12. # focus of this script is testing the FTS3 module.
  13. #
  14. set testdir [file dirname $argv0]
  15. source $testdir/tester.tcl
  16. ifcapable !fts3 { finish_test ; return }
  17. set ::testprefix fts3aux2
  18. do_execsql_test 1.1 {
  19. CREATE VIRTUAL TABLE t1 USING fts4(a, b, languageid=l);
  20. INSERT INTO t1(a, b, l) VALUES
  21. ('zero zero', 'zero zero', 0),
  22. ('one two', 'three four', 1),
  23. ('five six', 'seven eight', 2)
  24. ;
  25. CREATE VIRTUAL TABLE terms USING fts4aux(t1);
  26. } {}
  27. do_execsql_test 1.2.1 {
  28. SELECT term, documents, occurrences, languageid FROM terms WHERE col = '*';
  29. } {zero 1 4 0}
  30. do_execsql_test 1.2.2 {
  31. SELECT * FROM terms;
  32. } {zero * 1 4 zero 0 1 2 zero 1 1 2}
  33. do_execsql_test 1.2.3 {
  34. SELECT * FROM terms WHERE languageid='';
  35. } {}
  36. do_execsql_test 1.2.4 {
  37. SELECT * FROM terms WHERE languageid=-1;
  38. } {}
  39. do_execsql_test 1.2.5 {
  40. SELECT * FROM terms WHERE languageid=9223372036854775807;
  41. } {}
  42. do_execsql_test 1.2.6 {
  43. SELECT * FROM terms WHERE languageid=-9223372036854775808;
  44. } {}
  45. do_execsql_test 1.2.7 {
  46. SELECT * FROM terms WHERE languageid=NULL;
  47. } {}
  48. do_execsql_test 1.3.1 {
  49. SELECT term, documents, occurrences, languageid
  50. FROM terms WHERE col = '*' AND languageid=1;
  51. } {
  52. four 1 1 1 one 1 1 1 three 1 1 1 two 1 1 1
  53. }
  54. do_execsql_test 1.3.2 {
  55. SELECT term, col, documents, occurrences, languageid
  56. FROM terms WHERE languageid=1;
  57. } {
  58. four * 1 1 1 four 1 1 1 1
  59. one * 1 1 1 one 0 1 1 1
  60. three * 1 1 1 three 1 1 1 1
  61. two * 1 1 1 two 0 1 1 1
  62. }
  63. do_execsql_test 1.3.3 {
  64. SELECT term, col, documents, occurrences, languageid
  65. FROM terms WHERE languageid=1 AND term='zero'
  66. } {
  67. }
  68. do_execsql_test 1.3.4 {
  69. SELECT term, col, documents, occurrences, languageid
  70. FROM terms WHERE languageid='1' AND term='two'
  71. } {
  72. two * 1 1 1 two 0 1 1 1
  73. }
  74. do_execsql_test 1.3.5 {
  75. SELECT term, col, documents, occurrences, languageid
  76. FROM terms WHERE languageid='+1' AND term>'four'
  77. } {
  78. one * 1 1 1 one 0 1 1 1
  79. three * 1 1 1 three 1 1 1 1
  80. two * 1 1 1 two 0 1 1 1
  81. }
  82. do_execsql_test 1.4.1 {
  83. SELECT term, documents, occurrences, languageid
  84. FROM terms WHERE col = '*' AND languageid=2;
  85. } {
  86. eight 1 1 2 five 1 1 2 seven 1 1 2 six 1 1 2
  87. }
  88. do_execsql_test 1.4.2 {
  89. SELECT term, col, documents, occurrences, languageid
  90. FROM terms WHERE languageid=2;
  91. } {
  92. eight * 1 1 2 eight 1 1 1 2
  93. five * 1 1 2 five 0 1 1 2
  94. seven * 1 1 2 seven 1 1 1 2
  95. six * 1 1 2 six 0 1 1 2
  96. }
  97. do_execsql_test 1.4.3 {
  98. SELECT term, col, documents, occurrences, languageid
  99. FROM terms WHERE languageid=2 AND term='five';
  100. } {
  101. five * 1 1 2 five 0 1 1 2
  102. }
  103. do_execsql_test 1.4.4 {
  104. SELECT term, col, documents, occurrences, languageid
  105. FROM terms WHERE term='five' AND languageid=2
  106. } {
  107. five * 1 1 2 five 0 1 1 2
  108. }
  109. do_execsql_test 1.4.5 {
  110. SELECT term, col, documents, occurrences, languageid
  111. FROM terms WHERE term>='seven' AND languageid=2
  112. } {
  113. seven * 1 1 2 seven 1 1 1 2
  114. six * 1 1 2 six 0 1 1 2
  115. }
  116. do_execsql_test 1.4.6 {
  117. SELECT term, col, documents, occurrences, languageid
  118. FROM terms WHERE term>='e' AND term<'seven' AND languageid=2
  119. } {
  120. eight * 1 1 2 eight 1 1 1 2
  121. five * 1 1 2 five 0 1 1 2
  122. }
  123. finish_test