diff --git a/relational/sql.py b/relational/sql.py
deleted file mode 100644
index 63d9822..0000000
--- a/relational/sql.py
+++ /dev/null
@@ -1,191 +0,0 @@
-# -*- coding: utf-8 -*-
-# Relational
-# Copyright (C) 2009 Salvo "LtWorf" Tomaselli
-#
-# Relation 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 converts SQL queries into relational algebra expressions'''
-
-def stub():
- "NATURAL JOIN"
- "CROSS JOIN" ,
-def extract_select(query,internal=''):
-
-
- #Handling select *
- if len(query)==1 and query[0]=='*':
- return ''
- #Create dictionary for projection and rename .
- #Keys are fields to project. Value is none if no rename is needed
- pr_dic={}
- key=None
- for i in query:
- if i.lower() ==',':
- key=None
- elif key==None:
- pr_dic[i]=None
- key=i
- else:
- pr_dic[key]=i
-
- #Preparing string for projection and rename
- ren=''
- proj=''
- for i in pr_dic.iterkeys():
- proj+=',%s'%i
- if pr_dic[i]!=None:
- ren+=',%s➡%s'%(i,pr_dic[i])
- #Removes starting commas
- ren=ren[1:]
- proj=proj[1:]
-
- result='π %s (%s)' % (proj,internal)
- if len(ren)!=0:
- result='ρ %s (%s)' % (ren,result)
- return result
-def extract_from(query):
- return query
-
-def sql2relational(query):
- query=query.replace('\n',' ').replace(',',' , ')
-
- tokens=[]
-
- t=query.split(' ')
- escape=False
- for i in range(len(t)):
- tok=t[i].lower().strip()
- if tok=='from' and not escape:
- break
-
- if tok in ('select','as',','):
- escape=True
- else:
- escape=False
-
- return extract_select(t[1:i])
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-class table(object):
- def __init__(self):
- self.attr=[]
- self.realname=None
- pass
-
-
-
-
-
-sqlops=('SELECT','FROM','WHERE',',',';')
-
-import optimizations
-
-
-if __name__=="__main__":
-
- query="SELECT * FROM a AS b,a WHERE a.id!= b.id and a.age<12 or b.sucation==4 or d=3;"
-
- query=query.replace(',',' , ').replace(';',' ; ')
- print query
- parts=query.split(' ')
- tokens=[]
-
- temp=''
- lastop=None
- for i in parts:
- if i in sqlops:
- # TODO must tokenize (blabla(bla)) as a single token
- if lastop == 'WHERE': #Where is a special case, must tokenize all the stuff
- for j in optimizations.tokenize_select(temp):
- tokens.append(j.strip())
- else:
- tokens.append(temp.strip())
- tokens.append(i.strip())
- temp=''
- lastop=i
- else:
- temp+=i+' '
-
- tokens=tokens[1:] #Removes futile 1st empty element
- print tokens
-
-
-
- rels={}
-
- from_=[]
- where_=[]
- select_=[]
-
-
- for i in tokens:
- if i in ('SELECT','FROM','WHERE'):
- last=i
- continue
-
-
- if last=='FROM':
- if ' AS ' in i:
- parts=i.split(' AS ')
- rels[parts[1].strip()]=table()
- rels[parts[1].strip()].realname=parts[0].strip()
- from_.append(parts[1].strip())
- pass
- else:
- if i!=',':
- rels[i.strip()]=table()
- from_.append(i.strip())
- pass
-
- elif last=='WHERE':
- where_.append(i)
- if i in optimizations.sel_op:
- continue
- if '.' in i:
- parts=i.split('.',1)
- if parts[1] not in rels[parts[0]].attr:
- rels[parts[0]].attr.append(parts[1])
- elif last=='SELECT':
- # TODO should do like the same of WHERE but supporting AS too
- pass
-
-
-
- for i in rels.keys():
- print "========" + i + "========"
- print rels[i].attr
- print rels[i].realname
-
- print from_
- for i in from_:
- if i in rels.keys():
- print i
-
- #print sql2relational('SELECT a,c AS q FROM from;')
\ No newline at end of file