diff --git a/web/pgadmin/browser/server_groups/servers/roles/__init__.py b/web/pgadmin/browser/server_groups/servers/roles/__init__.py
index eb5dfc978..4d83f650e 100644
--- a/web/pgadmin/browser/server_groups/servers/roles/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/roles/__init__.py
@@ -506,8 +506,7 @@ rolmembership:{
                         "The current user does not have permission to create "
                         "the role."
                     )
-                elif action == 'msql' and 'rid' in kwargs and \
-                        kwargs['rid'] != -1:
+                elif action == 'msql' and 'rid' in kwargs:
                     fetch_name = True
 
                 if check_permission:
@@ -863,8 +862,8 @@ rolmembership:{
 
     @check_precondition(action='msql')
     @validate_request
-    def msql(self, gid, sid, rid=-1):
-        if rid == -1:
+    def msql(self, gid, sid, rid=None):
+        if rid is None:
             return make_json_response(
                 data=render_template(
                     self.sql_path + 'create.sql',
diff --git a/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/alter_login_role_description.msql b/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/alter_login_role_description.msql
new file mode 100644
index 000000000..7156049e1
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/alter_login_role_description.msql
@@ -0,0 +1 @@
+COMMENT ON ROLE "Role1_$%{}[]()&*^!@""'`\/#" IS 'This is detailed description';
diff --git a/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/alter_login_role_name.msql b/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/alter_login_role_name.msql
new file mode 100644
index 000000000..0595fdb93
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/alter_login_role_name.msql
@@ -0,0 +1,2 @@
+ALTER ROLE "Role1_$%{}[]()&*^!@""'`\/#"
+	RENAME TO "Role2_$%{}[]()&*^!@""'`\/#";
diff --git a/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/alter_login_role_options.msql b/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/alter_login_role_options.msql
new file mode 100644
index 000000000..bd025f963
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/alter_login_role_options.msql
@@ -0,0 +1,11 @@
+ALTER ROLE "Role2_$%{}[]()&*^!@""'`\/#"
+	NOSUPERUSER
+	NOCREATEDB
+	NOREPLICATION
+	CONNECTION LIMIT 100
+
+	VALID UNTIL '2050-01-01T00:00:00+05:30'
+	PASSWORD 'xxxxxx';
+
+ALTER ROLE "Role2_$%{}[]()&*^!@""'`\/#" IN DATABASE postgres
+    SET application_name TO 'pg4';
diff --git a/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/alter_role_description.msql b/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/alter_role_description.msql
new file mode 100644
index 000000000..7156049e1
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/alter_role_description.msql
@@ -0,0 +1 @@
+COMMENT ON ROLE "Role1_$%{}[]()&*^!@""'`\/#" IS 'This is detailed description';
diff --git a/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/alter_role_name.msql b/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/alter_role_name.msql
new file mode 100644
index 000000000..0595fdb93
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/alter_role_name.msql
@@ -0,0 +1,2 @@
+ALTER ROLE "Role1_$%{}[]()&*^!@""'`\/#"
+	RENAME TO "Role2_$%{}[]()&*^!@""'`\/#";
diff --git a/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/alter_role_options.msql b/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/alter_role_options.msql
new file mode 100644
index 000000000..429e0ac14
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/alter_role_options.msql
@@ -0,0 +1,11 @@
+ALTER ROLE "Role2_$%{}[]()&*^!@""'`\/#"
+	SUPERUSER
+	CREATEDB
+	NOREPLICATION
+	CONNECTION LIMIT 100
+
+	VALID UNTIL '2050-01-01T00:00:00+05:30'
+	PASSWORD 'xxxxxx';
+
+ALTER ROLE "Role2_$%{}[]()&*^!@""'`\/#" IN DATABASE postgres
+    SET application_name TO 'pg4';
diff --git a/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/create_login_role.msql b/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/create_login_role.msql
new file mode 100644
index 000000000..f624a21d1
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/create_login_role.msql
@@ -0,0 +1,9 @@
+CREATE ROLE "Role1_$%{}[]()&*^!@""'`\/#" WITH
+	LOGIN
+	SUPERUSER
+	CREATEDB
+	CREATEROLE
+	INHERIT
+	REPLICATION
+	CONNECTION LIMIT -1
+	PASSWORD 'xxxxxx';
diff --git a/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/create_role.msql b/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/create_role.msql
new file mode 100644
index 000000000..a4ca80900
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/create_role.msql
@@ -0,0 +1,9 @@
+CREATE ROLE "Role1_$%{}[]()&*^!@""'`\/#" WITH
+	NOLOGIN
+	NOSUPERUSER
+	NOCREATEDB
+	NOCREATEROLE
+	INHERIT
+	NOREPLICATION
+	CONNECTION LIMIT -1
+	PASSWORD 'xxxxxx';
diff --git a/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/test.json b/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/test.json
index 3a2bc9427..17feb43ef 100644
--- a/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/test.json
+++ b/web/pgadmin/browser/server_groups/servers/roles/tests/9.1_plus/test.json
@@ -5,6 +5,7 @@
       "name": "Create Role",
       "endpoint": "NODE-role.obj",
       "sql_endpoint": "NODE-role.sql_id",
+      "msql_endpoint": "NODE-role.msql",
       "data": {
           "rolname": "Role1_$%{}[]()&*^!@\"'`\\/#",
           "rolcanlogin": false,
@@ -17,37 +18,42 @@
           "rolcatupdate": false,
           "rolreplication": false,
           "rolmembership": [],
-          "rolvaliduntil": null,
           "seclabels": [],
           "variables": []
       },
-      "expected_sql_file": "create_role.sql"
+      "expected_sql_file": "create_role.sql",
+      "expected_msql_file": "create_role.msql"
     },
     {
       "type": "alter",
       "name": "Alter Role description",
       "endpoint": "NODE-role.obj_id",
       "sql_endpoint": "NODE-role.sql_id",
+      "msql_endpoint": "NODE-role.msql_id",
       "data": {
         "description": "This is detailed description"
       },
-      "expected_sql_file": "alter_role_description.sql"
+      "expected_sql_file": "alter_role_description.sql",
+      "expected_msql_file": "create_role.msql"
     },
     {
       "type": "alter",
       "name": "Alter Role name",
       "endpoint": "NODE-role.obj_id",
       "sql_endpoint": "NODE-role.sql_id",
+      "msql_endpoint": "NODE-role.msql_id",
       "data": {
         "rolname": "Role2_$%{}[]()&*^!@\"'`\\/#"
       },
-      "expected_sql_file": "alter_role_name.sql"
+      "expected_sql_file": "alter_role_name.sql",
+      "expected_msql_file": "create_role.msql"
     },
     {
       "type": "alter",
       "name": "Alter Role options",
       "endpoint": "NODE-role.obj_id",
       "sql_endpoint": "NODE-role.sql_id",
+      "msql_endpoint": "NODE-role.msql_id",
       "data": {
         "rolsuper": true,
         "rolcreatedb": true,
@@ -57,7 +63,8 @@
         "rolvaliduntil": "2050-01-01 00:00:00 +05:30",
         "variables": { "added": [{"name":"application_name","value":"pg4","database":"postgres"}] }
       },
-      "expected_sql_file": "alter_role_options.sql"
+      "expected_sql_file": "alter_role_options.sql",
+      "expected_msql_file": "create_role.msql"
     },
     {
       "type": "delete",
@@ -70,6 +77,7 @@
       "name": "Create Login Role",
       "endpoint": "NODE-role.obj",
       "sql_endpoint": "NODE-role.sql_id",
+      "msql_endpoint": "NODE-role.msql",
       "data": {
           "rolname": "Role1_$%{}[]()&*^!@\"'`\\/#",
           "rolcanlogin": true,
@@ -82,37 +90,42 @@
           "rolcatupdate": true,
           "rolreplication": true,
           "rolmembership": [],
-          "rolvaliduntil": null,
           "seclabels": [],
           "variables": []
       },
-      "expected_sql_file": "create_login_role.sql"
+      "expected_sql_file": "create_login_role.sql",
+      "expected_msql_file": "create_role.msql"
     },
     {
       "type": "alter",
       "name": "Alter Login Role description",
       "endpoint": "NODE-role.obj_id",
       "sql_endpoint": "NODE-role.sql_id",
+      "msql_endpoint": "NODE-role.msql_id",
       "data": {
         "description": "This is detailed description"
       },
-      "expected_sql_file": "alter_login_role_description.sql"
+      "expected_sql_file": "alter_login_role_description.sql",
+      "expected_msql_file": "create_role.msql"
     },
     {
       "type": "alter",
       "name": "Alter Login Role name",
       "endpoint": "NODE-role.obj_id",
       "sql_endpoint": "NODE-role.sql_id",
+      "msql_endpoint": "NODE-role.msql_id",
       "data": {
         "rolname": "Role2_$%{}[]()&*^!@\"'`\\/#"
       },
-      "expected_sql_file": "alter_login_role_name.sql"
+      "expected_sql_file": "alter_login_role_name.sql",
+      "expected_msql_file": "create_role.msql"
     },
     {
       "type": "alter",
       "name": "Alter Login Role options",
       "endpoint": "NODE-role.obj_id",
       "sql_endpoint": "NODE-role.sql_id",
+      "msql_endpoint": "NODE-role.msql_id",
       "data": {
         "rolsuper": false,
         "rolcreatedb": false,
@@ -122,7 +135,8 @@
         "rolvaliduntil": "2050-01-01 00:00:00 +05:30",
         "variables": { "added": [{"name":"application_name","value":"pg4","database":"postgres"}] }
       },
-      "expected_sql_file": "alter_login_role_options.sql"
+      "expected_sql_file": "alter_login_role_options.sql",
+      "expected_msql_file": "create_role.msql"
     },
     {
       "type": "delete",
diff --git a/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/alter_login_role_description.msql b/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/alter_login_role_description.msql
new file mode 100644
index 000000000..0abf43505
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/alter_login_role_description.msql
@@ -0,0 +1 @@
+COMMENT ON ROLE "Role1_$%{}[]()&*^!@""'`\/#" IS 'This is detailed description';
\ No newline at end of file
diff --git a/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/alter_login_role_name.msql b/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/alter_login_role_name.msql
new file mode 100644
index 000000000..088b07834
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/alter_login_role_name.msql
@@ -0,0 +1,2 @@
+ALTER ROLE "Role1_$%{}[]()&*^!@""'`\/#"
+	RENAME TO "Role2_$%{}[]()&*^!@""'`\/#";
\ No newline at end of file
diff --git a/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/alter_login_role_options.msql b/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/alter_login_role_options.msql
new file mode 100644
index 000000000..4dc1ebdca
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/alter_login_role_options.msql
@@ -0,0 +1,11 @@
+ALTER ROLE "Role2_$%{}[]()&*^!@""'`\/#"
+	NOSUPERUSER
+	NOCREATEDB
+	NOREPLICATION
+	CONNECTION LIMIT 100
+
+	VALID UNTIL '2050-01-01T00:00:00+05:30'
+	PASSWORD 'xxxxxx';
+
+ALTER ROLE "Role2_$%{}[]()&*^!@""'`\/#" IN DATABASE postgres
+    SET application_name TO 'pg4';
\ No newline at end of file
diff --git a/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/alter_role_description.msql b/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/alter_role_description.msql
new file mode 100644
index 000000000..0abf43505
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/alter_role_description.msql
@@ -0,0 +1 @@
+COMMENT ON ROLE "Role1_$%{}[]()&*^!@""'`\/#" IS 'This is detailed description';
\ No newline at end of file
diff --git a/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/alter_role_name.msql b/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/alter_role_name.msql
new file mode 100644
index 000000000..088b07834
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/alter_role_name.msql
@@ -0,0 +1,2 @@
+ALTER ROLE "Role1_$%{}[]()&*^!@""'`\/#"
+	RENAME TO "Role2_$%{}[]()&*^!@""'`\/#";
\ No newline at end of file
diff --git a/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/alter_role_options.msql b/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/alter_role_options.msql
new file mode 100644
index 000000000..1a196a375
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/alter_role_options.msql
@@ -0,0 +1,11 @@
+ALTER ROLE "Role2_$%{}[]()&*^!@""'`\/#"
+	SUPERUSER
+	CREATEDB
+	NOREPLICATION
+	CONNECTION LIMIT 100
+
+	VALID UNTIL '2050-01-01T00:00:00+05:30'
+	PASSWORD 'xxxxxx';
+
+ALTER ROLE "Role2_$%{}[]()&*^!@""'`\/#" IN DATABASE postgres
+    SET application_name TO 'pg4';
\ No newline at end of file
diff --git a/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/create_login_role.msql b/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/create_login_role.msql
new file mode 100644
index 000000000..a3e6cc7ee
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/create_login_role.msql
@@ -0,0 +1,9 @@
+CREATE ROLE "Role1_$%{}[]()&*^!@""'`\/#" WITH
+	LOGIN
+	SUPERUSER
+	CREATEDB
+	CREATEROLE
+	INHERIT
+	REPLICATION
+	CONNECTION LIMIT -1
+	PASSWORD 'xxxxxx';
\ No newline at end of file
diff --git a/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/create_role.msql b/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/create_role.msql
new file mode 100644
index 000000000..6ea5ec5ad
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/create_role.msql
@@ -0,0 +1,9 @@
+CREATE ROLE "Role1_$%{}[]()&*^!@""'`\/#" WITH
+	NOLOGIN
+	NOSUPERUSER
+	NOCREATEDB
+	NOCREATEROLE
+	INHERIT
+	NOREPLICATION
+	CONNECTION LIMIT -1
+	PASSWORD 'xxxxxx';
\ No newline at end of file
diff --git a/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/test.json b/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/test.json
index 97ab53bae..3de2d40ac 100644
--- a/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/test.json
+++ b/web/pgadmin/browser/server_groups/servers/roles/tests/9.4_plus/test.json
@@ -5,6 +5,7 @@
       "name": "Create Role",
       "endpoint": "NODE-role.obj",
       "sql_endpoint": "NODE-role.sql_id",
+      "msql_endpoint": "NODE-role.msql",
       "data": {
           "rolname": "Role1_$%{}[]()&*^!@\"'`\\/#",
           "rolcanlogin": false,
@@ -17,37 +18,42 @@
           "rolcatupdate": false,
           "rolreplication": false,
           "rolmembership": [],
-          "rolvaliduntil": null,
           "seclabels": [],
           "variables": []
       },
-      "expected_sql_file": "create_role.sql"
+      "expected_sql_file": "create_role.sql",
+      "expected_msql_file": "create_role.msql"
     },
     {
       "type": "alter",
       "name": "Alter Role description",
       "endpoint": "NODE-role.obj_id",
       "sql_endpoint": "NODE-role.sql_id",
+      "msql_endpoint": "NODE-role.msql_id",
       "data": {
         "description": "This is detailed description"
       },
-      "expected_sql_file": "alter_role_description.sql"
+      "expected_sql_file": "alter_role_description.sql",
+      "expected_msql_file": "alter_role_description.msql"
     },
     {
       "type": "alter",
       "name": "Alter Role name",
       "endpoint": "NODE-role.obj_id",
       "sql_endpoint": "NODE-role.sql_id",
+      "msql_endpoint": "NODE-role.msql_id",
       "data": {
         "rolname": "Role2_$%{}[]()&*^!@\"'`\\/#"
       },
-      "expected_sql_file": "alter_role_name.sql"
+      "expected_sql_file": "alter_role_name.sql",
+      "expected_msql_file": "alter_role_name.msql"
     },
     {
       "type": "alter",
       "name": "Alter Role options",
       "endpoint": "NODE-role.obj_id",
       "sql_endpoint": "NODE-role.sql_id",
+      "msql_endpoint": "NODE-role.msql_id",
       "data": {
         "rolsuper": true,
         "rolcreatedb": true,
@@ -58,6 +64,7 @@
         "variables": { "added": [{"name":"application_name","value":"pg4","database":"postgres"}] }
       },
       "expected_sql_file": "alter_role_options.sql",
+      "expected_msql_file": "alter_role_options.msql",
       "convert_timestamp_columns": ["rolvaliduntil"]
     },
     {
@@ -71,6 +78,7 @@
       "name": "Create Login Role",
       "endpoint": "NODE-role.obj",
       "sql_endpoint": "NODE-role.sql_id",
+      "msql_endpoint": "NODE-role.msql",
       "data": {
           "rolname": "Role1_$%{}[]()&*^!@\"'`\\/#",
           "rolcanlogin": true,
@@ -83,37 +91,42 @@
           "rolcatupdate": true,
           "rolreplication": true,
           "rolmembership": [],
-          "rolvaliduntil": null,
           "seclabels": [],
           "variables": []
       },
-      "expected_sql_file": "create_login_role.sql"
+      "expected_sql_file": "create_login_role.sql",
+      "expected_msql_file": "create_login_role.msql"
     },
     {
       "type": "alter",
       "name": "Alter Login Role description",
       "endpoint": "NODE-role.obj_id",
       "sql_endpoint": "NODE-role.sql_id",
+      "msql_endpoint": "NODE-role.msql_id",
       "data": {
         "description": "This is detailed description"
       },
-      "expected_sql_file": "alter_login_role_description.sql"
+      "expected_sql_file": "alter_login_role_description.sql",
+      "expected_msql_file": "alter_login_role_description.msql"
     },
     {
       "type": "alter",
       "name": "Alter Login Role name",
       "endpoint": "NODE-role.obj_id",
       "sql_endpoint": "NODE-role.sql_id",
+      "msql_endpoint": "NODE-role.msql_id",
       "data": {
         "rolname": "Role2_$%{}[]()&*^!@\"'`\\/#"
       },
-      "expected_sql_file": "alter_login_role_name.sql"
+      "expected_sql_file": "alter_login_role_name.sql",
+      "expected_msql_file": "alter_login_role_name.msql"
     },
     {
       "type": "alter",
       "name": "Alter Login Role options",
       "endpoint": "NODE-role.obj_id",
       "sql_endpoint": "NODE-role.sql_id",
+      "msql_endpoint": "NODE-role.msql_id",
       "data": {
         "rolsuper": false,
         "rolcreatedb": false,
@@ -124,6 +137,7 @@
         "variables": { "added": [{"name":"application_name","value":"pg4","database":"postgres"}] }
       },
       "expected_sql_file": "alter_login_role_options.sql",
+      "expected_msql_file": "alter_login_role_options.msql",
       "convert_timestamp_columns": ["rolvaliduntil"]
     },
     {
