From d31219d25f9c3ab4213a40982b105efc8d3e439e Mon Sep 17 00:00:00 2001 From: Jensen Yap Date: Fri, 11 Jul 2025 12:28:23 +0900 Subject: [PATCH] add parameter udf_api_v2 --- macros/core/live.yaml.sql | 67 +++++++++++++++++++++++++++------------ 1 file changed, 46 insertions(+), 21 deletions(-) diff --git a/macros/core/live.yaml.sql b/macros/core/live.yaml.sql index de265c2..607f02b 100644 --- a/macros/core/live.yaml.sql +++ b/macros/core/live.yaml.sql @@ -142,29 +142,54 @@ VOLATILE COMMENT = $$Executes an LiveQuery Sync or Async Externall Function.$$ sql: | - SELECT result - FROM ( - SELECT - utils.udf_redirect_s3_presigned_url( - _live.udf_api_async(method, url, headers, data, _utils.UDF_WHOAMI(), secret_name) - :s3_presigned_url::STRING - ):data[0][1] as result - WHERE LOWER(COALESCE( - headers:"fsc-quantum-execution-mode"::STRING, - headers:"Fsc-Quantum-Execution-Mode"::STRING, - headers:"FSC-QUANTUM-EXECUTION-MODE"::STRING - )) = 'async' + SELECT + utils.udf_redirect_s3_presigned_url( + _live.udf_api_async(method, url, headers, data, _utils.UDF_WHOAMI(), secret_name) + :s3_presigned_url::STRING + ):data[0][1] as result + WHERE LOWER(COALESCE( + headers:"fsc-quantum-execution-mode"::STRING, + headers:"Fsc-Quantum-Execution-Mode"::STRING, + headers:"FSC-QUANTUM-EXECUTION-MODE"::STRING + )) = 'async' - UNION ALL + UNION ALL - SELECT - _live.udf_api_sync(method, url, headers, data, _utils.UDF_WHOAMI(), secret_name) as result - WHERE LOWER(COALESCE( - headers:"fsc-quantum-execution-mode"::STRING, - headers:"Fsc-Quantum-Execution-Mode"::STRING, - headers:"FSC-QUANTUM-EXECUTION-MODE"::STRING - )) != 'async' - ) + SELECT + _live.udf_api_sync(method, url, headers, data, _utils.UDF_WHOAMI(), secret_name) as result + WHERE LOWER(COALESCE( + headers:"fsc-quantum-execution-mode"::STRING, + headers:"Fsc-Quantum-Execution-Mode"::STRING, + headers:"FSC-QUANTUM-EXECUTION-MODE"::STRING + )) != 'async' + +- name: {{ schema }}.udf_api_v2 + signature: + - [method, STRING] + - [url, STRING] + - [headers, OBJECT] + - [data, VARIANT] + - [secret_name, STRING] + - [is_async, BOOLEAN] + return_type: VARIANT + options: | + VOLATILE + COMMENT = $$Executes an LiveQuery Sync or Async Externall Function.$$ + sql: | + SELECT + CASE is_async + WHEN TRUE + THEN + utils.udf_redirect_s3_presigned_url( + _live.udf_api_async( + METHOD, URL, HEADERS, DATA, _utils.UDF_WHOAMI(), SECRET_NAME + ):s3_presigned_url :: STRING + ):data[0][1] + ELSE + _live.udf_api_sync( + METHOD, URL, HEADERS, DATA, _utils.UDF_WHOAMI(), SECRET_NAME + ) + END - name: {{ schema }}.udf_rpc signature: