equal
deleted
inserted
replaced
426 for compnode in tocheck: |
426 for compnode in tocheck: |
427 parents = set() |
427 parents = set() |
428 p = compnode.parent |
428 p = compnode.parent |
429 oor = None |
429 oor = None |
430 while not isinstance(p, Select): |
430 while not isinstance(p, Select): |
431 if p in ors: |
431 if p in ors or p is None: # p is None for nodes already in fakehaving |
432 break |
432 break |
433 if isinstance(p, Or): |
433 if isinstance(p, Or): |
434 oor = p |
434 oor = p |
435 p = p.parent |
435 p = p.parent |
436 else: |
436 else: |
437 node = oor or compnode |
437 node = oor or compnode |
438 if not node in fakehaving: |
438 fakehaving.append(node) |
439 fakehaving.append(node) |
439 node.parent.remove(node) |
440 compnode.parent.remove(node) |
|
441 return fakehaving |
440 return fakehaving |
442 |
441 |
443 class SQLGenerator(object): |
442 class SQLGenerator(object): |
444 """ |
443 """ |
445 generation of SQL from the fully expanded RQL syntax tree |
444 generation of SQL from the fully expanded RQL syntax tree |