From 88efcf0b78ca58bd2bff386ebfa3cfb9a33f26f8 Mon Sep 17 00:00:00 2001 From: LtWorf Date: Thu, 30 Apr 2009 17:41:05 +0000 Subject: [PATCH] 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 --- relational/optimizations.py | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/relational/optimizations.py b/relational/optimizations.py index 60d2374..ea45533 100644 --- a/relational/optimizations.py +++ b/relational/optimizations.py @@ -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