如果我从表中选择一些数据并在此选择中执行自定义功能,则会收到此错误。在postgres中,它运作良好。 ?有人可以解释为什么这会在greenplum中发生以及如何解决?
WITH
filtered_instances AS (
SELECT r_instance_id AS instance_id,
r_name AS name
FROM --->get_filtered_instances(p_1, p_2, p_3, p_campaign_4,
p_5, p_6, p_7, p_8, p_9)<---
)
另一个例子
SELECT csh.id,
csh.status AS status,
csh.reason AS reason,
csh.time_stamp AS time_stamp,
FROM customer_state_history csh
JOIN campaign_versions cv
ON cv.id = csh.campaign_ref_id
JOIN input_statuses istatuses
ON istatuses.status = csh.status
LEFT JOIN campaign_runs cr
ON cr.id = csh.run_ref_id
WHERE NOT --->is_customer_allowed(csh.customer_id, p_campaign_id, cv.version_id, p_run_id)<---
AND cv.campaign_id = p_campaign_id
AND CASE WHEN p_run_id IS NOT NULL
THEN cr.id = p_run_id
AND CASE WHEN --->is_run_type_test(p_run_id)<---
THEN csh.time_stamp BETWEEN --->get_run_start_date(p_run_id)<---
AND --->get_run_end_date(p_run_id)<---
ELSE csh.time_stamp BETWEEN d_start_date AND end_date
END
ELSE (cr.type IS NULL OR cr.type != ALL(test_run_types))
AND CASE WHEN array_length(p_campaign_versions, 1) IS NOT NULL
THEN cv.version_id = ANY(p_campaign_versions)
ELSE TRUE
END
AND csh.time_stamp BETWEEN d_start_date AND end_date
END
),