summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmjith Ramanujam <amjith.r@gmail.com>2018-07-20 17:10:07 -0700
committerGitHub <noreply@github.com>2018-07-20 17:10:07 -0700
commitabc8d51dd3814cff0b5b015677904fc1939d236b (patch)
tree2edcc6c0391e45903755178b2614e1d58156fced
parent2fa7b1458ad969c7017a07770acfd7ddd4d5c06b (diff)
parent7653ea9c1fc7ef2056baea862d5766c2d0290851 (diff)
Merge pull request #915 from dbcli/j-bennet/add-server-version
Print server version as part of welcome message.
-rw-r--r--pgcli/main.py1
-rw-r--r--pgcli/pgexecute.py17
2 files changed, 14 insertions, 4 deletions
diff --git a/pgcli/main.py b/pgcli/main.py
index 6bdf9dff..2babcfb7 100644
--- a/pgcli/main.py
+++ b/pgcli/main.py
@@ -599,6 +599,7 @@ class PGCli(object):
self.cli = self._build_cli(history)
if not self.less_chatty:
+ print('Server: PostgreSQL', self.pgexecute.get_server_version())
print('Version:', __version__)
print('Chat: https://gitter.im/dbcli/pgcli')
print('Mail: https://groups.google.com/forum/#!forum/pgcli')
diff --git a/pgcli/pgexecute.py b/pgcli/pgexecute.py
index 58986aca..d428e840 100644
--- a/pgcli/pgexecute.py
+++ b/pgcli/pgexecute.py
@@ -183,6 +183,8 @@ class PGExecute(object):
SELECT pg_catalog.pg_get_functiondef(f.f_oid)
FROM f'''
+ version_query = "SELECT current_setting('server_version')"
+
def __init__(self, database, user, password, host, port, dsn, **kwargs):
self.dbname = database
self.user = user
@@ -191,8 +193,19 @@ class PGExecute(object):
self.port = port
self.dsn = dsn
self.extra_args = {k: unicode2utf8(v) for k, v in kwargs.items()}
+ self.server_version = None
self.connect()
+ def get_server_version(self):
+ if self.server_version:
+ return self.server_version
+ with self.conn.cursor() as cur:
+ _logger.debug('Version Query. sql: %r', self.version_query)
+ cur.execute(self.version_query)
+ result = cur.fetchone()
+ self.server_version = result[0] if result else ''
+ return self.server_version
+
def connect(self, database=None, user=None, password=None, host=None,
port=None, dsn=None, **kwargs):
@@ -280,18 +293,15 @@ class PGExecute(object):
else:
return json_data
-
def failed_transaction(self):
status = self.conn.get_transaction_status()
return status == ext.TRANSACTION_STATUS_INERROR
-
def valid_transaction(self):
status = self.conn.get_transaction_status()
return (status == ext.TRANSACTION_STATUS_ACTIVE or
status == ext.TRANSACTION_STATUS_INTRANS)
-
def run(self, statement, pgspecial=None, exception_formatter=None,
on_error_resume=False):
"""Execute the sql in the database and return the results.
@@ -707,7 +717,6 @@ class PGExecute(object):
for row in cur:
yield row
-
def casing(self):
"""Yields the most common casing for names used in db functions"""
with self.conn.cursor() as cur: