On PG8.4/PG4.0: Only create non-ordered-aggregate hypothesis tests
Jira: MADLIB-584
With commit cbce131 even those hypothesis tests were installed on PostgreSQL 8.4 /
Greenplum 4.0 that need to be used as an ordered aggregate. Since ordered
aggregates are not available on these DBMSs, it is arguably more user-friendly to
not create these functions at all.
diff --git a/src/ports/postgres/modules/stats/hypothesis_tests.sql_in b/src/ports/postgres/modules/stats/hypothesis_tests.sql_in
index 7a1fca5..6bec5e5 100644
--- a/src/ports/postgres/modules/stats/hypothesis_tests.sql_in
+++ b/src/ports/postgres/modules/stats/hypothesis_tests.sql_in
@@ -10,6 +10,7 @@
*//* ----------------------------------------------------------------------- */
m4_include(`SQLCommon.m4')
+m4_changequote(<!,!>)
/**
@addtogroup grp_stats_tests
@@ -201,7 +202,7 @@
SFUNC=MADLIB_SCHEMA.t_test_one_transition,
STYPE=DOUBLE PRECISION[],
FINALFUNC=MADLIB_SCHEMA.t_test_one_final,
- m4_ifdef(`__GREENPLUM__',`prefunc=MADLIB_SCHEMA.t_test_merge_states,')
+ m4_ifdef(<!__GREENPLUM__!>,<!PREFUNC=MADLIB_SCHEMA.t_test_merge_states,!>)
INITCOND='{0,0,0,0,0,0,0}'
);
@@ -278,7 +279,7 @@
SFUNC=MADLIB_SCHEMA.t_test_two_transition,
STYPE=DOUBLE PRECISION[],
FINALFUNC=MADLIB_SCHEMA.t_test_two_pooled_final,
- m4_ifdef(`__GREENPLUM__',`prefunc=MADLIB_SCHEMA.t_test_merge_states,')
+ m4_ifdef(<!__GREENPLUM__!>,<!PREFUNC=MADLIB_SCHEMA.t_test_merge_states,!>)
INITCOND='{0,0,0,0,0,0,0}'
);
@@ -342,7 +343,7 @@
SFUNC=MADLIB_SCHEMA.t_test_two_transition,
STYPE=DOUBLE PRECISION[],
FINALFUNC=MADLIB_SCHEMA.t_test_two_unpooled_final,
- m4_ifdef(`__GREENPLUM__',`prefunc=MADLIB_SCHEMA.t_test_merge_states,')
+ m4_ifdef(<!__GREENPLUM__!>,<!PREFUNC=MADLIB_SCHEMA.t_test_merge_states,!>)
INITCOND='{0,0,0,0,0,0,0}'
);
@@ -397,7 +398,7 @@
SFUNC=MADLIB_SCHEMA.t_test_two_transition,
STYPE=DOUBLE PRECISION[],
FINALFUNC=MADLIB_SCHEMA.f_test_final,
- m4_ifdef(`__GREENPLUM__',`prefunc=MADLIB_SCHEMA.t_test_merge_states,')
+ m4_ifdef(<!__GREENPLUM__!>,<!PREFUNC=MADLIB_SCHEMA.t_test_merge_states,!>)
INITCOND='{0,0,0,0,0,0,0}'
);
@@ -528,7 +529,7 @@
SFUNC=MADLIB_SCHEMA.chi2_gof_test_transition,
STYPE=DOUBLE PRECISION[],
FINALFUNC=MADLIB_SCHEMA.chi2_gof_test_final,
- m4_ifdef(`__GREENPLUM__',`prefunc=MADLIB_SCHEMA.chi2_gof_test_merge_states,')
+ m4_ifdef(<!__GREENPLUM__!>,<!PREFUNC=MADLIB_SCHEMA.chi2_gof_test_merge_states,!>)
INITCOND='{0,0,0,0,0,0}'
);
@@ -539,7 +540,7 @@
SFUNC=MADLIB_SCHEMA.chi2_gof_test_transition,
STYPE=DOUBLE PRECISION[],
FINALFUNC=MADLIB_SCHEMA.chi2_gof_test_final,
- m4_ifdef(`__GREENPLUM__',`prefunc=MADLIB_SCHEMA.chi2_gof_test_merge_states,')
+ m4_ifdef(<!__GREENPLUM__!>,<!PREFUNC=MADLIB_SCHEMA.chi2_gof_test_merge_states,!>)
INITCOND='{0,0,0,0,0,0,0}'
);
@@ -549,7 +550,7 @@
SFUNC=MADLIB_SCHEMA.chi2_gof_test_transition,
STYPE=DOUBLE PRECISION[],
FINALFUNC=MADLIB_SCHEMA.chi2_gof_test_final,
- m4_ifdef(`__GREENPLUM__',`prefunc=MADLIB_SCHEMA.chi2_gof_test_merge_states,')
+ m4_ifdef(<!__GREENPLUM__!>,<!PREFUNC=MADLIB_SCHEMA.chi2_gof_test_merge_states,!>)
INITCOND='{0,0,0,0,0,0,0}'
);
@@ -625,8 +626,9 @@
* (<tt>ORDER BY \em value</tt>) and will raise an exception if values are
* not ordered.
*/
+m4_ifdef(<!__HAS_ORDERED_AGGREGATES__!>,<!
CREATE
-m4_ifdef(`__GREENPLUM__',m4_ifdef(`__HAS_ORDERED_AGGREGATES__',`ORDERED'))
+m4_ifdef(<!__GREENPLUM__!>,<!ORDERED!>)
AGGREGATE MADLIB_SCHEMA.ks_test(
/*+ "first" */ BOOLEAN,
/*+ "value" */ DOUBLE PRECISION,
@@ -638,7 +640,7 @@
FINALFUNC=MADLIB_SCHEMA.ks_test_final,
INITCOND='{0,0,0,0,0,0,0}'
);
-
+!>)
CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.mw_test_transition(
state DOUBLE PRECISION[],
@@ -713,8 +715,9 @@
* (<tt>ORDER BY \em value</tt>) and will raise an exception if values are
* not ordered.
*/
+m4_ifdef(<!__HAS_ORDERED_AGGREGATES__!>,<!
CREATE
-m4_ifdef(`__GREENPLUM__',m4_ifdef(`__HAS_ORDERED_AGGREGATES__',`ORDERED'))
+m4_ifdef(<!__GREENPLUM__!>,<!ORDERED!>)
AGGREGATE MADLIB_SCHEMA.mw_test(
/*+ "first" */ BOOLEAN,
/*+ "value" */ DOUBLE PRECISION
@@ -724,7 +727,7 @@
FINALFUNC=MADLIB_SCHEMA.mw_test_final,
INITCOND='{0,0,0,0,0,0,0}'
);
-
+!>)
CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.wsr_test_transition(
state DOUBLE PRECISION[],
@@ -840,8 +843,9 @@
* (<tt>ORDER BY abs(\em value</tt>)) and will raise an exception if the
* absolute values are not ordered.
*/
+m4_ifdef(<!__HAS_ORDERED_AGGREGATES__!>,<!
CREATE
-m4_ifdef(`__GREENPLUM__',m4_ifdef(`__HAS_ORDERED_AGGREGATES__',`ORDERED'))
+m4_ifdef(<!__GREENPLUM__!>,<!ORDERED!>)
AGGREGATE MADLIB_SCHEMA.wsr_test(
/*+ "value" */ DOUBLE PRECISION,
/*+ "precision" */ DOUBLE PRECISION /*+ DEFAULT -1 */
@@ -851,9 +855,11 @@
FINALFUNC=MADLIB_SCHEMA.wsr_test_final,
INITCOND='{0,0,0,0,0,0,0,0,0}'
);
+!>)
+m4_ifdef(<!__HAS_ORDERED_AGGREGATES__!>,<!
CREATE
-m4_ifdef(`__GREENPLUM__',m4_ifdef(`__HAS_ORDERED_AGGREGATES__',`ORDERED'))
+m4_ifdef(<!__GREENPLUM__!>,<!ORDERED!>)
AGGREGATE MADLIB_SCHEMA.wsr_test(
/*+ value */ DOUBLE PRECISION
) (
@@ -862,7 +868,7 @@
FINALFUNC=MADLIB_SCHEMA.wsr_test_final,
INITCOND='{0,0,0,0,0,0,0,0,0}'
);
-
+!>)
CREATE TYPE MADLIB_SCHEMA.one_way_anova_result AS (
sum_squares_between DOUBLE PRECISION,
@@ -960,6 +966,8 @@
SFUNC=MADLIB_SCHEMA.one_way_anova_transition,
STYPE=DOUBLE PRECISION[],
FINALFUNC=MADLIB_SCHEMA.one_way_anova_final,
- m4_ifdef(`__GREENPLUM__',`prefunc=MADLIB_SCHEMA.one_way_anova_merge_states,')
+ m4_ifdef(<!__GREENPLUM__!>,<!PREFUNC=MADLIB_SCHEMA.one_way_anova_merge_states,!>)
INITCOND='{0,0}'
);
+
+m4_changequote(<!`!>,<!'!>)