local.sql.tf (72 lines of code) (raw):

locals { flatten_sql_container_functions = flatten( [ for sql_container_key, sql_container in local.sql_containers : [ for function_key, function_params in sql_container.container_params.functions : { function_params = function_params container_key = sql_container_key function_name = function_params.name db_name = sql_container.db_name container_name = sql_container.container_name } ] ] ) flatten_sql_container_stored_procedures = flatten( [ for sql_container_key, sql_container in local.sql_containers : [ for stored_key, stored_params in sql_container.container_params.stored_procedures : { stored_params = stored_params container_key = sql_container_key stored_name = stored_params.name db_name = sql_container.db_name container_name = sql_container.container_name } ] ] ) flatten_sql_container_triggers = flatten( [ for sql_container_key, sql_container in local.sql_containers : [ for trigger_key, trigger_params in sql_container.container_params.triggers : { trigger_params = trigger_params container_key = sql_container_key trigger_name = trigger_params.name db_name = sql_container.db_name container_name = sql_container.container_name } ] ] ) flatten_sql_containers = flatten( [ for db_name, db_params in var.sql_databases : [ for container_key, container_params in db_params.containers : { db_name = db_name container_params = container_params container_name = container_params.name } ] ] ) sql_container_functions = { for sql_container_function in local.flatten_sql_container_functions : "${sql_container_function.db_name}|${sql_container_function.container_name}|${sql_container_function.function_name}" => sql_container_function } sql_container_stored_procedures = { for sql_container_stored_procedure in local.flatten_sql_container_stored_procedures : "${sql_container_stored_procedure.db_name}|${sql_container_stored_procedure.container_name}|${sql_container_stored_procedure.stored_name}" => sql_container_stored_procedure } sql_container_triggers = { for sql_container_trigger in local.flatten_sql_container_triggers : "${sql_container_trigger.db_name}|${sql_container_trigger.container_name}|${sql_container_trigger.trigger_name}" => sql_container_trigger } sql_containers = { for sql_container in local.flatten_sql_containers : "${sql_container.db_name}|${sql_container.container_name}" => sql_container } }