Skip to content

Commit 3b078bf

Browse files
authored
Merge pull request #18007 from MinaProtocol/lyh/upgrade-downgrade-script-create-tmp-function
Make function helpers temporay in upgrade/downgrade script
2 parents b530844 + e7a5fe2 commit 3b078bf

File tree

3 files changed

+126
-125
lines changed

3 files changed

+126
-125
lines changed

changes/18007.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Use `pg_temp` to store temporary helpers in `upgrade_to_mesa.sql` and `downgrade_to_berkeley.sql`. From now on archive node might be using table `pg_temp` when it's operating.

src/app/archive/downgrade_to_berkeley.sql

Lines changed: 66 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ SET archive.current_protocol_version = '4.0.0';
1818
-- Post-HF protocol version. This one corresponds to Mesa, specifically
1919
SET archive.target_protocol_version = '3.0.0';
2020
-- The version of this script. If you modify the script, please bump the version
21-
SET archive.migration_version = '0.0.4';
21+
SET archive.migration_version = '0.0.5';
2222

2323
-- TODO: put below in a common script
2424

@@ -29,7 +29,7 @@ BEGIN
2929
END IF;
3030
END $$;
3131

32-
CREATE OR REPLACE FUNCTION set_migration_status(p_target_status migration_status)
32+
CREATE FUNCTION pg_temp.set_migration_status(p_target_status migration_status)
3333
RETURNS VOID AS $$
3434
DECLARE
3535
target_protocol_version text := current_setting('archive.target_protocol_version');
@@ -107,109 +107,109 @@ BEGIN
107107
END IF;
108108
END$$;
109109

110-
CREATE OR REPLACE FUNCTION try_remove_zkapp_states_nullable_element(p_element_num INT)
110+
-- 2. `zkapp_states`: Remove columns element31..element8
111+
112+
CREATE FUNCTION pg_temp.try_remove_zkapp_states_element(p_element_num INT)
111113
RETURNS VOID AS $$
112114
DECLARE
113115
col_name TEXT := 'element' || p_element_num;
114116
BEGIN
115117

116-
RAISE DEBUG 'Trying to removing column % for zkapp_states_nullable', col_name;
118+
RAISE DEBUG 'Trying to removing column % for zkapp_states', col_name;
117119

118120
EXECUTE format(
119-
'ALTER TABLE zkapp_states_nullable DROP COLUMN IF EXISTS %I',
121+
'ALTER TABLE zkapp_states DROP COLUMN IF EXISTS %I',
120122
col_name
121123
);
122124

123-
RAISE DEBUG 'Ensured column % for zkapp_states_nullable not existent', col_name;
125+
RAISE DEBUG 'Ensured column % for zkapp_states not existent', col_name;
124126
EXCEPTION
125127
WHEN OTHERS THEN
126-
PERFORM set_migration_status('failed'::migration_status);
128+
PERFORM pg_temp.set_migration_status('failed'::migration_status);
127129
RAISE EXCEPTION 'An error occurred: %', SQLERRM;
128130
END
129131
$$ LANGUAGE plpgsql;
130132

131-
-- 2. `zkapp_states`: Remove columns element31..element8
133+
SELECT pg_temp.try_remove_zkapp_states_element(31);
134+
SELECT pg_temp.try_remove_zkapp_states_element(30);
135+
SELECT pg_temp.try_remove_zkapp_states_element(29);
136+
SELECT pg_temp.try_remove_zkapp_states_element(28);
137+
SELECT pg_temp.try_remove_zkapp_states_element(27);
138+
SELECT pg_temp.try_remove_zkapp_states_element(26);
139+
SELECT pg_temp.try_remove_zkapp_states_element(25);
140+
SELECT pg_temp.try_remove_zkapp_states_element(24);
141+
SELECT pg_temp.try_remove_zkapp_states_element(23);
142+
SELECT pg_temp.try_remove_zkapp_states_element(22);
143+
SELECT pg_temp.try_remove_zkapp_states_element(21);
144+
SELECT pg_temp.try_remove_zkapp_states_element(20);
145+
SELECT pg_temp.try_remove_zkapp_states_element(19);
146+
SELECT pg_temp.try_remove_zkapp_states_element(18);
147+
SELECT pg_temp.try_remove_zkapp_states_element(17);
148+
SELECT pg_temp.try_remove_zkapp_states_element(16);
149+
SELECT pg_temp.try_remove_zkapp_states_element(15);
150+
SELECT pg_temp.try_remove_zkapp_states_element(14);
151+
SELECT pg_temp.try_remove_zkapp_states_element(13);
152+
SELECT pg_temp.try_remove_zkapp_states_element(12);
153+
SELECT pg_temp.try_remove_zkapp_states_element(11);
154+
SELECT pg_temp.try_remove_zkapp_states_element(10);
155+
SELECT pg_temp.try_remove_zkapp_states_element(9);
156+
SELECT pg_temp.try_remove_zkapp_states_element(8);
157+
158+
-- 3. `zkapp_states_nullable`: Remove nullable columns element31..element8
132159

