diff --git a/relational/parallel.py b/relational/parallel.py
deleted file mode 100644
index e9e83b1..0000000
--- a/relational/parallel.py
+++ /dev/null
@@ -1,117 +0,0 @@
-# -*- coding: utf-8 -*-
-# Relational
-# Copyright (C) 2009 Salvo "LtWorf" Tomaselli
-#
-# Relational is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-#
-# author Salvo "LtWorf" Tomaselli
-#
-# This module offers capability of executing relational queries in parallel.
-
-import optimizer
-import multiprocessing
-import parser
-
-
-def execute(tree, rels):
- '''This funcion executes a query in parallel.
- Tree is the tree describing the query (usually obtained with
- parser.tree(querystring)
- rels is a dictionary containing the relations associated with the names'''
-
- q = multiprocessing.Queue()
- p = multiprocessing.Process(target=__p_exec__, args=(tree, rels, q,))
- p.start()
- result = q.get()
- p.join()
- return result
-
-
-def __p_exec__(tree, rels, q):
- '''q is the queue used for communication'''
- if tree.kind == parser.RELATION:
- q.put(rels[tree.name])
- elif tree.kind == parser.UNARY:
-
- # Obtain the relation
- temp_q = multiprocessing.Queue()
- __p_exec__(tree.child, rels, temp_q)
- rel = temp_q.get()
-
- # Execute the query
- result = __p_exec_unary__(tree, rel)
- q.put(result)
- elif tree.kind == parser.BINARY:
- left_q = multiprocessing.Queue()
- left_p = multiprocessing.Process(
- target=__p_exec__, args=(tree.left, rels, left_q,))
- right_q = multiprocessing.Queue()
- right_p = multiprocessing.Process(
- target=__p_exec__, args=(tree.right, rels, right_q,))
-
- # Spawn the children
- left_p.start()
- right_p.start()
-
- # Get the left and right relations
- left = left_q.get()
- right = right_q.get()
-
- # Wait for the children to terminate
- left_p.join()
- right_p.join()
-
- result = __p_exec_binary__(tree, left, right)
- q.put(result)
- return
-
-
-def __p_exec_binary__(tree, left, right):
- if tree.name == '*':
- return left.product(right)
- elif tree.name == '-':
- return left.difference(right)
- elif tree.name == 'ᑌ':
- return left.union(right)
- elif tree.name == 'ᑎ':
- return left.intersection(right)
- elif tree.name == '÷':
- return left.division(right)
- elif tree.name == 'ᐅᐊ':
- return left.join(right)
- elif tree.name == 'ᐅLEFTᐊ':
- return left.outer_left(right)
- elif tree.name == 'ᐅRIGHTᐊ':
- return left.outer_right(right)
- else: # tree.name=='ᐅFULLᐊ':
- return left.outer(right)
-
-
-def __p_exec_unary__(tree, rel):
- if tree.name == 'π': # Projection
- tree.prop = tree.prop.replace(' ', '').split(',')
- result = rel.projection(tree.prop)
- elif tree.name == "ρ": # Rename
- # tree.prop='{\"%s\"}' %
- # tree.prop.replace(',','\",\"').replace('➡','\":\"').replace(' ','')
- d = {}
- tree.prop = tree.prop.replace(' ', '')
- for i in tree.prop.split(','):
- rename_ = i.split('➡')
- d[rename_[0]] = rename_[1]
-
- result = rel.rename(d)
- else: # Selection
- result = rel.selection(tree.prop)
- return result