# HG changeset patch # User devlinjs@FA7CZA6N1254998.wrightpatterson.afmc.ds.af.mil # Date 1202138409 18000 # Node ID 05c20d6bcec41431cdec3991409073aa6800c3d0 # Parent 33c9bc61db660b175d1f4383eacd391fdecac7a5 picking up from hiatus diff -r 33c9bc61db66 -r 05c20d6bcec4 sqlpyPlus.py --- a/sqlpyPlus.py Fri Jan 18 15:37:45 2008 -0500 +++ b/sqlpyPlus.py Mon Feb 04 10:20:09 2008 -0500 @@ -341,8 +341,10 @@ class sqlpyPlus(sqlpython.sqlpython): defaultExtension = 'sql' + shortcuts = {'?': 'help', '@': 'getrun', '!': 'shell', ':': 'setbind', '\\': 'psql'} multilineCommands = '''select insert update delete tselect create drop alter'''.split() + defaultFileName = 'afiedt.buf' def __init__(self): sqlpython.sqlpython.__init__(self) self.binds = CaselessDict() @@ -357,7 +359,6 @@ self.sqlBuffer.append(self.query) # overrides cmd's parseline - shortcuts = {'?': 'help', '@': 'getrun', '!': 'shell', ':': 'setbind', '\\': 'psql'} def parseline(self, line): """Parse the line into a command name and a string containing the arguments. Returns a tuple containing (command, args, line). @@ -482,6 +483,8 @@ else: return statement, None, None + legalOracle = re.compile('[a-zA-Z_$#]') + def do_select(self, arg, bindVarsIn=None, override_terminator=None): """Fetch rows from a table. @@ -511,7 +514,9 @@ elif self.rc == 1: print '\n1 row selected.\n' if self.autobind: - self.binds.update(dict(zip([d[0] for d in self.desc], self.rows[0]))) + self.binds.update(dict(zip([''.join(l for l in d[0] if l.isalnum()) for d in self.desc], self.rows[0]))) + if len(self.desc) == 1: + self.binds['_'] = self.rows[0][0] elif self.rc < self.maxfetch: print '\n%d rows selected.\n' % self.rc else: