Skip to content

Commit

Permalink
AND query pushdown for EXCEL and ODF
Browse files Browse the repository at this point in the history
  • Loading branch information
ergo70 committed Feb 13, 2020
1 parent 223da83 commit b4c75dc
Showing 1 changed file with 6 additions and 8 deletions.
14 changes: 6 additions & 8 deletions cloudfs_fdw/cloudfs_fdw.py
Original file line number Diff line number Diff line change
Expand Up @@ -148,26 +148,24 @@ def _render_excel_or_odf(self, data_stream, quals, sortkeys):
object_stream = pandas.read_excel(
data_stream, sheet_name=self.sheet, header=0 if self.skip_header else None, engine=engine)

object_stream.columns = [column.replace(
" ", "_") for column in object_stream.columns]
object_stream.columns = [column.replace(
":", "_") for column in object_stream.columns]

if quals or sortkeys:
object_stream.columns = [column.replace(
" ", "_").replace(":", "_") for column in object_stream.columns]
df_columns = object_stream.columns.values

if quals:
query = ''
column_names = [*self.columns.keys()]
column_names = list(self.columns.keys())

for qual in quals:
column_type = self.columns[qual.field_name].base_type_name
column_index = column_names.index(qual.field_name)
query += df_columns[column_index] + ('==' if qual.operator == '=' else qual.operator) + (
('"' + str(qual.value) + '"') if type(qual.value is str) else str(qual.value)) + ' and '
('"' + str(qual.value) + '"') if column_type in ['text', 'varchar', 'character varying', 'char', 'character'] else str(qual.value)) + ' and '

object_stream.query(expr=query[:-5], inplace=True)

if sortkeys:
if sortkeys and len(object_stream.index) > 1:
sort_columns = []
sort_orders = []

Expand Down

0 comments on commit b4c75dc

Please sign in to comment.