mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2025-02-25 18:55:31 -06:00
Basic support for viewing tables in Greenplum. Patch from George & Tira @ Pivotal.
This commit is contained in:
@@ -134,6 +134,25 @@ def create_database(server, db_name):
|
||||
traceback.print_exc(file=sys.stderr)
|
||||
|
||||
|
||||
def create_table(server, db_name, table_name):
|
||||
try:
|
||||
connection = get_db_connection(db_name,
|
||||
server['username'],
|
||||
server['db_password'],
|
||||
server['host'],
|
||||
server['port'])
|
||||
old_isolation_level = connection.isolation_level
|
||||
connection.set_isolation_level(0)
|
||||
pg_cursor = connection.cursor()
|
||||
pg_cursor.execute('''CREATE TABLE "%s" (name VARCHAR, value NUMERIC)''' % table_name)
|
||||
pg_cursor.execute('''INSERT INTO "%s" VALUES ('Some-Name', 6)''' % table_name)
|
||||
connection.set_isolation_level(old_isolation_level)
|
||||
connection.commit()
|
||||
|
||||
except Exception:
|
||||
traceback.print_exc(file=sys.stderr)
|
||||
|
||||
|
||||
def drop_database(connection, database_name):
|
||||
"""This function used to drop the database"""
|
||||
if database_name not in ["postgres", "template1", "template0"]:
|
||||
@@ -389,3 +408,40 @@ def _drop_objects(tester):
|
||||
def get_cleanup_handler(tester):
|
||||
"""This function use to bind variable to drop_objects function"""
|
||||
return partial(_drop_objects, tester)
|
||||
|
||||
|
||||
class Database:
|
||||
"""
|
||||
Temporarily create and connect to a database, tear it down at exit
|
||||
|
||||
example:
|
||||
|
||||
with Database(server, 'some_test_db') as (connection, database_name):
|
||||
connection.cursor().execute(...)
|
||||
|
||||
"""
|
||||
|
||||
def __init__(self, server):
|
||||
self.name = None
|
||||
self.server = server
|
||||
self.maintenance_connection = None
|
||||
self.connection = None
|
||||
|
||||
def __enter__(self):
|
||||
self.name = "test_db_{}".format(str(uuid.uuid4())[0:7])
|
||||
self.maintenance_connection = get_db_connection(self.server['db'],
|
||||
self.server['username'],
|
||||
self.server['db_password'],
|
||||
self.server['host'],
|
||||
self.server['port'])
|
||||
create_database(self.server, self.name)
|
||||
self.connection = get_db_connection(self.name,
|
||||
self.server['username'],
|
||||
self.server['db_password'],
|
||||
self.server['host'],
|
||||
self.server['port'])
|
||||
return self.connection, self.name
|
||||
|
||||
def __exit__(self, type, value, traceback):
|
||||
self.connection.close()
|
||||
drop_database(self.maintenance_connection, self.name)
|
||||
|
||||
Reference in New Issue
Block a user