mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2025-02-25 18:55:31 -06:00
Ensure we can properly update rows with upper-case primary key columns. Fixes #3105
This commit is contained in:
committed by
Dave Page
parent
4dc9fb146a
commit
96165044ae
@@ -529,12 +529,17 @@ def start_query_tool(trans_id):
|
||||
trans_id: unique transaction id
|
||||
"""
|
||||
|
||||
sql = extract_sql_from_network_parameters(request.data, request.args, request.form)
|
||||
sql = extract_sql_from_network_parameters(
|
||||
request.data, request.args, request.form
|
||||
)
|
||||
|
||||
return StartRunningQuery(blueprint, current_app).execute(sql, trans_id, session)
|
||||
return StartRunningQuery(blueprint, current_app).execute(
|
||||
sql, trans_id, session
|
||||
)
|
||||
|
||||
|
||||
def extract_sql_from_network_parameters(request_data, request_arguments, request_form_data):
|
||||
def extract_sql_from_network_parameters(request_data, request_arguments,
|
||||
request_form_data):
|
||||
if request_data:
|
||||
sql_parameters = json.loads(request_data, encoding='utf-8')
|
||||
if type(sql_parameters) is str:
|
||||
@@ -741,15 +746,17 @@ def poll(trans_id):
|
||||
typname == 'character varying'
|
||||
):
|
||||
typname = typname + '(' + \
|
||||
str(col_info['internal_size']) + \
|
||||
')'
|
||||
str(
|
||||
col_info['internal_size']
|
||||
) + ')'
|
||||
elif (
|
||||
typname == 'character[]' or
|
||||
typname == 'character varying[]'
|
||||
):
|
||||
typname = typname[:-2] + '(' + \
|
||||
str(col_info['internal_size']) + \
|
||||
')[]'
|
||||
str(
|
||||
col_info['internal_size']
|
||||
) + ')[]'
|
||||
|
||||
col_info['type_name'] = typname
|
||||
|
||||
|
@@ -533,8 +533,7 @@ class TableCommand(GridCommand):
|
||||
for each_col in columns_info:
|
||||
if (
|
||||
columns_info[each_col]['not_null'] and
|
||||
not columns_info[each_col][
|
||||
'has_default_val']
|
||||
not columns_info[each_col]['has_default_val']
|
||||
):
|
||||
column_data[each_col] = None
|
||||
column_type[each_col] =\
|
||||
@@ -595,8 +594,7 @@ class TableCommand(GridCommand):
|
||||
"/".join([self.sql_path, 'select.sql']),
|
||||
object_name=self.object_name,
|
||||
nsp_name=self.nsp_name,
|
||||
pk_names=pk_names.split(",") if pk_names
|
||||
else None,
|
||||
primary_keys=primary_keys,
|
||||
has_oids=has_oids
|
||||
)
|
||||
|
||||
|
@@ -3,7 +3,7 @@ SELECT {% if has_oids %}oid, {% endif %}* FROM {{ conn|qtIdent(nsp_name, object_
|
||||
WHERE
|
||||
{% if has_oids %}
|
||||
oid = %(oid)s
|
||||
{% elif pk_names %}
|
||||
{% for pk in pk_names %}
|
||||
{% elif primary_keys|length > 0 %}
|
||||
{% for pk in primary_keys %}
|
||||
{% if not loop.first %} AND {% endif %}{{ conn|qtIdent(pk) }} = %({{ pk }})s{% endfor %}
|
||||
{% endif %};
|
||||
|
Reference in New Issue
Block a user