3 INSERT INTO config.upgrade_log (version) VALUES ('0537'); --miker
5 DROP FUNCTION evergreen.upgrade_deps_block_check(text,text);
6 DROP FUNCTION evergreen.upgrade_verify_no_dep_conflicts(text);
7 DROP FUNCTION evergreen.upgrade_list_applied_deprecated(text);
8 DROP FUNCTION evergreen.upgrade_list_applied_superseded(text);
10 -- List applied db patches that deprecates (and block the application of) my_db_patch
11 CREATE FUNCTION evergreen.upgrade_list_applied_deprecated ( my_db_patch TEXT ) RETURNS SETOF TEXT AS $$
13 FROM config.db_patch_dependencies
14 WHERE ARRAY[$1]::TEXT[] && deprecates
17 -- List applied db patches that supersedes (and block the application of) my_db_patch
18 CREATE FUNCTION evergreen.upgrade_list_applied_superseded ( my_db_patch TEXT ) RETURNS SETOF TEXT AS $$
20 FROM config.db_patch_dependencies
21 WHERE ARRAY[$1]::TEXT[] && supersedes
24 -- Make sure that no deprecated or superseded db patches are currently applied
25 CREATE FUNCTION evergreen.upgrade_verify_no_dep_conflicts ( my_db_patch TEXT ) RETURNS BOOL AS $$
27 FROM (SELECT * FROM evergreen.upgrade_list_applied_deprecates( $1 )
29 SELECT * FROM evergreen.upgrade_list_applied_supersedes( $1 )
31 SELECT * FROM evergreen.upgrade_list_applied_deprecated( $1 )
33 SELECT * FROM evergreen.upgrade_list_applied_superseded( $1 ))x
36 -- Raise an exception if there are, in fact, dep/sup confilct
37 CREATE FUNCTION evergreen.upgrade_deps_block_check ( my_db_patch TEXT, my_applied_to TEXT ) RETURNS BOOL AS $$
39 IF NOT evergreen.upgrade_verify_no_dep_conflicts( my_db_patch ) THEN
41 Upgrade script % can not be applied:
42 applied deprecated scripts %
43 applied superseded scripts %
47 ARRAY_ACCUM(evergreen.upgrade_list_applied_deprecates(my_db_patch)),
48 ARRAY_ACCUM(evergreen.upgrade_list_applied_supersedes(my_db_patch)),
49 evergreen.upgrade_list_applied_deprecated(my_db_patch),
50 evergreen.upgrade_list_applied_superseded(my_db_patch);
53 INSERT INTO config.upgrade_log (version, applied_to) VALUES (my_db_patch, my_applied_to);