1
0
mirror of https://github.com/dbcli/pgcli synced 2024-06-16 01:42:23 +00:00

Merge pull request #915 from dbcli/j-bennet/add-server-version

Print server version as part of welcome message.
This commit is contained in:
Amjith Ramanujam 2018-07-20 17:10:07 -07:00 committed by GitHub
commit abc8d51dd3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 4 deletions

View File

@ -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')

View File

@ -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: