Skip to content

Commit 1b79922

Browse files
committed
fix_join_tables_and_series_column_rename
Signed-off-by: Paweł Mróz <[email protected]>
1 parent 8f33c0b commit 1b79922

File tree

4 files changed

+16
-15
lines changed

4 files changed

+16
-15
lines changed

nzpyida/frame.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,7 @@ def columns(self, new_names):
355355

356356
@columns.deleter
357357
def columns(self):
358-
pass
358+
self._reset_attributes(['get_columns'])
359359

360360
@lazy
361361
def org_columns_names(self):

nzpyida/geo_series.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1813,7 +1813,7 @@ def _unary_operation_handler(self, function_name,
18131813
idaseries.internal_state.update()
18141814

18151815
# Set the column attribute of the new idaseries
1816-
idaseries.column = result_column_key
1816+
idaseries._column = result_column_key
18171817

18181818
try:
18191819
del(idaseries.columns)

nzpyida/join_tables.py

+12-12
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ def concat(objs: List[IdaDataFrame], axis: int=0, join: str='outer', keys: List[
6767
else:
6868
case_statments = [""] * len(objs)
6969
if all(list(obj.columns) == list(objs[0].columns) for obj in objs):
70-
names_list = [df.internal_state.current_state for df in objs]
70+
names_list = [f'{objs[i].internal_state.get_state()} AS TEMP_JOIN_{i} ' for i in range(len(objs))]
7171
query = "SELECT * FROM " + " UNION ALL SELECT * FROM ".join(names_list)
7272
else:
7373
in_columns_table = [obj.columns for obj in objs]
@@ -86,7 +86,7 @@ def concat(objs: List[IdaDataFrame], axis: int=0, join: str='outer', keys: List[
8686

8787
columns_queries = ['SELECT ' + case_statments[i] +
8888
', '.join(out_columns_table[i]) +
89-
f" FROM {objs[i].internal_state.current_state}"
89+
f" FROM ({objs[i].internal_state.get_state()}) AS TEMP_{i}"
9090
for i in range(len(objs))
9191
]
9292
query = " UNION ALL ".join(columns_queries)
@@ -298,20 +298,20 @@ def merge(left: IdaDataFrame, right: IdaDataFrame, how: str='inner', on=None,
298298
if indicator:
299299
case_statement = ", case when t1=1 and t2=1 then 'both' when t1=1 then 'left_only'" + \
300300
"else 'right_only' end as indicator"
301-
select_statement1 = "(select 1 as t1, * from "
302-
select_statement2 = "(select 1 as t2, * from "
303-
as_statement1 = ") as left_table "
304-
as_statement2 = ") as right_table "
301+
select_statement1 = "(select 1 as t1, * from ("
302+
select_statement2 = "(select 1 as t2, * from ("
303+
as_statement1 = ") as lt) as left_table "
304+
as_statement2 = ") as rt) as right_table "
305305
else:
306306
case_statement = ""
307-
select_statement1 = ""
308-
select_statement2 = ""
309-
as_statement1 = " as left_table"
310-
as_statement2 = " as right_table"
307+
select_statement1 = "("
308+
select_statement2 = "("
309+
as_statement1 = ") as left_table"
310+
as_statement2 = ") as right_table"
311311
query = f"select {nvl_statement} {cols} {case_statement} from" + \
312-
f"{select_statement1} {left.internal_state.current_state}{as_statement1}" + \
312+
f"{select_statement1} ({left.internal_state.get_state()}){as_statement1}" + \
313313
f" {join_type[how]} join {select_statement2}" + \
314-
f"{right.internal_state.current_state}{as_statement2}" + on_query
314+
f"{right.internal_state.get_state()}{as_statement2}" + on_query
315315

316316
if how == 'right':
317317
idx = right_indexer

nzpyida/series.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,10 @@ def column(self):
4040

4141
@column.setter
4242
def column(self, value):
43+
new_columndict = {value: self.internal_state.columndict[self._column]}
4344
self._reset_attributes('columns')
4445
self._column = value
45-
#self.columndict = {value: self._org_columns_names[0]}
46+
self.internal_state.columndict = new_columndict
4647
self.internal_state.update()
4748

4849
@lazy

0 commit comments

Comments
 (0)