12 m4_include(`SQLCommon.m4
')
88 CREATE FUNCTION MADLIB_SCHEMA.insert_into(
89 "inTableName" VARCHAR,
94 RETURNS NULL ON NULL INPUT
97 oldClientMinMessages VARCHAR;
99 oldClientMinMessages :=
100 (SELECT setting FROM pg_settings WHERE name = 'client_min_messages
');
101 EXECUTE 'SET client_min_messages TO warning
';
103 PERFORM MADLIB_SCHEMA.create_schema_pg_temp();
106 'DROP FUNCTION IF EXISTS pg_temp._madlib_temp_function();
107 CREATE FUNCTION pg_temp._madlib_temp_function()
110 AS $_madlib_temp_function$
112 result
' || "inTableName" || '%ROWTYPE;
114 FOR result IN EXECUTE
115 $_madlib_temp_function_string$
117 $_madlib_temp_function_string$
120 INSERT INTO
' || "inTableName" || ' VALUES (result.*);
123 $_madlib_temp_function$
';
125 -- We call _madlib_temp_function() in a separate
126 -- EXECUTE statement because it is not yet visible before
127 -- (we would see "ERROR: function _madlib_temp_function() does not exist")
129 'SELECT pg_temp._madlib_temp_function();
130 SET client_min_messages TO
' || oldClientMinMessages || ';
';
135 CREATE FUNCTION MADLIB_SCHEMA.internal_create_table_as(
136 "inTemporary" BOOLEAN,
137 "inTableName" VARCHAR,
139 "inDistributed" VARCHAR)
143 RETURNS NULL ON NULL INPUT
146 whatToCreate VARCHAR;
148 IF "inTemporary" = TRUE THEN
149 whatToCreate := 'TEMPORARY TABLE
';
151 whatToCreate := 'TABLE
';
154 -- We separate the following EXECUTE statement because it is prone
155 -- to generate an exception -- e.g., if the table already exists
156 -- In that case we want to keep the context in the error message short
158 'CREATE
' || whatToCreate || ' ' || "inTableName" || ' AS
159 SELECT * FROM (
' || "inSQL" || ') AS _madlib_ignore
161 m4_ifdef(<!__GREENPLUM__!>,<!
162 DISTRIBUTED ' || "inDistributed";
167 PERFORM MADLIB_SCHEMA.
insert_into("inTableName", "inSQL");
206 "inTableName" VARCHAR,
208 "inDistributed" VARCHAR )
212 RETURNS NULL ON NULL INPUT
214 SELECT MADLIB_SCHEMA.internal_create_table_as(FALSE,
220 "inTableName" VARCHAR,
225 RETURNS NULL ON NULL INPUT
227 SELECT MADLIB_SCHEMA.internal_create_table_as(FALSE,
239 "inTableName" VARCHAR,
241 "inDistributed" VARCHAR )
245 RETURNS NULL ON NULL INPUT
247 SELECT MADLIB_SCHEMA.internal_create_table_as(TRUE,
253 "inTableName" VARCHAR,
258 RETURNS NULL ON NULL INPUT
260 SELECT MADLIB_SCHEMA.internal_create_table_as(TRUE,
269 CREATE FUNCTION MADLIB_SCHEMA.create_temp_table_as(
270 "inTableName" VARCHAR,
272 "inDistributed" VARCHAR )
276 RETURNS NULL ON NULL INPUT
278 SELECT MADLIB_SCHEMA.internal_create_table_as(TRUE,
283 CREATE FUNCTION MADLIB_SCHEMA.create_temp_table_as(
284 "inTableName" VARCHAR,
289 RETURNS NULL ON NULL INPUT
291 SELECT MADLIB_SCHEMA.internal_create_table_as(TRUE,
295 m4_changequote(<!`!>,<!'!>)