133-
CREATE OR REPLACE FUNCTION try_remove_zkapp_states_element(p_element_num INT)
160+
CREATE FUNCTION pg_temp.try_remove_zkapp_states_nullable_element(p_element_num INT)
134161
RETURNS VOID AS $$
135162
DECLARE
136163
col_name TEXT := 'element' || p_element_num;
137164
BEGIN
138165

139-
RAISE DEBUG 'Trying to removing column % for zkapp_states', col_name;
166+
RAISE DEBUG 'Trying to removing column % for zkapp_states_nullable', col_name;
140167

141168
EXECUTE format(
142-
'ALTER TABLE zkapp_states DROP COLUMN IF EXISTS %I',
169+
'ALTER TABLE zkapp_states_nullable DROP COLUMN IF EXISTS %I',
143170
col_name
144171
);
145172

146-
RAISE DEBUG 'Ensured column % for zkapp_states not existent', col_name;
173+
RAISE DEBUG 'Ensured column % for zkapp_states_nullable not existent', col_name;
147174
EXCEPTION
148175
WHEN OTHERS THEN
149-
PERFORM set_migration_status('failed'::migration_status);
176+
PERFORM pg_temp.set_migration_status('failed'::migration_status);
150177
RAISE EXCEPTION 'An error occurred: %', SQLERRM;
151178
END
152179
$$ LANGUAGE plpgsql;
153180

