Skip to main content

SESSION_SQL

Constant SESSION_SQL 

Source
pub const SESSION_SQL: &str = "CREATE OR REPLACE FUNCTION set_heer_node_id(node_id INTEGER)\nRETURNS void\nLANGUAGE plpgsql\nAS $$\nDECLARE\n    validated_node_id INTEGER;\nBEGIN\n    IF node_id IS NULL THEN\n        RAISE EXCEPTION \'node_id cannot be null\';\n    END IF;\n\n    IF node_id < 0 OR node_id > 511 THEN\n        RAISE EXCEPTION \'node_id % is out of range for HeerId\', node_id;\n    END IF;\n\n    SELECT n.node_id\n    INTO validated_node_id\n    FROM heer_nodes AS n\n    WHERE n.node_id = set_heer_node_id.node_id\n      AND n.is_active = true;\n\n    IF validated_node_id IS NULL THEN\n        RAISE EXCEPTION \'node_id % is not registered as an active Heer node\', node_id;\n    END IF;\n\n    PERFORM set_config(\'heer.node_id\', node_id::text, false);\nEND;\n$$;\n\nCREATE OR REPLACE FUNCTION current_heer_node_id()\nRETURNS INTEGER\nLANGUAGE plpgsql\nAS $$\nDECLARE\n    configured_node_id TEXT;\n    parsed_node_id INTEGER;\nBEGIN\n    configured_node_id := current_setting(\'heer.node_id\', true);\n\n    IF configured_node_id IS NULL OR configured_node_id = \'\' THEN\n        RAISE EXCEPTION \'heer.node_id is not set for this session\';\n    END IF;\n\n    parsed_node_id := configured_node_id::INTEGER;\n    PERFORM set_heer_node_id(parsed_node_id);\n    RETURN parsed_node_id;\nEND;\n$$;\n\nCREATE OR REPLACE FUNCTION set_heer_ranj_node_id(node_id INTEGER)\nRETURNS void\nLANGUAGE plpgsql\nAS $$\nDECLARE\n    validated_node_id INTEGER;\nBEGIN\n    IF node_id IS NULL THEN\n        RAISE EXCEPTION \'node_id cannot be null\';\n    END IF;\n\n    IF node_id < 0 OR node_id > 32767 THEN\n        RAISE EXCEPTION \'node_id % is out of range for RanjId\', node_id;\n    END IF;\n\n    SELECT n.node_id\n    INTO validated_node_id\n    FROM heer_nodes AS n\n    WHERE n.node_id = set_heer_ranj_node_id.node_id\n      AND n.is_active = true;\n\n    IF validated_node_id IS NULL THEN\n        RAISE EXCEPTION \'node_id % is not registered as an active Heer node\', node_id;\n    END IF;\n\n    PERFORM set_config(\'heer.ranj_node_id\', node_id::text, false);\nEND;\n$$;\n\nCREATE OR REPLACE FUNCTION current_heer_ranj_node_id()\nRETURNS INTEGER\nLANGUAGE plpgsql\nAS $$\nDECLARE\n    configured_node_id TEXT;\n    parsed_node_id INTEGER;\nBEGIN\n    configured_node_id := current_setting(\'heer.ranj_node_id\', true);\n\n    IF configured_node_id IS NULL OR configured_node_id = \'\' THEN\n        RAISE EXCEPTION \'heer.ranj_node_id is not set for this session\';\n    END IF;\n\n    parsed_node_id := configured_node_id::INTEGER;\n    PERFORM set_heer_ranj_node_id(parsed_node_id);\n    RETURN parsed_node_id;\nEND;\n$$;\n";