Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# e6data Python Connector

![version](https://img.shields.io/badge/version-1.0.4-blue.svg)
![version](https://img.shields.io/badge/version-1.0.5-blue.svg)

## Introduction

Expand Down
50 changes: 43 additions & 7 deletions e6xdb/e6x.py
Original file line number Diff line number Diff line change
Expand Up @@ -189,15 +189,42 @@ def query_cancel(self, query_id):
def dry_run(self, query):
return self._client.dryRun(sessionId=self.get_session_id, sSchema=self._database, sQueryString=query)

def dry_run_v2(self, catalog_name, query):
return self._client.dryRunV2(
sessionId=self.get_session_id,
catalogName=catalog_name,
sSchema=self._database,
sQueryString=query
)

def get_tables(self, database):
return self._client.getTables(sessionId=self.get_session_id, schema=database)

def get_tables_v2(self, catalog_name, database):
return self._client.getTablesV2(sessionId=self.get_session_id, catalogName=catalog_name, schema=database)

def get_columns(self, database, table):
return self._client.getColumns(sessionId=self.get_session_id, schema=database, table=table)
catalog_name = ''
return self._client.getColumns(sessionId=self.get_session_id, catalogName=catalog_name, schema=database,
table=table)

def get_columns_v2(self, catalog_name, database, table):
return self._client.getColumnsV2(
sessionId=self.get_session_id,
catalogName=catalog_name,
schema=database,
table=table
)

def get_schema_names(self):
return self._client.getSchemaNames(sessionId=self.get_session_id)

def get_schema_names_v2(self, catalog_name):
return self._client.getSchemaNamesV2(sessionId=self.get_session_id, catalogName=catalog_name)

def add_catalogs(self, catalogs_info):
return self._client.addCatalogs(sessionId=self.get_session_id, jsonString=catalogs_info)

def commit(self):
"""We do not support transactions, so this does nothing."""
pass
Expand All @@ -222,8 +249,9 @@ class Cursor(DBAPICursor):
"""
rows_count = 0

def __init__(self, connection, arraysize=1000, database=None):
def __init__(self, connection, catalog_name=None, arraysize=1000, database=None):
super(Cursor, self).__init__()
self._catalog_name = catalog_name
self._arraysize = arraysize
self.connection = connection
self._data = None
Expand Down Expand Up @@ -332,11 +360,19 @@ def execute(self, operation, parameters=None, **kwargs):
sql = operation % _escaper.escape_args(parameters)

client = self.connection.client
self._query_id = client.prepareStatement(
self.connection.get_session_id,
self._database,
sql
)
if self._catalog_name:
self._query_id = client.prepareStatementV2(
self.connection.get_session_id,
self._catalog_name,
self._database,
sql
)
else:
self._query_id = client.prepareStatement(
self.connection.get_session_id,
self._database,
sql
)
client.executeStatement(self.connection.get_session_id, self._query_id)
self.update_mete_data()
return self._query_id
Expand Down
50 changes: 46 additions & 4 deletions e6xdb/server/QueryEngineService-remote
Original file line number Diff line number Diff line change
Expand Up @@ -28,18 +28,24 @@ if len(sys.argv) <= 1 or sys.argv[1] == '--help':
print(' void cancelQuery(string sessionId, string queryId)')
print(' string explain(string sessionId, string queryId)')
print(' string dryRun(string sessionId, string sSchema, string sQueryString)')
print(' string dryRunV2(string sessionId, string catalogName, string sSchema, string sQueryString)')
print(' string explainAnalyze(string sessionId, string queryId)')
print(' string prepareStatement(string sessionId, string sSchemaName, string query)')
print(' string prepareStatementV2(string sessionId, string catalogName, string sSchemaName, string query)')
print(' void executeStatement(string sessionId, string queryId)')
print(' string getNextResultRow(string sessionId, string queryId)')
print(' string getNextResultBatch(string sessionId, string queryId)')
print(' string getResultMetadata(string sessionId, string queryId)')
print(' string authenticate(string user, string password)')
print(' getTables(string sessionId, string schema)')
print(' getTablesV2(string sessionId, string catalogName, string schema)')
print(' getSchemaNames(string sessionId)')
print(' getColumns(string sessionId, string schema, string table)')
print(' getSchemaNamesV2(string sessionId, string catalogName)')
print(' getColumns(string sessionId, string catalogName, string schema, string table)')
print(' getColumnsV2(string sessionId, string catalogName, string schema, string table)')
print(' void updateUsers(string userInfo)')
print(' void setProps(string sessionId, string propMap)')
print(' void addCatalogs(string sessionId, string jsonString)')
print('')
sys.exit(0)

Expand Down Expand Up @@ -143,6 +149,12 @@ elif cmd == 'dryRun':
sys.exit(1)
pp.pprint(client.dryRun(args[0], args[1], args[2],))

elif cmd == 'dryRunV2':
if len(args) != 4:
print('dryRunV2 requires 4 args')
sys.exit(1)
pp.pprint(client.dryRunV2(args[0], args[1], args[2], args[3],))

elif cmd == 'explainAnalyze':
if len(args) != 2:
print('explainAnalyze requires 2 args')
Expand All @@ -155,6 +167,12 @@ elif cmd == 'prepareStatement':
sys.exit(1)
pp.pprint(client.prepareStatement(args[0], args[1], args[2],))

elif cmd == 'prepareStatementV2':
if len(args) != 4:
print('prepareStatementV2 requires 4 args')
sys.exit(1)
pp.pprint(client.prepareStatementV2(args[0], args[1], args[2], args[3],))

elif cmd == 'executeStatement':
if len(args) != 2:
print('executeStatement requires 2 args')
Expand Down Expand Up @@ -191,17 +209,35 @@ elif cmd == 'getTables':
sys.exit(1)
pp.pprint(client.getTables(args[0], args[1],))

elif cmd == 'getTablesV2':
if len(args) != 3:
print('getTablesV2 requires 3 args')
sys.exit(1)
pp.pprint(client.getTablesV2(args[0], args[1], args[2],))

elif cmd == 'getSchemaNames':
if len(args) != 1:
print('getSchemaNames requires 1 args')
sys.exit(1)
pp.pprint(client.getSchemaNames(args[0],))

elif cmd == 'getSchemaNamesV2':
if len(args) != 2:
print('getSchemaNamesV2 requires 2 args')
sys.exit(1)
pp.pprint(client.getSchemaNamesV2(args[0], args[1],))

elif cmd == 'getColumns':
if len(args) != 3:
print('getColumns requires 3 args')
if len(args) != 4:
print('getColumns requires 4 args')
sys.exit(1)
pp.pprint(client.getColumns(args[0], args[1], args[2], args[3],))

elif cmd == 'getColumnsV2':
if len(args) != 4:
print('getColumnsV2 requires 4 args')
sys.exit(1)
pp.pprint(client.getColumns(args[0], args[1], args[2],))
pp.pprint(client.getColumnsV2(args[0], args[1], args[2], args[3],))

elif cmd == 'updateUsers':
if len(args) != 1:
Expand All @@ -215,6 +251,12 @@ elif cmd == 'setProps':
sys.exit(1)
pp.pprint(client.setProps(args[0], args[1],))

elif cmd == 'addCatalogs':
if len(args) != 2:
print('addCatalogs requires 2 args')
sys.exit(1)
pp.pprint(client.addCatalogs(args[0], args[1],))

else:
print('Unrecognized method %s' % cmd)
sys.exit(1)
Expand Down
Loading