mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2025-02-25 18:55:31 -06:00
parent
166d42953c
commit
06e881570a
@ -21,7 +21,7 @@ linecache2==1.0.0
|
|||||||
MarkupSafe==0.23
|
MarkupSafe==0.23
|
||||||
passlib==1.6.2
|
passlib==1.6.2
|
||||||
pbr==1.9.1
|
pbr==1.9.1
|
||||||
psycopg2==2.5.2
|
psycopg2==2.6.2
|
||||||
pycrypto==2.6.1
|
pycrypto==2.6.1
|
||||||
pyrsistent==0.11.13
|
pyrsistent==0.11.13
|
||||||
python-dateutil==2.5.0
|
python-dateutil==2.5.0
|
||||||
|
@ -20,7 +20,7 @@ linecache2==1.0.0
|
|||||||
MarkupSafe==0.23
|
MarkupSafe==0.23
|
||||||
passlib==1.6.2
|
passlib==1.6.2
|
||||||
pbr==1.9.1
|
pbr==1.9.1
|
||||||
psycopg2==2.5.2
|
psycopg2==2.6.2
|
||||||
pycrypto==2.6.1
|
pycrypto==2.6.1
|
||||||
pyrsistent==0.11.13
|
pyrsistent==0.11.13
|
||||||
python-dateutil==2.5.0
|
python-dateutil==2.5.0
|
||||||
|
@ -147,7 +147,7 @@ def create_app(app_name=config.APP_NAME):
|
|||||||
logger.setLevel(logging.INFO)
|
logger.setLevel(logging.INFO)
|
||||||
|
|
||||||
# File logging
|
# File logging
|
||||||
fh = logging.FileHandler(config.LOG_FILE)
|
fh = logging.FileHandler(config.LOG_FILE, encoding='utf-8')
|
||||||
fh.setLevel(config.FILE_LOG_LEVEL)
|
fh.setLevel(config.FILE_LOG_LEVEL)
|
||||||
fh.setFormatter(logging.Formatter(config.FILE_LOG_FORMAT))
|
fh.setFormatter(logging.Formatter(config.FILE_LOG_FORMAT))
|
||||||
app.logger.addHandler(fh)
|
app.logger.addHandler(fh)
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
##########################################################################
|
##########################################################################
|
||||||
"""Defines views for management of server groups"""
|
"""Defines views for management of server groups"""
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
from abc import ABCMeta, abstractmethod
|
from abc import ABCMeta, abstractmethod
|
||||||
|
|
||||||
import six
|
import six
|
||||||
@ -156,7 +156,9 @@ class ServerGroupView(NodeView):
|
|||||||
user_id=current_user.id,
|
user_id=current_user.id,
|
||||||
id=gid).first()
|
id=gid).first()
|
||||||
|
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
|
|
||||||
if servergroup is None:
|
if servergroup is None:
|
||||||
return make_json_response(
|
return make_json_response(
|
||||||
@ -201,7 +203,10 @@ class ServerGroupView(NodeView):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def create(self):
|
def create(self):
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
"""Creates new server-group """
|
||||||
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
if data[u'name'] != '':
|
if data[u'name'] != '':
|
||||||
try:
|
try:
|
||||||
check_sg = ServerGroup.query.filter_by(
|
check_sg = ServerGroup.query.filter_by(
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
#
|
#
|
||||||
##########################################################################
|
##########################################################################
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
import traceback
|
import traceback
|
||||||
|
|
||||||
import pgadmin.browser.server_groups as sg
|
import pgadmin.browser.server_groups as sg
|
||||||
@ -400,7 +400,9 @@ class ServerNode(PGChildNodeView):
|
|||||||
}
|
}
|
||||||
|
|
||||||
idx = 0
|
idx = 0
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
|
|
||||||
from pgadmin.utils.driver import get_driver
|
from pgadmin.utils.driver import get_driver
|
||||||
manager = get_driver(PG_DEFAULT_DRIVER).connection_manager(sid)
|
manager = get_driver(PG_DEFAULT_DRIVER).connection_manager(sid)
|
||||||
@ -554,7 +556,9 @@ class ServerNode(PGChildNodeView):
|
|||||||
u'role'
|
u'role'
|
||||||
]
|
]
|
||||||
|
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
|
|
||||||
for arg in required_args:
|
for arg in required_args:
|
||||||
if arg not in data:
|
if arg not in data:
|
||||||
@ -740,8 +744,9 @@ class ServerNode(PGChildNodeView):
|
|||||||
if user is None:
|
if user is None:
|
||||||
return unauthorized(gettext("Unauthorized request."))
|
return unauthorized(gettext("Unauthorized request."))
|
||||||
|
|
||||||
data = request.form if request.form else json.loads(request.data) if \
|
data = request.form if request.form else json.loads(
|
||||||
request.data else {}
|
request.data, encoding='utf-8'
|
||||||
|
) if request.data else {}
|
||||||
|
|
||||||
password = None
|
password = None
|
||||||
save_password = False
|
save_password = False
|
||||||
@ -969,7 +974,7 @@ class ServerNode(PGChildNodeView):
|
|||||||
sid: Server id
|
sid: Server id
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
data = json.loads(request.form['data'])
|
data = json.loads(request.form['data'], encoding='utf-8')
|
||||||
if data and ('password' not in data or
|
if data and ('password' not in data or
|
||||||
data['password'] == '' or
|
data['password'] == '' or
|
||||||
'newPassword' not in data or
|
'newPassword' not in data or
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
"""Implements the Database Node"""
|
"""Implements the Database Node"""
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
import re
|
import re
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
|
||||||
@ -186,11 +186,12 @@ class DatabaseView(PGChildNodeView):
|
|||||||
return internal_server_error(errormsg=rset)
|
return internal_server_error(errormsg=rset)
|
||||||
|
|
||||||
for row in rset['rows']:
|
for row in rset['rows']:
|
||||||
if self.manager.db == row['name']:
|
dbname = row['name']
|
||||||
|
if self.manager.db == dbname:
|
||||||
connected = True
|
connected = True
|
||||||
canDrop = canDisConn = False
|
canDrop = canDisConn = False
|
||||||
else:
|
else:
|
||||||
conn = self.manager.connection(row['name'])
|
conn = self.manager.connection(dbname)
|
||||||
connected = conn.connected()
|
connected = conn.connected()
|
||||||
canDrop = canDisConn = True
|
canDrop = canDisConn = True
|
||||||
|
|
||||||
@ -441,7 +442,9 @@ class DatabaseView(PGChildNodeView):
|
|||||||
u'name'
|
u'name'
|
||||||
]
|
]
|
||||||
|
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
|
|
||||||
for arg in required_args:
|
for arg in required_args:
|
||||||
if arg not in data:
|
if arg not in data:
|
||||||
@ -516,7 +519,7 @@ class DatabaseView(PGChildNodeView):
|
|||||||
"""Update the database."""
|
"""Update the database."""
|
||||||
|
|
||||||
data = request.form if request.form else json.loads(
|
data = request.form if request.form else json.loads(
|
||||||
request.data.decode()
|
request.data, encoding='utf-8'
|
||||||
)
|
)
|
||||||
info = "nothing to update."
|
info = "nothing to update."
|
||||||
|
|
||||||
@ -636,7 +639,7 @@ class DatabaseView(PGChildNodeView):
|
|||||||
data = {}
|
data = {}
|
||||||
for k, v in request.args.items():
|
for k, v in request.args.items():
|
||||||
try:
|
try:
|
||||||
data[k] = json.loads(v)
|
data[k] = json.loads(v, encoding='utf-8')
|
||||||
except ValueError:
|
except ValueError:
|
||||||
data[k] = v
|
data[k] = v
|
||||||
try:
|
try:
|
||||||
@ -708,7 +711,7 @@ class DatabaseView(PGChildNodeView):
|
|||||||
acls = render_template(
|
acls = render_template(
|
||||||
"/".join([self.template_path, 'allowed_privs.json'])
|
"/".join([self.template_path, 'allowed_privs.json'])
|
||||||
)
|
)
|
||||||
acls = json.loads(acls)
|
acls = json.loads(acls, encoding='utf-8')
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
current_app.logger.exception(e)
|
current_app.logger.exception(e)
|
||||||
|
|
||||||
@ -741,7 +744,7 @@ class DatabaseView(PGChildNodeView):
|
|||||||
acls = render_template(
|
acls = render_template(
|
||||||
"/".join([self.template_path, 'allowed_privs.json'])
|
"/".join([self.template_path, 'allowed_privs.json'])
|
||||||
)
|
)
|
||||||
acls = json.loads(acls)
|
acls = json.loads(acls, encoding='utf-8')
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
current_app.logger.exception(e)
|
current_app.logger.exception(e)
|
||||||
|
|
||||||
@ -864,17 +867,20 @@ class DatabaseView(PGChildNodeView):
|
|||||||
frmtd_variables = parse_variables_from_db(res1['rows'])
|
frmtd_variables = parse_variables_from_db(res1['rows'])
|
||||||
result.update(frmtd_variables)
|
result.update(frmtd_variables)
|
||||||
|
|
||||||
sql_header = """
|
sql_header = "-- Database: {0}\n\n-- ".format(result['name'])
|
||||||
-- Database: {0}
|
if hasattr(str, 'decode'):
|
||||||
|
sql_header = sql_header.decode('utf-8')
|
||||||
|
|
||||||
-- DROP DATABASE {0};
|
sql_header += render_template(
|
||||||
|
"/".join([self.template_path, 'delete.sql']),
|
||||||
""".format(result['name'])
|
datname=result['name'], conn=self.conn
|
||||||
|
)
|
||||||
|
|
||||||
SQL = self.get_new_sql(gid, sid, result, did)
|
SQL = self.get_new_sql(gid, sid, result, did)
|
||||||
SQL = re.sub('\n{2,}', '\n\n', SQL)
|
SQL = re.sub('\n{2,}', '\n\n', SQL)
|
||||||
SQL = sql_header + SQL
|
SQL = sql_header + '\n' + SQL
|
||||||
SQL = SQL.strip('\n')
|
SQL = SQL.strip('\n')
|
||||||
|
|
||||||
return ajax_response(response=SQL)
|
return ajax_response(response=SQL)
|
||||||
|
|
||||||
@check_precondition()
|
@check_precondition()
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
"""Implements Cast Node"""
|
"""Implements Cast Node"""
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
|
||||||
import pgadmin.browser.server_groups.servers.databases as databases
|
import pgadmin.browser.server_groups.servers.databases as databases
|
||||||
@ -345,7 +345,9 @@ class CastView(PGChildNodeView):
|
|||||||
'trgtyp'
|
'trgtyp'
|
||||||
]
|
]
|
||||||
|
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
for arg in required_args:
|
for arg in required_args:
|
||||||
if arg not in data:
|
if arg not in data:
|
||||||
return make_json_response(
|
return make_json_response(
|
||||||
@ -396,7 +398,9 @@ class CastView(PGChildNodeView):
|
|||||||
:param gid: group id
|
:param gid: group id
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
sql = self.get_sql(gid, sid, did, data, cid)
|
sql = self.get_sql(gid, sid, did, data, cid)
|
||||||
try:
|
try:
|
||||||
if sql and sql.strip('\n') and sql.strip(' '):
|
if sql and sql.strip('\n') and sql.strip(' '):
|
||||||
@ -560,7 +564,10 @@ class CastView(PGChildNodeView):
|
|||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
res = []
|
res = []
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
|
|
||||||
sql = render_template("/".join([self.template_path, 'functions.sql']),
|
sql = render_template("/".join([self.template_path, 'functions.sql']),
|
||||||
srctyp=data['srctyp'],
|
srctyp=data['srctyp'],
|
||||||
trgtyp=data['trgtyp'])
|
trgtyp=data['trgtyp'])
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
#
|
#
|
||||||
##########################################################################
|
##########################################################################
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
import re
|
import re
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
|
||||||
@ -327,7 +327,10 @@ class EventTriggerView(PGChildNodeView):
|
|||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
"""
|
"""
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
|
|
||||||
required_args = {
|
required_args = {
|
||||||
'name': 'Name',
|
'name': 'Name',
|
||||||
'eventowner': 'Owner',
|
'eventowner': 'Owner',
|
||||||
@ -390,7 +393,9 @@ class EventTriggerView(PGChildNodeView):
|
|||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
"""
|
"""
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
sql = self.get_sql(data, etid)
|
sql = self.get_sql(data, etid)
|
||||||
@ -500,7 +505,7 @@ class EventTriggerView(PGChildNodeView):
|
|||||||
data = {}
|
data = {}
|
||||||
for k, v in request.args.items():
|
for k, v in request.args.items():
|
||||||
try:
|
try:
|
||||||
data[k] = json.loads(v)
|
data[k] = json.loads(v, encoding='utf-8')
|
||||||
except ValueError:
|
except ValueError:
|
||||||
data[k] = v
|
data[k] = v
|
||||||
try:
|
try:
|
||||||
@ -601,6 +606,8 @@ class EventTriggerView(PGChildNodeView):
|
|||||||
return internal_server_error(errormsg=db_name)
|
return internal_server_error(errormsg=db_name)
|
||||||
|
|
||||||
sql_header = "-- Event Trigger: {0} on database {1}\n\n-- ".format(result['name'], db_name)
|
sql_header = "-- Event Trigger: {0} on database {1}\n\n-- ".format(result['name'], db_name)
|
||||||
|
if hasattr(str, 'decode'):
|
||||||
|
sql_header = sql_header.decode('utf-8')
|
||||||
|
|
||||||
sql_header += render_template(
|
sql_header += render_template(
|
||||||
"/".join([self.template_path, 'delete.sql']),
|
"/".join([self.template_path, 'delete.sql']),
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
""" Implements Extension Node """
|
""" Implements Extension Node """
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
|
||||||
import pgadmin.browser.server_groups.servers.databases as databases
|
import pgadmin.browser.server_groups.servers.databases as databases
|
||||||
@ -216,8 +216,10 @@ class ExtensionView(PGChildNodeView):
|
|||||||
'name'
|
'name'
|
||||||
]
|
]
|
||||||
|
|
||||||
data = request.form if request.form else \
|
data = request.form if request.form else json.loads(
|
||||||
json.loads(request.data.decode())
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
|
|
||||||
for arg in required_args:
|
for arg in required_args:
|
||||||
if arg not in data:
|
if arg not in data:
|
||||||
return make_json_response(
|
return make_json_response(
|
||||||
@ -263,8 +265,9 @@ class ExtensionView(PGChildNodeView):
|
|||||||
"""
|
"""
|
||||||
This function will update an extension object
|
This function will update an extension object
|
||||||
"""
|
"""
|
||||||
data = request.form if request.form else \
|
data = request.form if request.form else json.loads(
|
||||||
json.loads(request.data.decode())
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
SQL = self.getSQL(gid, sid, data, did, eid)
|
SQL = self.getSQL(gid, sid, data, did, eid)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
"""Implements Foreign Data Wrapper Node"""
|
"""Implements Foreign Data Wrapper Node"""
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
|
||||||
import pgadmin.browser.server_groups.servers as servers
|
import pgadmin.browser.server_groups.servers as servers
|
||||||
@ -355,7 +355,9 @@ class ForeignDataWrapperView(PGChildNodeView):
|
|||||||
'name'
|
'name'
|
||||||
]
|
]
|
||||||
|
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
for arg in required_args:
|
for arg in required_args:
|
||||||
if arg not in data:
|
if arg not in data:
|
||||||
return make_json_response(
|
return make_json_response(
|
||||||
@ -422,7 +424,9 @@ class ForeignDataWrapperView(PGChildNodeView):
|
|||||||
did: Database ID
|
did: Database ID
|
||||||
fid: foreign data wrapper ID
|
fid: foreign data wrapper ID
|
||||||
"""
|
"""
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
sql = self.get_sql(gid, sid, data, did, fid)
|
sql = self.get_sql(gid, sid, data, did, fid)
|
||||||
try:
|
try:
|
||||||
if sql and sql.strip('\n') and sql.strip(' '):
|
if sql and sql.strip('\n') and sql.strip(' '):
|
||||||
@ -524,7 +528,7 @@ class ForeignDataWrapperView(PGChildNodeView):
|
|||||||
data = {}
|
data = {}
|
||||||
for k, v in request.args.items():
|
for k, v in request.args.items():
|
||||||
try:
|
try:
|
||||||
data[k] = json.loads(v)
|
data[k] = json.loads(v, encoding='utf-8')
|
||||||
except ValueError:
|
except ValueError:
|
||||||
data[k] = v
|
data[k] = v
|
||||||
|
|
||||||
@ -677,6 +681,9 @@ class ForeignDataWrapperView(PGChildNodeView):
|
|||||||
|
|
||||||
""".format(res['rows'][0]['name'])
|
""".format(res['rows'][0]['name'])
|
||||||
|
|
||||||
|
if hasattr(str, 'decode'):
|
||||||
|
sql_header = sql_header.decode('utf-8')
|
||||||
|
|
||||||
sql = sql_header + sql
|
sql = sql_header + sql
|
||||||
|
|
||||||
return ajax_response(response=sql)
|
return ajax_response(response=sql)
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
"""Implements Foreign Server Node"""
|
"""Implements Foreign Server Node"""
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
|
||||||
import pgadmin.browser.server_groups.servers.databases as databases
|
import pgadmin.browser.server_groups.servers.databases as databases
|
||||||
@ -356,7 +356,9 @@ class ForeignServerView(PGChildNodeView):
|
|||||||
'name'
|
'name'
|
||||||
]
|
]
|
||||||
|
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
for arg in required_args:
|
for arg in required_args:
|
||||||
if arg not in data:
|
if arg not in data:
|
||||||
return make_json_response(
|
return make_json_response(
|
||||||
@ -428,7 +430,9 @@ class ForeignServerView(PGChildNodeView):
|
|||||||
fsid: foreign server ID
|
fsid: foreign server ID
|
||||||
"""
|
"""
|
||||||
|
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
sql = self.get_sql(gid, sid, data, did, fid, fsid)
|
sql = self.get_sql(gid, sid, data, did, fid, fsid)
|
||||||
try:
|
try:
|
||||||
if sql and sql.strip('\n') and sql.strip(' '):
|
if sql and sql.strip('\n') and sql.strip(' '):
|
||||||
@ -538,7 +542,7 @@ class ForeignServerView(PGChildNodeView):
|
|||||||
data = {}
|
data = {}
|
||||||
for k, v in request.args.items():
|
for k, v in request.args.items():
|
||||||
try:
|
try:
|
||||||
data[k] = json.loads(v)
|
data[k] = json.loads(v, encoding='utf-8')
|
||||||
except ValueError:
|
except ValueError:
|
||||||
data[k] = v
|
data[k] = v
|
||||||
|
|
||||||
@ -715,6 +719,8 @@ class ForeignServerView(PGChildNodeView):
|
|||||||
-- DROP SERVER {0}
|
-- DROP SERVER {0}
|
||||||
|
|
||||||
""".format(res['rows'][0]['name'])
|
""".format(res['rows'][0]['name'])
|
||||||
|
if hasattr(str, 'decode'):
|
||||||
|
sql_header = sql_header.decode('utf-8')
|
||||||
|
|
||||||
sql = sql_header + sql
|
sql = sql_header + sql
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
"""Implements User Mapping Node"""
|
"""Implements User Mapping Node"""
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
|
||||||
import pgadmin.browser.server_groups.servers as servers
|
import pgadmin.browser.server_groups.servers as servers
|
||||||
@ -361,7 +361,9 @@ class UserMappingView(PGChildNodeView):
|
|||||||
'name'
|
'name'
|
||||||
]
|
]
|
||||||
|
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
for arg in required_args:
|
for arg in required_args:
|
||||||
if arg not in data:
|
if arg not in data:
|
||||||
return make_json_response(
|
return make_json_response(
|
||||||
@ -435,7 +437,9 @@ class UserMappingView(PGChildNodeView):
|
|||||||
umid: User mapping ID
|
umid: User mapping ID
|
||||||
"""
|
"""
|
||||||
|
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
sql = self.get_sql(gid, sid, data, did, fid, fsid, umid)
|
sql = self.get_sql(gid, sid, data, did, fid, fsid, umid)
|
||||||
try:
|
try:
|
||||||
if sql and sql.strip('\n') and sql.strip(' '):
|
if sql and sql.strip('\n') and sql.strip(' '):
|
||||||
@ -565,7 +569,7 @@ class UserMappingView(PGChildNodeView):
|
|||||||
data = {}
|
data = {}
|
||||||
for k, v in request.args.items():
|
for k, v in request.args.items():
|
||||||
try:
|
try:
|
||||||
data[k] = json.loads(v)
|
data[k] = json.loads(v, encoding='utf-8')
|
||||||
except ValueError:
|
except ValueError:
|
||||||
data[k] = v
|
data[k] = v
|
||||||
|
|
||||||
@ -725,6 +729,8 @@ class UserMappingView(PGChildNodeView):
|
|||||||
-- DROP USER MAPPING FOR {0} SERVER {1}
|
-- DROP USER MAPPING FOR {0} SERVER {1}
|
||||||
|
|
||||||
""".format(res['rows'][0]['name'], fdw_data['name'])
|
""".format(res['rows'][0]['name'], fdw_data['name'])
|
||||||
|
if hasattr(str, 'decode'):
|
||||||
|
sql_header = sql_header.decode('utf-8')
|
||||||
|
|
||||||
sql = sql_header + sql
|
sql = sql_header + sql
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
"""Implements Language Node"""
|
"""Implements Language Node"""
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
|
||||||
import pgadmin.browser.server_groups.servers.databases as databases
|
import pgadmin.browser.server_groups.servers.databases as databases
|
||||||
@ -354,7 +354,9 @@ class LanguageView(PGChildNodeView):
|
|||||||
did: Database ID
|
did: Database ID
|
||||||
lid: Language ID
|
lid: Language ID
|
||||||
"""
|
"""
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
sql = self.get_sql(data, lid)
|
sql = self.get_sql(data, lid)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@ -402,7 +404,7 @@ class LanguageView(PGChildNodeView):
|
|||||||
data = {}
|
data = {}
|
||||||
for k, v in request.args.items():
|
for k, v in request.args.items():
|
||||||
try:
|
try:
|
||||||
data[k] = json.loads(v)
|
data[k] = json.loads(v, encoding='utf-8')
|
||||||
except ValueError:
|
except ValueError:
|
||||||
data[k] = v
|
data[k] = v
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
#
|
#
|
||||||
##########################################################################
|
##########################################################################
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
import re
|
import re
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
|
||||||
@ -262,7 +262,7 @@ class SchemaView(PGChildNodeView):
|
|||||||
acls = render_template(
|
acls = render_template(
|
||||||
"/".join([self.template_path, 'allowed_privs.json'])
|
"/".join([self.template_path, 'allowed_privs.json'])
|
||||||
)
|
)
|
||||||
acls = json.loads(acls)
|
acls = json.loads(acls, encoding='utf-8')
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
current_app.logger.exception(e)
|
current_app.logger.exception(e)
|
||||||
|
|
||||||
@ -490,8 +490,9 @@ It may have been removed by another user.
|
|||||||
sid: Server ID
|
sid: Server ID
|
||||||
did: Database ID
|
did: Database ID
|
||||||
"""
|
"""
|
||||||
data = request.form if request.form else \
|
data = request.form if request.form else json.loads(
|
||||||
json.loads(request.data.decode())
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
|
|
||||||
required_args = {
|
required_args = {
|
||||||
'name': 'Name'
|
'name': 'Name'
|
||||||
@ -559,7 +560,7 @@ It may have been removed by another user.
|
|||||||
scid: Schema ID
|
scid: Schema ID
|
||||||
"""
|
"""
|
||||||
data = request.form if request.form else json.loads(
|
data = request.form if request.form else json.loads(
|
||||||
request.data.decode()
|
request.data, encoding='utf-8'
|
||||||
)
|
)
|
||||||
try:
|
try:
|
||||||
SQL = self.get_sql(gid, sid, data, scid)
|
SQL = self.get_sql(gid, sid, data, scid)
|
||||||
@ -669,7 +670,7 @@ It may have been removed by another user.
|
|||||||
data = dict()
|
data = dict()
|
||||||
for k, v in request.args.items():
|
for k, v in request.args.items():
|
||||||
try:
|
try:
|
||||||
data[k] = json.loads(v)
|
data[k] = json.loads(v, encoding='utf-8')
|
||||||
except ValueError:
|
except ValueError:
|
||||||
data[k] = v
|
data[k] = v
|
||||||
|
|
||||||
@ -769,14 +770,16 @@ It may have been removed by another user.
|
|||||||
_=gettext, data=data, conn=self.conn
|
_=gettext, data=data, conn=self.conn
|
||||||
)
|
)
|
||||||
|
|
||||||
sql_header = """
|
sql_header = "-- SCHEMA: {0}\n\n-- ".format(data['name'])
|
||||||
-- SCHEMA: {0}
|
if hasattr(str, 'decode'):
|
||||||
|
sql_header = sql_header.decode('utf-8')
|
||||||
|
|
||||||
-- DROP SCHEMA {0};
|
# drop schema
|
||||||
|
sql_header += render_template(
|
||||||
|
"/".join([self.template_path, 'sql/delete.sql']),
|
||||||
|
_=gettext, name=data['name'], conn=self.conn, cascade=False)
|
||||||
|
|
||||||
""".format(data['name'])
|
SQL = sql_header + '\n\n' + SQL
|
||||||
|
|
||||||
SQL = sql_header + SQL
|
|
||||||
|
|
||||||
return ajax_response(response=SQL.strip("\n"))
|
return ajax_response(response=SQL.strip("\n"))
|
||||||
|
|
||||||
@ -959,6 +962,8 @@ It may have been removed by another user.
|
|||||||
-- DROP SCHEMA {0};
|
-- DROP SCHEMA {0};
|
||||||
|
|
||||||
""".format(old_data['name'])
|
""".format(old_data['name'])
|
||||||
|
if hasattr(str, 'decode'):
|
||||||
|
sql_header = sql_header.decode('utf-8')
|
||||||
|
|
||||||
SQL = sql_header + SQL
|
SQL = sql_header + SQL
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
""" Implements Collation Node """
|
""" Implements Collation Node """
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
|
||||||
import pgadmin.browser.server_groups.servers.databases as database
|
import pgadmin.browser.server_groups.servers.databases as database
|
||||||
@ -378,7 +378,7 @@ class CollationView(PGChildNodeView):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
data = request.form if request.form else json.loads(
|
data = request.form if request.form else json.loads(
|
||||||
request.data.decode()
|
request.data, encoding='utf-8'
|
||||||
)
|
)
|
||||||
|
|
||||||
required_args = [
|
required_args = [
|
||||||
@ -502,7 +502,7 @@ class CollationView(PGChildNodeView):
|
|||||||
coid: Collation ID
|
coid: Collation ID
|
||||||
"""
|
"""
|
||||||
data = request.form if request.form else json.loads(
|
data = request.form if request.form else json.loads(
|
||||||
request.data.decode()
|
request.data, encoding='utf-8'
|
||||||
)
|
)
|
||||||
SQL = self.get_sql(gid, sid, data, scid, coid)
|
SQL = self.get_sql(gid, sid, data, scid, coid)
|
||||||
try:
|
try:
|
||||||
@ -549,7 +549,7 @@ class CollationView(PGChildNodeView):
|
|||||||
data = dict()
|
data = dict()
|
||||||
for k, v in request.args.items():
|
for k, v in request.args.items():
|
||||||
try:
|
try:
|
||||||
data[k] = json.loads(v)
|
data[k] = json.loads(v, encoding='utf-8')
|
||||||
except ValueError:
|
except ValueError:
|
||||||
data[k] = v
|
data[k] = v
|
||||||
|
|
||||||
@ -622,6 +622,8 @@ class CollationView(PGChildNodeView):
|
|||||||
data=data, conn=self.conn)
|
data=data, conn=self.conn)
|
||||||
|
|
||||||
sql_header = "-- Collation: {0};\n\n-- ".format(data['name'])
|
sql_header = "-- Collation: {0};\n\n-- ".format(data['name'])
|
||||||
|
if hasattr(str, 'decode'):
|
||||||
|
sql_header = sql_header.decode('utf-8')
|
||||||
sql_header += render_template("/".join([self.template_path,
|
sql_header += render_template("/".join([self.template_path,
|
||||||
'delete.sql']),
|
'delete.sql']),
|
||||||
name=data['name'])
|
name=data['name'])
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
"""Implements the Domain Node."""
|
"""Implements the Domain Node."""
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
|
||||||
import pgadmin.browser.server_groups.servers.databases as databases
|
import pgadmin.browser.server_groups.servers.databases as databases
|
||||||
@ -189,7 +189,7 @@ class DomainView(PGChildNodeView, DataTypeReader):
|
|||||||
|
|
||||||
data = {}
|
data = {}
|
||||||
if request.data:
|
if request.data:
|
||||||
req = json.loads(request.data.decode())
|
req = json.loads(request.data, encoding='utf-8')
|
||||||
else:
|
else:
|
||||||
req = request.args or request.form
|
req = request.args or request.form
|
||||||
|
|
||||||
@ -218,7 +218,7 @@ class DomainView(PGChildNodeView, DataTypeReader):
|
|||||||
if key in list_params and req[key] != '' \
|
if key in list_params and req[key] != '' \
|
||||||
and req[key] is not None:
|
and req[key] is not None:
|
||||||
# Coverts string into python list as expected.
|
# Coverts string into python list as expected.
|
||||||
data[key] = json.loads(req[key])
|
data[key] = json.loads(req[key], encoding='utf-8')
|
||||||
elif key == 'typnotnull':
|
elif key == 'typnotnull':
|
||||||
data[key] = True if req[key] == 'true' or req[key] is \
|
data[key] = True if req[key] == 'true' or req[key] is \
|
||||||
True else \
|
True else \
|
||||||
@ -706,6 +706,8 @@ AND relkind != 'c'))"""
|
|||||||
-- DROP DOMAIN {0};
|
-- DROP DOMAIN {0};
|
||||||
|
|
||||||
""".format(data['basensp'] + '.' + data['name'])
|
""".format(data['basensp'] + '.' + data['name'])
|
||||||
|
if hasattr(str, 'decode'):
|
||||||
|
sql_header = sql_header.decode('utf-8')
|
||||||
|
|
||||||
SQL = sql_header + SQL
|
SQL = sql_header + SQL
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
"""Implements the Domain Constraint Module."""
|
"""Implements the Domain Constraint Module."""
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
|
||||||
import pgadmin.browser.server_groups.servers.databases.schemas.domains \
|
import pgadmin.browser.server_groups.servers.databases.schemas.domains \
|
||||||
@ -193,7 +193,7 @@ class DomainConstraintView(PGChildNodeView):
|
|||||||
|
|
||||||
data = {}
|
data = {}
|
||||||
if request.data:
|
if request.data:
|
||||||
req = json.loads(request.data.decode())
|
req = json.loads(request.data, encoding='utf-8')
|
||||||
else:
|
else:
|
||||||
req = request.args or request.form
|
req = request.args or request.form
|
||||||
|
|
||||||
@ -571,6 +571,8 @@ class DomainConstraintView(PGChildNodeView):
|
|||||||
-- ALTER DOMAIN {1} DROP CONSTRAINT {0};
|
-- ALTER DOMAIN {1} DROP CONSTRAINT {0};
|
||||||
|
|
||||||
""".format(data['name'], schema + '.' + domain)
|
""".format(data['name'], schema + '.' + domain)
|
||||||
|
if hasattr(str, 'decode'):
|
||||||
|
sql_header = sql_header.decode('utf-8')
|
||||||
|
|
||||||
SQL = sql_header + SQL
|
SQL = sql_header + SQL
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
"""Implements the Foreign Table Module."""
|
"""Implements the Foreign Table Module."""
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
import sys
|
import sys
|
||||||
import traceback
|
import traceback
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
@ -232,7 +232,7 @@ class ForeignTableView(PGChildNodeView, DataTypeReader):
|
|||||||
data = {}
|
data = {}
|
||||||
|
|
||||||
if request.data:
|
if request.data:
|
||||||
req = json.loads(request.data.decode())
|
req = json.loads(request.data, encoding='utf-8')
|
||||||
else:
|
else:
|
||||||
req = request.args or request.form
|
req = request.args or request.form
|
||||||
|
|
||||||
@ -267,7 +267,7 @@ class ForeignTableView(PGChildNodeView, DataTypeReader):
|
|||||||
# Coverts string into python list as expected.
|
# Coverts string into python list as expected.
|
||||||
data[key] = [] if \
|
data[key] = [] if \
|
||||||
type(req[key]) == list and len(req[key]) == 0 else \
|
type(req[key]) == list and len(req[key]) == 0 else \
|
||||||
json.loads(req[key])
|
json.loads(req[key], encoding='utf-8')
|
||||||
|
|
||||||
if key == 'inherits':
|
if key == 'inherits':
|
||||||
# Convert Table ids from unicode/string to int
|
# Convert Table ids from unicode/string to int
|
||||||
@ -833,6 +833,8 @@ AND relkind != 'c'))"""
|
|||||||
-- DROP {0} {1};
|
-- DROP {0} {1};
|
||||||
|
|
||||||
""".format('FOREIGN TABLE', data['basensp'] + "." + data['name'])
|
""".format('FOREIGN TABLE', data['basensp'] + "." + data['name'])
|
||||||
|
if hasattr(str, 'decode'):
|
||||||
|
sql_header = sql_header.decode('utf-8')
|
||||||
|
|
||||||
SQL = sql_header + SQL
|
SQL = sql_header + SQL
|
||||||
|
|
||||||
@ -1205,7 +1207,7 @@ AND relkind != 'c'))"""
|
|||||||
else:
|
else:
|
||||||
columns = '*'
|
columns = '*'
|
||||||
|
|
||||||
sql = "SELECT {0}\n\tFROM {1};".format(
|
sql = u"SELECT {0}\n\tFROM {1};".format(
|
||||||
columns,
|
columns,
|
||||||
self.qtIdent(self.conn, data['basensp'], data['name'])
|
self.qtIdent(self.conn, data['basensp'], data['name'])
|
||||||
)
|
)
|
||||||
@ -1241,7 +1243,7 @@ AND relkind != 'c'))"""
|
|||||||
if len(columns) > 0:
|
if len(columns) > 0:
|
||||||
columns = ", ".join(columns)
|
columns = ", ".join(columns)
|
||||||
values = ", ".join(values)
|
values = ", ".join(values)
|
||||||
sql = "INSERT INTO {0}(\n\t{1})\n\tVALUES ({2});".format(
|
sql = u"INSERT INTO {0}(\n\t{1})\n\tVALUES ({2});".format(
|
||||||
self.qtIdent(self.conn, data['basensp'], data['name']),
|
self.qtIdent(self.conn, data['basensp'], data['name']),
|
||||||
columns, values
|
columns, values
|
||||||
)
|
)
|
||||||
@ -1282,7 +1284,7 @@ AND relkind != 'c'))"""
|
|||||||
columns = "=?, ".join(columns)
|
columns = "=?, ".join(columns)
|
||||||
columns += "=?"
|
columns += "=?"
|
||||||
|
|
||||||
sql = "UPDATE {0}\n\tSET {1}\n\tWHERE <condition>;".format(
|
sql = u"UPDATE {0}\n\tSET {1}\n\tWHERE <condition>;".format(
|
||||||
self.qtIdent(self.conn, data['basensp'], data['name']),
|
self.qtIdent(self.conn, data['basensp'], data['name']),
|
||||||
columns
|
columns
|
||||||
)
|
)
|
||||||
@ -1308,7 +1310,7 @@ AND relkind != 'c'))"""
|
|||||||
"""
|
"""
|
||||||
data = self._fetch_properties(gid, sid, did, scid, foid)
|
data = self._fetch_properties(gid, sid, did, scid, foid)
|
||||||
|
|
||||||
sql = "DELETE FROM {0}\n\tWHERE <condition>;".format(
|
sql = u"DELETE FROM {0}\n\tWHERE <condition>;".format(
|
||||||
self.qtIdent(self.conn, data['basensp'], data['name'])
|
self.qtIdent(self.conn, data['basensp'], data['name'])
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
"""Defines views for management of Fts Configuration node"""
|
"""Defines views for management of Fts Configuration node"""
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
|
||||||
import pgadmin.browser.server_groups.servers.databases as databases
|
import pgadmin.browser.server_groups.servers.databases as databases
|
||||||
@ -404,7 +404,8 @@ class FtsConfigurationView(PGChildNodeView):
|
|||||||
]
|
]
|
||||||
|
|
||||||
data = request.form if request.form else json.loads(
|
data = request.form if request.form else json.loads(
|
||||||
request.data.decode())
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
for arg in required_args:
|
for arg in required_args:
|
||||||
if arg not in data:
|
if arg not in data:
|
||||||
return make_json_response(
|
return make_json_response(
|
||||||
@ -484,7 +485,8 @@ class FtsConfigurationView(PGChildNodeView):
|
|||||||
:param cfgid: fts Configuration id
|
:param cfgid: fts Configuration id
|
||||||
"""
|
"""
|
||||||
data = request.form if request.form else json.loads(
|
data = request.form if request.form else json.loads(
|
||||||
request.data.decode())
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
|
|
||||||
# Fetch sql query to update fts Configuration
|
# Fetch sql query to update fts Configuration
|
||||||
sql = self.get_sql(gid, sid, did, scid, data, cfgid)
|
sql = self.get_sql(gid, sid, did, scid, data, cfgid)
|
||||||
@ -620,7 +622,7 @@ class FtsConfigurationView(PGChildNodeView):
|
|||||||
data = {}
|
data = {}
|
||||||
for k, v in request.args.items():
|
for k, v in request.args.items():
|
||||||
try:
|
try:
|
||||||
data[k] = json.loads(v)
|
data[k] = json.loads(v, encoding='utf-8')
|
||||||
except ValueError:
|
except ValueError:
|
||||||
data[k] = v
|
data[k] = v
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
"""Defines views for management of Fts Dictionary node"""
|
"""Defines views for management of Fts Dictionary node"""
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
|
||||||
import pgadmin.browser.server_groups.servers.databases as databases
|
import pgadmin.browser.server_groups.servers.databases as databases
|
||||||
@ -409,7 +409,8 @@ class FtsDictionaryView(PGChildNodeView):
|
|||||||
]
|
]
|
||||||
|
|
||||||
data = request.form if request.form else json.loads(
|
data = request.form if request.form else json.loads(
|
||||||
request.data.decode())
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
for arg in required_args:
|
for arg in required_args:
|
||||||
if arg not in data:
|
if arg not in data:
|
||||||
return make_json_response(
|
return make_json_response(
|
||||||
@ -475,7 +476,8 @@ class FtsDictionaryView(PGChildNodeView):
|
|||||||
:param dcid: fts dictionary id
|
:param dcid: fts dictionary id
|
||||||
"""
|
"""
|
||||||
data = request.form if request.form else json.loads(
|
data = request.form if request.form else json.loads(
|
||||||
request.data.decode())
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
|
|
||||||
# Fetch sql query to update fts dictionary
|
# Fetch sql query to update fts dictionary
|
||||||
sql = self.get_sql(gid, sid, did, scid, data, dcid)
|
sql = self.get_sql(gid, sid, did, scid, data, dcid)
|
||||||
@ -606,7 +608,7 @@ class FtsDictionaryView(PGChildNodeView):
|
|||||||
data = {}
|
data = {}
|
||||||
for k, v in request.args.items():
|
for k, v in request.args.items():
|
||||||
try:
|
try:
|
||||||
data[k] = json.loads(v)
|
data[k] = json.loads(v, encoding='utf-8')
|
||||||
except ValueError:
|
except ValueError:
|
||||||
data[k] = v
|
data[k] = v
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
"""Defines views for management of FTS Parser node"""
|
"""Defines views for management of FTS Parser node"""
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
|
||||||
from flask import render_template, request, jsonify, current_app
|
from flask import render_template, request, jsonify, current_app
|
||||||
@ -345,7 +345,8 @@ class FtsParserView(PGChildNodeView):
|
|||||||
]
|
]
|
||||||
|
|
||||||
data = request.form if request.form else json.loads(
|
data = request.form if request.form else json.loads(
|
||||||
request.data.decode())
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
for arg in required_args:
|
for arg in required_args:
|
||||||
if arg not in data:
|
if arg not in data:
|
||||||
return make_json_response(
|
return make_json_response(
|
||||||
@ -413,7 +414,8 @@ class FtsParserView(PGChildNodeView):
|
|||||||
:param pid: fts parser id
|
:param pid: fts parser id
|
||||||
"""
|
"""
|
||||||
data = request.form if request.form else json.loads(
|
data = request.form if request.form else json.loads(
|
||||||
request.data.decode())
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
|
|
||||||
# Fetch sql query to update fts parser
|
# Fetch sql query to update fts parser
|
||||||
sql = self.get_sql(gid, sid, did, scid, data, pid)
|
sql = self.get_sql(gid, sid, did, scid, data, pid)
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
"""Defines views for management of Fts Template node"""
|
"""Defines views for management of Fts Template node"""
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
|
||||||
from flask import render_template, make_response, request, jsonify
|
from flask import render_template, make_response, request, jsonify
|
||||||
@ -322,7 +322,8 @@ class FtsTemplateView(PGChildNodeView):
|
|||||||
]
|
]
|
||||||
|
|
||||||
data = request.form if request.form else json.loads(
|
data = request.form if request.form else json.loads(
|
||||||
request.data.decode())
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
for arg in required_args:
|
for arg in required_args:
|
||||||
if arg not in data:
|
if arg not in data:
|
||||||
return make_json_response(
|
return make_json_response(
|
||||||
@ -387,7 +388,8 @@ class FtsTemplateView(PGChildNodeView):
|
|||||||
:param tid: fts tempate id
|
:param tid: fts tempate id
|
||||||
"""
|
"""
|
||||||
data = request.form if request.form else json.loads(
|
data = request.form if request.form else json.loads(
|
||||||
request.data.decode())
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
|
|
||||||
# Fetch sql query to update fts template
|
# Fetch sql query to update fts template
|
||||||
sql = self.get_sql(gid, sid, did, scid, data, tid)
|
sql = self.get_sql(gid, sid, did, scid, data, tid)
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
"""Implements Functions/Procedures Node."""
|
"""Implements Functions/Procedures Node."""
|
||||||
|
|
||||||
import copy
|
import copy
|
||||||
import json
|
import simplejson as json
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
import traceback
|
import traceback
|
||||||
@ -252,7 +252,7 @@ class FunctionView(PGChildNodeView, DataTypeReader):
|
|||||||
|
|
||||||
data = {}
|
data = {}
|
||||||
if request.data:
|
if request.data:
|
||||||
req = json.loads(request.data.decode())
|
req = json.loads(request.data, encoding='utf-8')
|
||||||
else:
|
else:
|
||||||
req = request.args or request.form
|
req = request.args or request.form
|
||||||
|
|
||||||
@ -280,7 +280,7 @@ class FunctionView(PGChildNodeView, DataTypeReader):
|
|||||||
if key in list_params and req[key] != '' \
|
if key in list_params and req[key] != '' \
|
||||||
and req[key] is not None:
|
and req[key] is not None:
|
||||||
# Coverts string into python list as expected.
|
# Coverts string into python list as expected.
|
||||||
data[key] = json.loads(req[key])
|
data[key] = json.loads(req[key], encoding='utf-8')
|
||||||
elif (
|
elif (
|
||||||
key == 'proretset' or key == 'proisstrict' or
|
key == 'proretset' or key == 'proisstrict' or
|
||||||
key == 'prosecdef' or key == 'proiswindow' or
|
key == 'prosecdef' or key == 'proiswindow' or
|
||||||
@ -971,6 +971,8 @@ class FunctionView(PGChildNodeView, DataTypeReader):
|
|||||||
-- DROP {0} {1};
|
-- DROP {0} {1};
|
||||||
|
|
||||||
""".format(object_type.upper(), name)
|
""".format(object_type.upper(), name)
|
||||||
|
if hasattr(str, 'decode'):
|
||||||
|
sql_header = sql_header.decode('utf-8')
|
||||||
|
|
||||||
SQL = sql_header + func_def
|
SQL = sql_header + func_def
|
||||||
SQL = re.sub('\n{2,}', '\n\n', SQL)
|
SQL = re.sub('\n{2,}', '\n\n', SQL)
|
||||||
@ -1135,7 +1137,7 @@ class FunctionView(PGChildNodeView, DataTypeReader):
|
|||||||
if 'acl' in data:
|
if 'acl' in data:
|
||||||
data['acl'] = parse_priv_to_db(data['acl'], ["X"])
|
data['acl'] = parse_priv_to_db(data['acl'], ["X"])
|
||||||
|
|
||||||
args = ''
|
args = u''
|
||||||
cnt = 1
|
cnt = 1
|
||||||
if 'arguments' in data:
|
if 'arguments' in data:
|
||||||
for a in data['arguments']:
|
for a in data['arguments']:
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
"""Implements Sequence Node"""
|
"""Implements Sequence Node"""
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
|
||||||
import pgadmin.browser.server_groups.servers.databases as database
|
import pgadmin.browser.server_groups.servers.databases as database
|
||||||
@ -302,7 +302,9 @@ class SequenceView(PGChildNodeView):
|
|||||||
u'seqowner',
|
u'seqowner',
|
||||||
]
|
]
|
||||||
|
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
|
|
||||||
for arg in required_args:
|
for arg in required_args:
|
||||||
if arg not in data:
|
if arg not in data:
|
||||||
@ -429,7 +431,9 @@ class SequenceView(PGChildNodeView):
|
|||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
"""
|
"""
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
try:
|
try:
|
||||||
SQL = self.getSQL(gid, sid, did, data, scid, seid)
|
SQL = self.getSQL(gid, sid, did, data, scid, seid)
|
||||||
SQL = SQL.strip('\n').strip(' ')
|
SQL = SQL.strip('\n').strip(' ')
|
||||||
@ -481,7 +485,7 @@ class SequenceView(PGChildNodeView):
|
|||||||
data = {}
|
data = {}
|
||||||
for k, v in request.args.items():
|
for k, v in request.args.items():
|
||||||
try:
|
try:
|
||||||
data[k] = json.loads(v)
|
data[k] = json.loads(v, encoding='utf-8')
|
||||||
except ValueError:
|
except ValueError:
|
||||||
data[k] = v
|
data[k] = v
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
""" Implements Table Node """
|
""" Implements Table Node """
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
import re
|
import re
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
|
||||||
@ -1348,11 +1348,13 @@ class TableView(PGChildNodeView, DataTypeReader, VacuumSettings):
|
|||||||
did: Database ID
|
did: Database ID
|
||||||
scid: Schema ID
|
scid: Schema ID
|
||||||
"""
|
"""
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
|
|
||||||
for k, v in data.items():
|
for k, v in data.items():
|
||||||
try:
|
try:
|
||||||
data[k] = json.loads(v)
|
data[k] = json.loads(v, encoding='utf-8')
|
||||||
except (ValueError, TypeError):
|
except (ValueError, TypeError):
|
||||||
data[k] = v
|
data[k] = v
|
||||||
|
|
||||||
@ -1381,7 +1383,9 @@ class TableView(PGChildNodeView, DataTypeReader, VacuumSettings):
|
|||||||
# We will convert it again to list
|
# We will convert it again to list
|
||||||
if 'coll_inherits' in data and \
|
if 'coll_inherits' in data and \
|
||||||
isinstance(data['coll_inherits'], str):
|
isinstance(data['coll_inherits'], str):
|
||||||
data['coll_inherits'] = json.loads(data['coll_inherits'])
|
data['coll_inherits'] = json.loads(
|
||||||
|
data['coll_inherits'], encoding='utf-8'
|
||||||
|
)
|
||||||
|
|
||||||
if 'foreign_key' in data:
|
if 'foreign_key' in data:
|
||||||
for c in data['foreign_key']:
|
for c in data['foreign_key']:
|
||||||
@ -1434,12 +1438,12 @@ class TableView(PGChildNodeView, DataTypeReader, VacuumSettings):
|
|||||||
tid: Table ID
|
tid: Table ID
|
||||||
"""
|
"""
|
||||||
data = request.form if request.form else json.loads(
|
data = request.form if request.form else json.loads(
|
||||||
request.data.decode()
|
request.data, encoding='utf-8'
|
||||||
)
|
)
|
||||||
|
|
||||||
for k, v in data.items():
|
for k, v in data.items():
|
||||||
try:
|
try:
|
||||||
data[k] = json.loads(v)
|
data[k] = json.loads(v, encoding='utf-8')
|
||||||
except (ValueError, TypeError):
|
except (ValueError, TypeError):
|
||||||
data[k] = v
|
data[k] = v
|
||||||
|
|
||||||
@ -1547,7 +1551,9 @@ class TableView(PGChildNodeView, DataTypeReader, VacuumSettings):
|
|||||||
tid: Table ID
|
tid: Table ID
|
||||||
"""
|
"""
|
||||||
# Below will decide if it's simple drop or drop with cascade call
|
# Below will decide if it's simple drop or drop with cascade call
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
# Convert str 'true' to boolean type
|
# Convert str 'true' to boolean type
|
||||||
is_cascade = json.loads(data['cascade'])
|
is_cascade = json.loads(data['cascade'])
|
||||||
|
|
||||||
@ -1593,7 +1599,9 @@ class TableView(PGChildNodeView, DataTypeReader, VacuumSettings):
|
|||||||
tid: Table ID
|
tid: Table ID
|
||||||
"""
|
"""
|
||||||
# Below will decide if it's simple drop or drop with cascade call
|
# Below will decide if it's simple drop or drop with cascade call
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
# Convert str 'true' to boolean type
|
# Convert str 'true' to boolean type
|
||||||
is_enable = json.loads(data['enable'])
|
is_enable = json.loads(data['enable'])
|
||||||
|
|
||||||
@ -1675,7 +1683,7 @@ class TableView(PGChildNodeView, DataTypeReader, VacuumSettings):
|
|||||||
data = dict()
|
data = dict()
|
||||||
for k, v in request.args.items():
|
for k, v in request.args.items():
|
||||||
try:
|
try:
|
||||||
data[k] = json.loads(v)
|
data[k] = json.loads(v, encoding='utf-8')
|
||||||
except (ValueError, TypeError):
|
except (ValueError, TypeError):
|
||||||
data[k] = v
|
data[k] = v
|
||||||
|
|
||||||
@ -2397,9 +2405,10 @@ class TableView(PGChildNodeView, DataTypeReader, VacuumSettings):
|
|||||||
c['cltype'] = self._cltype_formatter(c['cltype'])
|
c['cltype'] = self._cltype_formatter(c['cltype'])
|
||||||
c['hasSqrBracket'] = self.hasSqrBracket
|
c['hasSqrBracket'] = self.hasSqrBracket
|
||||||
|
|
||||||
sql_header = "-- Table: {0}\n\n-- ".format(self.qtIdent(self.conn,
|
sql_header = u"-- Table: {0}\n\n-- ".format(self.qtIdent(self.conn,
|
||||||
data['schema'],
|
data['schema'],
|
||||||
data['name']))
|
data['name']))
|
||||||
|
|
||||||
sql_header += render_template("/".join([self.template_path,
|
sql_header += render_template("/".join([self.template_path,
|
||||||
'delete.sql']),
|
'delete.sql']),
|
||||||
data=data, conn=self.conn)
|
data=data, conn=self.conn)
|
||||||
@ -2490,6 +2499,9 @@ class TableView(PGChildNodeView, DataTypeReader, VacuumSettings):
|
|||||||
data['cols'] = ', '.join(cols)
|
data['cols'] = ', '.join(cols)
|
||||||
|
|
||||||
sql_header = "\n-- Index: {0}\n\n-- ".format(data['name'])
|
sql_header = "\n-- Index: {0}\n\n-- ".format(data['name'])
|
||||||
|
if hasattr(str, 'decode'):
|
||||||
|
sql_header = sql_header.decode('utf-8')
|
||||||
|
|
||||||
sql_header += render_template("/".join([self.index_template_path,
|
sql_header += render_template("/".join([self.index_template_path,
|
||||||
'delete.sql']),
|
'delete.sql']),
|
||||||
data=data, conn=self.conn)
|
data=data, conn=self.conn)
|
||||||
@ -2559,6 +2571,9 @@ class TableView(PGChildNodeView, DataTypeReader, VacuumSettings):
|
|||||||
data = trigger_definition(data)
|
data = trigger_definition(data)
|
||||||
|
|
||||||
sql_header = "\n-- Trigger: {0}\n\n-- ".format(data['name'])
|
sql_header = "\n-- Trigger: {0}\n\n-- ".format(data['name'])
|
||||||
|
if hasattr(str, 'decode'):
|
||||||
|
sql_header = sql_header.decode('utf-8')
|
||||||
|
|
||||||
sql_header += render_template("/".join([self.trigger_template_path,
|
sql_header += render_template("/".join([self.trigger_template_path,
|
||||||
'delete.sql']),
|
'delete.sql']),
|
||||||
data=data, conn=self.conn)
|
data=data, conn=self.conn)
|
||||||
@ -2656,7 +2671,7 @@ class TableView(PGChildNodeView, DataTypeReader, VacuumSettings):
|
|||||||
else:
|
else:
|
||||||
columns = '*'
|
columns = '*'
|
||||||
|
|
||||||
sql = "SELECT {0}\n\tFROM {1};".format(
|
sql = u"SELECT {0}\n\tFROM {1};".format(
|
||||||
columns,
|
columns,
|
||||||
self.qtIdent(self.conn, data['schema'], data['name'])
|
self.qtIdent(self.conn, data['schema'], data['name'])
|
||||||
)
|
)
|
||||||
@ -2700,7 +2715,7 @@ class TableView(PGChildNodeView, DataTypeReader, VacuumSettings):
|
|||||||
if len(columns) > 0:
|
if len(columns) > 0:
|
||||||
columns = ", ".join(columns)
|
columns = ", ".join(columns)
|
||||||
values = ", ".join(values)
|
values = ", ".join(values)
|
||||||
sql = "INSERT INTO {0}(\n\t{1})\n\tVALUES ({2});".format(
|
sql = u"INSERT INTO {0}(\n\t{1})\n\tVALUES ({2});".format(
|
||||||
self.qtIdent(self.conn, data['schema'], data['name']),
|
self.qtIdent(self.conn, data['schema'], data['name']),
|
||||||
columns, values
|
columns, values
|
||||||
)
|
)
|
||||||
@ -2749,7 +2764,7 @@ class TableView(PGChildNodeView, DataTypeReader, VacuumSettings):
|
|||||||
else:
|
else:
|
||||||
columns = "=?, ".join(columns)
|
columns = "=?, ".join(columns)
|
||||||
|
|
||||||
sql = "UPDATE {0}\n\tSET {1}\n\tWHERE <condition>;".format(
|
sql = u"UPDATE {0}\n\tSET {1}\n\tWHERE <condition>;".format(
|
||||||
self.qtIdent(self.conn, data['schema'], data['name']),
|
self.qtIdent(self.conn, data['schema'], data['name']),
|
||||||
columns
|
columns
|
||||||
)
|
)
|
||||||
@ -2783,7 +2798,7 @@ class TableView(PGChildNodeView, DataTypeReader, VacuumSettings):
|
|||||||
|
|
||||||
data = res['rows'][0]
|
data = res['rows'][0]
|
||||||
|
|
||||||
sql = "DELETE FROM {0}\n\tWHERE <condition>;".format(
|
sql = u"DELETE FROM {0}\n\tWHERE <condition>;".format(
|
||||||
self.qtIdent(self.conn, data['schema'], data['name'])
|
self.qtIdent(self.conn, data['schema'], data['name'])
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
""" Implements Column Node """
|
""" Implements Column Node """
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
|
||||||
import pgadmin.browser.server_groups.servers.databases as database
|
import pgadmin.browser.server_groups.servers.databases as database
|
||||||
@ -505,12 +505,12 @@ class ColumnsView(PGChildNodeView, DataTypeReader):
|
|||||||
tid: Table ID
|
tid: Table ID
|
||||||
"""
|
"""
|
||||||
data = request.form if request.form else json.loads(
|
data = request.form if request.form else json.loads(
|
||||||
request.data.decode()
|
request.data, encoding='utf-8'
|
||||||
)
|
)
|
||||||
|
|
||||||
for k, v in data.items():
|
for k, v in data.items():
|
||||||
try:
|
try:
|
||||||
data[k] = json.loads(v)
|
data[k] = json.loads(v, encoding='utf-8')
|
||||||
except (ValueError, TypeError):
|
except (ValueError, TypeError):
|
||||||
data[k] = v
|
data[k] = v
|
||||||
|
|
||||||
@ -642,7 +642,9 @@ class ColumnsView(PGChildNodeView, DataTypeReader):
|
|||||||
tid: Table ID
|
tid: Table ID
|
||||||
clid: Column ID
|
clid: Column ID
|
||||||
"""
|
"""
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
|
|
||||||
# Adding parent into data dict, will be using it while creating sql
|
# Adding parent into data dict, will be using it while creating sql
|
||||||
data['schema'] = self.schema
|
data['schema'] = self.schema
|
||||||
@ -699,7 +701,7 @@ class ColumnsView(PGChildNodeView, DataTypeReader):
|
|||||||
data = dict()
|
data = dict()
|
||||||
for k, v in request.args.items():
|
for k, v in request.args.items():
|
||||||
try:
|
try:
|
||||||
data[k] = json.loads(v)
|
data[k] = json.loads(v, encoding='utf-8')
|
||||||
except ValueError:
|
except ValueError:
|
||||||
data[k] = v
|
data[k] = v
|
||||||
|
|
||||||
@ -824,10 +826,11 @@ class ColumnsView(PGChildNodeView, DataTypeReader):
|
|||||||
|
|
||||||
SQL = self.get_sql(scid, tid, None, data)
|
SQL = self.get_sql(scid, tid, None, data)
|
||||||
|
|
||||||
sql_header = "-- Column: {0}\n\n-- ".format(self.qtIdent(self.conn,
|
sql_header = u"-- Column: {0}\n\n-- ".format(self.qtIdent(self.conn,
|
||||||
data['schema'],
|
data['schema'],
|
||||||
data['table'],
|
data['table'],
|
||||||
data['name']))
|
data['name']))
|
||||||
|
|
||||||
sql_header += render_template("/".join([self.template_path,
|
sql_header += render_template("/".join([self.template_path,
|
||||||
'delete.sql']),
|
'delete.sql']),
|
||||||
data=data, conn=self.conn)
|
data=data, conn=self.conn)
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
"""Implements the Check Constraint Module."""
|
"""Implements the Check Constraint Module."""
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
|
||||||
import pgadmin.browser.server_groups.servers.databases as database
|
import pgadmin.browser.server_groups.servers.databases as database
|
||||||
@ -396,11 +396,13 @@ class CheckConstraintView(PGChildNodeView):
|
|||||||
"""
|
"""
|
||||||
required_args = ['consrc']
|
required_args = ['consrc']
|
||||||
|
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
|
|
||||||
for k, v in data.items():
|
for k, v in data.items():
|
||||||
try:
|
try:
|
||||||
data[k] = json.loads(v)
|
data[k] = json.loads(v, encoding='utf-8')
|
||||||
except (ValueError, TypeError):
|
except (ValueError, TypeError):
|
||||||
data[k] = v
|
data[k] = v
|
||||||
|
|
||||||
@ -556,7 +558,9 @@ class CheckConstraintView(PGChildNodeView):
|
|||||||
tid: Table Id
|
tid: Table Id
|
||||||
cid: Check Constraint Id
|
cid: Check Constraint Id
|
||||||
"""
|
"""
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data['schema'] = self.schema
|
data['schema'] = self.schema
|
||||||
@ -643,6 +647,8 @@ class CheckConstraintView(PGChildNodeView):
|
|||||||
data=data)
|
data=data)
|
||||||
|
|
||||||
sql_header = "-- Constraint: {0}\n\n-- ".format(data['name'])
|
sql_header = "-- Constraint: {0}\n\n-- ".format(data['name'])
|
||||||
|
if hasattr(str, 'decode'):
|
||||||
|
sql_header = sql_header.decode('utf-8')
|
||||||
|
|
||||||
sql_header += render_template(
|
sql_header += render_template(
|
||||||
"/".join([self.template_path, 'delete.sql']),
|
"/".join([self.template_path, 'delete.sql']),
|
||||||
@ -672,7 +678,7 @@ class CheckConstraintView(PGChildNodeView):
|
|||||||
data = {}
|
data = {}
|
||||||
for k, v in request.args.items():
|
for k, v in request.args.items():
|
||||||
try:
|
try:
|
||||||
data[k] = json.loads(v)
|
data[k] = json.loads(v, encoding='utf-8')
|
||||||
except ValueError:
|
except ValueError:
|
||||||
data[k] = v
|
data[k] = v
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
"""Implements Exclusion constraint Node"""
|
"""Implements Exclusion constraint Node"""
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
|
||||||
import pgadmin.browser.server_groups.servers.databases as database
|
import pgadmin.browser.server_groups.servers.databases as database
|
||||||
@ -441,11 +441,13 @@ class ExclusionConstraintView(PGChildNodeView):
|
|||||||
"""
|
"""
|
||||||
required_args = ['columns']
|
required_args = ['columns']
|
||||||
|
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
|
|
||||||
for k, v in data.items():
|
for k, v in data.items():
|
||||||
try:
|
try:
|
||||||
data[k] = json.loads(v)
|
data[k] = json.loads(v, encoding='utf-8')
|
||||||
except (ValueError, TypeError):
|
except (ValueError, TypeError):
|
||||||
data[k] = v
|
data[k] = v
|
||||||
|
|
||||||
@ -546,7 +548,9 @@ class ExclusionConstraintView(PGChildNodeView):
|
|||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
"""
|
"""
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data['schema'] = self.schema
|
data['schema'] = self.schema
|
||||||
@ -677,7 +681,7 @@ class ExclusionConstraintView(PGChildNodeView):
|
|||||||
data = {}
|
data = {}
|
||||||
for k, v in request.args.items():
|
for k, v in request.args.items():
|
||||||
try:
|
try:
|
||||||
data[k] = json.loads(v)
|
data[k] = json.loads(v, encoding='utf-8')
|
||||||
except ValueError:
|
except ValueError:
|
||||||
data[k] = v
|
data[k] = v
|
||||||
|
|
||||||
@ -800,6 +804,8 @@ class ExclusionConstraintView(PGChildNodeView):
|
|||||||
"/".join([self.template_path, 'create.sql']), data=data)
|
"/".join([self.template_path, 'create.sql']), data=data)
|
||||||
|
|
||||||
sql_header = "-- Constraint: {0}\n\n-- ".format(data['name'])
|
sql_header = "-- Constraint: {0}\n\n-- ".format(data['name'])
|
||||||
|
if hasattr(str, 'decode'):
|
||||||
|
sql_header = sql_header.decode('utf-8')
|
||||||
|
|
||||||
sql_header += render_template(
|
sql_header += render_template(
|
||||||
"/".join([self.template_path, 'delete.sql']),
|
"/".join([self.template_path, 'delete.sql']),
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
"""Implements Foreign key constraint Node"""
|
"""Implements Foreign key constraint Node"""
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
|
||||||
import pgadmin.browser.server_groups.servers.databases as database
|
import pgadmin.browser.server_groups.servers.databases as database
|
||||||
@ -464,11 +464,13 @@ class ForeignKeyConstraintView(PGChildNodeView):
|
|||||||
"""
|
"""
|
||||||
required_args = ['columns']
|
required_args = ['columns']
|
||||||
|
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
|
|
||||||
for k, v in data.items():
|
for k, v in data.items():
|
||||||
try:
|
try:
|
||||||
data[k] = json.loads(v)
|
data[k] = json.loads(v, encoding='utf-8')
|
||||||
except (ValueError, TypeError):
|
except (ValueError, TypeError):
|
||||||
data[k] = v
|
data[k] = v
|
||||||
|
|
||||||
@ -598,7 +600,9 @@ class ForeignKeyConstraintView(PGChildNodeView):
|
|||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
"""
|
"""
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data['schema'] = self.schema
|
data['schema'] = self.schema
|
||||||
@ -737,7 +741,7 @@ class ForeignKeyConstraintView(PGChildNodeView):
|
|||||||
data = {}
|
data = {}
|
||||||
for k, v in request.args.items():
|
for k, v in request.args.items():
|
||||||
try:
|
try:
|
||||||
data[k] = json.loads(v)
|
data[k] = json.loads(v, encoding='utf-8')
|
||||||
except ValueError:
|
except ValueError:
|
||||||
data[k] = v
|
data[k] = v
|
||||||
|
|
||||||
@ -903,6 +907,8 @@ class ForeignKeyConstraintView(PGChildNodeView):
|
|||||||
"/".join([self.template_path, 'create.sql']), data=data)
|
"/".join([self.template_path, 'create.sql']), data=data)
|
||||||
|
|
||||||
sql_header = "-- Constraint: {0}\n\n-- ".format(data['name'])
|
sql_header = "-- Constraint: {0}\n\n-- ".format(data['name'])
|
||||||
|
if hasattr(str, 'decode'):
|
||||||
|
sql_header = sql_header.decode('utf-8')
|
||||||
|
|
||||||
sql_header += render_template(
|
sql_header += render_template(
|
||||||
"/".join([self.template_path, 'delete.sql']),
|
"/".join([self.template_path, 'delete.sql']),
|
||||||
@ -1055,7 +1061,7 @@ class ForeignKeyConstraintView(PGChildNodeView):
|
|||||||
index = None
|
index = None
|
||||||
try:
|
try:
|
||||||
if data and 'cols' in data:
|
if data and 'cols' in data:
|
||||||
cols = set(json.loads(data['cols']))
|
cols = set(json.loads(data['cols'], encoding='utf-8'))
|
||||||
index = self.search_coveringindex(tid, cols)
|
index = self.search_coveringindex(tid, cols)
|
||||||
|
|
||||||
return make_json_response(
|
return make_json_response(
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
"""Implements Primary key constraint Node"""
|
"""Implements Primary key constraint Node"""
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
|
||||||
import pgadmin.browser.server_groups.servers.databases as database
|
import pgadmin.browser.server_groups.servers.databases as database
|
||||||
@ -444,11 +444,13 @@ class IndexConstraintView(PGChildNodeView):
|
|||||||
[u'columns', u'index'] # Either of one should be there.
|
[u'columns', u'index'] # Either of one should be there.
|
||||||
]
|
]
|
||||||
|
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
|
|
||||||
for k, v in data.items():
|
for k, v in data.items():
|
||||||
try:
|
try:
|
||||||
data[k] = json.loads(v)
|
data[k] = json.loads(v, encoding='utf-8')
|
||||||
except (ValueError, TypeError):
|
except (ValueError, TypeError):
|
||||||
data[k] = v
|
data[k] = v
|
||||||
|
|
||||||
@ -563,7 +565,9 @@ class IndexConstraintView(PGChildNodeView):
|
|||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
"""
|
"""
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data['schema'] = self.schema
|
data['schema'] = self.schema
|
||||||
@ -699,7 +703,7 @@ class IndexConstraintView(PGChildNodeView):
|
|||||||
data = {}
|
data = {}
|
||||||
for k, v in request.args.items():
|
for k, v in request.args.items():
|
||||||
try:
|
try:
|
||||||
data[k] = json.loads(v)
|
data[k] = json.loads(v, encoding='utf-8')
|
||||||
except ValueError:
|
except ValueError:
|
||||||
data[k] = v
|
data[k] = v
|
||||||
|
|
||||||
@ -827,6 +831,8 @@ class IndexConstraintView(PGChildNodeView):
|
|||||||
constraint_name=self.constraint_name)
|
constraint_name=self.constraint_name)
|
||||||
|
|
||||||
sql_header = "-- Constraint: {0}\n\n-- ".format(data['name'])
|
sql_header = "-- Constraint: {0}\n\n-- ".format(data['name'])
|
||||||
|
if hasattr(str, 'decode'):
|
||||||
|
sql_header = sql_header.decode('utf-8')
|
||||||
|
|
||||||
sql_header += render_template(
|
sql_header += render_template(
|
||||||
"/".join([self.template_path, 'delete.sql']),
|
"/".join([self.template_path, 'delete.sql']),
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
""" Implements Index Node """
|
""" Implements Index Node """
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
|
||||||
import pgadmin.browser.server_groups.servers.databases as database
|
import pgadmin.browser.server_groups.servers.databases as database
|
||||||
@ -522,12 +522,12 @@ class IndexesView(PGChildNodeView):
|
|||||||
tid: Table ID
|
tid: Table ID
|
||||||
"""
|
"""
|
||||||
data = request.form if request.form else json.loads(
|
data = request.form if request.form else json.loads(
|
||||||
request.data.decode()
|
request.data, encoding='utf-8'
|
||||||
)
|
)
|
||||||
|
|
||||||
for k, v in data.items():
|
for k, v in data.items():
|
||||||
try:
|
try:
|
||||||
data[k] = json.loads(v)
|
data[k] = json.loads(v, encoding='utf-8')
|
||||||
except (ValueError, TypeError):
|
except (ValueError, TypeError):
|
||||||
data[k] = v
|
data[k] = v
|
||||||
|
|
||||||
@ -683,7 +683,9 @@ class IndexesView(PGChildNodeView):
|
|||||||
tid: Table ID
|
tid: Table ID
|
||||||
idx: Index ID
|
idx: Index ID
|
||||||
"""
|
"""
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
data['schema'] = self.schema
|
data['schema'] = self.schema
|
||||||
data['table'] = self.table
|
data['table'] = self.table
|
||||||
try:
|
try:
|
||||||
@ -732,7 +734,7 @@ class IndexesView(PGChildNodeView):
|
|||||||
data = dict()
|
data = dict()
|
||||||
for k, v in request.args.items():
|
for k, v in request.args.items():
|
||||||
try:
|
try:
|
||||||
data[k] = json.loads(v)
|
data[k] = json.loads(v, encoding='utf-8')
|
||||||
except ValueError:
|
except ValueError:
|
||||||
data[k] = v
|
data[k] = v
|
||||||
|
|
||||||
@ -835,6 +837,9 @@ class IndexesView(PGChildNodeView):
|
|||||||
SQL = self.get_sql(scid, tid, None, data)
|
SQL = self.get_sql(scid, tid, None, data)
|
||||||
|
|
||||||
sql_header = "-- Index: {0}\n\n-- ".format(data['name'])
|
sql_header = "-- Index: {0}\n\n-- ".format(data['name'])
|
||||||
|
if hasattr(str, 'decode'):
|
||||||
|
sql_header = sql_header.decode('utf-8')
|
||||||
|
|
||||||
sql_header += render_template("/".join([self.template_path,
|
sql_header += render_template("/".join([self.template_path,
|
||||||
'delete.sql']),
|
'delete.sql']),
|
||||||
data=data, conn=self.conn)
|
data=data, conn=self.conn)
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
"""Implements Rule Node"""
|
"""Implements Rule Node"""
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
|
||||||
import pgadmin.browser.server_groups.servers.databases.schemas as schemas
|
import pgadmin.browser.server_groups.servers.databases.schemas as schemas
|
||||||
@ -290,8 +290,9 @@ class RuleView(PGChildNodeView):
|
|||||||
'name',
|
'name',
|
||||||
]
|
]
|
||||||
|
|
||||||
data = request.form if request.form else \
|
data = request.form if request.form else json.loads(
|
||||||
json.loads(request.data.decode())
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
for arg in required_args:
|
for arg in required_args:
|
||||||
if arg not in data:
|
if arg not in data:
|
||||||
return make_json_response(
|
return make_json_response(
|
||||||
@ -331,8 +332,9 @@ class RuleView(PGChildNodeView):
|
|||||||
"""
|
"""
|
||||||
This function will update a rule object
|
This function will update a rule object
|
||||||
"""
|
"""
|
||||||
data = request.form if request.form else \
|
data = request.form if request.form else json.loads(
|
||||||
json.loads(request.data.decode())
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
SQL = self.getSQL(gid, sid, data, tid, rid)
|
SQL = self.getSQL(gid, sid, data, tid, rid)
|
||||||
try:
|
try:
|
||||||
if SQL and SQL.strip('\n') and SQL.strip(' '):
|
if SQL and SQL.strip('\n') and SQL.strip(' '):
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
""" Implements Trigger Node """
|
""" Implements Trigger Node """
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
|
||||||
import pgadmin.browser.server_groups.servers.databases as database
|
import pgadmin.browser.server_groups.servers.databases as database
|
||||||
@ -537,12 +537,12 @@ class TriggerView(PGChildNodeView):
|
|||||||
tid: Table ID
|
tid: Table ID
|
||||||
"""
|
"""
|
||||||
data = request.form if request.form else json.loads(
|
data = request.form if request.form else json.loads(
|
||||||
request.data.decode()
|
request.data, encoding='utf-8'
|
||||||
)
|
)
|
||||||
|
|
||||||
for k, v in data.items():
|
for k, v in data.items():
|
||||||
try:
|
try:
|
||||||
data[k] = json.loads(v)
|
data[k] = json.loads(v, encoding='utf-8')
|
||||||
except (ValueError, TypeError):
|
except (ValueError, TypeError):
|
||||||
data[k] = v
|
data[k] = v
|
||||||
|
|
||||||
@ -668,7 +668,9 @@ class TriggerView(PGChildNodeView):
|
|||||||
tid: Table ID
|
tid: Table ID
|
||||||
trid: Trigger ID
|
trid: Trigger ID
|
||||||
"""
|
"""
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
SQL = self.get_sql(scid, tid, trid, data)
|
SQL = self.get_sql(scid, tid, trid, data)
|
||||||
@ -716,7 +718,7 @@ class TriggerView(PGChildNodeView):
|
|||||||
data = dict()
|
data = dict()
|
||||||
for k, v in request.args.items():
|
for k, v in request.args.items():
|
||||||
try:
|
try:
|
||||||
data[k] = json.loads(v)
|
data[k] = json.loads(v, encoding='utf-8')
|
||||||
except ValueError:
|
except ValueError:
|
||||||
data[k] = v
|
data[k] = v
|
||||||
|
|
||||||
@ -826,6 +828,9 @@ class TriggerView(PGChildNodeView):
|
|||||||
SQL = self.get_sql(scid, tid, None, data)
|
SQL = self.get_sql(scid, tid, None, data)
|
||||||
|
|
||||||
sql_header = "-- Trigger: {0}\n\n-- ".format(data['name'])
|
sql_header = "-- Trigger: {0}\n\n-- ".format(data['name'])
|
||||||
|
if hasattr(str, 'decode'):
|
||||||
|
sql_header = sql_header.decode('utf-8')
|
||||||
|
|
||||||
sql_header += render_template("/".join([self.template_path,
|
sql_header += render_template("/".join([self.template_path,
|
||||||
'delete.sql']),
|
'delete.sql']),
|
||||||
data=data, conn=self.conn)
|
data=data, conn=self.conn)
|
||||||
@ -858,7 +863,9 @@ class TriggerView(PGChildNodeView):
|
|||||||
trid: Trigger ID
|
trid: Trigger ID
|
||||||
"""
|
"""
|
||||||
|
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
|
|
||||||
# Convert str 'true' to boolean type
|
# Convert str 'true' to boolean type
|
||||||
is_enable_flag = json.loads(data['enable'])
|
is_enable_flag = json.loads(data['enable'])
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
""" Implements Type Node """
|
""" Implements Type Node """
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
|
||||||
import pgadmin.browser.server_groups.servers.databases as database
|
import pgadmin.browser.server_groups.servers.databases as database
|
||||||
@ -793,7 +793,9 @@ class TypeView(PGChildNodeView, DataTypeReader):
|
|||||||
scid: Schema ID
|
scid: Schema ID
|
||||||
tid: Type ID
|
tid: Type ID
|
||||||
"""
|
"""
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
required_args = {
|
required_args = {
|
||||||
'name': 'Name',
|
'name': 'Name',
|
||||||
'typtype': 'Type'
|
'typtype': 'Type'
|
||||||
@ -898,7 +900,9 @@ class TypeView(PGChildNodeView, DataTypeReader):
|
|||||||
tid: Type ID
|
tid: Type ID
|
||||||
"""
|
"""
|
||||||
|
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
try:
|
try:
|
||||||
SQL = self.get_sql(gid, sid, data, scid, tid)
|
SQL = self.get_sql(gid, sid, data, scid, tid)
|
||||||
if SQL and SQL.strip('\n') and SQL.strip(' '):
|
if SQL and SQL.strip('\n') and SQL.strip(' '):
|
||||||
@ -1015,7 +1019,7 @@ class TypeView(PGChildNodeView, DataTypeReader):
|
|||||||
# converting nested request data in proper json format
|
# converting nested request data in proper json format
|
||||||
for key, val in req.items():
|
for key, val in req.items():
|
||||||
if key in ['composite', 'enum', 'seclabels', 'typacl']:
|
if key in ['composite', 'enum', 'seclabels', 'typacl']:
|
||||||
data[key] = json.loads(val)
|
data[key] = json.loads(val, encoding='utf-8')
|
||||||
else:
|
else:
|
||||||
data[key] = val
|
data[key] = val
|
||||||
|
|
||||||
@ -1191,6 +1195,9 @@ class TypeView(PGChildNodeView, DataTypeReader):
|
|||||||
|
|
||||||
# We are appending headers here for sql panel
|
# We are appending headers here for sql panel
|
||||||
sql_header = "-- Type: {0}\n\n-- ".format(data['name'])
|
sql_header = "-- Type: {0}\n\n-- ".format(data['name'])
|
||||||
|
if hasattr(str, 'decode'):
|
||||||
|
sql_header = sql_header.decode('utf-8')
|
||||||
|
|
||||||
sql_header += render_template("/".join([self.template_path,
|
sql_header += render_template("/".join([self.template_path,
|
||||||
'delete.sql']),
|
'delete.sql']),
|
||||||
data=data, conn=self.conn)
|
data=data, conn=self.conn)
|
||||||
|
@ -466,8 +466,9 @@ class ViewNode(PGChildNodeView, VacuumSettings):
|
|||||||
'definition'
|
'definition'
|
||||||
]
|
]
|
||||||
|
|
||||||
data = request.form if request.form else \
|
data = request.form if request.form else json.loads(
|
||||||
json.loads(request.data.decode())
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
for arg in required_args:
|
for arg in required_args:
|
||||||
if arg not in data:
|
if arg not in data:
|
||||||
return make_json_response(
|
return make_json_response(
|
||||||
@ -511,8 +512,9 @@ class ViewNode(PGChildNodeView, VacuumSettings):
|
|||||||
"""
|
"""
|
||||||
This function will update a view object
|
This function will update a view object
|
||||||
"""
|
"""
|
||||||
data = request.form if request.form else \
|
data = request.form if request.form else json.loads(
|
||||||
json.loads(request.data.decode())
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
SQL = self.getSQL(gid, sid, data, vid)
|
SQL = self.getSQL(gid, sid, data, vid)
|
||||||
try:
|
try:
|
||||||
if SQL and SQL.strip('\n') and SQL.strip(' '):
|
if SQL and SQL.strip('\n') and SQL.strip(' '):
|
||||||
@ -637,7 +639,7 @@ class ViewNode(PGChildNodeView, VacuumSettings):
|
|||||||
data = {}
|
data = {}
|
||||||
for k, v in request.args.items():
|
for k, v in request.args.items():
|
||||||
try:
|
try:
|
||||||
data[k] = json.loads(v)
|
data[k] = json.loads(v, encoding='utf-8')
|
||||||
except ValueError:
|
except ValueError:
|
||||||
data[k] = v
|
data[k] = v
|
||||||
|
|
||||||
@ -1139,7 +1141,7 @@ class ViewNode(PGChildNodeView, VacuumSettings):
|
|||||||
else:
|
else:
|
||||||
columns = '*'
|
columns = '*'
|
||||||
|
|
||||||
sql = "SELECT {0}\n\tFROM {1};".format(
|
sql = u"SELECT {0}\n\tFROM {1};".format(
|
||||||
columns,
|
columns,
|
||||||
self.qtIdent(self.conn, data_view['schema'], data_view['name'])
|
self.qtIdent(self.conn, data_view['schema'], data_view['name'])
|
||||||
)
|
)
|
||||||
@ -1196,7 +1198,7 @@ class ViewNode(PGChildNodeView, VacuumSettings):
|
|||||||
if len(columns) > 0:
|
if len(columns) > 0:
|
||||||
columns = ", ".join(columns)
|
columns = ", ".join(columns)
|
||||||
values = ", ".join(values)
|
values = ", ".join(values)
|
||||||
sql = "INSERT INTO {0}(\n\t{1})\n\tVALUES ({2});".format(
|
sql = u"INSERT INTO {0}(\n\t{1})\n\tVALUES ({2});".format(
|
||||||
self.qtIdent(
|
self.qtIdent(
|
||||||
self.conn, data_view['schema'], data_view['name']
|
self.conn, data_view['schema'], data_view['name']
|
||||||
),
|
),
|
||||||
@ -1607,8 +1609,9 @@ class MViewNode(ViewNode, VacuumSettings):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
# Below will decide if it's refresh data or refresh concurrently
|
# Below will decide if it's refresh data or refresh concurrently
|
||||||
data = request.form if request.form else \
|
data = request.form if request.form else json.loads(
|
||||||
json.loads(request.data.decode())
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
|
|
||||||
is_concurrent = json.loads(data['concurrent'])
|
is_concurrent = json.loads(data['concurrent'])
|
||||||
with_data = json.loads(data['with_data'])
|
with_data = json.loads(data['with_data'])
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
"""Implements Resource Groups for PPAS 9.4 and above"""
|
"""Implements Resource Groups for PPAS 9.4 and above"""
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
|
||||||
import pgadmin.browser.server_groups.servers as servers
|
import pgadmin.browser.server_groups.servers as servers
|
||||||
@ -312,7 +312,9 @@ class ResourceGroupView(NodeView):
|
|||||||
'name'
|
'name'
|
||||||
]
|
]
|
||||||
|
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
for arg in required_args:
|
for arg in required_args:
|
||||||
if arg not in data:
|
if arg not in data:
|
||||||
return make_json_response(
|
return make_json_response(
|
||||||
@ -370,7 +372,9 @@ class ResourceGroupView(NodeView):
|
|||||||
required_args = [
|
required_args = [
|
||||||
'name', 'cpu_rate_limit', 'dirty_rate_limit'
|
'name', 'cpu_rate_limit', 'dirty_rate_limit'
|
||||||
]
|
]
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
sql = render_template("/".join([self.template_path, 'properties.sql']), rgid=rg_id)
|
sql = render_template("/".join([self.template_path, 'properties.sql']), rgid=rg_id)
|
||||||
@ -474,7 +478,7 @@ class ResourceGroupView(NodeView):
|
|||||||
data = dict()
|
data = dict()
|
||||||
for k, v in request.args.items():
|
for k, v in request.args.items():
|
||||||
try:
|
try:
|
||||||
data[k] = json.loads(v)
|
data[k] = json.loads(v, encoding='utf-8')
|
||||||
except ValueError:
|
except ValueError:
|
||||||
data[k] = v
|
data[k] = v
|
||||||
|
|
||||||
|
@ -111,7 +111,7 @@ class RoleView(PGChildNodeView):
|
|||||||
|
|
||||||
data = None
|
data = None
|
||||||
if request.data:
|
if request.data:
|
||||||
data = json.loads(request.data)
|
data = json.loads(request.data, encoding='utf-8')
|
||||||
else:
|
else:
|
||||||
data = dict()
|
data = dict()
|
||||||
req = request.args or request.form
|
req = request.args or request.form
|
||||||
@ -125,7 +125,7 @@ class RoleView(PGChildNodeView):
|
|||||||
u'rolcatupdate', u'variables', u'rolmembership',
|
u'rolcatupdate', u'variables', u'rolmembership',
|
||||||
u'seclabels'
|
u'seclabels'
|
||||||
]:
|
]:
|
||||||
data[key] = json.loads(val)
|
data[key] = json.loads(val, encoding='utf-8')
|
||||||
else:
|
else:
|
||||||
data[key] = val
|
data[key] = val
|
||||||
|
|
||||||
@ -685,7 +685,7 @@ rolmembership:{
|
|||||||
def drop(self, gid, sid, rid):
|
def drop(self, gid, sid, rid):
|
||||||
|
|
||||||
status, res = self.conn.execute_2darray(
|
status, res = self.conn.execute_2darray(
|
||||||
"DROP ROLE {0};".format(self.qtIdent(self.conn, self.role))
|
u"DROP ROLE {0};".format(self.qtIdent(self.conn, self.role))
|
||||||
)
|
)
|
||||||
if not status:
|
if not status:
|
||||||
return internal_server_error(
|
return internal_server_error(
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
# This software is released under the PostgreSQL Licence
|
# This software is released under the PostgreSQL Licence
|
||||||
#
|
#
|
||||||
##########################################################################
|
##########################################################################
|
||||||
import json
|
import simplejson as json
|
||||||
import re
|
import re
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
|
||||||
@ -252,7 +252,9 @@ class TablespaceView(PGChildNodeView):
|
|||||||
'spclocation': 'Location'
|
'spclocation': 'Location'
|
||||||
}
|
}
|
||||||
|
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
|
|
||||||
for arg in required_args:
|
for arg in required_args:
|
||||||
if arg not in data:
|
if arg not in data:
|
||||||
@ -318,7 +320,9 @@ class TablespaceView(PGChildNodeView):
|
|||||||
"""
|
"""
|
||||||
This function will update tablespace object
|
This function will update tablespace object
|
||||||
"""
|
"""
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
SQL = self.get_sql(gid, sid, data, tsid)
|
SQL = self.get_sql(gid, sid, data, tsid)
|
||||||
@ -411,7 +415,7 @@ class TablespaceView(PGChildNodeView):
|
|||||||
data = dict()
|
data = dict()
|
||||||
for k, v in request.args.items():
|
for k, v in request.args.items():
|
||||||
try:
|
try:
|
||||||
data[k] = json.loads(v)
|
data[k] = json.loads(v, encoding='utf-8')
|
||||||
except ValueError as ve:
|
except ValueError as ve:
|
||||||
current_app.logger.exception(ve)
|
current_app.logger.exception(ve)
|
||||||
data[k] = v
|
data[k] = v
|
||||||
@ -527,6 +531,9 @@ class TablespaceView(PGChildNodeView):
|
|||||||
|
|
||||||
""".format(old_data['name'])
|
""".format(old_data['name'])
|
||||||
|
|
||||||
|
if hasattr(str, 'decode'):
|
||||||
|
sql_header = sql_header.decode('utf-8')
|
||||||
|
|
||||||
SQL = sql_header + SQL
|
SQL = sql_header + SQL
|
||||||
SQL = re.sub('\n{2,}', '\n\n', SQL)
|
SQL = re.sub('\n{2,}', '\n\n', SQL)
|
||||||
return ajax_response(response=SQL.strip('\n'))
|
return ajax_response(response=SQL.strip('\n'))
|
||||||
@ -729,7 +736,7 @@ class TablespaceView(PGChildNodeView):
|
|||||||
sid: Server ID
|
sid: Server ID
|
||||||
tsid: Tablespace ID
|
tsid: Tablespace ID
|
||||||
"""
|
"""
|
||||||
data = json.loads(request.form['data'])
|
data = json.loads(request.form['data'], encoding='utf-8')
|
||||||
|
|
||||||
try:
|
try:
|
||||||
SQL = render_template("/".join(
|
SQL = render_template("/".join(
|
||||||
@ -768,7 +775,7 @@ class TablespaceView(PGChildNodeView):
|
|||||||
data = dict()
|
data = dict()
|
||||||
for k, v in request.args.items():
|
for k, v in request.args.items():
|
||||||
try:
|
try:
|
||||||
data[k] = json.loads(v)
|
data[k] = json.loads(v, encoding='utf-8')
|
||||||
except ValueError as ve:
|
except ValueError as ve:
|
||||||
current_app.logger.exception(ve)
|
current_app.logger.exception(ve)
|
||||||
data[k] = v
|
data[k] = v
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
"""Implements Backup Utility"""
|
"""Implements Backup Utility"""
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from flask import render_template, request, current_app, \
|
from flask import render_template, request, current_app, \
|
||||||
@ -233,9 +233,9 @@ def create_backup_job(sid):
|
|||||||
if request.form:
|
if request.form:
|
||||||
# Convert ImmutableDict to dict
|
# Convert ImmutableDict to dict
|
||||||
data = dict(request.form)
|
data = dict(request.form)
|
||||||
data = json.loads(data['data'][0])
|
data = json.loads(data['data'][0], encoding='utf-8')
|
||||||
else:
|
else:
|
||||||
data = json.loads(request.data.decode())
|
data = json.loads(request.data, encoding='utf-8')
|
||||||
|
|
||||||
backup_file = filename_with_file_manager_path(data['file'])
|
backup_file = filename_with_file_manager_path(data['file'])
|
||||||
|
|
||||||
@ -327,9 +327,9 @@ def create_backup_objects_job(sid):
|
|||||||
if request.form:
|
if request.form:
|
||||||
# Convert ImmutableDict to dict
|
# Convert ImmutableDict to dict
|
||||||
data = dict(request.form)
|
data = dict(request.form)
|
||||||
data = json.loads(data['data'][0])
|
data = json.loads(data['data'][0], encoding='utf-8')
|
||||||
else:
|
else:
|
||||||
data = json.loads(request.data.decode())
|
data = json.loads(request.data, encoding='utf-8')
|
||||||
|
|
||||||
backup_file = filename_with_file_manager_path(data['file'])
|
backup_file = filename_with_file_manager_path(data['file'])
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
"""A blueprint module implementing the datagrid frame."""
|
"""A blueprint module implementing the datagrid frame."""
|
||||||
MODULE_NAME = 'datagrid'
|
MODULE_NAME = 'datagrid'
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
import pickle
|
import pickle
|
||||||
import random
|
import random
|
||||||
|
|
||||||
@ -93,7 +93,7 @@ def initialize_datagrid(cmd_type, obj_type, sid, did, obj_id):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
if request.data:
|
if request.data:
|
||||||
filter_sql = json.loads(request.data.decode())
|
filter_sql = json.loads(request.data, encoding='utf-8')
|
||||||
else:
|
else:
|
||||||
filter_sql = request.args or request.form
|
filter_sql = request.args or request.form
|
||||||
|
|
||||||
@ -289,7 +289,7 @@ def validate_filter(sid, did, obj_id):
|
|||||||
obj_id: Id of currently selected object
|
obj_id: Id of currently selected object
|
||||||
"""
|
"""
|
||||||
if request.data:
|
if request.data:
|
||||||
filter_sql = json.loads(request.data.decode())
|
filter_sql = json.loads(request.data, encoding='utf-8')
|
||||||
else:
|
else:
|
||||||
filter_sql = request.args or request.form
|
filter_sql = request.args or request.form
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
MODULE_NAME = 'debugger'
|
MODULE_NAME = 'debugger'
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
import random
|
import random
|
||||||
|
|
||||||
from flask import url_for, Response, render_template, request, session, current_app
|
from flask import url_for, Response, render_template, request, session, current_app
|
||||||
@ -373,7 +373,7 @@ def initialize_target(debug_type, sid, did, scid, func_id):
|
|||||||
# Here we get the value in case of direct debugging so update the session variables accordingly
|
# Here we get the value in case of direct debugging so update the session variables accordingly
|
||||||
# For indirect debugging user will provide the data from another session so below condition will be be required
|
# For indirect debugging user will provide the data from another session so below condition will be be required
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
data = json.loads(request.values['data'])
|
data = json.loads(request.values['data'], encoding='utf-8')
|
||||||
if data:
|
if data:
|
||||||
d = session['funcData']
|
d = session['funcData']
|
||||||
d['args_value'] = data
|
d['args_value'] = data
|
||||||
@ -582,7 +582,7 @@ def start_debugger_listener(trans_id):
|
|||||||
# If user again start the same debug function with different arguments then we need to save that values to session
|
# If user again start the same debug function with different arguments then we need to save that values to session
|
||||||
# variable and database.
|
# variable and database.
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
data = json.loads(request.values['data'])
|
data = json.loads(request.values['data'], encoding='utf-8')
|
||||||
if data:
|
if data:
|
||||||
function_data = session['functionData']
|
function_data = session['functionData']
|
||||||
session_obj = function_data[str(trans_id)]
|
session_obj = function_data[str(trans_id)]
|
||||||
@ -1080,7 +1080,7 @@ def deposit_parameter_value(trans_id):
|
|||||||
|
|
||||||
if conn.connected():
|
if conn.connected():
|
||||||
# get the data sent through post from client
|
# get the data sent through post from client
|
||||||
data = json.loads(request.values['data'])
|
data = json.loads(request.values['data'], encoding='utf-8')
|
||||||
|
|
||||||
if data:
|
if data:
|
||||||
sql = render_template("/".join([template_path, "deposit_value.sql"]), session_id=obj['session_id'],
|
sql = render_template("/".join([template_path, "deposit_value.sql"]), session_id=obj['session_id'],
|
||||||
@ -1223,7 +1223,7 @@ def set_arguments_sqlite(sid, did, scid, func_id):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
if request.values['data']:
|
if request.values['data']:
|
||||||
data = json.loads(request.values['data'])
|
data = json.loads(request.values['data'], encoding='utf-8')
|
||||||
|
|
||||||
try:
|
try:
|
||||||
for i in range(0, len(data)):
|
for i in range(0, len(data)):
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
"""A blueprint module implementing the import and export functionality"""
|
"""A blueprint module implementing the import and export functionality"""
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from flask import url_for, Response, render_template, request, current_app
|
from flask import url_for, Response, render_template, request, current_app
|
||||||
@ -166,9 +166,9 @@ def create_import_export_job(sid):
|
|||||||
if request.form:
|
if request.form:
|
||||||
# Convert ImmutableDict to dict
|
# Convert ImmutableDict to dict
|
||||||
data = dict(request.form)
|
data = dict(request.form)
|
||||||
data = json.loads(data['data'][0])
|
data = json.loads(data['data'][0], encoding='utf-8')
|
||||||
else:
|
else:
|
||||||
data = json.loads(request.data.decode())
|
data = json.loads(request.data, encoding='utf-8')
|
||||||
|
|
||||||
# Fetch the server details like hostname, port, roles etc
|
# Fetch the server details like hostname, port, roles etc
|
||||||
server = Server.query.filter_by(
|
server = Server.query.filter_by(
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
"""A blueprint module implementing the maintenance tool for vacuum"""
|
"""A blueprint module implementing the maintenance tool for vacuum"""
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
|
|
||||||
from flask import url_for, Response, render_template, request, current_app
|
from flask import url_for, Response, render_template, request, current_app
|
||||||
from flask_babel import gettext as _
|
from flask_babel import gettext as _
|
||||||
@ -171,9 +171,9 @@ def create_maintenance_job(sid, did):
|
|||||||
if request.form:
|
if request.form:
|
||||||
# Convert ImmutableDict to dict
|
# Convert ImmutableDict to dict
|
||||||
data = dict(request.form)
|
data = dict(request.form)
|
||||||
data = json.loads(data['data'][0])
|
data = json.loads(data['data'][0], encoding='utf-8')
|
||||||
else:
|
else:
|
||||||
data = json.loads(request.data.decode())
|
data = json.loads(request.data, encoding='utf-8')
|
||||||
|
|
||||||
index_name = None
|
index_name = None
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
"""Implements Restore Utility"""
|
"""Implements Restore Utility"""
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from flask import render_template, request, current_app, \
|
from flask import render_template, request, current_app, \
|
||||||
@ -175,9 +175,9 @@ def create_restore_job(sid):
|
|||||||
if request.form:
|
if request.form:
|
||||||
# Convert ImmutableDict to dict
|
# Convert ImmutableDict to dict
|
||||||
data = dict(request.form)
|
data = dict(request.form)
|
||||||
data = json.loads(data['data'][0])
|
data = json.loads(data['data'][0], encoding='utf-8')
|
||||||
else:
|
else:
|
||||||
data = json.loads(request.data.decode())
|
data = json.loads(request.data, encoding='utf-8')
|
||||||
|
|
||||||
backup_file = filename_with_file_manager_path(data['file'])
|
backup_file = filename_with_file_manager_path(data['file'])
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
"""A blueprint module implementing the sqleditor frame."""
|
"""A blueprint module implementing the sqleditor frame."""
|
||||||
MODULE_NAME = 'sqleditor'
|
MODULE_NAME = 'sqleditor'
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
import os
|
import os
|
||||||
import pickle
|
import pickle
|
||||||
import random
|
import random
|
||||||
@ -238,7 +238,7 @@ def start_query_tool(trans_id):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
if request.data:
|
if request.data:
|
||||||
sql = json.loads(request.data.decode())
|
sql = json.loads(request.data, encoding='utf-8')
|
||||||
else:
|
else:
|
||||||
sql = request.args or request.form
|
sql = request.args or request.form
|
||||||
|
|
||||||
@ -366,7 +366,7 @@ def preferences(trans_id):
|
|||||||
else:
|
else:
|
||||||
data = None
|
data = None
|
||||||
if request.data:
|
if request.data:
|
||||||
data = json.loads(request.data.decode())
|
data = json.loads(request.data, encoding='utf-8')
|
||||||
else:
|
else:
|
||||||
data = request.args or request.form
|
data = request.args or request.form
|
||||||
for k, v in data.items():
|
for k, v in data.items():
|
||||||
@ -516,7 +516,7 @@ def save(trans_id):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
if request.data:
|
if request.data:
|
||||||
changed_data = json.loads(request.data.decode())
|
changed_data = json.loads(request.data, encoding='utf-8')
|
||||||
else:
|
else:
|
||||||
changed_data = request.args or request.form
|
changed_data = request.args or request.form
|
||||||
|
|
||||||
@ -574,7 +574,7 @@ def apply_filter(trans_id):
|
|||||||
trans_id: unique transaction id
|
trans_id: unique transaction id
|
||||||
"""
|
"""
|
||||||
if request.data:
|
if request.data:
|
||||||
filter_sql = json.loads(request.data.decode())
|
filter_sql = json.loads(request.data, encoding='utf-8')
|
||||||
else:
|
else:
|
||||||
filter_sql = request.args or request.form
|
filter_sql = request.args or request.form
|
||||||
|
|
||||||
@ -606,7 +606,7 @@ def append_filter_inclusive(trans_id):
|
|||||||
trans_id: unique transaction id
|
trans_id: unique transaction id
|
||||||
"""
|
"""
|
||||||
if request.data:
|
if request.data:
|
||||||
filter_data = json.loads(request.data.decode())
|
filter_data = json.loads(request.data, encoding='utf-8')
|
||||||
else:
|
else:
|
||||||
filter_data = request.args or request.form
|
filter_data = request.args or request.form
|
||||||
|
|
||||||
@ -649,7 +649,7 @@ def append_filter_exclusive(trans_id):
|
|||||||
trans_id: unique transaction id
|
trans_id: unique transaction id
|
||||||
"""
|
"""
|
||||||
if request.data:
|
if request.data:
|
||||||
filter_data = json.loads(request.data.decode())
|
filter_data = json.loads(request.data, encoding='utf-8')
|
||||||
else:
|
else:
|
||||||
filter_data = request.args or request.form
|
filter_data = request.args or request.form
|
||||||
|
|
||||||
@ -724,7 +724,7 @@ def set_limit(trans_id):
|
|||||||
trans_id: unique transaction id
|
trans_id: unique transaction id
|
||||||
"""
|
"""
|
||||||
if request.data:
|
if request.data:
|
||||||
limit = json.loads(request.data.decode())
|
limit = json.loads(request.data, encoding='utf-8')
|
||||||
else:
|
else:
|
||||||
limit = request.args or request.form
|
limit = request.args or request.form
|
||||||
|
|
||||||
@ -847,7 +847,7 @@ def set_auto_commit(trans_id):
|
|||||||
trans_id: unique transaction id
|
trans_id: unique transaction id
|
||||||
"""
|
"""
|
||||||
if request.data:
|
if request.data:
|
||||||
auto_commit = json.loads(request.data.decode())
|
auto_commit = json.loads(request.data, encoding='utf-8')
|
||||||
else:
|
else:
|
||||||
auto_commit = request.args or request.form
|
auto_commit = request.args or request.form
|
||||||
|
|
||||||
@ -885,7 +885,7 @@ def set_auto_rollback(trans_id):
|
|||||||
trans_id: unique transaction id
|
trans_id: unique transaction id
|
||||||
"""
|
"""
|
||||||
if request.data:
|
if request.data:
|
||||||
auto_rollback = json.loads(request.data.decode())
|
auto_rollback = json.loads(request.data, encoding='utf-8')
|
||||||
else:
|
else:
|
||||||
auto_rollback = request.args or request.form
|
auto_rollback = request.args or request.form
|
||||||
|
|
||||||
@ -926,7 +926,7 @@ def auto_complete(trans_id):
|
|||||||
text_before_cursor = ''
|
text_before_cursor = ''
|
||||||
|
|
||||||
if request.data:
|
if request.data:
|
||||||
data = json.loads(request.data.decode())
|
data = json.loads(request.data, encoding='utf-8')
|
||||||
else:
|
else:
|
||||||
data = request.args or request.form
|
data = request.args or request.form
|
||||||
|
|
||||||
@ -1125,7 +1125,7 @@ def load_file():
|
|||||||
reads the data and sends back in reponse
|
reads the data and sends back in reponse
|
||||||
"""
|
"""
|
||||||
if request.data:
|
if request.data:
|
||||||
file_data = json.loads(request.data.decode())
|
file_data = json.loads(request.data, encoding='utf-8')
|
||||||
|
|
||||||
file_path = unquote(file_data['file_name'])
|
file_path = unquote(file_data['file_name'])
|
||||||
# retrieve storage directory path
|
# retrieve storage directory path
|
||||||
@ -1182,7 +1182,7 @@ def save_file():
|
|||||||
and then save the data to the file
|
and then save the data to the file
|
||||||
"""
|
"""
|
||||||
if request.data:
|
if request.data:
|
||||||
file_data = json.loads(request.data.decode())
|
file_data = json.loads(request.data, encoding='utf-8')
|
||||||
|
|
||||||
# retrieve storage directory path
|
# retrieve storage directory path
|
||||||
storage_manager_path = get_storage_directory()
|
storage_manager_path = get_storage_directory()
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
"""Implements pgAdmin4 User Management Utility"""
|
"""Implements pgAdmin4 User Management Utility"""
|
||||||
|
|
||||||
import json
|
import simplejson as json
|
||||||
import re
|
import re
|
||||||
|
|
||||||
from flask import render_template, request, \
|
from flask import render_template, request, \
|
||||||
@ -163,7 +163,9 @@ def create():
|
|||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
"""
|
"""
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
|
|
||||||
for f in ('email', 'role', 'active', 'newPassword', 'confirmPassword'):
|
for f in ('email', 'role', 'active', 'newPassword', 'confirmPassword'):
|
||||||
if f in data and data[f] != '':
|
if f in data and data[f] != '':
|
||||||
@ -265,7 +267,9 @@ def update(uid):
|
|||||||
if not usr:
|
if not usr:
|
||||||
abort(404)
|
abort(404)
|
||||||
|
|
||||||
data = request.form if request.form else json.loads(request.data.decode())
|
data = request.form if request.form else json.loads(
|
||||||
|
request.data, encoding='utf-8'
|
||||||
|
)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
new_data = validate_user(data)
|
new_data = validate_user(data)
|
||||||
|
@ -250,13 +250,23 @@ class Connection(BaseConnection):
|
|||||||
password = password.decode()
|
password = password.decode()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
if hasattr(str, 'decode'):
|
||||||
|
database = self.db.encode('utf-8')
|
||||||
|
user = mgr.user.encode('utf-8')
|
||||||
|
conn_id = self.conn_id.encode('utf-8')
|
||||||
|
else:
|
||||||
|
database = self.db
|
||||||
|
user = mgr.user
|
||||||
|
conn_id = self.conn_id
|
||||||
|
|
||||||
import os
|
import os
|
||||||
os.environ['PGAPPNAME'] = '{0} - {1}'.format(config.APP_NAME, self.conn_id)
|
os.environ['PGAPPNAME'] = '{0} - {1}'.format(config.APP_NAME, conn_id)
|
||||||
|
|
||||||
pg_conn = psycopg2.connect(
|
pg_conn = psycopg2.connect(
|
||||||
host=mgr.host,
|
host=mgr.host,
|
||||||
port=mgr.port,
|
port=mgr.port,
|
||||||
database=self.db,
|
database=database,
|
||||||
user=mgr.user,
|
user=user,
|
||||||
password=password,
|
password=password,
|
||||||
async=self.async
|
async=self.async
|
||||||
)
|
)
|
||||||
@ -277,7 +287,7 @@ class Connection(BaseConnection):
|
|||||||
Failed to connect to the database server(#{server_id}) for connection ({conn_id}) with error message as below:
|
Failed to connect to the database server(#{server_id}) for connection ({conn_id}) with error message as below:
|
||||||
{msg}""".format(
|
{msg}""".format(
|
||||||
server_id=self.manager.sid,
|
server_id=self.manager.sid,
|
||||||
conn_id=self.conn_id,
|
conn_id=conn_id,
|
||||||
msg=msg
|
msg=msg
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@ -310,7 +320,7 @@ SET client_encoding='UNICODE';""")
|
|||||||
return False, res
|
return False, res
|
||||||
|
|
||||||
if mgr.role:
|
if mgr.role:
|
||||||
status, res = self.execute_scalar("SET ROLE TO %s", [mgr.role])
|
status, res = self.execute_scalar(u"SET ROLE TO %s", [mgr.role])
|
||||||
|
|
||||||
if not status:
|
if not status:
|
||||||
self.conn.close()
|
self.conn.close()
|
||||||
@ -320,7 +330,7 @@ Connect to the database server (#{server_id}) for connection ({conn_id}), but -
|
|||||||
{msg}
|
{msg}
|
||||||
""".format(
|
""".format(
|
||||||
server_id=self.manager.sid,
|
server_id=self.manager.sid,
|
||||||
conn_id=self.conn_id,
|
conn_id=conn_id,
|
||||||
msg=res
|
msg=res
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@ -343,7 +353,7 @@ Failed to fetch the version information on the established connection to the dat
|
|||||||
{msg}
|
{msg}
|
||||||
""".format(
|
""".format(
|
||||||
server_id=self.manager.sid,
|
server_id=self.manager.sid,
|
||||||
conn_id=self.conn_id,
|
conn_id=conn_id,
|
||||||
msg=res
|
msg=res
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@ -395,7 +405,10 @@ WHERE
|
|||||||
return True, None
|
return True, None
|
||||||
|
|
||||||
def __cursor(self, server_cursor=False):
|
def __cursor(self, server_cursor=False):
|
||||||
cur = getattr(g, str(self.manager.sid) + '#' + self.conn_id, None)
|
cur = getattr(g, "{0}#{1}".format(
|
||||||
|
self.manager.sid,
|
||||||
|
self.conn_id.encode('utf-8')
|
||||||
|
), None)
|
||||||
|
|
||||||
if self.connected() and cur and not cur.closed:
|
if self.connected() and cur and not cur.closed:
|
||||||
if not server_cursor or (server_cursor and cur.name):
|
if not server_cursor or (server_cursor and cur.name):
|
||||||
@ -457,7 +470,7 @@ Attempting to reconnect to the database server (#{server_id}) for the connection
|
|||||||
status, cur = self.connect()
|
status, cur = self.connect()
|
||||||
if not status:
|
if not status:
|
||||||
msg = gettext(
|
msg = gettext(
|
||||||
"""
|
u"""
|
||||||
Connection for server#{0} with database "{1}" was lost.
|
Connection for server#{0} with database "{1}" was lost.
|
||||||
Attempt to reconnect it failed with the error:
|
Attempt to reconnect it failed with the error:
|
||||||
{2}"""
|
{2}"""
|
||||||
@ -468,7 +481,7 @@ Attempt to reconnect it failed with the error:
|
|||||||
else:
|
else:
|
||||||
return False, errmsg
|
return False, errmsg
|
||||||
|
|
||||||
setattr(g, str(self.manager.sid) + '#' + self.conn_id, cur)
|
setattr(g, "{0}#{1}".format(self.manager.sid, self.conn_id.encode('utf-8')), cur)
|
||||||
|
|
||||||
return True, cur
|
return True, cur
|
||||||
|
|
||||||
@ -498,7 +511,7 @@ Attempt to reconnect it failed with the error:
|
|||||||
query_id = random.randint(1, 9999999)
|
query_id = random.randint(1, 9999999)
|
||||||
|
|
||||||
current_app.logger.log(25,
|
current_app.logger.log(25,
|
||||||
"Execute (with server cursor) for server #{server_id} - {conn_id} (Query-id: {query_id}):\n{query}".format(
|
u"Execute (with server cursor) for server #{server_id} - {conn_id} (Query-id: {query_id}):\n{query}".format(
|
||||||
server_id=self.manager.sid,
|
server_id=self.manager.sid,
|
||||||
conn_id=self.conn_id,
|
conn_id=self.conn_id,
|
||||||
query=query,
|
query=query,
|
||||||
@ -511,7 +524,7 @@ Attempt to reconnect it failed with the error:
|
|||||||
cur.close()
|
cur.close()
|
||||||
errmsg = self._formatted_exception_msg(pe, formatted_exception_msg)
|
errmsg = self._formatted_exception_msg(pe, formatted_exception_msg)
|
||||||
current_app.logger.error(
|
current_app.logger.error(
|
||||||
"Failed to execute query ((with server cursor) for the server #{server_id} - {conn_id} (Query-id: {query_id}):\nError Message:{errmsg}".format(
|
u"Failed to execute query ((with server cursor) for the server #{server_id} - {conn_id} (Query-id: {query_id}):\nError Message:{errmsg}".format(
|
||||||
server_id=self.manager.sid,
|
server_id=self.manager.sid,
|
||||||
conn_id=self.conn_id,
|
conn_id=self.conn_id,
|
||||||
query=query,
|
query=query,
|
||||||
@ -568,7 +581,7 @@ Attempt to reconnect it failed with the error:
|
|||||||
|
|
||||||
current_app.logger.log(
|
current_app.logger.log(
|
||||||
25,
|
25,
|
||||||
"Execute (scalar) for server #{server_id} - {conn_id} (Query-id: {query_id}):\n{query}".format(
|
u"Execute (scalar) for server #{server_id} - {conn_id} (Query-id: {query_id}):\n{query}".format(
|
||||||
server_id=self.manager.sid,
|
server_id=self.manager.sid,
|
||||||
conn_id=self.conn_id,
|
conn_id=self.conn_id,
|
||||||
query=query,
|
query=query,
|
||||||
@ -582,7 +595,7 @@ Attempt to reconnect it failed with the error:
|
|||||||
cur.close()
|
cur.close()
|
||||||
errmsg = self._formatted_exception_msg(pe, formatted_exception_msg)
|
errmsg = self._formatted_exception_msg(pe, formatted_exception_msg)
|
||||||
current_app.logger.error(
|
current_app.logger.error(
|
||||||
"Failed to execute query (execute_scalar) for the server #{server_id} - {conn_id} (Query-id: {query_id}):\nError Message:{errmsg}".format(
|
u"Failed to execute query (execute_scalar) for the server #{server_id} - {conn_id} (Query-id: {query_id}):\nError Message:{errmsg}".format(
|
||||||
server_id=self.manager.sid,
|
server_id=self.manager.sid,
|
||||||
conn_id=self.conn_id,
|
conn_id=self.conn_id,
|
||||||
query=query,
|
query=query,
|
||||||
@ -618,7 +631,7 @@ Attempt to reconnect it failed with the error:
|
|||||||
|
|
||||||
current_app.logger.log(
|
current_app.logger.log(
|
||||||
25,
|
25,
|
||||||
"Execute (async) for server #{server_id} - {conn_id} (Query-id: {query_id}):\n{query}".format(
|
u"Execute (async) for server #{server_id} - {conn_id} (Query-id: {query_id}):\n{query}".format(
|
||||||
server_id=self.manager.sid,
|
server_id=self.manager.sid,
|
||||||
conn_id=self.conn_id,
|
conn_id=self.conn_id,
|
||||||
query=query,
|
query=query,
|
||||||
@ -632,7 +645,7 @@ Attempt to reconnect it failed with the error:
|
|||||||
res = self._wait_timeout(cur.connection, ASYNC_WAIT_TIMEOUT)
|
res = self._wait_timeout(cur.connection, ASYNC_WAIT_TIMEOUT)
|
||||||
except psycopg2.Error as pe:
|
except psycopg2.Error as pe:
|
||||||
errmsg = self._formatted_exception_msg(pe, formatted_exception_msg)
|
errmsg = self._formatted_exception_msg(pe, formatted_exception_msg)
|
||||||
current_app.logger.error("""
|
current_app.logger.error(u"""
|
||||||
Failed to execute query (execute_async) for the server #{server_id} - {conn_id}
|
Failed to execute query (execute_async) for the server #{server_id} - {conn_id}
|
||||||
(Query-id: {query_id}):\nError Message:{errmsg}
|
(Query-id: {query_id}):\nError Message:{errmsg}
|
||||||
""".format(
|
""".format(
|
||||||
@ -668,7 +681,7 @@ Failed to execute query (execute_async) for the server #{server_id} - {conn_id}
|
|||||||
|
|
||||||
current_app.logger.log(
|
current_app.logger.log(
|
||||||
25,
|
25,
|
||||||
"Execute (void) for server #{server_id} - {conn_id} (Query-id: {query_id}):\n{query}".format(
|
u"Execute (void) for server #{server_id} - {conn_id} (Query-id: {query_id}):\n{query}".format(
|
||||||
server_id=self.manager.sid,
|
server_id=self.manager.sid,
|
||||||
conn_id=self.conn_id,
|
conn_id=self.conn_id,
|
||||||
query=query,
|
query=query,
|
||||||
@ -681,7 +694,7 @@ Failed to execute query (execute_async) for the server #{server_id} - {conn_id}
|
|||||||
except psycopg2.Error as pe:
|
except psycopg2.Error as pe:
|
||||||
cur.close()
|
cur.close()
|
||||||
errmsg = self._formatted_exception_msg(pe, formatted_exception_msg)
|
errmsg = self._formatted_exception_msg(pe, formatted_exception_msg)
|
||||||
current_app.logger.error("""
|
current_app.logger.error(u"""
|
||||||
Failed to execute query (execute_void) for the server #{server_id} - {conn_id}
|
Failed to execute query (execute_void) for the server #{server_id} - {conn_id}
|
||||||
(Query-id: {query_id}):\nError Message:{errmsg}
|
(Query-id: {query_id}):\nError Message:{errmsg}
|
||||||
""".format(
|
""".format(
|
||||||
@ -708,7 +721,7 @@ Failed to execute query (execute_void) for the server #{server_id} - {conn_id}
|
|||||||
query_id = random.randint(1, 9999999)
|
query_id = random.randint(1, 9999999)
|
||||||
current_app.logger.log(
|
current_app.logger.log(
|
||||||
25,
|
25,
|
||||||
"Execute (2darray) for server #{server_id} - {conn_id} (Query-id: {query_id}):\n{query}".format(
|
u"Execute (2darray) for server #{server_id} - {conn_id} (Query-id: {query_id}):\n{query}".format(
|
||||||
server_id=self.manager.sid,
|
server_id=self.manager.sid,
|
||||||
conn_id=self.conn_id,
|
conn_id=self.conn_id,
|
||||||
query=query,
|
query=query,
|
||||||
@ -721,7 +734,7 @@ Failed to execute query (execute_void) for the server #{server_id} - {conn_id}
|
|||||||
cur.close()
|
cur.close()
|
||||||
errmsg = self._formatted_exception_msg(pe, formatted_exception_msg)
|
errmsg = self._formatted_exception_msg(pe, formatted_exception_msg)
|
||||||
current_app.logger.error(
|
current_app.logger.error(
|
||||||
"Failed to execute query (execute_2darray) for the server #{server_id} - {conn_id} (Query-id: {query_id}):\nError Message:{errmsg}".format(
|
u"Failed to execute query (execute_2darray) for the server #{server_id} - {conn_id} (Query-id: {query_id}):\nError Message:{errmsg}".format(
|
||||||
server_id=self.manager.sid,
|
server_id=self.manager.sid,
|
||||||
conn_id=self.conn_id,
|
conn_id=self.conn_id,
|
||||||
query=query,
|
query=query,
|
||||||
@ -753,7 +766,7 @@ Failed to execute query (execute_void) for the server #{server_id} - {conn_id}
|
|||||||
query_id = random.randint(1, 9999999)
|
query_id = random.randint(1, 9999999)
|
||||||
current_app.logger.log(
|
current_app.logger.log(
|
||||||
25,
|
25,
|
||||||
"Execute (dict) for server #{server_id} - {conn_id} (Query-id: {query_id}):\n{query}".format(
|
u"Execute (dict) for server #{server_id} - {conn_id} (Query-id: {query_id}):\n{query}".format(
|
||||||
server_id=self.manager.sid,
|
server_id=self.manager.sid,
|
||||||
conn_id=self.conn_id,
|
conn_id=self.conn_id,
|
||||||
query=query,
|
query=query,
|
||||||
@ -766,7 +779,7 @@ Failed to execute query (execute_void) for the server #{server_id} - {conn_id}
|
|||||||
cur.close()
|
cur.close()
|
||||||
errmsg = self._formatted_exception_msg(pe, formatted_exception_msg)
|
errmsg = self._formatted_exception_msg(pe, formatted_exception_msg)
|
||||||
current_app.logger.error(
|
current_app.logger.error(
|
||||||
"Failed to execute query (execute_dict) for the server #{server_id}- {conn_id} (Query-id: {query_id}):\nError Message:{errmsg}".format(
|
u"Failed to execute query (execute_dict) for the server #{server_id}- {conn_id} (Query-id: {query_id}):\nError Message:{errmsg}".format(
|
||||||
server_id=self.manager.sid,
|
server_id=self.manager.sid,
|
||||||
conn_id=self.conn_id,
|
conn_id=self.conn_id,
|
||||||
query_id=query_id,
|
query_id=query_id,
|
||||||
@ -1245,17 +1258,23 @@ class ServerManager(object):
|
|||||||
"Server has no active connection. Please connect to the server."
|
"Server has no active connection. Please connect to the server."
|
||||||
)
|
)
|
||||||
|
|
||||||
if database is None:
|
if database is not None:
|
||||||
|
if hasattr(str, 'decode') and \
|
||||||
|
not isinstance(database, unicode):
|
||||||
|
database = database.decode('utf-8')
|
||||||
|
else:
|
||||||
if did is None:
|
if did is None:
|
||||||
database = self.db
|
database = self.db
|
||||||
elif did in self.db_info:
|
elif did in self.db_info:
|
||||||
database = self.db_info[did]['datname']
|
database = self.db_info[did]['datname']
|
||||||
|
if hasattr(str, 'decode'):
|
||||||
|
database = database.decode('utf-8')
|
||||||
else:
|
else:
|
||||||
maintenance_db_id = 'DB:' + self.db
|
maintenance_db_id = u'DB:{0}'.format(self.db)
|
||||||
if maintenance_db_id in self.connections:
|
if maintenance_db_id in self.connections:
|
||||||
conn = self.connections[maintenance_db_id]
|
conn = self.connections[maintenance_db_id]
|
||||||
if conn.connected():
|
if conn.connected():
|
||||||
status, res = conn.execute_dict("""
|
status, res = conn.execute_dict(u"""
|
||||||
SELECT
|
SELECT
|
||||||
db.oid as did, db.datname, db.datallowconn,
|
db.oid as did, db.datname, db.datallowconn,
|
||||||
pg_encoding_to_char(db.encoding) AS serverencoding,
|
pg_encoding_to_char(db.encoding) AS serverencoding,
|
||||||
@ -1267,6 +1286,9 @@ WHERE db.oid = {0}""".format(did))
|
|||||||
if status and len(res['rows']) > 0:
|
if status and len(res['rows']) > 0:
|
||||||
for row in res['rows']:
|
for row in res['rows']:
|
||||||
self.db_info[did] = row
|
self.db_info[did] = row
|
||||||
|
if hasattr(str, 'decode'):
|
||||||
|
self.db_info[did]['datname'] = \
|
||||||
|
self.db_info[did]['datname'].decode('utf-8')
|
||||||
database = self.db_info[did]['datname']
|
database = self.db_info[did]['datname']
|
||||||
|
|
||||||
if did not in self.db_info:
|
if did not in self.db_info:
|
||||||
@ -1277,8 +1299,8 @@ WHERE db.oid = {0}""".format(did))
|
|||||||
if database is None:
|
if database is None:
|
||||||
raise Exception(msg_active_conn)
|
raise Exception(msg_active_conn)
|
||||||
|
|
||||||
my_id = ('CONN:' + str(conn_id)) if conn_id is not None else \
|
my_id = (u'CONN:{0}'.format(conn_id)) if conn_id is not None else \
|
||||||
('DB:' + str(database))
|
(u'DB:{0}'.format(database))
|
||||||
|
|
||||||
self.pinged = datetime.datetime.now()
|
self.pinged = datetime.datetime.now()
|
||||||
|
|
||||||
@ -1335,13 +1357,15 @@ WHERE db.oid = {0}""".format(did))
|
|||||||
if did is not None:
|
if did is not None:
|
||||||
if did in self.db_info and 'datname' in self.db_info[did]:
|
if did in self.db_info and 'datname' in self.db_info[did]:
|
||||||
database = self.db_info[did]['datname']
|
database = self.db_info[did]['datname']
|
||||||
|
if hasattr(str, 'decode'):
|
||||||
|
database = database.decode('utf-8')
|
||||||
if database is None:
|
if database is None:
|
||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
my_id = ('CONN:' + str(conn_id)) if conn_id is not None else \
|
my_id = (u'CONN:{0}'.format(conn_id)) if conn_id is not None else \
|
||||||
('DB:' + str(database)) if database is not None else None
|
(u'DB:{0}'.format(database)) if database is not None else None
|
||||||
|
|
||||||
if my_id is not None:
|
if my_id is not None:
|
||||||
if my_id in self.connections:
|
if my_id in self.connections:
|
||||||
@ -1564,14 +1588,22 @@ class Driver(BaseDriver):
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def qtLiteral(value):
|
def qtLiteral(value):
|
||||||
|
try:
|
||||||
res = adapt(value).getquoted()
|
res = adapt(value).getquoted()
|
||||||
|
except UnicodeEncodeError:
|
||||||
|
# We will handle special characters with utf8 encoding
|
||||||
|
adapted = adapt(value)
|
||||||
|
adapted.encoding = 'utf8'
|
||||||
|
res = adapted.getquoted()
|
||||||
|
|
||||||
# Returns in bytes, we need to convert it in string
|
# Returns in bytes, we need to convert it in string
|
||||||
if isinstance(res, bytes):
|
if isinstance(res, bytes):
|
||||||
return res.decode()
|
try:
|
||||||
else:
|
res = res.decode()
|
||||||
return res
|
except UnicodeDecodeError:
|
||||||
|
res = res.decode('utf-8')
|
||||||
|
|
||||||
|
return res
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def ScanKeywordExtraLookup(key):
|
def ScanKeywordExtraLookup(key):
|
||||||
@ -1607,17 +1639,12 @@ class Driver(BaseDriver):
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def needsQuoting(key, forTypes):
|
def needsQuoting(key, forTypes):
|
||||||
|
value = key
|
||||||
# Python 3 does not require the decoding of value
|
|
||||||
if hasattr(str, 'decode'):
|
|
||||||
value = key.decode()
|
|
||||||
else:
|
|
||||||
value = key
|
|
||||||
valNoArray = value
|
valNoArray = value
|
||||||
|
|
||||||
# check if the string is number or not
|
# check if the string is number or not
|
||||||
if (isinstance(value, int)):
|
if isinstance(value, int):
|
||||||
return True;
|
return True
|
||||||
# certain types should not be quoted even though it contains a space. Evilness.
|
# certain types should not be quoted even though it contains a space. Evilness.
|
||||||
elif forTypes and value[-2:] == u"[]":
|
elif forTypes and value[-2:] == u"[]":
|
||||||
valNoArray = value[:-2]
|
valNoArray = value[:-2]
|
||||||
@ -1691,8 +1718,14 @@ class Driver(BaseDriver):
|
|||||||
for val in args:
|
for val in args:
|
||||||
if type(val) == list:
|
if type(val) == list:
|
||||||
return map(lambda w: Driver.qtIdent(conn, w), val)
|
return map(lambda w: Driver.qtIdent(conn, w), val)
|
||||||
|
if hasattr(str, 'decode') and not isinstance(val, unicode):
|
||||||
|
# Handling for python2
|
||||||
|
try:
|
||||||
|
val = str(val).encode('utf-8')
|
||||||
|
except UnicodeDecodeError:
|
||||||
|
# If already unicode, most likely coming from db
|
||||||
|
val = str(val).decode('utf-8')
|
||||||
|
|
||||||
val = str(val)
|
|
||||||
if len(val) == 0:
|
if len(val) == 0:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user