154-
SELECT try_remove_zkapp_states_element(31);
155-
SELECT try_remove_zkapp_states_element(30);
156-
SELECT try_remove_zkapp_states_element(29);
157-
SELECT try_remove_zkapp_states_element(28);
158-
SELECT try_remove_zkapp_states_element(27);
159-
SELECT try_remove_zkapp_states_element(26);
160-
SELECT try_remove_zkapp_states_element(25);
161-
SELECT try_remove_zkapp_states_element(24);
162-
SELECT try_remove_zkapp_states_element(23);
163-
SELECT try_remove_zkapp_states_element(22);
164-
SELECT try_remove_zkapp_states_element(21);
165-
SELECT try_remove_zkapp_states_element(20);
166-
SELECT try_remove_zkapp_states_element(19);
167-
SELECT try_remove_zkapp_states_element(18);
168-
SELECT try_remove_zkapp_states_element(17);
169-
SELECT try_remove_zkapp_states_element(16);
170-
SELECT try_remove_zkapp_states_element(15);
171-
SELECT try_remove_zkapp_states_element(14);
172-
SELECT try_remove_zkapp_states_element(13);
173-
SELECT try_remove_zkapp_states_element(12);
174-
SELECT try_remove_zkapp_states_element(11);
175-
SELECT try_remove_zkapp_states_element(10);
176-
SELECT try_remove_zkapp_states_element(9);
177-
SELECT try_remove_zkapp_states_element(8);
178-
179-
-- 3. `zkapp_states_nullable`: Remove nullable columns element31..element8
180-
181-
SELECT try_remove_zkapp_states_nullable_element(31);
182-
SELECT try_remove_zkapp_states_nullable_element(30);
183-
SELECT try_remove_zkapp_states_nullable_element(29);
184-
SELECT try_remove_zkapp_states_nullable_element(28);
185-
SELECT try_remove_zkapp_states_nullable_element(27);
186-
SELECT try_remove_zkapp_states_nullable_element(26);
187-
SELECT try_remove_zkapp_states_nullable_element(25);
188-
SELECT try_remove_zkapp_states_nullable_element(24);
189-
SELECT try_remove_zkapp_states_nullable_element(23);
190-
SELECT try_remove_zkapp_states_nullable_element(22);
191-
SELECT try_remove_zkapp_states_nullable_element(21);
192-
SELECT try_remove_zkapp_states_nullable_element(20);
193-
SELECT try_remove_zkapp_states_nullable_element(19);
194-
SELECT try_remove_zkapp_states_nullable_element(18);
195-
SELECT try_remove_zkapp_states_nullable_element(17);
196-
SELECT try_remove_zkapp_states_nullable_element(16);
197-
SELECT try_remove_zkapp_states_nullable_element(15);
198-
SELECT try_remove_zkapp_states_nullable_element(14);
199-
SELECT try_remove_zkapp_states_nullable_element(13);
200-
SELECT try_remove_zkapp_states_nullable_element(12);
201-
SELECT try_remove_zkapp_states_nullable_element(11);
202-
SELECT try_remove_zkapp_states_nullable_element(10);
203-
SELECT try_remove_zkapp_states_nullable_element(9);
204-
SELECT try_remove_zkapp_states_nullable_element(8);
181+
SELECT pg_temp.try_remove_zkapp_states_nullable_element(31);
182+
SELECT pg_temp.try_remove_zkapp_states_nullable_element(30);
183+
SELECT pg_temp.try_remove_zkapp_states_nullable_element(29);
184+
SELECT pg_temp.try_remove_zkapp_states_nullable_element(28);
185+
SELECT pg_temp.try_remove_zkapp_states_nullable_element(27);
186+
SELECT pg_temp.try_remove_zkapp_states_nullable_element(26);
187+
SELECT pg_temp.try_remove_zkapp_states_nullable_element(25);
188+
SELECT pg_temp.try_remove_zkapp_states_nullable_element(24);
189+
SELECT pg_temp.try_remove_zkapp_states_nullable_element(23);
190+
SELECT pg_temp.try_remove_zkapp_states_nullable_element(22);
191+
SELECT pg_temp.try_remove_zkapp_states_nullable_element(21);
192+
SELECT pg_temp.try_remove_zkapp_states_nullable_element(20);
193+
SELECT pg_temp.try_remove_zkapp_states_nullable_element(19);
194+
SELECT pg_temp.try_remove_zkapp_states_nullable_element(18);
195+
SELECT pg_temp.try_remove_zkapp_states_nullable_element(17);
196+
SELECT pg_temp.try_remove_zkapp_states_nullable_element(16);
197+
SELECT pg_temp.try_remove_zkapp_states_nullable_element(15);
198+
SELECT pg_temp.try_remove_zkapp_states_nullable_element(14);
199+
SELECT pg_temp.try_remove_zkapp_states_nullable_element(13);
200+
SELECT pg_temp.try_remove_zkapp_states_nullable_element(12);
201+
SELECT pg_temp.try_remove_zkapp_states_nullable_element(11);
202+
SELECT pg_temp.try_remove_zkapp_states_nullable_element(10);
203+
SELECT pg_temp.try_remove_zkapp_states_nullable_element(9);
204+
SELECT pg_temp.try_remove_zkapp_states_nullable_element(8);
205205

206206
-- 4. Update schema_history
207207

208208
DO $$
209209
BEGIN
210-
PERFORM set_migration_status('applied'::migration_status);
210+
PERFORM pg_temp.set_migration_status('applied'::migration_status);
211211
EXCEPTION
212212
WHEN OTHERS THEN
213-
PERFORM set_migration_status('failed'::migration_status);
213+
PERFORM pg_temp.set_migration_status('failed'::migration_status);
214214
RAISE;
215215
END$$

src/app/archive/upgrade_to_mesa.sql

Lines changed: 59 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ SET archive.current_protocol_version = '3.0.0';
1818
-- Post-HF protocol version. This one corresponds to Mesa, specifically
1919
SET archive.target_protocol_version = '4.0.0';
2020
-- The version of this script. If you modify the script, please bump the version
21-
SET archive.migration_version = '0.0.4';
21+
SET archive.migration_version = '0.0.5';
2222

2323
-- TODO: put below in a common script
2424

@@ -29,7 +29,7 @@ BEGIN
2929
END IF;
3030
END $$;
3131

32-
CREATE OR REPLACE FUNCTION set_migration_status(p_target_status migration_status)
32+
CREATE FUNCTION pg_temp.set_migration_status(p_target_status migration_status)
3333
RETURNS VOID AS $$
3434
DECLARE
3535
target_protocol_version text := current_setting('archive.target_protocol_version');
@@ -114,7 +114,7 @@ END$$;
114114

115115
-- 2. `zkapp_states_nullable`: Add nullable columns element8..element31
116116

117-
CREATE OR REPLACE FUNCTION add_zkapp_states_nullable_element(p_element_num INT)
117+
CREATE FUNCTION pg_temp.add_zkapp_states_nullable_element(p_element_num INT)
118118
RETURNS VOID AS $$
119119
DECLARE
120120
col_name TEXT := 'element' || p_element_num;
@@ -131,39 +131,39 @@ BEGIN
131131

