/** * Creates and returns SQL for creation of trigger. * * @return created SQL */ public static function get_creation_sql($node_language) { /* CREATE [ PROCEDURAL ] LANGUAGE name CREATE [ TRUSTED ] [ PROCEDURAL ] LANGUAGE name HANDLER call_handler [ VALIDATOR valfunction ] /**/ $ddl = "CREATE " . (strcasecmp(dbsteward::string_cast($node_language['trusted']), 'true') == 0 ? "TRUSTED " : "") . (strcasecmp(dbsteward::string_cast($node_language['procedural']), 'true') == 0 ? "PROCEDURAL " : "") . "LANGUAGE " . pgsql8::get_quoted_object_name($node_language['name']) . (strlen($node_language['handler']) > 0 ? "HANDLER " . pgsql8::get_quoted_function_name($node_language['handler']) : "") . (strlen($node_language['validator']) > 0 ? "VALIDATOR " . pgsql8::get_quoted_function_name($node_language['validator']) : "") . " ;\n"; if (strlen($node_language['owner']) > 0) { $ddl .= "ALTER " . (strcasecmp(dbsteward::string_cast($node_language['procedural']), 'true') == 0 ? "PROCEDURAL " : "") . "LANGUAGE " . pgsql8::get_quoted_object_name($node_language['name']) . " OWNER TO " . xml_parser::role_enum(dbsteward::$new_database, $node_language['owner']) . " ;\n"; } return $ddl; }
/** * Creates declaration string for the function. The string consists * of function name, '(', list of argument types separated by ',' and ')'. * * @param $node_function */ public static function get_declaration($node_schema, $node_function, $include_names = TRUE) { $r = pgsql8::get_quoted_schema_name($node_schema['name']) . '.' . pgsql8::get_quoted_function_name($node_function['name']) . '('; $parameters = dbx::get_function_parameters($node_function); foreach ($parameters as $parameter) { $arg = ''; if (isset($parameter['direction']) && strlen($parameter['direction']) > 0) { $arg .= $parameter['direction'] . ' '; } if ($include_names && strlen($parameter['name']) > 0) { $arg .= $parameter['name'] . ' '; } $arg .= $parameter['type']; $r .= $arg . ', '; } if (count($parameters) > 0) { $r = substr($r, 0, -2); } $r .= ')'; return $r; }