keyword1.test 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. # 2009 January 29
  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. #
  12. # Verify that certain keywords can be used as identifiers.
  13. #
  14. # $Id: keyword1.test,v 1.1 2009/01/29 19:27:47 drh Exp $
  15. set testdir [file dirname $argv0]
  16. source $testdir/tester.tcl
  17. db eval {
  18. CREATE TABLE t1(a, b);
  19. INSERT INTO t1 VALUES(1, 'one');
  20. INSERT INTO t1 VALUES(2, 'two');
  21. INSERT INTO t1 VALUES(3, 'three');
  22. }
  23. set kwlist {
  24. abort
  25. after
  26. analyze
  27. asc
  28. attach
  29. before
  30. begin
  31. by
  32. cascade
  33. cast
  34. column
  35. conflict
  36. current_date
  37. current_time
  38. current_timestamp
  39. database
  40. deferred
  41. desc
  42. detach
  43. end
  44. each
  45. exclusive
  46. explain
  47. fail
  48. for
  49. glob
  50. if
  51. ignore
  52. immediate
  53. initially
  54. instead
  55. key
  56. like
  57. match
  58. of
  59. offset
  60. plan
  61. pragma
  62. query
  63. raise
  64. regexp
  65. reindex
  66. release
  67. rename
  68. replace
  69. restrict
  70. rollback
  71. row
  72. savepoint
  73. temp
  74. temporary
  75. trigger
  76. vacuum
  77. view
  78. virtual
  79. };
  80. set exprkw {
  81. cast
  82. current_date
  83. current_time
  84. current_timestamp
  85. raise
  86. }
  87. foreach kw $kwlist {
  88. do_test keyword1-$kw.1 {
  89. if {$kw=="if"} {
  90. db eval "CREATE TABLE \"$kw\"($kw $kw)"
  91. } else {
  92. db eval "CREATE TABLE ${kw}($kw $kw)"
  93. }
  94. db eval "INSERT INTO $kw VALUES(99)"
  95. db eval "INSERT INTO $kw SELECT a FROM t1"
  96. if {[lsearch $exprkw $kw]<0} {
  97. db eval "SELECT * FROM $kw ORDER BY $kw ASC"
  98. } else {
  99. db eval "SELECT * FROM $kw ORDER BY \"$kw\" ASC"
  100. }
  101. } {1 2 3 99}
  102. do_test keyword1-$kw.2 {
  103. if {$kw=="if"} {
  104. db eval "DROP TABLE \"$kw\""
  105. db eval "CREATE INDEX \"$kw\" ON t1(a)"
  106. } else {
  107. db eval "DROP TABLE $kw"
  108. db eval "CREATE INDEX $kw ON t1(a)"
  109. }
  110. db eval "SELECT b FROM t1 INDEXED BY $kw WHERE a=2"
  111. } {two}
  112. }
  113. finish_test