函数无法在QE slice上执行,因为它访问greenplum数据库中的“ public.table_name”关系

时间:2019-11-05 10:01:14

标签: sql greenplum

如果我从表中选择一些数据并在此选择中执行自定义功能,则会收到此错误。在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
        ),


0 个答案:

没有答案