diff options
author | Amjith Ramanujam <amjith.r@gmail.com> | 2018-07-20 17:10:07 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-20 17:10:07 -0700 |
commit | abc8d51dd3814cff0b5b015677904fc1939d236b (patch) | |
tree | 2edcc6c0391e45903755178b2614e1d58156fced | |
parent | 2fa7b1458ad969c7017a07770acfd7ddd4d5c06b (diff) | |
parent | 7653ea9c1fc7ef2056baea862d5766c2d0290851 (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.py | 1 | ||||
-rw-r--r-- | pgcli/pgexecute.py | 17 |
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: |