server/sources/rql2sql.py
branchstable
changeset 7902 2ada3052e626
parent 7734 59fea81647e5
child 8238 087bb529035c
equal deleted inserted replaced
7900:e9b79f5c3571 7902:2ada3052e626
  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(