Skip to content
This repository was archived by the owner on Sep 20, 2023. It is now read-only.

Commit b88ae2d

Browse files
Support pandas.to_sql
1 parent ce82f59 commit b88ae2d

8 files changed

Lines changed: 233 additions & 142 deletions

File tree

Pipfile.lock

Lines changed: 29 additions & 100 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyathenajdbc/connection.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,8 @@ def __init__(
9595

9696
self._start_jvm(jvm_path, jvm_options, driver_path, log4j_conf)
9797

98-
props = self._build_driver_args(**driver_kwargs)
98+
self._driver_kwargs = driver_kwargs
99+
props = self._build_driver_args()
99100
jpype.JClass(ATHENA_DRIVER_CLASS_NAME)
100101
self._jdbc_conn = jpype.java.sql.DriverManager.getConnection(
101102
ATHENA_CONNECTION_STRING.format(
@@ -147,7 +148,7 @@ def _start_jvm(cls, jvm_path, jvm_options, driver_path, log4j_conf):
147148
)
148149
jpype.java.lang.Thread.currentThread().setContextClassLoader(class_loader)
149150

150-
def _build_driver_args(self, **kwargs):
151+
def _build_driver_args(self):
151152
props = jpype.java.util.Properties()
152153
if self.credential_file:
153154
props.setProperty(
@@ -176,7 +177,7 @@ def _build_driver_args(self, **kwargs):
176177
props.setProperty("S3OutputLocation", self.s3_staging_dir)
177178
if self.work_group:
178179
props.setProperty("Workgroup", self.work_group)
179-
for k, v in iteritems(kwargs):
180+
for k, v in iteritems(self._driver_kwargs):
180181
if k and v:
181182
props.setProperty(k, v)
182183
return props

pyathenajdbc/cursor.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,10 @@ def execute(self, operation, parameters=None):
129129
raise_from(DatabaseError(e), e)
130130

131131
def executemany(self, operation, seq_of_parameters):
132-
raise NotSupportedError
132+
for parameters in seq_of_parameters:
133+
self.execute(operation, parameters)
134+
# Operations that have result sets are not allowed with executemany.
135+
self._reset_state()
133136

134137
@attach_thread_to_jvm
135138
@synchronized

0 commit comments

Comments
 (0)