Not a constant
This commit is contained in:
parent
aa6568bac2
commit
4ab01c9e47
@ -72,7 +72,7 @@ def duplicated_select(n: parser.Node) -> Tuple[parser.Node, int]:
|
||||
in and
|
||||
'''
|
||||
changes = 0
|
||||
while isinstance(n, parser.UNARY) and n.name == SELECTION and isinstance(n.child, parser.UNARY) and n.child.name == SELECTION:
|
||||
while isinstance(n, parser.Unary) and n.name == SELECTION and isinstance(n.child, parser.Unary) and n.child.name == SELECTION:
|
||||
changes += 1
|
||||
prop = n.prop
|
||||
|
||||
@ -147,7 +147,7 @@ def down_to_unions_subtractions_intersections(n: parser.Node) -> Tuple[parser.No
|
||||
'''
|
||||
changes = 0
|
||||
_o = (UNION, DIFFERENCE, INTERSECTION)
|
||||
if isinstance(n, parser.UNARY) and n.name == SELECTION and n.child.name in _o:
|
||||
if isinstance(n, parser.Unary) and n.name == SELECTION and n.child.name in _o:
|
||||
l = parser.Unary(SELECTION, n.prop, n.child.left)
|
||||
r = parser.Unary(SELECTION, n.prop, n.child.right)
|
||||
|
||||
@ -170,7 +170,7 @@ def duplicated_projection(n: parser.Node) -> Tuple[parser.Node, int]:
|
||||
def selection_inside_projection(n: parser.Node) -> Tuple[parser.Node, int]:
|
||||
'''This function locates things like σ j (π k(R)) and
|
||||
converts them into π k(σ j (R))'''
|
||||
if isinstance(n, parser.UNARY) and n.name == SELECTION and n.child.name == PROJECTION:
|
||||
if isinstance(n, parser.Unary) and n.name == SELECTION and n.child.name == PROJECTION:
|
||||
child = parser.Unary(
|
||||
SELECTION,
|
||||
n.prop,
|
||||
@ -338,7 +338,7 @@ def swap_rename_select(n: parser.Node) -> int:
|
||||
Renaming the attributes used in the
|
||||
selection, so the operation is still valid.'''
|
||||
|
||||
if isinstance(n, parser.UNARY) and n.name == SELECTION and n.child.name == RENAME:
|
||||
if isinstance(n, parser.Unary) and n.name == SELECTION and n.child.name == RENAME:
|
||||
# This is an inverse mapping for the rename
|
||||
renames = {v: k for k, v in n.child.get_rename_prop().items()}
|
||||
|
||||
@ -438,7 +438,7 @@ def selection_and_product(n: parser.Node, rels: Dict[str, Relation]) -> parser.N
|
||||
σ l (σ j (R) * σ i (Q)). Where j contains only attributes belonging to R,
|
||||
i contains attributes belonging to Q and l contains attributes belonging to both'''
|
||||
|
||||
if isinstance(n, parser.UNARY) and n.name == SELECTION and n.child.name in (PRODUCT, JOIN):
|
||||
if isinstance(n, parser.Unary) and n.name == SELECTION and n.child.name in (PRODUCT, JOIN):
|
||||
l_attr = n.child.left.result_format(rels)
|
||||
r_attr = n.child.right.result_format(rels)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user