132132
EXCEPTION
133133
WHEN OTHERS THEN
134-
PERFORM set_migration_status('failed'::migration_status);
134+
PERFORM pg_temp.set_migration_status('failed'::migration_status);
135135
RAISE EXCEPTION 'An error occurred while adding column % to zkapp_states_nullable: %', col_name, SQLERRM;
136136
END
137137
$$ LANGUAGE plpgsql;
138138

139-
SELECT add_zkapp_states_nullable_element(8);
140-
SELECT add_zkapp_states_nullable_element(9);
141-
SELECT add_zkapp_states_nullable_element(10);
142-
SELECT add_zkapp_states_nullable_element(11);
143-
SELECT add_zkapp_states_nullable_element(12);
144-
SELECT add_zkapp_states_nullable_element(13);
145-
SELECT add_zkapp_states_nullable_element(14);
146-
SELECT add_zkapp_states_nullable_element(15);
147-
SELECT add_zkapp_states_nullable_element(16);
148-
SELECT add_zkapp_states_nullable_element(17);
149-
SELECT add_zkapp_states_nullable_element(18);
150-
SELECT add_zkapp_states_nullable_element(19);
151-
SELECT add_zkapp_states_nullable_element(20);
152-
SELECT add_zkapp_states_nullable_element(21);
153-
SELECT add_zkapp_states_nullable_element(22);
154-
SELECT add_zkapp_states_nullable_element(23);
155-
SELECT add_zkapp_states_nullable_element(24);
156-
SELECT add_zkapp_states_nullable_element(25);
157-
SELECT add_zkapp_states_nullable_element(26);
158-
SELECT add_zkapp_states_nullable_element(27);
159-
SELECT add_zkapp_states_nullable_element(28);
160-
SELECT add_zkapp_states_nullable_element(29);
161-
SELECT add_zkapp_states_nullable_element(30);
162-
SELECT add_zkapp_states_nullable_element(31);
139+
SELECT pg_temp.add_zkapp_states_nullable_element(8);
140+
SELECT pg_temp.add_zkapp_states_nullable_element(9);
141+
SELECT pg_temp.add_zkapp_states_nullable_element(10);
142+
SELECT pg_temp.add_zkapp_states_nullable_element(11);
143+
SELECT pg_temp.add_zkapp_states_nullable_element(12);
144+
SELECT pg_temp.add_zkapp_states_nullable_element(13);
145+
SELECT pg_temp.add_zkapp_states_nullable_element(14);
146+
SELECT pg_temp.add_zkapp_states_nullable_element(15);
147+
SELECT pg_temp.add_zkapp_states_nullable_element(16);
148+
SELECT pg_temp.add_zkapp_states_nullable_element(17);
149+
SELECT pg_temp.add_zkapp_states_nullable_element(18);
150+
SELECT pg_temp.add_zkapp_states_nullable_element(19);
151+
SELECT pg_temp.add_zkapp_states_nullable_element(20);
152+
SELECT pg_temp.add_zkapp_states_nullable_element(21);
153+
SELECT pg_temp.add_zkapp_states_nullable_element(22);
154+
SELECT pg_temp.add_zkapp_states_nullable_element(23);
155+
SELECT pg_temp.add_zkapp_states_nullable_element(24);
156+
SELECT pg_temp.add_zkapp_states_nullable_element(25);
157+
SELECT pg_temp.add_zkapp_states_nullable_element(26);
158+
SELECT pg_temp.add_zkapp_states_nullable_element(27);
159+
SELECT pg_temp.add_zkapp_states_nullable_element(28);
160+
SELECT pg_temp.add_zkapp_states_nullable_element(29);
161+
SELECT pg_temp.add_zkapp_states_nullable_element(30);
162+
SELECT pg_temp.add_zkapp_states_nullable_element(31);
163163

164164
-- 3. `zkapp_states`: Add columns element8..element31
165165

166-
CREATE OR REPLACE FUNCTION get_zero_field_id() RETURNS int AS $$
166+
CREATE FUNCTION pg_temp.get_zero_field_id() RETURNS int AS $$
167167
DECLARE
168168
result int;
169169
zero text := '0';
@@ -182,11 +182,11 @@ BEGIN
182182
END
183183
$$ LANGUAGE plpgsql;
184184

