blob: d4b5443f98034d0186d722ab97ed8041c3c2c921 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
# Test for load_balance_on_write function feature. disable_load_balance_on_write = 'trans_transaction'
#
# Force load balance node to 1.
##backend_weight0 = 0
##backend_weight1 = 1
##write_function_list = 'f1'
# disable_load_balance_on_write = 'trans_transaction'
# Disable load balance in next transaction
## disable_load_balance_on_write = 'trans_transaction'
# Create test read_only function
'Q' "DROP FUNCTION IF EXISTS f1"
'Y'
'Q' "CREATE FUNCTION f1(INTEGER) returns INTEGER AS 'SELECT $1' LANGUAGE SQL"
'Y'
# Start a transaction
'P' "" "BEGIN" 0
'B' "" "" 0 0 0
'E' "" 0
# Issue Parse SELECT. This should be sent to node 1.
'P' "S1" "SELECT 1" 0
# Execute function f1. This should be sent to primary node.
'P' "" "SELECT f1(1)" 0
'B' "" "" 0 0 0
'E' "" 0
# Issue Bind/Execute SELECT. This should be sent to primary node.
'B' "" "S1" 0 0 0
'E' "" 0
# Issue another SELECT. This should be sent to primary node.
'P' "" "SELECT 2"
'B' "" "" 0 0 0
'E' "" 0
# Issue COMMIT
'P' "" "COMMIT" 0
'B' "" "" 0 0 0
'E' "" 0
'S'
'Y'
# Issue another SELECT. This should be sent to node 1 because outside a transaction.
'P' "" "SELECT 3"
'B' "" "" 0 0 0
'E' "" 0
'S'
'Y'
# Start a transaction
'P' "" "BEGIN" 0
'B' "" "" 0 0 0
'E' "" 0
# Issue Bind/Execute SELECT. This should be sent to primary node because
# disable_load_balance_on_write = 'trans_transaction'.
'B' "" "S1" 0 0 0
'E' "" 0
# Issue another SELECT. This should be sent to primary node.
'P' "" "SELECT 4"
'B' "" "" 0 0 0
'E' "" 0
# Issue COMMIT
'P' "" "COMMIT" 0
'B' "" "" 0 0 0
'E' "" 0
'C' 'S' "S1"
'S'
'Y'
# DROP test table
'Q' "DROP FUNCTION f1"
'Y'
'X'
|