You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

131 lines
3.3 KiB

  1. delimiter |;
  2. # --------------------------------------------------------------------------
  3. CREATE PROCEDURE sp_vars_check_dflt()
  4. BEGIN
  5. DECLARE v1 TINYINT DEFAULT 1e200;
  6. DECLARE v1u TINYINT UNSIGNED DEFAULT 1e200;
  7. DECLARE v2 TINYINT DEFAULT -1e200;
  8. DECLARE v2u TINYINT UNSIGNED DEFAULT -1e200;
  9. DECLARE v3 TINYINT DEFAULT 300;
  10. DECLARE v3u TINYINT UNSIGNED DEFAULT 300;
  11. DECLARE v4 TINYINT DEFAULT -300;
  12. DECLARE v4u TINYINT UNSIGNED DEFAULT -300;
  13. DECLARE v5 TINYINT DEFAULT 10 * 10 * 10;
  14. DECLARE v5u TINYINT UNSIGNED DEFAULT 10 * 10 * 10;
  15. DECLARE v6 TINYINT DEFAULT -10 * 10 * 10;
  16. DECLARE v6u TINYINT UNSIGNED DEFAULT -10 * 10 * 10;
  17. DECLARE v7 TINYINT DEFAULT '10';
  18. DECLARE v8 TINYINT DEFAULT '10 ';
  19. DECLARE v9 TINYINT DEFAULT ' 10 ';
  20. DECLARE v10 TINYINT DEFAULT 'String 10 ';
  21. DECLARE v11 TINYINT DEFAULT 'String10';
  22. DECLARE v12 TINYINT DEFAULT '10 String';
  23. DECLARE v13 TINYINT DEFAULT '10String';
  24. DECLARE v14 TINYINT DEFAULT concat('10', ' ');
  25. DECLARE v15 TINYINT DEFAULT concat(' ', '10');
  26. DECLARE v16 TINYINT DEFAULT concat('Hello, ', 'world');
  27. DECLARE v17 DECIMAL(64, 2) DEFAULT 12;
  28. DECLARE v18 DECIMAL(64, 2) DEFAULT 12.123;
  29. DECLARE v19 DECIMAL(64, 2) DEFAULT 11 + 1;
  30. DECLARE v20 DECIMAL(64, 2) DEFAULT 12 + 0.123;
  31. SELECT v1, v1u, v2, v2u, v3, v3u, v4, v4u;
  32. SELECT v5, v5u, v6, v6u;
  33. SELECT v7, v8, v9, v10, v11, v12, v13, v14, v15, v16;
  34. SELECT v17, v18, v19, v20;
  35. END|
  36. # --------------------------------------------------------------------------
  37. CREATE PROCEDURE sp_vars_check_assignment()
  38. BEGIN
  39. DECLARE i1, i2, i3, i4 TINYINT;
  40. DECLARE u1, u2, u3, u4 TINYINT UNSIGNED;
  41. DECLARE d1, d2, d3 DECIMAL(64, 2);
  42. SET i1 = 1e200;
  43. SET i2 = -1e200;
  44. SET i3 = 300;
  45. SET i4 = -300;
  46. SELECT i1, i2, i3, i4;
  47. SET i1 = 10 * 10 * 10;
  48. SET i2 = -10 * 10 * 10;
  49. SET i3 = sign(10 * 10) * 10 * 20;
  50. SET i4 = sign(-10 * 10) * -10 * 20;
  51. SELECT i1, i2, i3, i4;
  52. SET u1 = 1e200;
  53. SET u2 = -1e200;
  54. SET u3 = 300;
  55. SET u4 = -300;
  56. SELECT u1, u2, u3, u4;
  57. SET u1 = 10 * 10 * 10;
  58. SET u2 = -10 * 10 * 10;
  59. SET u3 = sign(10 * 10) * 10 * 20;
  60. SET u4 = sign(-10 * 10) * -10 * 20;
  61. SELECT u1, u2, u3, u4;
  62. SET d1 = 1234;
  63. SET d2 = 1234.12;
  64. SET d3 = 1234.1234;
  65. SELECT d1, d2, d3;
  66. SET d1 = 12 * 100 + 34;
  67. SET d2 = 12 * 100 + 34 + 0.12;
  68. SET d3 = 12 * 100 + 34 + 0.1234;
  69. SELECT d1, d2, d3;
  70. END|
  71. # --------------------------------------------------------------------------
  72. CREATE FUNCTION sp_vars_check_ret1() RETURNS TINYINT
  73. BEGIN
  74. RETURN 1e200;
  75. END|
  76. # --------------------------------------------------------------------------
  77. CREATE FUNCTION sp_vars_check_ret2() RETURNS TINYINT
  78. BEGIN
  79. RETURN 10 * 10 * 10;
  80. END|
  81. # --------------------------------------------------------------------------
  82. CREATE FUNCTION sp_vars_check_ret3() RETURNS TINYINT
  83. BEGIN
  84. RETURN 'Hello, world';
  85. END|
  86. # --------------------------------------------------------------------------
  87. CREATE FUNCTION sp_vars_check_ret4() RETURNS DECIMAL(64, 2)
  88. BEGIN
  89. RETURN 12 * 10 + 34 + 0.1234;
  90. END|
  91. # --------------------------------------------------------------------------
  92. CREATE FUNCTION sp_vars_div_zero() RETURNS INTEGER
  93. BEGIN
  94. DECLARE div_zero INTEGER;
  95. SELECT 1/0 INTO div_zero;
  96. RETURN div_zero;
  97. END|
  98. # --------------------------------------------------------------------------
  99. delimiter ;|