@@ -16,39 +16,42 @@ public MySqlStatesStore(string connectionString, string tablePrefix = "")
16
16
_tablePrefix = tablePrefix ;
17
17
}
18
18
19
+ private string ? _initialize ;
19
20
public async Task Initialize ( )
20
21
{
21
22
await using var conn = await CreateConnection ( ) ;
22
- var sql = @$ "
23
+ _initialize ?? = @$ "
23
24
CREATE TABLE IF NOT EXISTS { _tablePrefix } rfunction_states (
24
25
id VARCHAR(450) PRIMARY KEY,
25
26
state TEXT NOT NULL
26
27
);" ;
27
- var command = new MySqlCommand ( sql , conn ) ;
28
+ var command = new MySqlCommand ( _initialize , conn ) ;
28
29
await command . ExecuteNonQueryAsync ( ) ;
29
30
}
30
31
32
+ private string ? _truncateSql ;
31
33
public async Task Truncate ( )
32
34
{
33
35
await using var conn = await CreateConnection ( ) ;
34
- var sql = $ "TRUNCATE TABLE { _tablePrefix } rfunction_states";
35
- var command = new MySqlCommand ( sql , conn ) ;
36
+ _truncateSql ?? = $ "TRUNCATE TABLE { _tablePrefix } rfunction_states";
37
+ var command = new MySqlCommand ( _truncateSql , conn ) ;
36
38
await command . ExecuteNonQueryAsync ( ) ;
37
39
}
38
40
41
+ private string ? _upsertStateSql ;
39
42
public async Task UpsertState ( FunctionId functionId , StoredState storedState )
40
43
{
41
44
var ( functionTypeId , functionInstanceId ) = functionId ;
42
45
await using var conn = await CreateConnection ( ) ;
43
- var sql = $@ "
46
+ _upsertStateSql ?? = $@ "
44
47
INSERT INTO { _tablePrefix } rfunction_states
45
48
(id, state)
46
49
VALUES
47
50
(?, ?)
48
51
ON DUPLICATE KEY UPDATE
49
52
state = VALUES(state)" ;
50
53
51
- await using var command = new MySqlCommand ( sql , conn )
54
+ await using var command = new MySqlCommand ( _upsertStateSql , conn )
52
55
{
53
56
Parameters =
54
57
{
@@ -60,14 +63,15 @@ ON DUPLICATE KEY UPDATE
60
63
await command . ExecuteNonQueryAsync ( ) ;
61
64
}
62
65
66
+ private string ? _getStatesSql ;
63
67
public async Task < IEnumerable < StoredState > > GetStates ( FunctionId functionId )
64
68
{
65
69
await using var conn = await CreateConnection ( ) ;
66
- var sql = @$ "
70
+ _getStatesSql ?? = @$ "
67
71
SELECT id, state
68
72
FROM { _tablePrefix } rfunction_states
69
73
WHERE id LIKE ?" ;
70
- await using var command = new MySqlCommand ( sql , conn )
74
+ await using var command = new MySqlCommand ( _getStatesSql , conn )
71
75
{
72
76
Parameters =
73
77
{
@@ -89,25 +93,27 @@ public async Task<IEnumerable<StoredState>> GetStates(FunctionId functionId)
89
93
return states ;
90
94
}
91
95
96
+ private string ? _removeStatesSql ;
92
97
public async Task RemoveState ( FunctionId functionId , StateId stateId )
93
98
{
94
99
await using var conn = await CreateConnection ( ) ;
95
- var sql = $ "DELETE FROM { _tablePrefix } rfunction_states WHERE id = ?";
100
+ _removeStatesSql ?? = $ "DELETE FROM { _tablePrefix } rfunction_states WHERE id = ?";
96
101
var id = Escaper . Escape ( functionId . TypeId . Value , functionId . InstanceId . Value , stateId . Value ) ;
97
- await using var command = new MySqlCommand ( sql , conn )
102
+ await using var command = new MySqlCommand ( _removeStatesSql , conn )
98
103
{
99
104
Parameters = { new ( ) { Value = id } }
100
105
} ;
101
106
102
107
await command . ExecuteNonQueryAsync ( ) ;
103
108
}
104
109
110
+ private string ? _removeSql ;
105
111
public async Task Remove ( FunctionId functionId )
106
112
{
107
113
await using var conn = await CreateConnection ( ) ;
108
- var sql = $ "DELETE FROM { _tablePrefix } rfunction_states WHERE id LIKE ?";
114
+ _removeSql ?? = $ "DELETE FROM { _tablePrefix } rfunction_states WHERE id LIKE ?";
109
115
var id = Escaper . Escape ( functionId . TypeId . Value , functionId . InstanceId . Value ) + $ "{ Escaper . Separator } %";
110
- await using var command = new MySqlCommand ( sql , conn )
116
+ await using var command = new MySqlCommand ( _removeSql , conn )
111
117
{
112
118
Parameters = { new ( ) { Value = id } }
113
119
} ;
0 commit comments