meson.build (4981B)
1 sqldir = get_option('datadir') / 'taler-merchant' / 'sql' 2 3 # Input files for the amalgamated global_procedures.sql. 4 # The order matters. 5 sql_global_procedures = [ 6 '../pg_interval_to_start.sql', 7 '../pg_base32_crockford.sql', 8 '../pg_uri_escape.sql', 9 '../pg_replace_placeholder.sql', 10 '../get_report_by_token.sql', 11 '../create_tables.sql', 12 '../pg_fixup_instance_schema.sql', 13 '../iterate_outdated_kyc_statuses.sql', 14 '../iterate_wirewatch_accounts.sql', 15 '../iterate_open_expected_transfers.sql', 16 '../iterate_all_donau_instances.sql', 17 '../do_solve_mfa_challenge.sql', 18 '../iterate_pending_deposits.sql', 19 '../iterate_pending_reports.sql', 20 '../pg_select_accounts.sql', 21 '../pg_create_instance_schema.sql', 22 '../pg_create_instance_trigger.sql', 23 '../gc.sql', 24 ] 25 26 gprocedures_sql = custom_target( 27 'sql_global_procedures', 28 input: sql_global_procedures, 29 output: 'global_procedures.sql', 30 capture: true, 31 command: ['./gen-procedures.sh', 'merchant', '@INPUT@'], 32 install: true, 33 install_dir: sqldir, 34 ) 35 36 sql_instance_procedures = [ 37 '../pg_statistics_helpers.sql', 38 '../pg_do_handle_inventory_changes.sql', 39 '../pg_do_handle_category_changes.sql', 40 '../delete_order.sql', 41 '../delete_product.sql', 42 '../delete_unit.sql', 43 '../insert_unit.sql', 44 '../update_unit.sql', 45 '../iterate_statistic_interval_amounts.sql', 46 '../iterate_statistic_interval_counters.sql', 47 '../insert_deposit_to_transfer.sql', 48 '../insert_product.sql', 49 '../insert_inventory_lock.sql', 50 '../insert_issued_token.sql', 51 '../insert_used_token.sql', 52 '../insert_transfer_details.sql', 53 '../update_product.sql', 54 '../insert_kyc_status.sql', 55 '../insert_kyc_failure.sql', 56 '../update_category.sql', 57 '../update_product_group.sql', 58 '../update_money_pot.sql', 59 '../update_money_pot_totals.sql', 60 '../iterate_kyc_statuses.sql', 61 '../insert_transfer.sql', 62 '../insert_unclaim_signature.sql', 63 '../insert_deposit_confirmation.sql', 64 '../do_insert_account.sql', 65 '../update_to_account_inactive.sql', 66 '../do_expire_locks.sql', 67 '../pg_merchant_send_account_notification.sql', 68 '../pg_merchant_account_trigger.sql', 69 '../pg_merchant_send_kyc_notification.sql', 70 '../pg_merchant_kyc_trigger.sql', 71 '../pg_triggers.sql', 72 '../pg_update_inventory_locked.sql', 73 ] 74 75 iprocedures_sql = custom_target( 76 'instance_procedures', 77 input: sql_instance_procedures, 78 output: 'instance_procedures.sql', 79 capture: true, 80 command: ['./gen-procedures.sh', 'merchant_instances', '@INPUT@'], 81 install: true, 82 install_dir: sqldir, 83 ) 84 85 # gen-procedures.sh wraps each concatenation above in a single 86 # BEGIN ... COMMIT; make sure no input file closes that transaction early. 87 test( 88 'sql-procedures-transactions', 89 find_program('check-procedures-tx.sh'), 90 args: sql_global_procedures + sql_instance_procedures, 91 workdir: meson.current_source_dir(), 92 suite: ['backenddb'], 93 ) 94 95 generated_sql = [ 96 ['drop.sql'], 97 ['versioning.sql'], 98 ['merchant-0001.sql'], 99 ['merchant-0002.sql'], 100 ['merchant-0003.sql'], 101 ['merchant-0004.sql'], 102 ['merchant-0005.sql'], 103 ['merchant-0006.sql'], 104 ['merchant-0007.sql'], 105 ['merchant-0008.sql'], 106 ['merchant-0009.sql'], 107 ['merchant-0010.sql'], 108 ['merchant-0011.sql'], 109 ['merchant-0012.sql'], 110 ['merchant-0013.sql'], 111 ['merchant-0014.sql'], 112 ['merchant-0015.sql'], 113 ['merchant-0016.sql'], 114 ['merchant-0017.sql'], 115 ['merchant-0018.sql'], 116 ['merchant-0019.sql'], 117 ['merchant-0020.sql'], 118 ['merchant-0021.sql'], 119 ['merchant-0022.sql'], 120 ['merchant-0023.sql'], 121 ['merchant-0024.sql'], 122 ['merchant-0025.sql'], 123 ['merchant-0026.sql'], 124 ['merchant-0027.sql'], 125 ['merchant-0028.sql'], 126 ['merchant-0029.sql'], 127 ['merchant-0030.sql'], 128 ['merchant-0031.sql'], 129 ['merchant-0032.sql'], 130 ['merchant-0033.sql'], 131 ['merchant-0034.sql'], 132 ['merchant-0035.sql'], 133 # Note: 36 generated below! 134 ['merchant-0037.sql'], 135 ['merchant-0038.sql'], 136 ['merchant-0039.sql'], 137 ['merchant-0040.sql'], 138 ['merchant-0041.sql'], 139 ['merchant-0042.sql'], 140 ['merchant-0043.sql'], 141 ['merchant-0044.sql'], 142 ] 143 144 foreach g : generated_sql 145 custom_target( 146 'gen-merchantdb-' + g[0], 147 input: g[0], 148 output: g[0], 149 capture: true, 150 command: ['./amalgamate-sql.sh', '@INPUT@'], 151 install: true, 152 install_dir: sqldir, 153 ) 154 endforeach 155 156 157 custom_target( 158 'gen-merchantdb-merchant_0036.sql', 159 input: [ 160 'merchant-0036.sql.in', 161 'merchant-0036-init.sql.fragment', 162 'merchant-0036-copy.sql.fragment', 163 'merchant-0036-drop.sql.fragment', 164 'merchant-0036-setval.sql.fragment', 165 ], 166 output: ['merchant-0036.sql'], 167 capture: true, 168 command: ['./preprocess-sql.sh', '@INPUT@'], 169 install: true, 170 install_dir: sqldir, 171 )