Fixed issue while fetching the view id for view/materialized view. Added schema name in where clause.

This commit is contained in:
Akshay Joshi 2019-03-30 13:20:31 +05:30
parent a2aabf6270
commit 61ff588c09
13 changed files with 48 additions and 15 deletions

View File

@ -531,18 +531,27 @@ class ViewNode(PGChildNodeView, VacuumSettings):
if not status:
return internal_server_error(errormsg=res)
SQL = render_template("/".join(
[self.template_path, 'sql/view_id.sql']), data=data)
status, res_data = self.conn.execute_dict(SQL)
if not status:
return internal_server_error(errormsg=res)
view_id = res_data['rows'][0]['oid']
new_view_name = res_data['rows'][0]['relname']
# Get updated schema oid
SQL = render_template("/".join(
[self.template_path, 'sql/get_oid.sql']), vid=vid)
[self.template_path, 'sql/get_oid.sql']), vid=view_id)
status, scid = self.conn.execute_scalar(SQL)
if not status:
return internal_server_error(errormsg=res)
return jsonify(
node=self.blueprint.generate_browser_node(
vid,
view_id,
scid,
name,
new_view_name,
icon="icon-view" if self.node_type == 'view'
else "icon-mview"
)

View File

@ -1,4 +1,6 @@
{# ===== Below will provide view id for last created view ==== #}
{% if data %}
SELECT c.oid, c.relname FROM pg_class c WHERE c.relname = {{ data.name|qtLiteral }};
SELECT c.oid, c.relname FROM pg_class c
LEFT OUTER JOIN pg_namespace nsp on nsp.oid = c.relnamespace
WHERE c.relname = {{ data.name|qtLiteral }} and nsp.nspname = {{ data.schema|qtLiteral }};
{% endif %}

View File

@ -1,4 +1,6 @@
{# ===== Below will provide view id for last created view ==== #}
{% if data %}
SELECT c.oid, c.relname FROM pg_class c WHERE c.relname = {{ data.name|qtLiteral }};
SELECT c.oid, c.relname FROM pg_class c
LEFT OUTER JOIN pg_namespace nsp on nsp.oid = c.relnamespace
WHERE c.relname = {{ data.name|qtLiteral }} and nsp.nspname = {{ data.schema|qtLiteral }};
{% endif %}

View File

@ -1,4 +1,6 @@
{# ===== Below will provide view id for last created view ==== #}
{% if data %}
SELECT c.oid, c.relname FROM pg_class c WHERE c.relname = {{ data.name|qtLiteral }};
SELECT c.oid, c.relname FROM pg_class c
LEFT OUTER JOIN pg_namespace nsp on nsp.oid = c.relnamespace
WHERE c.relname = {{ data.name|qtLiteral }} and nsp.nspname = {{ data.schema|qtLiteral }};
{% endif %}

View File

@ -1,4 +1,6 @@
{# ===== Below will provide view id for last created view ===== #}
{% if data %}
SELECT c.oid, c.relname FROM pg_class c WHERE c.relname = '{{ data.name }}';
SELECT c.oid, c.relname FROM pg_class c
LEFT OUTER JOIN pg_namespace nsp on nsp.oid = c.relnamespace
WHERE c.relname = '{{ data.name }}' and nsp.nspname = '{{ data.schema }}';
{% endif %}

View File

@ -1,4 +1,6 @@
{# ===== Below will provide view id for last created view ===== #}
{% if data %}
SELECT c.oid, c.relname FROM pg_class c WHERE c.relname = '{{ data.name }}';
SELECT c.oid, c.relname FROM pg_class c
LEFT OUTER JOIN pg_namespace nsp on nsp.oid = c.relnamespace
WHERE c.relname = '{{ data.name }}' and nsp.nspname = '{{ data.schema }}';
{% endif %}

View File

@ -1,4 +1,6 @@
{# ===== Below will provide view id for last created view ===== #}
{% if data %}
SELECT c.oid, c.relname FROM pg_class c WHERE c.relname = '{{ data.name }}';
SELECT c.oid, c.relname FROM pg_class c
LEFT OUTER JOIN pg_namespace nsp on nsp.oid = c.relnamespace
WHERE c.relname = '{{ data.name }}' and nsp.nspname = '{{ data.schema }}';
{% endif %}

View File

@ -1,4 +1,6 @@
{# ===== Below will provide view id for last created view ===== #}
{% if data %}
SELECT c.oid, c.relname FROM pg_class c WHERE c.relname = '{{ data.name }}';
SELECT c.oid, c.relname FROM pg_class c
LEFT OUTER JOIN pg_namespace nsp on nsp.oid = c.relnamespace
WHERE c.relname = '{{ data.name }}' and nsp.nspname = '{{ data.schema }}';
{% endif %}

View File

@ -1,4 +1,6 @@
{# ===== Below will provide view id for last created view ===== #}
{% if data %}
SELECT c.oid, c.relname FROM pg_class c WHERE c.relname = '{{ data.name }}';
SELECT c.oid, c.relname FROM pg_class c
LEFT OUTER JOIN pg_namespace nsp on nsp.oid = c.relnamespace
WHERE c.relname = '{{ data.name }}' and nsp.nspname = '{{ data.schema }}';
{% endif %}

View File

@ -1,4 +1,6 @@
{# ===== Below will provide view id for last created view ===== #}
{% if data %}
SELECT c.oid, c.relname FROM pg_class c WHERE c.relname = '{{ data.name }}';
SELECT c.oid, c.relname FROM pg_class c
LEFT OUTER JOIN pg_namespace nsp on nsp.oid = c.relnamespace
WHERE c.relname = '{{ data.name }}' and nsp.nspname = '{{ data.schema }}';
{% endif %}

View File

@ -1,4 +1,6 @@
{# ===== Below will provide view id for last created view ===== #}
{% if data %}
SELECT c.oid, c.relname FROM pg_class c WHERE c.relname = '{{ data.name }}';
SELECT c.oid, c.relname FROM pg_class c
LEFT OUTER JOIN pg_namespace nsp on nsp.oid = c.relnamespace
WHERE c.relname = '{{ data.name }}' and nsp.nspname = '{{ data.schema }}';
{% endif %}

View File

@ -1,4 +1,6 @@
{# ===== Below will provide view id for last created view ===== #}
{% if data %}
SELECT c.oid, c.relname FROM pg_class c WHERE c.relname = '{{ data.name }}';
SELECT c.oid, c.relname FROM pg_class c
LEFT OUTER JOIN pg_namespace nsp on nsp.oid = c.relnamespace
WHERE c.relname = '{{ data.name }}' and nsp.nspname = '{{ data.schema }}';
{% endif %}

View File

@ -1,4 +1,6 @@
{# ===== Below will provide view id for last created view ===== #}
{% if data %}
SELECT c.oid, c.relname FROM pg_class c WHERE c.relname = '{{ data.name }}';
SELECT c.oid, c.relname FROM pg_class c
LEFT OUTER JOIN pg_namespace nsp on nsp.oid = c.relnamespace
WHERE c.relname = '{{ data.name }}' and nsp.nspname = '{{ data.schema }}';
{% endif %}