예제 #1
0
 /**
  * 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;
 }
예제 #2
0
 /**
  * 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;
 }