@@ -67,7 +67,7 @@ def concat(objs: List[IdaDataFrame], axis: int=0, join: str='outer', keys: List[
67
67
else :
68
68
case_statments = ["" ] * len (objs )
69
69
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 )) ]
71
71
query = "SELECT * FROM " + " UNION ALL SELECT * FROM " .join (names_list )
72
72
else :
73
73
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[
86
86
87
87
columns_queries = ['SELECT ' + case_statments [i ] +
88
88
', ' .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 } "
90
90
for i in range (len (objs ))
91
91
]
92
92
query = " UNION ALL " .join (columns_queries )
@@ -298,20 +298,20 @@ def merge(left: IdaDataFrame, right: IdaDataFrame, how: str='inner', on=None,
298
298
if indicator :
299
299
case_statement = ", case when t1=1 and t2=1 then 'both' when t1=1 then 'left_only'" + \
300
300
"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 "
305
305
else :
306
306
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"
311
311
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 } " + \
313
313
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
315
315
316
316
if how == 'right' :
317
317
idx = right_indexer
0 commit comments