diff --git a/web/pgadmin/browser/server_groups/servers/databases/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/__init__.py index 33f1d15..3b7c57b 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/__init__.py @@ -187,6 +187,8 @@ class DatabaseView(PGChildNodeView): for row in rset['rows']: dbname = row['name'] + if hasattr(str, 'decode'): + dbname = dbname.decode('utf-8') if self.manager.db == dbname: connected = True canDrop = canDisConn = False @@ -228,7 +230,10 @@ class DatabaseView(PGChildNodeView): return internal_server_error(errormsg=rset) for row in rset['rows']: - if self.manager.db == row['name']: + db = row['name'] + if hasattr(str, 'decode'): + db = db.decode('utf-8') + if self.manager.db == db: connected = True else: conn = self.manager.connection(row['name']) diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/__init__.py index aadd466..810bb49 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/__init__.py @@ -902,26 +902,35 @@ class FunctionView(PGChildNodeView, DataTypeReader): """ resp_data = self._fetch_properties(gid, sid, did, scid, fnid) # Fetch the function definition. - args = '' + args = u'' + args_without_name = u'' cnt = 1 - if 'arguments' in resp_data: - for a in resp_data['arguments']: - if (('argmode' in a and a['argmode'] != 'OUT' and - a['argmode'] is not None - ) or 'argnode' not in a): - if 'argmode' in a: - args += a['argmode'] + " " - if 'argname' in a and a['argname'] != ''\ - and a['argname'] is not None: - args += self.qtIdent( - self.conn, a['argname']) + " " - if 'argtype' in a: - args += a['argtype'] - if cnt < len(resp_data['arguments']): - args += ', ' - cnt += 1 + args_list = [] + if 'arguments' in resp_data and len(resp_data['arguments']) > 0: + args_list = resp_data['arguments'] + resp_data['args'] = resp_data['arguments'] + + for a in args_list: + if (('argmode' in a and a['argmode'] != 'OUT' and + a['argmode'] is not None + ) or 'argmode' not in a): + if 'argmode' in a: + args += a['argmode'] + " " + args_without_name += a['argmode'] + " " + if 'argname' in a and a['argname'] != '' \ + and a['argname'] is not None: + args += self.qtIdent( + self.conn, a['argname']) + " " + if 'argtype' in a: + args += a['argtype'] + args_without_name += a['argtype'] + if cnt < len(args_list): + args += ', ' + args_without_name += ', ' + cnt += 1 resp_data['func_args'] = args.strip(' ') + resp_data['func_args_without'] = args_without_name.strip(' ') if self.node_type == 'procedure': object_type = 'procedure' @@ -960,8 +969,17 @@ class FunctionView(PGChildNodeView, DataTypeReader): if not status: return internal_server_error(errormsg=res) - func_def, name = res['rows'][0] + name = res['rows'][0]['name'] # Create mode + if hasattr(str, 'decode'): + if resp_data['prosrc']: + resp_data['prosrc'] = resp_data['prosrc'].decode( + 'utf-8' + ) + if resp_data['prosrc_c']: + resp_data['prosrc_c'] = resp_data['prosrc_c'].decode( + 'utf-8' + ) func_def = render_template("/".join([self.sql_template_path, 'create.sql']), data=resp_data, query_type="create") @@ -1138,25 +1156,34 @@ class FunctionView(PGChildNodeView, DataTypeReader): data['acl'] = parse_priv_to_db(data['acl'], ["X"]) args = u'' + args_without_name = u'' cnt = 1 - if 'arguments' in data: - for a in data['arguments']: - if (('argmode' in a and a['argmode'] != 'OUT' and - a['argmode'] is not None - ) or 'argnode' not in a): - if 'argmode' in a: - args += a['argmode'] + " " - if 'argname' in a and a['argname'] != '' \ - and a['argname'] is not None: - args += self.qtIdent( - self.conn, a['argname']) + " " - if 'argtype' in a: - args += a['argtype'] - if cnt < len(data['arguments']): - args += ', ' - cnt += 1 + args_list = [] + if 'arguments' in data and len(data['arguments']) > 0: + args_list = data['arguments'] + elif 'args' in data and len(data['args']) > 0: + args_list = data['args'] + for a in args_list: + if (('argmode' in a and a['argmode'] != 'OUT' and + a['argmode'] is not None + ) or 'argmode' not in a): + if 'argmode' in a: + args += a['argmode'] + " " + args_without_name += a['argmode'] + " " + if 'argname' in a and a['argname'] != '' \ + and a['argname'] is not None: + args += self.qtIdent( + self.conn, a['argname']) + " " + if 'argtype' in a: + args += a['argtype'] + args_without_name += a['argtype'] + if cnt < len(args_list): + args += ', ' + args_without_name += ', ' + cnt += 1 data['func_args'] = args.strip(' ') + data['func_args_without'] = args_without_name.strip(' ') # Create mode SQL = render_template("/".join([self.sql_template_path, 'create.sql']), diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/function/pg/sql/9.1_plus/create.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/function/pg/sql/9.1_plus/create.sql index efd7775..4566d06 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/function/pg/sql/9.1_plus/create.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/function/pg/sql/9.1_plus/create.sql @@ -4,19 +4,10 @@ {% set is_columns = [] %} {% if data %} CREATE{% if query_type is defined %}{{' OR REPLACE'}}{% endif %} FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({% if data.args %} -{% for p in data.args %}{% if p.argmode %}{{p.argmode}} {% endif %}{% if p.argname %}{{ conn|qtIdent(p.argname)}}{% endif %}{% if p.argtype %}{{ conn|qtIdent(p.argtype) }}{% endif %}{% if p.argdefval %} DEFAULT {{p.argdefval}}{% endif %} +{% for p in data.args %}{% if p.argmode %}{{p.argmode}} {% endif %}{% if p.argname %}{{ conn|qtIdent(p.argname)}}{% endif %}{% if p.argtype %}{{ conn|qtTypeIdent(p.argtype) }}{% endif %}{% if p.argdefval %} DEFAULT {{p.argdefval}}{% endif %} {% if not loop.last %},{% endif %} {% endfor %} {% endif -%} -{% if data.func_args %} -{% set func_args = data.func_args.split(',') %} - -{% for f in func_args %} - {{ f|trim }}{% if not loop.last %}, -{% endif %} -{% endfor %} - -{% endif %} ) RETURNS{% if data.proretset %} SETOF{% endif %} {{ conn|qtTypeIdent(data.prorettypename) }} LANGUAGE {{ data.lanname|qtLiteral }} @@ -39,24 +30,24 @@ $function$ $function${% endif %}; {% if data.funcowner %} -ALTER FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({{data.func_args}}) +ALTER FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({{data.func_args_without}}) OWNER TO {{ data.funcowner }}; {% endif %} {% if data.acl %} {% for p in data.acl %} -{{ PRIVILEGE.SET(conn, "FUNCTION", p.grantee, data.name, p.without_grant, p.with_grant, data.pronamespace, data.func_args)}} +{{ PRIVILEGE.SET(conn, "FUNCTION", p.grantee, data.name, p.without_grant, p.with_grant, data.pronamespace, data.func_args_without)}} {% endfor %}{% endif %} {% if data.description %} -COMMENT ON FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({{data.func_args}}) - IS '{{ data.description }}'; +COMMENT ON FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({{data.func_args_without}}) + IS {{ data.description|qtLiteral }}; {% endif -%} {% if data.seclabels %} {% for r in data.seclabels %} {% if r.label and r.provider %} -{{ SECLABEL.SET(conn, 'FUNCTION', data.name, r.provider, r.label, data.pronamespace, data.func_args) }} +{{ SECLABEL.SET(conn, 'FUNCTION', data.name, r.provider, r.label, data.pronamespace, data.func_args_without) }} {% endif %} {% endfor %} {% endif -%} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/function/pg/sql/9.2_plus/create.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/function/pg/sql/9.2_plus/create.sql index 63585ad..dda39cf 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/function/pg/sql/9.2_plus/create.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/function/pg/sql/9.2_plus/create.sql @@ -4,19 +4,10 @@ {% set is_columns = [] %} {% if data %} CREATE{% if query_type is defined %}{{' OR REPLACE'}}{% endif %} FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({% if data.args %} -{% for p in data.args %}{% if p.argmode %}{{p.argmode}} {% endif %}{% if p.argname %}{{ conn|qtIdent(p.argname)}}{% endif %}{% if p.argtype %}{{ conn|qtIdent(p.argtype) }}{% endif %}{% if p.argdefval %} DEFAULT {{p.argdefval}}{% endif %} +{% for p in data.args %}{% if p.argmode %}{{p.argmode}} {% endif %}{% if p.argname %}{{ conn|qtIdent(p.argname)}} {% endif %}{% if p.argtype %}{{ conn|qtTypeIdent(p.argtype) }}{% endif %}{% if p.argdefval %} DEFAULT {{p.argdefval}}{% endif %} {% if not loop.last %},{% endif %} {% endfor %} {% endif -%} -{% if data.func_args %} -{% set func_args = data.func_args.split(',') %} - -{% for f in func_args %} - {{ f|trim }}{% if not loop.last %}, -{% endif %} -{% endfor %} - -{% endif %} ) RETURNS{% if data.proretset %} SETOF{% endif %} {{ conn|qtTypeIdent(data.prorettypename) }} LANGUAGE {{ data.lanname|qtLiteral }} @@ -43,25 +34,25 @@ $function$ $function${% endif -%}; {% if data.funcowner %} -ALTER FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({{data.func_args}}) +ALTER FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({{data.func_args_without}}) OWNER TO {{ data.funcowner }}; {% endif -%} {% if data.acl %} {% for p in data.acl %} -{{ PRIVILEGE.SET(conn, "FUNCTION", p.grantee, data.name, p.without_grant, p.with_grant, data.pronamespace, data.func_args)}} +{{ PRIVILEGE.SET(conn, "FUNCTION", p.grantee, data.name, p.without_grant, p.with_grant, data.pronamespace, data.func_args_without)}} {% endfor -%} {% endif -%} {% if data.description %} -COMMENT ON FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({{data.func_args}}) - IS '{{ data.description }}'; +COMMENT ON FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({{data.func_args_without}}) + IS {{ data.description|qtLiteral }}; {% endif -%} {% if data.seclabels %} {% for r in data.seclabels %} {% if r.label and r.provider %} -{{ SECLABEL.SET(conn, 'FUNCTION', data.name, r.provider, r.label, data.pronamespace, data.func_args) }} +{{ SECLABEL.SET(conn, 'FUNCTION', data.name, r.provider, r.label, data.pronamespace, data.func_args_without) }} {% endif %} {% endfor %} {% endif -%} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/function/pg/sql/9.5_plus/create.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/function/pg/sql/9.5_plus/create.sql index 45a9c61..0668313 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/function/pg/sql/9.5_plus/create.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/function/pg/sql/9.5_plus/create.sql @@ -8,15 +8,6 @@ CREATE{% if query_type is defined %}{{' OR REPLACE'}}{% endif %} FUNCTION {{ con {% if not loop.last %},{% endif %} {% endfor %} {% endif -%} -{% if data.func_args %} -{% set func_args = data.func_args.split(',') %} - -{% for f in func_args %} - {{ f|trim }}{% if not loop.last %}, -{% endif %} -{% endfor %} - -{% endif %} ) RETURNS{% if data.proretset %} SETOF{% endif %} {{ conn|qtTypeIdent(data.prorettypename) }} LANGUAGE {{ data.lanname|qtLiteral }} @@ -43,24 +34,24 @@ $function$ $function${% endif -%}; {% if data.funcowner %} -ALTER FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({{data.func_args}}) +ALTER FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({{data.func_args_without}}) OWNER TO {{ data.funcowner }}; {% endif -%} {% if data.acl %} {% for p in data.acl %} -{{ PRIVILEGE.SET(conn, "FUNCTION", p.grantee, data.name, p.without_grant, p.with_grant, data.pronamespace, data.func_args)}} +{{ PRIVILEGE.SET(conn, "FUNCTION", p.grantee, data.name, p.without_grant, p.with_grant, data.pronamespace, data.func_args_without)}} {% endfor %}{% endif %} {% if data.description %} -COMMENT ON FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({{data.func_args}}) - IS '{{ data.description }}'; +COMMENT ON FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({{data.func_args_without}}) + IS {{ data.description|qtLiteral }}; {% endif -%} {% if data.seclabels %} {% for r in data.seclabels %} {% if r.label and r.provider %} -{{ SECLABEL.SET(conn, 'FUNCTION', data.name, r.provider, r.label, data.pronamespace, data.func_args) }} +{{ SECLABEL.SET(conn, 'FUNCTION', data.name, r.provider, r.label, data.pronamespace, data.func_args_without) }} {% endif %} {% endfor %} {% endif -%} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/function/ppas/sql/9.1_plus/create.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/function/ppas/sql/9.1_plus/create.sql index efd7775..10589ce 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/function/ppas/sql/9.1_plus/create.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/function/ppas/sql/9.1_plus/create.sql @@ -4,19 +4,10 @@ {% set is_columns = [] %} {% if data %} CREATE{% if query_type is defined %}{{' OR REPLACE'}}{% endif %} FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({% if data.args %} -{% for p in data.args %}{% if p.argmode %}{{p.argmode}} {% endif %}{% if p.argname %}{{ conn|qtIdent(p.argname)}}{% endif %}{% if p.argtype %}{{ conn|qtIdent(p.argtype) }}{% endif %}{% if p.argdefval %} DEFAULT {{p.argdefval}}{% endif %} +{% for p in data.args %}{% if p.argmode %}{{p.argmode}} {% endif %}{% if p.argname %}{{ conn|qtIdent(p.argname)}} {% endif %}{% if p.argtype %}{{ conn|qtTypeIdent(p.argtype) }}{% endif %}{% if p.argdefval %} DEFAULT {{p.argdefval}}{% endif %} {% if not loop.last %},{% endif %} {% endfor %} {% endif -%} -{% if data.func_args %} -{% set func_args = data.func_args.split(',') %} - -{% for f in func_args %} - {{ f|trim }}{% if not loop.last %}, -{% endif %} -{% endfor %} - -{% endif %} ) RETURNS{% if data.proretset %} SETOF{% endif %} {{ conn|qtTypeIdent(data.prorettypename) }} LANGUAGE {{ data.lanname|qtLiteral }} @@ -39,24 +30,24 @@ $function$ $function${% endif %}; {% if data.funcowner %} -ALTER FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({{data.func_args}}) +ALTER FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({{data.func_args_without}}) OWNER TO {{ data.funcowner }}; {% endif %} {% if data.acl %} {% for p in data.acl %} -{{ PRIVILEGE.SET(conn, "FUNCTION", p.grantee, data.name, p.without_grant, p.with_grant, data.pronamespace, data.func_args)}} +{{ PRIVILEGE.SET(conn, "FUNCTION", p.grantee, data.name, p.without_grant, p.with_grant, data.pronamespace, data.func_args_without)}} {% endfor %}{% endif %} {% if data.description %} -COMMENT ON FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({{data.func_args}}) - IS '{{ data.description }}'; +COMMENT ON FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({{data.func_args_without}}) + IS {{ data.description|qtLiteral }}; {% endif -%} {% if data.seclabels %} {% for r in data.seclabels %} {% if r.label and r.provider %} -{{ SECLABEL.SET(conn, 'FUNCTION', data.name, r.provider, r.label, data.pronamespace, data.func_args) }} +{{ SECLABEL.SET(conn, 'FUNCTION', data.name, r.provider, r.label, data.pronamespace, data.func_args_without) }} {% endif %} {% endfor %} {% endif -%} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/function/ppas/sql/9.2_plus/create.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/function/ppas/sql/9.2_plus/create.sql index 516e6d4..77ed284 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/function/ppas/sql/9.2_plus/create.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/function/ppas/sql/9.2_plus/create.sql @@ -4,19 +4,10 @@ {% set is_columns = [] %} {% if data %} CREATE{% if query_type is defined %}{{' OR REPLACE'}}{% endif %} FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({% if data.args %} -{% for p in data.args %}{% if p.argmode %}{{p.argmode}} {% endif %}{% if p.argname %}{{ conn|qtIdent(p.argname)}}{% endif %}{% if p.argtype %}{{ conn|qtIdent(p.argtype) }}{% endif %}{% if p.argdefval %} DEFAULT {{p.argdefval}}{% endif %} +{% for p in data.args %}{% if p.argmode %}{{p.argmode}} {% endif %}{% if p.argname %}{{ conn|qtIdent(p.argname)}} {% endif %}{% if p.argtype %}{{ conn|qtTypeIdent(p.argtype) }}{% endif %}{% if p.argdefval %} DEFAULT {{p.argdefval}}{% endif %} {% if not loop.last %},{% endif %} {% endfor %} {% endif -%} -{% if data.func_args %} -{% set func_args = data.func_args.split(',') %} - -{% for f in func_args %} - {{ f|trim }}{% if not loop.last %}, -{% endif %} -{% endfor %} - -{% endif %} ) RETURNS{% if data.proretset %} SETOF{% endif %} {{ conn|qtTypeIdent(data.prorettypename) }} LANGUAGE {{ data.lanname|qtLiteral }} @@ -43,25 +34,25 @@ $function$ $function${% endif -%}; {% if data.funcowner %} -ALTER FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({{data.func_args}}) +ALTER FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({{data.func_args_without}}) OWNER TO {{ data.funcowner }}; {% endif -%} {% if data.acl %} {% for p in data.acl %} -{{ PRIVILEGE.SET(conn, "FUNCTION", p.grantee, data.name, p.without_grant, p.with_grant, data.pronamespace, data.func_args)}} +{{ PRIVILEGE.SET(conn, "FUNCTION", p.grantee, data.name, p.without_grant, p.with_grant, data.pronamespace, data.func_args_withouts)}} {% endfor -%} {% endif -%} {% if data.description %} -COMMENT ON FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({{data.func_args}}) - IS '{{ data.description }}'; +COMMENT ON FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({{data.func_args_without}}) + IS {{ data.description|qtLiteral }}; {% endif -%} {% if data.seclabels %} {% for r in data.seclabels %} {% if r.label and r.provider %} -{{ SECLABEL.SET(conn, 'FUNCTION', data.name, r.provider, r.label, data.pronamespace, data.func_args) }} +{{ SECLABEL.SET(conn, 'FUNCTION', data.name, r.provider, r.label, data.pronamespace, data.func_args_withouts) }} {% endif %} {% endfor %} {% endif -%} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/function/ppas/sql/9.5_plus/create.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/function/ppas/sql/9.5_plus/create.sql index b5b7176..77034be 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/function/ppas/sql/9.5_plus/create.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/function/ppas/sql/9.5_plus/create.sql @@ -31,24 +31,24 @@ $function$ $function${% endif -%}; {% if data.funcowner %} -ALTER FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({{data.func_args}}) +ALTER FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({{data.func_args_without}}) OWNER TO {{ data.funcowner }}; {% endif -%} {% if data.acl %} {% for p in data.acl %} -{{ PRIVILEGE.SET(conn, "FUNCTION", p.grantee, data.name, p.without_grant, p.with_grant, data.pronamespace, data.func_args)}} +{{ PRIVILEGE.SET(conn, "FUNCTION", p.grantee, data.name, p.without_grant, p.with_grant, data.pronamespace, data.func_args_without)}} {% endfor %}{% endif %} {% if data.description %} -COMMENT ON FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({{data.func_args}}) - IS '{{ data.description }}'; +COMMENT ON FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({{data.func_args_without}}) + IS {{ data.description|qtLiteral }}; {% endif -%} {% if data.seclabels %} {% for r in data.seclabels %} {% if r.label and r.provider %} -{{ SECLABEL.SET(conn, 'FUNCTION', data.name, r.provider, r.label, data.pronamespace, data.func_args) }} +{{ SECLABEL.SET(conn, 'FUNCTION', data.name, r.provider, r.label, data.pronamespace, data.func_args_without) }} {% endif %} {% endfor %} {% endif -%} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedure/ppas/sql/9.1_plus/create.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedure/ppas/sql/9.1_plus/create.sql index 0a8cb20..235f9c6 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedure/ppas/sql/9.1_plus/create.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedure/ppas/sql/9.1_plus/create.sql @@ -3,11 +3,10 @@ {% import 'macros/functions/variable.macros' as VARIABLE %} {% set is_columns = [] %} {% if data %} -CREATE OR REPLACE PROCEDURE {{ conn|qtIdent(data.pronamespace, data.name) }}{% if data.args is defined or data.func_args is defined %} -({% for p in data.args %}{% if p.argmode %}{{p.argmode}} {% endif %}{% if p.argname %}{{ conn|qtIdent(p.argname)}} {% endif %}{% if p.argtype %}{{ conn|qtIdent(p.argtype) }}{% endif %}{% if p.argdefval %} DEFAULT {{p.argdefval}}{% endif %} +CREATE OR REPLACE PROCEDURE {{ conn|qtIdent(data.pronamespace, data.name) }}{% if data.args is defined %} +({% for p in data.args %}{% if p.argmode %}{{p.argmode}} {% endif %}{% if p.argname %}{{ conn|qtIdent(p.argname)}} {% endif %}{% if p.argtype %}{{ conn|qtTypeIdent(p.argtype) }}{% endif %}{% if p.argdefval %} DEFAULT {{p.argdefval}}{% endif %} {% if not loop.last %}, {% endif %} {% endfor -%} -{% if data.func_args %}{{ data.func_args }}{% endif %} ){% endif %} AS @@ -15,18 +14,18 @@ AS {% if data.acl and not is_sql %} {% for p in data.acl %} -{{ PRIVILEGE.SET(conn, "PROCEDURE", p.grantee, data.name, p.without_grant, p.with_grant, data.pronamespace, data.func_args)}} +{{ PRIVILEGE.SET(conn, "PROCEDURE", p.grantee, data.name, p.without_grant, p.with_grant, data.pronamespace, data.func_args_without)}} {% endfor %}{% endif %} {% if data.description %} COMMENT ON PROCEDURE {{ conn|qtIdent(data.pronamespace, data.name) }} - IS '{{ data.description }}'; + IS {{ data.description|qtLiteral }}; {% endif -%} {% if data.seclabels %} {% for r in data.seclabels %} {% if r.label and r.provider %} -{{ SECLABEL.SET(conn, 'PROCEDURE', data.name, r.provider, r.label, data.pronamespace, data.func_args) }} +{{ SECLABEL.SET(conn, 'PROCEDURE', data.name, r.provider, r.label, data.pronamespace, data.func_args_without) }} {% endif %} {% endfor %} {% endif -%} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedure/ppas/sql/9.2_plus/create.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedure/ppas/sql/9.2_plus/create.sql index 073ce1d..3a211f2 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedure/ppas/sql/9.2_plus/create.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedure/ppas/sql/9.2_plus/create.sql @@ -3,11 +3,10 @@ {% import 'macros/functions/variable.macros' as VARIABLE %} {% set is_columns = [] %} {% if data %} -CREATE OR REPLACE PROCEDURE {{ conn|qtIdent(data.pronamespace, data.name) }}{% if data.args is defined or data.func_args is defined %} -({% for p in data.args %}{% if p.argmode %}{{p.argmode}} {% endif %}{% if p.argname %}{{ conn|qtIdent(p.argname)}} {% endif %}{% if p.argtype %}{{ conn|qtIdent(p.argtype) }}{% endif %}{% if p.argdefval %} DEFAULT {{p.argdefval}}{% endif %} +CREATE OR REPLACE PROCEDURE {{ conn|qtIdent(data.pronamespace, data.name) }}{% if data.args is defined %} +({% for p in data.args %}{% if p.argmode %}{{p.argmode}} {% endif %}{% if p.argname %}{{ conn|qtIdent(p.argname)}} {% endif %}{% if p.argtype %}{{ conn|qtTypeIdent(p.argtype) }}{% endif %}{% if p.argdefval %} DEFAULT {{p.argdefval}}{% endif %} {% if not loop.last %}, {% endif %} {% endfor -%} -{% if data.func_args %}{{ data.func_args }}{% endif %} ){% endif %} AS @@ -15,18 +14,18 @@ AS {% if data.acl and not is_sql %} {% for p in data.acl %} -{{ PRIVILEGE.SET(conn, "PROCEDURE", p.grantee, data.name, p.without_grant, p.with_grant, data.pronamespace, data.func_args)}} +{{ PRIVILEGE.SET(conn, "PROCEDURE", p.grantee, data.name, p.without_grant, p.with_grant, data.pronamespace, data.func_args_without)}} {% endfor %}{% endif %} {% if data.description %} COMMENT ON PROCEDURE {{ conn|qtIdent(data.pronamespace, data.name) }} - IS '{{ data.description }}'; + IS {{ data.description|qtLiteral }}; {% endif -%} {% if data.seclabels %} {% for r in data.seclabels %} {% if r.label and r.provider %} -{{ SECLABEL.SET(conn, 'PROCEDURE', data.name, r.provider, r.label, data.pronamespace, data.func_args) }} +{{ SECLABEL.SET(conn, 'PROCEDURE', data.name, r.provider, r.label, data.pronamespace, data.func_args_without) }} {% endif %} {% endfor %} {% endif -%} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedure/ppas/sql/9.5_plus/create.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedure/ppas/sql/9.5_plus/create.sql index f1a40af..d0682aa 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedure/ppas/sql/9.5_plus/create.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedure/ppas/sql/9.5_plus/create.sql @@ -3,11 +3,10 @@ {% import 'macros/functions/variable.macros' as VARIABLE %} {% set is_columns = [] %} {% if data %} -CREATE OR REPLACE PROCEDURE {{ conn|qtIdent(data.pronamespace, data.name) }}{% if data.args is defined or data.func_args is defined %} +CREATE OR REPLACE PROCEDURE {{ conn|qtIdent(data.pronamespace, data.name) }}{% if data.args is defined %} ({% for p in data.args %}{% if p.argmode %}{{p.argmode}} {% endif %}{% if p.argname %}{{ conn|qtIdent(p.argname)}} {% endif %}{% if p.argtype %}{{ conn|qtTypeIdent(p.argtype) }}{% endif %}{% if p.argdefval %} DEFAULT {{p.argdefval}}{% endif %} {% if not loop.last %}, {% endif %} {% endfor -%} -{% if data.func_args %}{{ data.func_args }}{% endif %} ){% endif %} {% if query_type != 'create' %} @@ -27,18 +26,18 @@ AS {% if data.acl and not is_sql %} {% for p in data.acl %} -{{ PRIVILEGE.SET(conn, "PROCEDURE", p.grantee, data.name, p.without_grant, p.with_grant, data.pronamespace, data.func_args)}} +{{ PRIVILEGE.SET(conn, "PROCEDURE", p.grantee, data.name, p.without_grant, p.with_grant, data.pronamespace, data.func_args_without)}} {% endfor %}{% endif %} {% if data.description %} COMMENT ON PROCEDURE {{ conn|qtIdent(data.pronamespace, data.name) }} - IS '{{ data.description }}'; + IS {{ data.description|qtLiteral }}; {% endif -%} {% if data.seclabels %} {% for r in data.seclabels %} {% if r.label and r.provider %} -{{ SECLABEL.SET(conn, 'PROCEDURE', data.name, r.provider, r.label, data.pronamespace, data.func_args) }} +{{ SECLABEL.SET(conn, 'PROCEDURE', data.name, r.provider, r.label, data.pronamespace, data.func_args_without) }} {% endif %} {% endfor %} {% endif -%} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_function/pg/sql/9.1_plus/create.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_function/pg/sql/9.1_plus/create.sql index 6e9fd78..0a776f3 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_function/pg/sql/9.1_plus/create.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_function/pg/sql/9.1_plus/create.sql @@ -37,7 +37,7 @@ ALTER FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({{data.func_args {% if data.description %} COMMENT ON FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({{data.func_args}}) - IS '{{ data.description }}'; + IS {{ data.description|qtLiteral }}; {% endif -%} {% if data.seclabels %} {% for r in data.seclabels %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_function/pg/sql/9.2_plus/create.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_function/pg/sql/9.2_plus/create.sql index 7ca4bf1..412b02e 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_function/pg/sql/9.2_plus/create.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_function/pg/sql/9.2_plus/create.sql @@ -42,7 +42,7 @@ ALTER FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({{data.func_args {% if data.description %} COMMENT ON FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({{data.func_args}}) - IS '{{ data.description }}'; + IS {{ data.description|qtLiteral }}; {% endif -%} {% if data.seclabels %} {% for r in data.seclabels %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_function/pg/sql/9.5_plus/create.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_function/pg/sql/9.5_plus/create.sql index 5445855..aaa31e0 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_function/pg/sql/9.5_plus/create.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_function/pg/sql/9.5_plus/create.sql @@ -40,7 +40,7 @@ ALTER FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({{data.func_args {% if data.description %} COMMENT ON FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({{data.func_args}}) - IS '{{ data.description }}'; + IS {{ data.description|qtLiteral }}; {% endif -%} {% if data.seclabels %} {% for r in data.seclabels %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_function/ppas/sql/9.1_plus/create.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_function/ppas/sql/9.1_plus/create.sql index 6e9fd78..0a776f3 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_function/ppas/sql/9.1_plus/create.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_function/ppas/sql/9.1_plus/create.sql @@ -37,7 +37,7 @@ ALTER FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({{data.func_args {% if data.description %} COMMENT ON FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({{data.func_args}}) - IS '{{ data.description }}'; + IS {{ data.description|qtLiteral }}; {% endif -%} {% if data.seclabels %} {% for r in data.seclabels %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_function/ppas/sql/9.2_plus/create.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_function/ppas/sql/9.2_plus/create.sql index 210cf3a..ef64d20 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_function/ppas/sql/9.2_plus/create.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_function/ppas/sql/9.2_plus/create.sql @@ -41,7 +41,7 @@ ALTER FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({{data.func_args {% if data.description %} COMMENT ON FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({{data.func_args}}) - IS '{{ data.description }}'; + IS {{ data.description|qtLiteral }}; {% endif -%} {% if data.seclabels %} {% for r in data.seclabels %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_function/ppas/sql/9.5_plus/create.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_function/ppas/sql/9.5_plus/create.sql index 5c7c568..91f1de6 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_function/ppas/sql/9.5_plus/create.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_function/ppas/sql/9.5_plus/create.sql @@ -21,7 +21,7 @@ CREATE FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}() SET {{ conn|qtIdent(v.name) }}={{ v.value|qtLiteral }}{% endfor %} {% endif %} -+AS {% endif %}{% if data.lanname == 'c' %} +AS {% endif %}{% if data.lanname == 'c' %} {{ data.probin|qtLiteral }}, {{ data.prosrc_c|qtLiteral }} {% else %} $BODY$ @@ -40,7 +40,7 @@ ALTER FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({{data.func_args {% if data.description %} COMMENT ON FUNCTION {{ conn|qtIdent(data.pronamespace, data.name) }}({{data.func_args}}) - IS '{{ data.description }}'; + IS {{ data.description|qtLiteral }}; {% endif -%} {% if data.seclabels %} {% for r in data.seclabels %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/column/macros/security.macros b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/column/macros/security.macros index 39587c3..1beb259 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/column/macros/security.macros +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/column/macros/security.macros @@ -1,6 +1,6 @@ {% macro APPLY(conn, type, schema_name, parent_object, child_object, provider, label) -%} -SECURITY LABEL FOR {{ conn|qtIdent(provider) }} ON {{ type }} {{ conn|qtIdent(schema_name, parent_object, child_object) }} IS {{ label|qtLiteral }}; +SECURITY LABEL{% if provider and provider != '' %} FOR {{ conn|qtIdent(provider) }}{% endif %} ON {{ type }} {{ conn|qtIdent(schema_name, parent_object, child_object) }} IS {{ label|qtLiteral }}; {%- endmacro %} {% macro DROP(conn, type, schema_name, parent_object, child_object, provider) -%} -SECURITY LABEL FOR {{ conn|qtIdent(provider) }} ON {{ type }} {{ conn|qtIdent(schema_name, parent_object, child_object) }} IS NULL; +SECURITY LABEL{% if provider and provider != '' %} FOR {{ conn|qtIdent(provider) }}{% endif %} ON {{ type }} {{ conn|qtIdent(schema_name, parent_object, child_object) }} IS NULL; {%- endmacro %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/macros/functions/security.macros b/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/macros/functions/security.macros index dd2a086..5d9e2a6 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/macros/functions/security.macros +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/macros/functions/security.macros @@ -2,7 +2,7 @@ {# Macros for Security Labels (functions module) #} {#################################################} {% macro SET(conn, type, name, provider, label, schema, func_args) -%} -SECURITY LABEL FOR {{ provider }} ON {{ type }} {{ conn|qtIdent(schema, name) }}({{func_args}}) IS {{ label|qtLiteral }}; +SECURITY LABEL{% if provider and provider != '' %} FOR {{ conn|qtIdent(provider) }}{% endif %} ON {{ type }} {{ conn|qtIdent(schema, name) }}({{func_args}}) IS {{ label|qtLiteral }}; {%- endmacro %} {% macro UNSET(conn, type, name, provider, schema, func_args) -%} SECURITY LABEL FOR {{ provider }} ON {{ type }} {{ conn|qtIdent(schema, name) }}({{func_args}}) IS NULL; diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/macros/schemas/security.macros b/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/macros/schemas/security.macros index e1126b1..7d764c5 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/macros/schemas/security.macros +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/macros/schemas/security.macros @@ -2,7 +2,7 @@ {# Macros for schema and its child nodes #} {##########################################} {% macro SET(conn, type, name, provider, label, schema) -%} -SECURITY LABEL FOR {{ provider }} ON {{ type }} {{ conn|qtIdent(schema, name) }} IS {{ label|qtLiteral }}; +SECURITY LABEL FOR{% if provider and provider != '' %} FOR {{ conn|qtIdent(provider) }}{% endif %} ON {{ type }} {{ conn|qtIdent(schema, name) }} IS {{ label|qtLiteral }}; {%- endmacro %} {% macro UNSET(conn, type, name, provider, schema) -%} SECURITY LABEL FOR {{ provider }} ON {{ type }} {{ conn|qtIdent(schema, name) }} IS NULL; diff --git a/web/pgadmin/browser/server_groups/servers/templates/macros/security.macros b/web/pgadmin/browser/server_groups/servers/templates/macros/security.macros index 83fb9d2..4350f9a 100644 --- a/web/pgadmin/browser/server_groups/servers/templates/macros/security.macros +++ b/web/pgadmin/browser/server_groups/servers/templates/macros/security.macros @@ -1,5 +1,5 @@ {% macro APPLY(conn, type, name, provider, label) -%} -SECURITY LABEL FOR {{ conn|qtIdent(provider) }} ON {{ type }} {{ conn|qtIdent(name) }} IS {{ label|qtLiteral }}; +SECURITY LABEL{% if provider and provider != '' %} FOR {{ conn|qtIdent(provider) }}{% endif %} ON {{ type }} {{ conn|qtIdent(name) }} IS {{ label|qtLiteral }}; {%- endmacro %} {% macro DROP(conn, type, name, provider) -%} SECURITY LABEL FOR {{ conn|qtIdent(provider) }} ON {{ type }} {{ conn|qtIdent(name) }} IS NULL; diff --git a/web/pgadmin/browser/server_groups/servers/templates/servers/servers.js b/web/pgadmin/browser/server_groups/servers/templates/servers/servers.js index 1c8bff8..0a64143 100644 --- a/web/pgadmin/browser/server_groups/servers/templates/servers/servers.js +++ b/web/pgadmin/browser/server_groups/servers/templates/servers/servers.js @@ -23,14 +23,6 @@ function($, _, S, pgAdmin, pgBrowser, alertify) { errmsg = null; this.errorModel.clear(); - if (_.isUndefined(this.get('provider')) || - _.isNull(this.get('provider')) || - String(this.get('provider')).replace(/^\s+|\s+$/g, '') == '') { - errmsg = '{{ _('Provider must be specified.') }}'; - this.errorModel.set('provider', errmsg); - return errmsg; - } - if (_.isUndefined(this.get('label')) || _.isNull(this.get('label')) || String(this.get('label')).replace(/^\s+|\s+$/g, '') == '') {