1424 sql = '%s%s%s'% (lhs.accept(self), operator, rhs.accept(self)) |
1424 sql = '%s%s%s'% (lhs.accept(self), operator, rhs.accept(self)) |
1425 if optional is None: |
1425 if optional is None: |
1426 return sql |
1426 return sql |
1427 leftvars = cmp.children[0].get_nodes(VariableRef) |
1427 leftvars = cmp.children[0].get_nodes(VariableRef) |
1428 assert len(leftvars) == 1 |
1428 assert len(leftvars) == 1 |
1429 leftalias = self._var_table(leftvars[0].variable.stinfo['attrvar']) |
1429 if leftvars[0].variable.stinfo['attrvar'] is None: |
|
1430 assert isinstance(leftvars[0].variable, ColumnAlias) |
|
1431 leftalias = leftvars[0].variable._q_sqltable |
|
1432 else: |
|
1433 leftalias = self._var_table(leftvars[0].variable.stinfo['attrvar']) |
1430 rightvars = cmp.children[1].get_nodes(VariableRef) |
1434 rightvars = cmp.children[1].get_nodes(VariableRef) |
1431 assert len(rightvars) == 1 |
1435 assert len(rightvars) == 1 |
1432 rightalias = self._var_table(rightvars[0].variable.stinfo['attrvar']) |
1436 if rightvars[0].variable.stinfo['attrvar'] is None: |
|
1437 assert isinstance(rightvars[0].variable, ColumnAlias) |
|
1438 rightalias = rightvars[0].variable._q_sqltable |
|
1439 else: |
|
1440 rightalias = self._var_table(rightvars[0].variable.stinfo['attrvar']) |
1433 if optional == 'right': |
1441 if optional == 'right': |
1434 self._state.replace_tables_by_outer_join( |
1442 self._state.replace_tables_by_outer_join( |
1435 leftalias, rightalias, 'LEFT', sql) |
1443 leftalias, rightalias, 'LEFT', sql) |
1436 elif optional == 'left': |
1444 elif optional == 'left': |
1437 self._state.replace_tables_by_outer_join( |
1445 self._state.replace_tables_by_outer_join( |