Added operators and aggregates in search objects. Fixes #6974

pull/63/head
Akshay Joshi 2021-11-12 17:45:08 +05:30
parent 600690a789
commit ca4d5d0ca4
10 changed files with 284 additions and 9 deletions

View File

@ -31,5 +31,6 @@ Bug fixes
| `Issue #6940 <https://redmine.postgresql.org/issues/6940>`_ - Fixed an issue where user details are not shown when the non-admin user tries to connect to the shared server.
| `Issue #6949 <https://redmine.postgresql.org/issues/6949>`_ - Ensure that dialog should be opened when clicking on Reassign/Drop owned menu.
| `Issue #6954 <https://redmine.postgresql.org/issues/6954>`_ - Ensure that changing themes should work on Windows when system high contrast mode is enabled.
| `Issue #6974 <https://redmine.postgresql.org/issues/6974>`_ - Added operators and aggregates in search objects.
| `Issue #6976 <https://redmine.postgresql.org/issues/6976>`_ - Fixed an issue where textarea should be allowed to resize and have more than 255 chars.
| `Issue #6988 <https://redmine.postgresql.org/issues/6988>`_ - Reset the layout if pgAdmin4 detects the layout is in an inconsistent state.

View File

@ -130,7 +130,7 @@ FROM (
from pg_catalog.pg_proc p
left join pg_catalog.pg_namespace n on p.pronamespace = n.oid
left join pg_catalog.pg_type t on p.prorettype = t.oid
WHERE ({{ CATALOGS.DB_SUPPORT('n') }})
WHERE ({{ CATALOGS.DB_SUPPORT('n') }}) AND NOT p.proisagg
{% endif %}
{% if all_obj %}
UNION
@ -500,6 +500,40 @@ FROM (
JOIN pg_catalog.pg_namespace n on t.relnamespace = n.oid
where {{ CATALOGS.DB_SUPPORT('n') }}
{% endif %}
{% if all_obj %}
UNION
{% endif %}
{% if all_obj or obj_type in ['aggregate'] %}
SELECT 'aggregate' AS obj_type, pr.proname AS obj_name,
':schema.'|| ns.oid || ':/' || ns.nspname || '/' || ':aggregate.' || ag.aggfnoid::oid ||':/' || pr.proname AS obj_path,
ns.nspname AS schema_name,
{{ show_node_prefs['aggregate'] }} AS show_node, pg_catalog.pg_get_function_arguments(aggfnoid::oid) AS other_info
FROM pg_aggregate ag
LEFT OUTER JOIN pg_catalog.pg_proc pr ON pr.oid = ag.aggfnoid
LEFT OUTER JOIN pg_catalog.pg_namespace ns ON ns.oid=pr.pronamespace
WHERE ({{ CATALOGS.DB_SUPPORT('ns') }})
{% endif %}
{% if all_obj %}
UNION
{% endif %}
{% if all_obj or obj_type in ['operator'] %}
SELECT 'operator' AS obj_type, op.oprname AS obj_name,
':schema.'|| ns.oid || ':/' || ns.nspname || '/' || ':operator.' || op.oid::oid ||':/' || op.oprname AS obj_path,
ns.nspname AS schema_name,
{{ show_node_prefs['operator'] }} AS show_node,
CASE WHEN lt.typname IS NOT NULL AND rt.typname IS NOT NULL THEN
pg_catalog.format_type(lt.oid, NULL) || ', ' || pg_catalog.format_type(rt.oid, NULL)
WHEN lt.typname IS NULL AND rt.typname IS NOT NULL THEN
pg_catalog.format_type(rt.oid, NULL)
WHEN lt.typname IS NOT NULL AND rt.typname IS NULL THEN
pg_catalog.format_type(lt.oid, NULL)
ELSE '' END AS other_info
FROM pg_catalog.pg_operator op
LEFT OUTER JOIN pg_catalog.pg_namespace ns ON ns.oid=op.oprnamespace
LEFT OUTER JOIN pg_catalog.pg_type lt ON lt.oid=op.oprleft
LEFT OUTER JOIN pg_catalog.pg_type rt ON rt.oid=op.oprright
WHERE ({{ CATALOGS.DB_SUPPORT('ns') }})
{% endif %}
) sn
where lower(sn.obj_name) like '%{{ search_text }}%'

View File

@ -147,7 +147,7 @@ FROM (
WHEN t.typname IN ('trigger', 'event_trigger') THEN lng.lanname NOT IN ('edbspl', 'sql', 'internal')
ELSE true
END
AND ({{ CATALOGS.DB_SUPPORT('n') }})
AND ({{ CATALOGS.DB_SUPPORT('n') }}) AND NOT p.proisagg
{% endif %}
{% if all_obj %}
UNION
@ -516,6 +516,40 @@ FROM (
JOIN pg_catalog.pg_namespace n on t.relnamespace = n.oid
where {{ CATALOGS.DB_SUPPORT('n') }}
{% endif %}
{% if all_obj %}
UNION
{% endif %}
{% if all_obj or obj_type in ['aggregate'] %}
SELECT 'aggregate' AS obj_type, pr.proname AS obj_name,
':schema.'|| ns.oid || ':/' || ns.nspname || '/' || ':aggregate.' || ag.aggfnoid::oid ||':/' || pr.proname AS obj_path,
ns.nspname AS schema_name,
{{ show_node_prefs['aggregate'] }} AS show_node, pg_catalog.pg_get_function_arguments(aggfnoid::oid) AS other_info
FROM pg_aggregate ag
LEFT OUTER JOIN pg_catalog.pg_proc pr ON pr.oid = ag.aggfnoid
LEFT OUTER JOIN pg_catalog.pg_namespace ns ON ns.oid=pr.pronamespace
WHERE ({{ CATALOGS.DB_SUPPORT('ns') }})
{% endif %}
{% if all_obj %}
UNION
{% endif %}
{% if all_obj or obj_type in ['operator'] %}
SELECT 'operator' AS obj_type, op.oprname AS obj_name,
':schema.'|| ns.oid || ':/' || ns.nspname || '/' || ':operator.' || op.oid::oid ||':/' || op.oprname AS obj_path,
ns.nspname AS schema_name,
{{ show_node_prefs['operator'] }} AS show_node,
CASE WHEN lt.typname IS NOT NULL AND rt.typname IS NOT NULL THEN
pg_catalog.format_type(lt.oid, NULL) || ', ' || pg_catalog.format_type(rt.oid, NULL)
WHEN lt.typname IS NULL AND rt.typname IS NOT NULL THEN
pg_catalog.format_type(rt.oid, NULL)
WHEN lt.typname IS NOT NULL AND rt.typname IS NULL THEN
pg_catalog.format_type(lt.oid, NULL)
ELSE '' END AS other_info
FROM pg_catalog.pg_operator op
LEFT OUTER JOIN pg_catalog.pg_namespace ns ON ns.oid=op.oprnamespace
LEFT OUTER JOIN pg_catalog.pg_type lt ON lt.oid=op.oprleft
LEFT OUTER JOIN pg_catalog.pg_type rt ON rt.oid=op.oprright
WHERE ({{ CATALOGS.DB_SUPPORT('ns') }})
{% endif %}
) sn
where lower(sn.obj_name) like '%{{ search_text }}%'

View File

@ -83,7 +83,7 @@ FROM (
from pg_catalog.pg_proc p
left join pg_catalog.pg_namespace n on p.pronamespace = n.oid
left join pg_catalog.pg_type t on p.prorettype = t.oid
WHERE ({{ CATALOGS.DB_SUPPORT('n') }})
WHERE ({{ CATALOGS.DB_SUPPORT('n') }}) AND NOT p.proisagg
{% endif %}
{% if all_obj %}
UNION
@ -370,6 +370,41 @@ FROM (
JOIN pg_catalog.pg_namespace n on t.relnamespace = n.oid
where {{ CATALOGS.DB_SUPPORT('n') }}
{% endif %}
{% if all_obj %}
UNION
{% endif %}
{% if all_obj or obj_type in ['aggregate'] %}
SELECT 'aggregate' AS obj_type, pr.proname AS obj_name,
':schema.'|| ns.oid || ':/' || ns.nspname || '/' || ':aggregate.' || ag.aggfnoid::oid ||':/' || pr.proname AS obj_path,
ns.nspname AS schema_name,
{{ show_node_prefs['aggregate'] }} AS show_node, pg_catalog.pg_get_function_arguments(aggfnoid::oid) AS other_info
FROM pg_aggregate ag
LEFT OUTER JOIN pg_catalog.pg_proc pr ON pr.oid = ag.aggfnoid
LEFT OUTER JOIN pg_catalog.pg_namespace ns ON ns.oid=pr.pronamespace
WHERE ({{ CATALOGS.DB_SUPPORT('ns') }})
{% endif %}
{% if all_obj %}
UNION
{% endif %}
{% if all_obj or obj_type in ['operator'] %}
SELECT 'operator' AS obj_type, op.oprname AS obj_name,
':schema.'|| ns.oid || ':/' || ns.nspname || '/' || ':operator.' || op.oid::oid ||':/' || op.oprname AS obj_path,
ns.nspname AS schema_name,
{{ show_node_prefs['operator'] }} AS show_node,
CASE WHEN lt.typname IS NOT NULL AND rt.typname IS NOT NULL THEN
pg_catalog.format_type(lt.oid, NULL) || ', ' || pg_catalog.format_type(rt.oid, NULL)
WHEN lt.typname IS NULL AND rt.typname IS NOT NULL THEN
pg_catalog.format_type(rt.oid, NULL)
WHEN lt.typname IS NOT NULL AND rt.typname IS NULL THEN
pg_catalog.format_type(lt.oid, NULL)
ELSE '' END AS other_info
FROM pg_catalog.pg_operator op
LEFT OUTER JOIN pg_catalog.pg_namespace ns ON ns.oid=op.oprnamespace
LEFT OUTER JOIN pg_catalog.pg_type lt ON lt.oid=op.oprleft
LEFT OUTER JOIN pg_catalog.pg_type rt ON rt.oid=op.oprright
WHERE ({{ CATALOGS.DB_SUPPORT('ns') }})
{% endif %}
) sn
where lower(sn.obj_name) like '%{{ search_text }}%'
{% if not show_system_objects %}

View File

@ -83,7 +83,7 @@ FROM (
from pg_catalog.pg_proc p
left join pg_catalog.pg_namespace n on p.pronamespace = n.oid
left join pg_catalog.pg_type t on p.prorettype = t.oid
WHERE ({{ CATALOGS.DB_SUPPORT('n') }})
WHERE ({{ CATALOGS.DB_SUPPORT('n') }}) AND NOT p.proisagg
{% endif %}
{% if all_obj %}
UNION
@ -357,6 +357,40 @@ FROM (
JOIN pg_catalog.pg_namespace n ON n.oid=c.collnamespace
WHERE {{ CATALOGS.DB_SUPPORT('n') }}
{% endif %}
{% if all_obj %}
UNION
{% endif %}
{% if all_obj or obj_type in ['aggregate'] %}
SELECT 'aggregate' AS obj_type, pr.proname AS obj_name,
':schema.'|| ns.oid || ':/' || ns.nspname || '/' || ':aggregate.' || ag.aggfnoid::oid ||':/' || pr.proname AS obj_path,
ns.nspname AS schema_name,
{{ show_node_prefs['aggregate'] }} AS show_node, pg_catalog.pg_get_function_arguments(aggfnoid::oid) AS other_info
FROM pg_aggregate ag
LEFT OUTER JOIN pg_catalog.pg_proc pr ON pr.oid = ag.aggfnoid
LEFT OUTER JOIN pg_catalog.pg_namespace ns ON ns.oid=pr.pronamespace
WHERE ({{ CATALOGS.DB_SUPPORT('ns') }})
{% endif %}
{% if all_obj %}
UNION
{% endif %}
{% if all_obj or obj_type in ['operator'] %}
SELECT 'operator' AS obj_type, op.oprname AS obj_name,
':schema.'|| ns.oid || ':/' || ns.nspname || '/' || ':operator.' || op.oid::oid ||':/' || op.oprname AS obj_path,
ns.nspname AS schema_name,
{{ show_node_prefs['operator'] }} AS show_node,
CASE WHEN lt.typname IS NOT NULL AND rt.typname IS NOT NULL THEN
pg_catalog.format_type(lt.oid, NULL) || ', ' || pg_catalog.format_type(rt.oid, NULL)
WHEN lt.typname IS NULL AND rt.typname IS NOT NULL THEN
pg_catalog.format_type(rt.oid, NULL)
WHEN lt.typname IS NOT NULL AND rt.typname IS NULL THEN
pg_catalog.format_type(lt.oid, NULL)
ELSE '' END AS other_info
FROM pg_catalog.pg_operator op
LEFT OUTER JOIN pg_catalog.pg_namespace ns ON ns.oid=op.oprnamespace
LEFT OUTER JOIN pg_catalog.pg_type lt ON lt.oid=op.oprleft
LEFT OUTER JOIN pg_catalog.pg_type rt ON rt.oid=op.oprright
WHERE ({{ CATALOGS.DB_SUPPORT('ns') }})
{% endif %}
) sn
where lower(sn.obj_name) like '%{{ search_text }}%'

View File

@ -164,7 +164,7 @@ FROM (
ON t.oid = pr.prorettype left JOIN pg_catalog.pg_language l
ON l.oid = pr.prolang
WHERE NOT (t.typname = 'trigger' AND l.lanname = 'edbspl')
AND ({{ CATALOGS.DB_SUPPORT('n') }} AND {{ CATALOGS.DB_SUPPORT('np') }})
AND ({{ CATALOGS.DB_SUPPORT('n') }} AND {{ CATALOGS.DB_SUPPORT('np') }}) AND NOT pr.proisagg
) fd
{% if not all_obj %}
WHERE fd.obj_type = '{{ obj_type }}'
@ -577,6 +577,40 @@ FROM (
JOIN pg_catalog.pg_namespace n on t.relnamespace = n.oid
where {{ CATALOGS.DB_SUPPORT('n') }}
{% endif %}
{% if all_obj %}
UNION
{% endif %}
{% if all_obj or obj_type in ['aggregate'] %}
SELECT 'aggregate' AS obj_type, pr.proname AS obj_name,
':schema.'|| ns.oid || ':/' || ns.nspname || '/' || ':aggregate.' || ag.aggfnoid::oid ||':/' || pr.proname AS obj_path,
ns.nspname AS schema_name,
{{ show_node_prefs['aggregate'] }} AS show_node, pg_catalog.pg_get_function_arguments(aggfnoid::oid) AS other_info
FROM pg_aggregate ag
LEFT OUTER JOIN pg_catalog.pg_proc pr ON pr.oid = ag.aggfnoid
LEFT OUTER JOIN pg_catalog.pg_namespace ns ON ns.oid=pr.pronamespace
WHERE ({{ CATALOGS.DB_SUPPORT('ns') }})
{% endif %}
{% if all_obj %}
UNION
{% endif %}
{% if all_obj or obj_type in ['operator'] %}
SELECT 'operator' AS obj_type, op.oprname AS obj_name,
':schema.'|| ns.oid || ':/' || ns.nspname || '/' || ':operator.' || op.oid::oid ||':/' || op.oprname AS obj_path,
ns.nspname AS schema_name,
{{ show_node_prefs['operator'] }} AS show_node,
CASE WHEN lt.typname IS NOT NULL AND rt.typname IS NOT NULL THEN
pg_catalog.format_type(lt.oid, NULL) || ', ' || pg_catalog.format_type(rt.oid, NULL)
WHEN lt.typname IS NULL AND rt.typname IS NOT NULL THEN
pg_catalog.format_type(rt.oid, NULL)
WHEN lt.typname IS NOT NULL AND rt.typname IS NULL THEN
pg_catalog.format_type(lt.oid, NULL)
ELSE '' END AS other_info
FROM pg_catalog.pg_operator op
LEFT OUTER JOIN pg_catalog.pg_namespace ns ON ns.oid=op.oprnamespace
LEFT OUTER JOIN pg_catalog.pg_type lt ON lt.oid=op.oprleft
LEFT OUTER JOIN pg_catalog.pg_type rt ON rt.oid=op.oprright
WHERE ({{ CATALOGS.DB_SUPPORT('ns') }})
{% endif %}
) sn
where lower(sn.obj_name) like '%{{ search_text }}%'

View File

@ -164,7 +164,7 @@ FROM (
ON t.oid = pr.prorettype left JOIN pg_catalog.pg_language l
ON l.oid = pr.prolang
WHERE NOT (t.typname = 'trigger' AND l.lanname = 'edbspl')
AND ({{ CATALOGS.DB_SUPPORT('n') }} AND {{ CATALOGS.DB_SUPPORT('np') }})
AND ({{ CATALOGS.DB_SUPPORT('n') }} AND {{ CATALOGS.DB_SUPPORT('np') }}) AND NOT pr.proisagg
) fd
{% if not all_obj %}
WHERE fd.obj_type = '{{ obj_type }}'
@ -586,6 +586,40 @@ FROM (
JOIN pg_catalog.pg_namespace n on t.relnamespace = n.oid
where {{ CATALOGS.DB_SUPPORT('n') }}
{% endif %}
{% if all_obj %}
UNION
{% endif %}
{% if all_obj or obj_type in ['aggregate'] %}
SELECT 'aggregate' AS obj_type, pr.proname AS obj_name,
':schema.'|| ns.oid || ':/' || ns.nspname || '/' || ':aggregate.' || ag.aggfnoid::oid ||':/' || pr.proname AS obj_path,
ns.nspname AS schema_name,
{{ show_node_prefs['aggregate'] }} AS show_node, pg_catalog.pg_get_function_arguments(aggfnoid::oid) AS other_info
FROM pg_aggregate ag
LEFT OUTER JOIN pg_catalog.pg_proc pr ON pr.oid = ag.aggfnoid
LEFT OUTER JOIN pg_catalog.pg_namespace ns ON ns.oid=pr.pronamespace
WHERE ({{ CATALOGS.DB_SUPPORT('ns') }})
{% endif %}
{% if all_obj %}
UNION
{% endif %}
{% if all_obj or obj_type in ['operator'] %}
SELECT 'operator' AS obj_type, op.oprname AS obj_name,
':schema.'|| ns.oid || ':/' || ns.nspname || '/' || ':operator.' || op.oid::oid ||':/' || op.oprname AS obj_path,
ns.nspname AS schema_name,
{{ show_node_prefs['operator'] }} AS show_node,
CASE WHEN lt.typname IS NOT NULL AND rt.typname IS NOT NULL THEN
pg_catalog.format_type(lt.oid, NULL) || ', ' || pg_catalog.format_type(rt.oid, NULL)
WHEN lt.typname IS NULL AND rt.typname IS NOT NULL THEN
pg_catalog.format_type(rt.oid, NULL)
WHEN lt.typname IS NOT NULL AND rt.typname IS NULL THEN
pg_catalog.format_type(lt.oid, NULL)
ELSE '' END AS other_info
FROM pg_catalog.pg_operator op
LEFT OUTER JOIN pg_catalog.pg_namespace ns ON ns.oid=op.oprnamespace
LEFT OUTER JOIN pg_catalog.pg_type lt ON lt.oid=op.oprleft
LEFT OUTER JOIN pg_catalog.pg_type rt ON rt.oid=op.oprright
WHERE ({{ CATALOGS.DB_SUPPORT('ns') }})
{% endif %}
) sn
where lower(sn.obj_name) like '%{{ search_text }}%'

View File

@ -117,7 +117,7 @@ FROM (
ON t.oid = pr.prorettype left JOIN pg_catalog.pg_language l
ON l.oid = pr.prolang
WHERE NOT (t.typname = 'trigger' AND l.lanname = 'edbspl')
AND ({{ CATALOGS.DB_SUPPORT('n') }} AND {{ CATALOGS.DB_SUPPORT('np') }})
AND ({{ CATALOGS.DB_SUPPORT('n') }} AND {{ CATALOGS.DB_SUPPORT('np') }}) AND NOT pr.proisagg
) fd
{% if not all_obj %}
WHERE fd.obj_type = '{{ obj_type }}'
@ -445,6 +445,40 @@ FROM (
JOIN pg_catalog.pg_namespace n on t.relnamespace = n.oid
where {{ CATALOGS.DB_SUPPORT('n') }}
{% endif %}
{% if all_obj %}
UNION
{% endif %}
{% if all_obj or obj_type in ['aggregate'] %}
SELECT 'aggregate' AS obj_type, pr.proname AS obj_name,
':schema.'|| ns.oid || ':/' || ns.nspname || '/' || ':aggregate.' || ag.aggfnoid::oid ||':/' || pr.proname AS obj_path,
ns.nspname AS schema_name,
{{ show_node_prefs['aggregate'] }} AS show_node, pg_catalog.pg_get_function_arguments(aggfnoid::oid) AS other_info
FROM pg_aggregate ag
LEFT OUTER JOIN pg_catalog.pg_proc pr ON pr.oid = ag.aggfnoid
LEFT OUTER JOIN pg_catalog.pg_namespace ns ON ns.oid=pr.pronamespace
WHERE ({{ CATALOGS.DB_SUPPORT('ns') }})
{% endif %}
{% if all_obj %}
UNION
{% endif %}
{% if all_obj or obj_type in ['operator'] %}
SELECT 'operator' AS obj_type, op.oprname AS obj_name,
':schema.'|| ns.oid || ':/' || ns.nspname || '/' || ':operator.' || op.oid::oid ||':/' || op.oprname AS obj_path,
ns.nspname AS schema_name,
{{ show_node_prefs['operator'] }} AS show_node,
CASE WHEN lt.typname IS NOT NULL AND rt.typname IS NOT NULL THEN
pg_catalog.format_type(lt.oid, NULL) || ', ' || pg_catalog.format_type(rt.oid, NULL)
WHEN lt.typname IS NULL AND rt.typname IS NOT NULL THEN
pg_catalog.format_type(rt.oid, NULL)
WHEN lt.typname IS NOT NULL AND rt.typname IS NULL THEN
pg_catalog.format_type(lt.oid, NULL)
ELSE '' END AS other_info
FROM pg_catalog.pg_operator op
LEFT OUTER JOIN pg_catalog.pg_namespace ns ON ns.oid=op.oprnamespace
LEFT OUTER JOIN pg_catalog.pg_type lt ON lt.oid=op.oprleft
LEFT OUTER JOIN pg_catalog.pg_type rt ON rt.oid=op.oprright
WHERE ({{ CATALOGS.DB_SUPPORT('ns') }})
{% endif %}
) sn
where lower(sn.obj_name) like '%{{ search_text }}%'

View File

@ -117,7 +117,7 @@ FROM (
ON t.oid = pr.prorettype left JOIN pg_catalog.pg_language l
ON l.oid = pr.prolang
WHERE NOT (t.typname = 'trigger' AND l.lanname = 'edbspl')
AND ({{ CATALOGS.DB_SUPPORT('n') }} AND {{ CATALOGS.DB_SUPPORT('np') }})
AND ({{ CATALOGS.DB_SUPPORT('n') }} AND {{ CATALOGS.DB_SUPPORT('np') }}) AND NOT pr.proisagg
) fd
{% if not all_obj %}
WHERE fd.obj_type = '{{ obj_type }}'
@ -432,6 +432,41 @@ FROM (
WHERE {{ CATALOGS.DB_SUPPORT('p') }}
AND {{ CATALOGS.DB_SUPPORT('n') }}
{% endif %}
{% if all_obj %}
UNION
{% endif %}
{% if all_obj or obj_type in ['aggregate'] %}
SELECT 'aggregate' AS obj_type, pr.proname AS obj_name,
':schema.'|| ns.oid || ':/' || ns.nspname || '/' || ':aggregate.' || ag.aggfnoid::oid ||':/' || pr.proname AS obj_path,
ns.nspname AS schema_name,
{{ show_node_prefs['aggregate'] }} AS show_node, pg_catalog.pg_get_function_arguments(aggfnoid::oid) AS other_info
FROM pg_aggregate ag
LEFT OUTER JOIN pg_catalog.pg_proc pr ON pr.oid = ag.aggfnoid
LEFT OUTER JOIN pg_catalog.pg_namespace ns ON ns.oid=pr.pronamespace
WHERE ({{ CATALOGS.DB_SUPPORT('ns') }})
{% endif %}
{% if all_obj %}
UNION
{% endif %}
{% if all_obj or obj_type in ['operator'] %}
SELECT 'operator' AS obj_type, op.oprname AS obj_name,
':schema.'|| ns.oid || ':/' || ns.nspname || '/' || ':operator.' || op.oid::oid ||':/' || op.oprname AS obj_path,
ns.nspname AS schema_name,
{{ show_node_prefs['operator'] }} AS show_node,
CASE WHEN lt.typname IS NOT NULL AND rt.typname IS NOT NULL THEN
pg_catalog.format_type(lt.oid, NULL) || ', ' || pg_catalog.format_type(rt.oid, NULL)
WHEN lt.typname IS NULL AND rt.typname IS NOT NULL THEN
pg_catalog.format_type(rt.oid, NULL)
WHEN lt.typname IS NOT NULL AND rt.typname IS NULL THEN
pg_catalog.format_type(lt.oid, NULL)
ELSE '' END AS other_info
FROM pg_catalog.pg_operator op
LEFT OUTER JOIN pg_catalog.pg_namespace ns ON ns.oid=op.oprnamespace
LEFT OUTER JOIN pg_catalog.pg_type lt ON lt.oid=op.oprleft
LEFT OUTER JOIN pg_catalog.pg_type rt ON rt.oid=op.oprright
WHERE ({{ CATALOGS.DB_SUPPORT('ns') }})
{% endif %}
) sn
where lower(sn.obj_name) like '%{{ search_text }}%'
{% if not show_system_objects %}

View File

@ -44,7 +44,7 @@ class SearchObjectsHelper:
'fts_configuration', 'extension', 'language',
'event_trigger', 'foreign_server', 'user_mapping',
'foreign_data_wrapper', 'row_security_policy',
'publication', 'subscription'
'publication', 'subscription', 'aggregate', 'operator'
] if node_types is None else node_types
@property