i need to reduce sets, so i need selection pushed down in each case

git-svn-id: http://galileo.dmi.unict.it/svn/relational/trunk@143 014f5005-505e-4b48-8d0a-63407b615a7c
master
LtWorf 2009-04-30 17:41:05 +07:00
parent 723c63641d
commit 88efcf0b78
1 changed files with 6 additions and 13 deletions

@ -46,11 +46,7 @@ def duplicated_select(n):
def down_to_unions_subtractions_intersections(n):
'''This funcion locates things like σ i==2 (c d), where the union
can be a subtraction and an intersection and replaces them with
σ i==2 (c) σ i==2(d).
If the operator is not Union and the right expression is a relation,
the resulting expression will be: σ i==2 (c) - d.
σ i==2 (c) σ i==2(d).
'''
changes=0
_o=('','-','')
@ -61,14 +57,11 @@ def down_to_unions_subtractions_intersections(n):
left.name=n.name
left.child=n.child.left
left.kind=optimizer.UNARY
if n.child.name=='' or n.child.right.kind!=optimizer.RELATION:
right=optimizer.node()
right.prop=n.prop
right.name=n.name
right.child=n.child.right
right.kind=optimizer.UNARY
else:
right=n.child.right
right=optimizer.node()
right.prop=n.prop
right.name=n.name
right.child=n.child.right
right.kind=optimizer.UNARY
n.name=n.child.name
n.left=left