| --------------------------------------------------------------------------- |
| -- Rules: |
| -- ------ |
| -- 1) Any DB objects should be created w/o schema prefix, |
| -- since this file is executed in a separate schema context. |
| -- 2) There should be no DROP statements in this script, since |
| -- all objects created in the default schema will be cleaned-up outside. |
| --------------------------------------------------------------------------- |
| |
| --------------------------------------------------------------------------- |
| -- Setup: |
| --------------------------------------------------------------------------- |
| CREATE FUNCTION install_test() |
| RETURNS TEXT AS $$ |
| declare |
| an float[] := '{1,2,3}'; |
| b float[] := '{4,5,7}'; |
| result_num1 float := 0; |
| result_num2 float := 0; |
| result_num3 float := 0; |
| result TEXT; |
| begin |
| |
| SELECT INTO result_num1 MADLIB_SCHEMA.array_dot(MADLIB_SCHEMA.array_mult(MADLIB_SCHEMA.array_add(an,b), MADLIB_SCHEMA.array_sub(an,b)),MADLIB_SCHEMA.array_div(an,b)); |
| b[4] = NULL; |
| SELECT INTO result_num2 (MADLIB_SCHEMA.array_max(b)+MADLIB_SCHEMA.array_min(b)+MADLIB_SCHEMA.array_sum(b)+MADLIB_SCHEMA.array_sum_big(b)+ |
| MADLIB_SCHEMA.array_mean(b)+MADLIB_SCHEMA.array_stddev(b)); |
| SELECT INTO result_num3 MADLIB_SCHEMA.array_sum(MADLIB_SCHEMA.array_scalar_mult(MADLIB_SCHEMA.array_fill(MADLIB_SCHEMA.array_of_float(20), 234.343::FLOAT8),3.7::FLOAT)); |
| result_num1 = result_num1+result_num2+result_num3-17361.6696953194; |
| |
| SELECT INTO result CASE WHEN((result_num1 < .01)AND(result_num1 > -.01)) THEN 'PASS' ELSE 'FAIL' END; |
| |
| IF result = 'FAIL' THEN |
| RAISE EXCEPTION 'Failed install check'; |
| END IF; |
| |
| RETURN result; |
| |
| end $$ language plpgsql; |
| |
| --------------------------------------------------------------------------- |
| -- Test |
| --------------------------------------------------------------------------- |
| SELECT install_test(); |