1
################################################################################
2
# inc/partition_trigg3.inc #
5
# Auxiliary script, only useful when sourced by inc/partition_check.inc. #
6
# The trigger uses new values (--> event UPDATE, INSERT only) #
8
# 1. Create a trigger #
9
# 2. Execute a statement, which activates the trigger #
10
# 3. Check the results of the trigger activity #
11
# 4. Revert the modifications #
13
#------------------------------------------------------------------------------#
14
# Original Author: mleich #
15
# Original Date: 2006-03-05 #
19
################################################################################
22
# Original version of the trigger
23
# eval CREATE TRIGGER trg_3 $event ON t1 FOR EACH ROW
26
# SET @my_max1 = 0, @my_max2 = 0;
27
# SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
28
# SET new.f_int1 = @my_max1 + @counter,
29
# new.f_int2 = @my_min2 - @counter,
30
# new.f_charbig = '####updated per insert trigger####';
31
# SET @counter = @counter + 1;
34
# Bug/currently undocumented limitation:
35
# 17704: Triggers: MAX, Insert select with several rows, strange error
36
# "A trigger can not access (not even read data) the table it's defined for."
38
eval CREATE TRIGGER trg_3 $event ON t1 FOR EACH ROW
40
SET new.f_int1 = @my_max1 + @counter,
41
new.f_int2 = @my_min2 - @counter,
42
new.f_charbig = '####updated per insert trigger####';
43
SET @counter = @counter + 1;
46
# Additional statements because of Bug(limitation)#17704
48
# Bug#18730 Partitions: NDB, crash on SELECT MIN(<unique column>)
49
SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1;
50
# Additional statements end
53
# Check of preceding statement via Select
58
# We insert records around max_row_div2 !
59
eval SELECT '# check trigger-$num success: ' AS "", COUNT(*) = 3 AS "" FROM t1
60
WHERE f_int1 = CAST(f_char1 AS SIGNED INT) + @max_row_div2 + 2
61
AND f_int2 = - CAST(f_char1 AS SIGNED INT) + @max_row_div2 - 1
62
AND f_charbig = '####updated per insert trigger####';
66
WHERE f_int1 <> CAST(f_char1 AS SIGNED INT)
67
AND f_int2 <> CAST(f_char1 AS SIGNED INT)
68
AND f_charbig = '####updated per insert trigger####';