# HG changeset patch # User Catherine Devlin # Date 1239306848 14400 # Node ID 001d01eeac909bbbfa8264058b73b4e8a0707482 # Parent 545f63b6ef426e4b8d6f02215e343e780d3561be bind vars for postgres diff -r 545f63b6ef42 -r 001d01eeac90 setup.py --- a/setup.py Thu Apr 09 14:42:41 2009 -0400 +++ b/setup.py Thu Apr 09 15:54:08 2009 -0400 @@ -17,7 +17,7 @@ url="http://packages.python.org/sqlpython", packages=find_packages(), include_package_data=True, - install_requires=['pyparsing','cmd2>=0.5.2','cx_Oracle','genshi>=0.5','sqlalchemy'], + install_requires=['pyparsing','cmd2>=0.5.2','cx_Oracle','genshi>=0.5','sqlalchemy','gerald'], keywords = 'client oracle database', license = 'MIT', platforms = ['any'], diff -r 545f63b6ef42 -r 001d01eeac90 sqlpython/sqlpyPlus.py --- a/sqlpython/sqlpyPlus.py Thu Apr 09 14:42:41 2009 -0400 +++ b/sqlpython/sqlpyPlus.py Thu Apr 09 15:54:08 2009 -0400 @@ -655,7 +655,7 @@ self.perror("Specify desired number of rows after terminator (not '%s')" % arg.parsed.suffix) if arg.parsed.terminator == '\\t': rowlimit = rowlimit or self.maxtselctrows - self.varsUsed = self.findBinds(arg, self.binds, bindVarsIn) + self.varsUsed = self.findBinds(arg, bindVarsIn) if self.wildsql: selecttext = self.expandWildSql(arg) else: @@ -1233,7 +1233,7 @@ if arg.startswith(':'): self.do_setbind(arg[1:]) else: - varsUsed = self.findBinds(arg, self.binds, {}) + varsUsed = self.findBinds(arg, {}) try: self.curs.execute('begin\n%s;end;' % arg, varsUsed) except Exception, e: diff -r 545f63b6ef42 -r 001d01eeac90 sqlpython/sqlpython.py --- a/sqlpython/sqlpython.py Thu Apr 09 14:42:41 2009 -0400 +++ b/sqlpython/sqlpython.py Thu Apr 09 15:54:08 2009 -0400 @@ -274,20 +274,20 @@ bindScanner = {'oracle': Parser(pyparsing.Literal(':') + pyparsing.Word( pyparsing.alphanums + "_$#" )), 'postgres': Parser(pyparsing.Literal('%(') + pyparsing.Word(pyparsing.alphanums + "_$#") + ')s')} - def findBinds(self, target, existingBinds, givenBindVars = {}): + def findBinds(self, target, givenBindVars = {}): result = givenBindVars if self.rdbms in self.bindScanner: for finding, startat, endat in self.bindScanner[self.rdbms].scanner.scanString(target): varname = finding[1] try: - result[varname] = existingBinds[varname] + result[varname] = self.binds[varname] except KeyError: if not givenBindVars.has_key(varname): print 'Bind variable %s not defined.' % (varname) return result def default(self, arg): - self.varsUsed = self.findBinds(arg, self.binds, givenBindVars={}) + self.varsUsed = self.findBinds(arg, givenBindVars={}) ending_args = arg.lower().split()[-2:] if 'end' in ending_args: command = '%s %s;'