diff --git a/database/database_table.py b/database/database_table.py index b785db32c1ec698bebf9aa7899bb17de0068cab9..5ada6e8bac6fd58742067a2c601bc3981435474e 100644 --- a/database/database_table.py +++ b/database/database_table.py @@ -818,6 +818,7 @@ class DatabaseTable(Table): case = case.strip("~") # doesn't need "~" anymore str_list = re.findall(r'("[\w]"|[\w.]+)', case) + print('-----------------\n',str_list,'\n--------------------') for substr in str_list: if '.' in substr: # We have a var from another table table = substr.split('.')[0] @@ -836,7 +837,17 @@ class DatabaseTable(Table): var_target = self._get_variable_target(var_name.strip('"'), year) if var_target is not None: var_db = self._protocol.dbcolumn_from_target(var_target)[0] - case = case.replace(var_name, var_db) + case_tokens = case.split(" ") + case_tokens = case.split(' ') + for i in range(0, len(case_tokens)): + # remove everything prior to first, and after last quotation mark (including them) + token_varname = re.sub(r'(^[^\"]*[\"])', '', case_tokens[i]) + token_varname = re.sub(r'([\"][^\"]*$)', '', token_varname) + if (token_varname == var_name): + case_tokens[i] = case_tokens[i].replace(var_name, var_db) + + ch = ' ' + case = ch.join(case_tokens) if table is not self and table not in referred_tables: referred_tables.append(table)