185-
CREATE OR REPLACE FUNCTION add_zkapp_states_element(p_element_num INT)
185+
CREATE FUNCTION pg_temp.add_zkapp_states_element(p_element_num INT)
186186
RETURNS VOID AS $$
187187
DECLARE
188188
col_name TEXT := 'element' || p_element_num;
189-
default_id int := get_zero_field_id();
189+
default_id int := pg_temp.get_zero_field_id();
190190
BEGIN
191191

192192
RAISE DEBUG 'Adding column % for zkapp_states', col_name;
@@ -201,51 +201,51 @@ BEGIN
201201

202202
EXCEPTION
203203
WHEN OTHERS THEN
204-
PERFORM set_migration_status('failed'::migration_status);
204+
PERFORM pg_temp.set_migration_status('failed'::migration_status);
205205
RAISE EXCEPTION 'An error occurred while adding column % to zkapp_states: %', col_name, SQLERRM;
206206
END
207207
$$ LANGUAGE plpgsql;
208208

209209
DO $$
210210
DECLARE
211-
default_id int := get_zero_field_id();
211+
default_id int := pg_temp.get_zero_field_id();
212212
BEGIN
213213
RAISE NOTICE 'Zero field in table zkapp_field is of id = %', default_id;
214214
END
215215
$$;
216216

217-
SELECT add_zkapp_states_element(8);
218-
SELECT add_zkapp_states_element(9);
219-
SELECT add_zkapp_states_element(10);
220-
SELECT add_zkapp_states_element(11);
221-
SELECT add_zkapp_states_element(12);
222-
SELECT add_zkapp_states_element(13);
223-
SELECT add_zkapp_states_element(14);
224-
SELECT add_zkapp_states_element(15);
225-
SELECT add_zkapp_states_element(16);
226-
SELECT add_zkapp_states_element(17);
227-
SELECT add_zkapp_states_element(18);
228-
SELECT add_zkapp_states_element(19);
229-
SELECT add_zkapp_states_element(20);
230-
SELECT add_zkapp_states_element(21);
231-
SELECT add_zkapp_states_element(22);
232-
SELECT add_zkapp_states_element(23);
233-
SELECT add_zkapp_states_element(24);
234-
SELECT add_zkapp_states_element(25);
235-
SELECT add_zkapp_states_element(26);
236-
SELECT add_zkapp_states_element(27);
237-
SELECT add_zkapp_states_element(28);
238-
SELECT add_zkapp_states_element(29);
239-
SELECT add_zkapp_states_element(30);
240-
SELECT add_zkapp_states_element(31);
217+
SELECT pg_temp.add_zkapp_states_element(8);
218+
SELECT pg_temp.add_zkapp_states_element(9);
219+
SELECT pg_temp.add_zkapp_states_element(10);
220+
SELECT pg_temp.add_zkapp_states_element(11);
221+
SELECT pg_temp.add_zkapp_states_element(12);
222+
SELECT pg_temp.add_zkapp_states_element(13);
223+
SELECT pg_temp.add_zkapp_states_element(14);
224+
SELECT pg_temp.add_zkapp_states_element(15);
225+
SELECT pg_temp.add_zkapp_states_element(16);
226+
SELECT pg_temp.add_zkapp_states_element(17);
227+
SELECT pg_temp.add_zkapp_states_element(18);
228+
SELECT pg_temp.add_zkapp_states_element(19);
229+
SELECT pg_temp.add_zkapp_states_element(20);
230+
SELECT pg_temp.add_zkapp_states_element(21);
231+
SELECT pg_temp.add_zkapp_states_element(22);
232+
SELECT pg_temp.add_zkapp_states_element(23);
233+
SELECT pg_temp.add_zkapp_states_element(24);
234+
SELECT pg_temp.add_zkapp_states_element(25);
235+
SELECT pg_temp.add_zkapp_states_element(26);
236+
SELECT pg_temp.add_zkapp_states_element(27);
237+
SELECT pg_temp.add_zkapp_states_element(28);
238+
SELECT pg_temp.add_zkapp_states_element(29);
239+
SELECT pg_temp.add_zkapp_states_element(30);
240+
SELECT pg_temp.add_zkapp_states_element(31);
241241

242242
-- 4. Update schema_history
243243

244244
DO $$
245245
BEGIN
246-
PERFORM set_migration_status('applied'::migration_status);
246+
PERFORM pg_temp.set_migration_status('applied'::migration_status);
247247
EXCEPTION
248248
WHEN OTHERS THEN
249-
PERFORM set_migration_status('failed'::migration_status);
249+
PERFORM pg_temp.set_migration_status('failed'::migration_status);
250250
RAISE;
251251
END$$

0 commit comments

Comments
 (0)