mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2025-02-25 18:55:31 -06:00
The following are the initial fixes for PG15:
1) From PG 15 onward, the datlastsysoid has been removed from the table pg_database.
We have added the constant _DATABASE_LAST_SYSTEM_OID = 16383, all the objects below
this value are considered to be system objects. Modified the pgAdmin logic accordingly.
2) Concatenation operator '||' needs a specific typecast to be applied to query variables. Modified SQL's accordingly.
Fixes #7283
This commit is contained in:
@@ -665,10 +665,6 @@ rolmembership:{
|
||||
_("Connection to the server has been lost.")
|
||||
)
|
||||
|
||||
self.datlastsysoid = \
|
||||
self.manager.db_info[self.manager.did]['datlastsysoid'] \
|
||||
if self.manager.db_info is not None and \
|
||||
self.manager.did in self.manager.db_info else 0
|
||||
self.datistemplate = False
|
||||
if (
|
||||
self.manager.db_info is not None and
|
||||
@@ -843,7 +839,8 @@ rolmembership:{
|
||||
return gone(self.not_found_error_msg())
|
||||
|
||||
res['rows'][0]['is_sys_obj'] = (
|
||||
res['rows'][0]['oid'] <= self.datlastsysoid or self.datistemplate)
|
||||
res['rows'][0]['oid'] <= self._DATABASE_LAST_SYSTEM_OID or
|
||||
self.datistemplate)
|
||||
|
||||
return ajax_response(
|
||||
response=res['rows'][0],
|
||||
@@ -1129,7 +1126,7 @@ rolmembership:{
|
||||
query = render_template(
|
||||
"/".join([self.sql_path, 'dependents.sql']),
|
||||
fetch_dependents=True, rid=rid,
|
||||
lastsysoid=db_row['datlastsysoid']
|
||||
lastsysoid=self._DATABASE_LAST_SYSTEM_OID
|
||||
)
|
||||
|
||||
status, result = temp_conn.execute_dict(query)
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
{% if fetch_database %}
|
||||
SELECT 'd' as type, datname,
|
||||
datallowconn AND pg_catalog.has_database_privilege(datname, 'CONNECT') AS datallowconn,
|
||||
datdba, datlastsysoid
|
||||
datdba
|
||||
FROM pg_catalog.pg_database db
|
||||
UNION
|
||||
SELECT 'M', spcname, null, null, null
|
||||
SELECT 'M', spcname, null, null
|
||||
FROM pg_catalog.pg_tablespace where spcowner= {{rid}}::oid
|
||||
ORDER BY 1, 2
|
||||
{% endif %}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
{% if fetch_database %}
|
||||
SELECT 'd' as type, datname,
|
||||
datallowconn AND pg_catalog.has_database_privilege(datname, 'CONNECT') AS datallowconn,
|
||||
datdba, datlastsysoid
|
||||
datdba
|
||||
FROM pg_catalog.pg_database db
|
||||
UNION
|
||||
SELECT 'M', spcname, null, null, null
|
||||
SELECT 'M', spcname, null, null
|
||||
FROM pg_catalog.pg_tablespace where spcowner={{rid}}::oid
|
||||
ORDER BY 1, 2
|
||||
{% endif %}
|
||||
|
||||
Reference in New Issue
Block a user