41f862ba87
three functions which exercise the tablefunc API. show_all_settings() - returns the same information as SHOW ALL, but as a query result normal_rand(int numvals, float8 mean, float8 stddev, int seed) - returns a set of normally distributed float8 values - This routine implements Algorithm P (Polar method for normal deviates) from Knuth's _The_Art_of_Computer_Programming_, Volume 2, 3rd ed., pages 122-126. Knuth cites his source as "The polar method", G. E. P. Box, M. E. Muller, and G. Marsaglia, _Annals_Math,_Stat._ 29 (1958), 610-611. crosstabN(text sql) - returns a set of row_name plus N category value columns - crosstab2(), crosstab3(), and crosstab4() are defined for you, but you can create additional crosstab functions per directions in the README. Joe Conway
47 lines
1.3 KiB
MySQL
47 lines
1.3 KiB
MySQL
CREATE VIEW tablefunc_config_settings AS
|
|
SELECT
|
|
''::TEXT AS name,
|
|
''::TEXT AS setting;
|
|
|
|
CREATE OR REPLACE FUNCTION show_all_settings()
|
|
RETURNS setof tablefunc_config_settings
|
|
AS 'MODULE_PATHNAME','show_all_settings' LANGUAGE 'c' STABLE STRICT;
|
|
|
|
CREATE OR REPLACE FUNCTION normal_rand(int4, float8, float8, int4)
|
|
RETURNS setof float8
|
|
AS 'MODULE_PATHNAME','normal_rand' LANGUAGE 'c' VOLATILE STRICT;
|
|
|
|
CREATE VIEW tablefunc_crosstab_2 AS
|
|
SELECT
|
|
''::TEXT AS row_name,
|
|
''::TEXT AS category_1,
|
|
''::TEXT AS category_2;
|
|
|
|
CREATE VIEW tablefunc_crosstab_3 AS
|
|
SELECT
|
|
''::TEXT AS row_name,
|
|
''::TEXT AS category_1,
|
|
''::TEXT AS category_2,
|
|
''::TEXT AS category_3;
|
|
|
|
CREATE VIEW tablefunc_crosstab_4 AS
|
|
SELECT
|
|
''::TEXT AS row_name,
|
|
''::TEXT AS category_1,
|
|
''::TEXT AS category_2,
|
|
''::TEXT AS category_3,
|
|
''::TEXT AS category_4;
|
|
|
|
CREATE OR REPLACE FUNCTION crosstab2(text)
|
|
RETURNS setof tablefunc_crosstab_2
|
|
AS 'MODULE_PATHNAME','crosstab' LANGUAGE 'c' STABLE STRICT;
|
|
|
|
CREATE OR REPLACE FUNCTION crosstab3(text)
|
|
RETURNS setof tablefunc_crosstab_3
|
|
AS 'MODULE_PATHNAME','crosstab' LANGUAGE 'c' STABLE STRICT;
|
|
|
|
CREATE OR REPLACE FUNCTION crosstab4(text)
|
|
RETURNS setof tablefunc_crosstab_4
|
|
AS 'MODULE_PATHNAME','crosstab' LANGUAGE 'c' STABLE STRICT;
|
|
|