summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIrina Truong <i.chernyavska@gmail.com>2019-08-28 08:26:24 -0700
committerIrina Truong <i.chernyavska@gmail.com>2019-08-28 08:26:24 -0700
commit04a74fce2c98304902b184be157a83daf1ba8bed (patch)
tree589e3dfb2506cbe3b521be3868eba4f4bb7247aa
parentb2ebe0e95c6b9f28574804d5f1ea8d689ccd5211 (diff)
Get server params, such as is_superuser and server_version, without extra queries.
-rw-r--r--pgcli/pgexecute.py21
1 files changed, 2 insertions, 19 deletions
diff --git a/pgcli/pgexecute.py b/pgcli/pgexecute.py
index 9e6c4b7c..7186ec13 100644
--- a/pgcli/pgexecute.py
+++ b/pgcli/pgexecute.py
@@ -219,19 +219,6 @@ class PGExecute(object):
"""Returns a clone of the current executor."""
return self.__class__(**self._conn_params)
- def get_server_version(self, cursor):
- _logger.debug("Version Query. sql: %r", self.version_query)
- cursor.execute(self.version_query)
- result = cursor.fetchone()
- server_version = ""
- if result:
- # full version string looks like this:
- # PostgreSQL 10.3 on x86_64-apple-darwin17.3.0, compiled by Apple LLVM version 9.0.0 (clang-900.0.39.2), 64-bit # noqa
- # let's only retrieve version number
- version_parts = result[0].split()
- server_version = version_parts[1]
- return server_version
-
def connect(
self,
database=None,
@@ -291,14 +278,10 @@ class PGExecute(object):
if not self.host:
self.host = self.get_socket_directory()
- cursor.execute("SHOW ALL")
- db_parameters = dict(name_val_desc[:2] for name_val_desc in cursor.fetchall())
-
pid = self._select_one(cursor, "select pg_backend_pid()")[0]
self.pid = pid
- self.superuser = db_parameters.get("is_superuser") == "1"
-
- self.server_version = self.get_server_version(cursor)
+ self.superuser = conn.get_parameter_status("is_superuser") in ("on", "1")
+ self.server_version = conn.get_parameter_status("server_version")
register_date_typecasters(conn)
register_json_typecasters(self.conn, self._json_typecaster)