diff --git a/helyos_database/db_schema/0003_map_objects_table.sql b/helyos_database/db_schema/0003_map_objects_table.sql index 3bec588..c3a8c73 100644 --- a/helyos_database/db_schema/0003_map_objects_table.sql +++ b/helyos_database/db_schema/0003_map_objects_table.sql @@ -23,7 +23,7 @@ $$ LANGUAGE plpgsql; CREATE TRIGGER set_timestamp BEFORE UPDATE ON map_objects FOR EACH ROW -EXECUTE PROCEDURE trigger_set_timestamp(); +EXECUTE FUNCTION trigger_set_timestamp(); COMMENT ON COLUMN map_objects.type IS '@description map_object type: "crop", "road", "drivable", "guide-line", "obstacle"'; COMMENT ON COLUMN map_objects.name IS '@description map_object name: "strawbery field - 02", "Load Gate A", etc.'; diff --git a/helyos_database/db_schema/0005_mission_queue_table.sql b/helyos_database/db_schema/0005_mission_queue_table.sql index 1da04c7..bf7796b 100644 --- a/helyos_database/db_schema/0005_mission_queue_table.sql +++ b/helyos_database/db_schema/0005_mission_queue_table.sql @@ -35,4 +35,4 @@ LANGUAGE plpgsql; CREATE TRIGGER set_timestamp_mission_queue BEFORE UPDATE ON public.mission_queue FOR EACH ROW -EXECUTE PROCEDURE public.trigger_set_timestamp_mission_queue(); \ No newline at end of file +EXECUTE FUNCTION public.trigger_set_timestamp_mission_queue(); \ No newline at end of file diff --git a/helyos_database/db_schema/0006_work_processes_tables.sql b/helyos_database/db_schema/0006_work_processes_tables.sql index 4029d7c..2d763a7 100644 --- a/helyos_database/db_schema/0006_work_processes_tables.sql +++ b/helyos_database/db_schema/0006_work_processes_tables.sql @@ -73,7 +73,7 @@ LANGUAGE plpgsql; CREATE TRIGGER set_timestamp_work_processes BEFORE UPDATE ON public.work_processes FOR EACH ROW -EXECUTE PROCEDURE public.trigger_set_timestamp_work_processes(); +EXECUTE FUNCTION public.trigger_set_timestamp_work_processes(); -- Breakdown work process in many services -- Name: work_processe_type; Type: TABLE; Schema: public; Owner: - diff --git a/helyos_database/db_stored_procedures/0021_agent_functions.sql b/helyos_database/db_stored_procedures/0021_agent_functions.sql index 70295f3..2557b69 100644 --- a/helyos_database/db_stored_procedures/0021_agent_functions.sql +++ b/helyos_database/db_stored_procedures/0021_agent_functions.sql @@ -101,27 +101,28 @@ COST 100 SECURITY DEFINER; ALTER FUNCTION public.notify_change_tool() OWNER TO role_admin; +DROP FUNCTION public.notify_new_rabbitmq_account( + agent_id INT, + username TEXT, + password TEXT +); - -CREATE OR REPLACE FUNCTION public.notify_new_rabbitmq_account( +CREATE OR REPLACE PROCEDURE public.notify_new_rabbitmq_account( agent_id INT, username TEXT, password TEXT -) RETURNS VOID AS +) AS $BODY$ BEGIN PERFORM pg_notify('new_rabbitmq_account', (json_build_object('agent_id', agent_id))::TEXT); INSERT INTO public.events_queue (event_name, payload) VALUES ('new_rabbitmq_account', json_build_object('username', username, 'password', password, 'agent_id', agent_id)::TEXT); - - RETURN; END; $BODY$ LANGUAGE plpgsql; - -- Function that notifies the deletion of a tool CREATE OR REPLACE FUNCTION public.notify_deleted_tool() RETURNS TRIGGER AS @@ -171,7 +172,7 @@ BEGIN RAISE EXCEPTION SQLSTATE '90004' USING MESSAGE = 'agent id not found'; END IF; - PERFORM public.notify_new_rabbitmq_account(agent_id, username, password); + CALL public.notify_new_rabbitmq_account(agent_id, username, password); RETURN 0; END @@ -194,7 +195,7 @@ WHEN ( (OLD.status IS DISTINCT FROM NEW.status) OR ( NEW.status = 'busy' OLD.z IS DISTINCT FROM NEW.z OR OLD.assignment IS DISTINCT FROM NEW.assignment ))) -EXECUTE PROCEDURE public.create_row_tool_sensors_history(); +EXECUTE FUNCTION public.create_row_tool_sensors_history(); @@ -214,7 +215,7 @@ WHEN (OLD.status IS DISTINCT FROM NEW.status OR OLD.connection_status IS DISTINC OLD.write_permissions IS DISTINCT FROM NEW.write_permissions OR OLD.configure_permissions IS DISTINCT FROM NEW.configure_permissions ) -EXECUTE PROCEDURE public.notify_change_tool(); +EXECUTE FUNCTION public.notify_change_tool(); @@ -224,7 +225,7 @@ CREATE TRIGGER delete_tool_trigger AFTER DELETE ON public.agents FOR EACH ROW -EXECUTE PROCEDURE public.notify_deleted_tool(); +EXECUTE FUNCTION public.notify_deleted_tool(); GRANT EXECUTE ON FUNCTION public.create_row_tool_sensors_history() TO role_admin, role_application, role_postgraphile; GRANT EXECUTE ON FUNCTION public.register_rabbitmq_account(agent_id INT, diff --git a/helyos_database/db_stored_procedures/0022_assignment_functions.sql b/helyos_database/db_stored_procedures/0022_assignment_functions.sql index cab991e..4bddebe 100644 --- a/helyos_database/db_stored_procedures/0022_assignment_functions.sql +++ b/helyos_database/db_stored_procedures/0022_assignment_functions.sql @@ -65,7 +65,7 @@ CREATE TRIGGER notify_assignments_insertion AFTER INSERT ON public.assignments FOR EACH ROW -EXECUTE PROCEDURE public.notify_assignments_insertion(); +EXECUTE FUNCTION public.notify_assignments_insertion(); DROP TRIGGER IF EXISTS notify_assignments_updates ON public.assignments; CREATE TRIGGER notify_assignments_updates @@ -73,4 +73,4 @@ AFTER UPDATE ON public.assignments FOR EACH ROW WHEN (OLD.status IS DISTINCT FROM NEW.status) -EXECUTE PROCEDURE public.notify_assignments_updates(); \ No newline at end of file +EXECUTE FUNCTION public.notify_assignments_updates(); \ No newline at end of file diff --git a/helyos_database/db_stored_procedures/0023_instant_actions_procedures.sql b/helyos_database/db_stored_procedures/0023_instant_actions_procedures.sql index 2f8e468..676bb1c 100644 --- a/helyos_database/db_stored_procedures/0023_instant_actions_procedures.sql +++ b/helyos_database/db_stored_procedures/0023_instant_actions_procedures.sql @@ -31,4 +31,4 @@ DROP TRIGGER IF EXISTS trigger_new_instant_action_trigger ON public.instant_acti CREATE TRIGGER trigger_new_instant_action_trigger AFTER INSERT ON public.instant_actions FOR EACH ROW -EXECUTE PROCEDURE public.notify_instant_actions_insertion(); \ No newline at end of file +EXECUTE FUNCTION public.notify_instant_actions_insertion(); \ No newline at end of file diff --git a/helyos_database/db_stored_procedures/0025_mission_queue_procedures.sql b/helyos_database/db_stored_procedures/0025_mission_queue_procedures.sql index 2dbe753..d1d7b0c 100644 --- a/helyos_database/db_stored_procedures/0025_mission_queue_procedures.sql +++ b/helyos_database/db_stored_procedures/0025_mission_queue_procedures.sql @@ -71,7 +71,7 @@ CREATE TRIGGER notify_mission_queue_update AFTER UPDATE ON public.mission_queue FOR EACH ROW -EXECUTE PROCEDURE public.notify_mission_queue_update(); +EXECUTE FUNCTION public.notify_mission_queue_update(); DROP TRIGGER IF EXISTS trigger_mission_queue_insertion ON public.mission_queue; @@ -79,4 +79,4 @@ CREATE TRIGGER trigger_mission_queue_insertion AFTER INSERT ON public.mission_queue FOR EACH ROW -EXECUTE PROCEDURE public.notify_mission_queue_insertion(); \ No newline at end of file +EXECUTE FUNCTION public.notify_mission_queue_insertion(); \ No newline at end of file diff --git a/helyos_database/db_stored_procedures/0026_service_functions.sql b/helyos_database/db_stored_procedures/0026_service_functions.sql index 20b77cc..5c0f346 100644 --- a/helyos_database/db_stored_procedures/0026_service_functions.sql +++ b/helyos_database/db_stored_procedures/0026_service_functions.sql @@ -93,18 +93,18 @@ AFTER UPDATE ON public.service_requests FOR EACH ROW WHEN (OLD.response IS DISTINCT FROM NEW.response AND NEW.next_request_to_dispatch_uid IS NOT NULL AND NEW.status = 'SUCCESS') -EXECUTE PROCEDURE public.send_next_service('READY_TO_BE_SENT'); +EXECUTE FUNCTION public.send_next_service('READY_TO_BE_SENT'); DROP TRIGGER IF EXISTS notify_service_requests_insertion ON public.service_requests; CREATE TRIGGER notify_service_requests_insertion AFTER INSERT ON public.service_requests FOR EACH ROW -EXECUTE PROCEDURE public.notify_service_requests_insertion(); +EXECUTE FUNCTION public.notify_service_requests_insertion(); DROP TRIGGER IF EXISTS notify_service_requests_updates ON public.service_requests; CREATE TRIGGER notify_service_requests_updates AFTER UPDATE ON public.service_requests FOR EACH ROW -EXECUTE PROCEDURE public.notify_service_requests_updates(); +EXECUTE FUNCTION public.notify_service_requests_updates(); diff --git a/helyos_database/db_stored_procedures/0027_work_process_functions.sql b/helyos_database/db_stored_procedures/0027_work_process_functions.sql index 9e4b8ee..a3fbbd5 100644 --- a/helyos_database/db_stored_procedures/0027_work_process_functions.sql +++ b/helyos_database/db_stored_procedures/0027_work_process_functions.sql @@ -123,7 +123,7 @@ BEFORE UPDATE ON public.work_processes FOR EACH ROW WHEN (OLD.status = 'executing' OR OLD.status = 'calculating') -EXECUTE PROCEDURE public.prevent_mission_running_update(); +EXECUTE FUNCTION public.prevent_mission_running_update(); DROP TRIGGER IF EXISTS notify_work_processes_update ON public.work_processes; @@ -131,7 +131,7 @@ CREATE TRIGGER notify_work_processes_update AFTER UPDATE ON public.work_processes FOR EACH ROW -EXECUTE PROCEDURE public.notify_work_processes_update(); +EXECUTE FUNCTION public.notify_work_processes_update(); DROP TRIGGER IF EXISTS trigger_work_processes_before_insertion ON public.work_processes; @@ -140,7 +140,7 @@ BEFORE INSERT ON public.work_processes FOR EACH ROW WHEN (NEW.run_order IS NULL) -EXECUTE PROCEDURE public.update_work_process_list_order(); +EXECUTE FUNCTION public.update_work_process_list_order(); DROP TRIGGER IF EXISTS trigger_work_processes_insertion ON public.work_processes; @@ -148,7 +148,7 @@ CREATE TRIGGER trigger_work_processes_insertion AFTER INSERT ON public.work_processes FOR EACH ROW -EXECUTE PROCEDURE public.notify_work_processes_insertion(); +EXECUTE FUNCTION public.notify_work_processes_insertion(); GRANT EXECUTE ON FUNCTION public.getWorkProcessActionData(work_process_id BIGINT) TO role_admin, role_application, role_postgraphile; \ No newline at end of file