10 m4_include(`SQLCommon.m4
')
104 DROP TYPE IF EXISTS MADLIB_SCHEMA.summary_result;
105 CREATE TYPE MADLIB_SCHEMA.summary_result AS
113 -----------------------------------------------------------------------
114 -- Main function for summary
115 -----------------------------------------------------------------------
117 * @brief Compute a summary statistics on a table with optional grouping support
119 * @param source_table Name of source relation containing the data
120 * @param output_table Name of output table name to store the summary
121 * @param target_cols String with comma separated list of columns on which summary is desired
122 * @param grouping_cols String with comma separated list of columns on which to group the data by
123 * @param get_distinct Should distinct values count be included in result
124 * @param get_quartiles Should first, second (median), and third quartiles be included in result
125 * @param ntile_array Array of percentiles to compute
126 * @param how_many_mfv How many most frequent values to compute?
127 * @param get_estimates Should distinct counts be an estimated (faster) or exact count?
131 * <pre> SELECT MADLIB_SCHEMA.summary (
132 * '<em>source_table</em>
', '<em>output_table</em>
',
133 * '<em>target_cols</em>
', '<em>grouping_cols</em>
',
134 * '<em>get_distinct</em>
', '<em>get_quartiles</em>
',
135 * '<em>ntile_array</em>
', '<em>how_many_mfv</em>
',
136 * '<em>get_estimates</em>
'
138 * SELECT * FROM '<em>output_table</em>
'
141 CREATE OR REPLACE FUNCTION
142 MADLIB_SCHEMA.summary
144 source_table TEXT, -- source table name
145 output_table TEXT, -- output table name
146 target_cols TEXT, -- comma separated list of output cols
147 grouping_cols TEXT, -- comma separated names of grouping cols
148 get_distinct BOOLEAN, -- Are distinct values required
149 get_quartiles BOOLEAN, -- Are quartiles required
150 ntile_array FLOAT8[], -- Array of quantiles to compute
151 how_many_mfv INTEGER, -- How many most frequent values to compute?
152 get_estimates BOOLEAN -- Should we produce exact or estimated
153 -- values for distinct computation
155 RETURNS MADLIB_SCHEMA.summary_result AS $$
156 PythonFunctionBodyOnly(`summary', `summary
')
157 return summary.summary(
158 schema_madlib, source_table, output_table, target_cols, grouping_cols,
159 get_distinct, get_quartiles, ntile_array, how_many_mfv, get_estimates)
160 $$ LANGUAGE plpythonu;
162 -----------------------------------------------------------------------
163 --- Overloaded functions to support optional parameters
164 -----------------------------------------------------------------------
165 CREATE OR REPLACE FUNCTION
166 MADLIB_SCHEMA.summary
172 get_distinct BOOLEAN,
173 get_quartiles BOOLEAN,
174 ntile_array FLOAT8[],
177 RETURNS MADLIB_SCHEMA.summary_result AS $$
178 SELECT MADLIB_SCHEMA.summary(
179 $1, $2, $3, $4, $5, $6, $7, $8, True)
182 CREATE OR REPLACE FUNCTION
183 MADLIB_SCHEMA.summary
189 get_distinct BOOLEAN,
190 get_quartiles BOOLEAN,
193 RETURNS MADLIB_SCHEMA.summary_result AS $$
194 SELECT MADLIB_SCHEMA.summary(
195 $1, $2, $3, $4, $5, $6, $7, 10, True)
198 CREATE OR REPLACE FUNCTION
199 MADLIB_SCHEMA.summary
205 get_distinct BOOLEAN,
206 get_quartiles BOOLEAN
208 RETURNS MADLIB_SCHEMA.summary_result AS $$
209 SELECT MADLIB_SCHEMA.summary(
210 $1, $2, $3, $4, $5, $6, NULL, 10, True)
213 CREATE OR REPLACE FUNCTION
214 MADLIB_SCHEMA.summary
222 RETURNS MADLIB_SCHEMA.summary_result AS $$
223 SELECT MADLIB_SCHEMA.summary(
224 $1, $2, $3, $4, $5, True, NULL, 10, True)
227 CREATE OR REPLACE FUNCTION
228 MADLIB_SCHEMA.summary
235 RETURNS MADLIB_SCHEMA.summary_result AS $$
236 SELECT MADLIB_SCHEMA.summary(
237 $1, $2, $3, $4, True, True, NULL, 10, True)
240 CREATE OR REPLACE FUNCTION
241 MADLIB_SCHEMA.summary
247 RETURNS MADLIB_SCHEMA.summary_result AS $$
248 SELECT MADLIB_SCHEMA.summary(
249 $1, $2, $3, NULL, True, True, NULL, 10, True)
252 CREATE OR REPLACE FUNCTION
253 MADLIB_SCHEMA.summary
258 RETURNS MADLIB_SCHEMA.summary_result AS $$
259 SELECT MADLIB_SCHEMA.summary(
260 $1, $2, NULL, NULL, True, True, NULL, 10, True)
263 -----------------------------------------------------------------------
265 -----------------------------------------------------------------------
266 CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.summary(
270 PythonFunctionBodyOnly(`summary', `summary
')
271 return summary.summary_help_message(schema_madlib, input_message)
272 $$ LANGUAGE plpythonu;
275 CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.summary()
277 PythonFunctionBodyOnly(`summary', `summary
')
278 return summary.summary_help_message(schema_madlib, None)
279 $$ LANGUAGE plpythonu;