mallocJ.test 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. # 2008 August 01
  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. # This test script checks malloc failures in LIMIT operations for
  13. # UPDATE/DELETE statements.
  14. #
  15. # $Id: mallocJ.test,v 1.6 2009/01/09 02:49:32 drh Exp $
  16. set testdir [file dirname $argv0]
  17. source $testdir/tester.tcl
  18. source $testdir/malloc_common.tcl
  19. ifcapable {update_delete_limit} {
  20. do_malloc_test mallocJ-1 -sqlprep {
  21. DROP TABLE IF EXISTS t1;
  22. CREATE TABLE t1(x int, y int);
  23. INSERT INTO t1 VALUES(1,1);
  24. INSERT INTO t1 VALUES(1,2);
  25. INSERT INTO t1 VALUES(1,2);
  26. INSERT INTO t1 VALUES(2,1);
  27. INSERT INTO t1 VALUES(2,2);
  28. INSERT INTO t1 VALUES(2,3);
  29. } -sqlbody {
  30. UPDATE t1 SET x=1 ORDER BY y LIMIT 2 OFFSET 2;
  31. UPDATE t1 SET x=2 WHERE y=1 ORDER BY y LIMIT 2 OFFSET 2;
  32. DELETE FROM t1 WHERE x=1 ORDER BY y LIMIT 2 OFFSET 2;
  33. DELETE FROM t1 ORDER BY y LIMIT 2 OFFSET 2;
  34. }
  35. }
  36. # ticket #3467
  37. do_malloc_test mallocJ-2 -sqlprep {
  38. CREATE TABLE t1(a,b);
  39. INSERT INTO t1 VALUES(1,2);
  40. PRAGMA vdbe_trace=ON;
  41. } -sqlbody {
  42. SELECT a, b, 'abc' FROM t1
  43. UNION
  44. SELECT b, a, 'xyz' FROM t1
  45. ORDER BY 2, 3;
  46. }
  47. # ticket #3478
  48. do_malloc_test mallocJ-3 -sqlbody {
  49. EXPLAIN COMMIT
  50. }
  51. # ticket #3485
  52. do_malloc_test mallocJ-4 -sqlprep {
  53. CREATE TABLE t1(a,b,c);
  54. CREATE TABLE t2(x,y,z);
  55. } -sqlbody {
  56. SELECT * FROM (SELECT a,b FROM t1 UNION ALL SELECT x, y FROM t2) ORDER BY 1
  57. }
  58. # coverage testing
  59. do_malloc_test mallocJ-5 -sqlprep {
  60. CREATE TABLE t1(["a"]);
  61. } -sqlbody {
  62. SELECT * FROM t1
  63. }
  64. finish_test