- Can execute queries
git-svn-id: http://galileo.dmi.unict.it/svn/relational/trunk@228 014f5005-505e-4b48-8d0a-63407b615a7c
This commit is contained in:
@@ -36,8 +36,9 @@ class SimpleCompleter(object):
|
|||||||
|
|
||||||
def add_completion(self,option):
|
def add_completion(self,option):
|
||||||
'''Adds one string to the list of the valid completion options'''
|
'''Adds one string to the list of the valid completion options'''
|
||||||
self.options.append(option)
|
if option not in self.options:
|
||||||
self.options.sort()
|
self.options.append(option)
|
||||||
|
self.options.sort()
|
||||||
|
|
||||||
def remove_completion(self,option):
|
def remove_completion(self,option):
|
||||||
'''Removes one completion from the list of the valid completion options'''
|
'''Removes one completion from the list of the valid completion options'''
|
||||||
@@ -72,7 +73,6 @@ relations={}
|
|||||||
completer=SimpleCompleter(['LIST','LOAD ','UNLOAD ','HELP','QUIT','SAVE '])
|
completer=SimpleCompleter(['LIST','LOAD ','UNLOAD ','HELP','QUIT','SAVE '])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def load_relation(filename,defname=None):
|
def load_relation(filename,defname=None):
|
||||||
if not os.path.isfile(filename):
|
if not os.path.isfile(filename):
|
||||||
print >> sys.stderr, "%s is not a file" % filename
|
print >> sys.stderr, "%s is not a file" % filename
|
||||||
@@ -119,7 +119,45 @@ def exec_line(command):
|
|||||||
pass
|
pass
|
||||||
#elif command=='SAVE': //TODO
|
#elif command=='SAVE': //TODO
|
||||||
else:
|
else:
|
||||||
print "Invalid command %s" % command
|
exec_query( command)
|
||||||
|
|
||||||
|
def exec_query(command):
|
||||||
|
|
||||||
|
#Finds the name in where to save the query
|
||||||
|
|
||||||
|
parts=command.split('=',1)
|
||||||
|
|
||||||
|
if len(parts)>1:
|
||||||
|
assignment=True
|
||||||
|
for i in parser.op_functions:
|
||||||
|
if i in parts[0]:
|
||||||
|
#If we are here, there is no explicit assignment
|
||||||
|
assignment=False
|
||||||
|
if assignment:
|
||||||
|
relname=parts[0]
|
||||||
|
query=parts[1]
|
||||||
|
else:
|
||||||
|
relname='last_'
|
||||||
|
query=command
|
||||||
|
else:
|
||||||
|
relname='last_'
|
||||||
|
query=command
|
||||||
|
|
||||||
|
|
||||||
|
#Execute query
|
||||||
|
try:
|
||||||
|
pyquery=parser.parse(query)
|
||||||
|
result=eval(pyquery,relations)
|
||||||
|
print "-> query: %s" % pyquery
|
||||||
|
print result
|
||||||
|
|
||||||
|
relations[relname]=result
|
||||||
|
|
||||||
|
completer.add_completion(relname)
|
||||||
|
except Exception, e:
|
||||||
|
print e
|
||||||
|
|
||||||
|
|
||||||
def main(files=[]):
|
def main(files=[]):
|
||||||
readline.set_completer(completer.complete)
|
readline.set_completer(completer.complete)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user