# HG changeset patch # User catherine.devlin@gmail.com # Date 1285249348 14400 # Node ID 6f6e43ed656cebb1b094c5e20473b60b1b087b69 # Parent fcaf28842db7ba1fc41f6379bf28c95ac51a2334 only one case converter per db adapter diff -r fcaf28842db7 -r 6f6e43ed656c sqlpython/connections.py --- a/sqlpython/connections.py Wed Sep 22 23:48:20 2010 -0400 +++ b/sqlpython/connections.py Thu Sep 23 09:42:28 2010 -0400 @@ -195,7 +195,7 @@ return '=' def objects(self, target, opts): match = self.identifier_regex.search(target) - object_type = self.object_type_case(match.group('object_type') or '%') + object_type = self.name_case(match.group('object_type') or '%') names = [n.strip() or '%' for n in self.name_case(match.group('remainder').replace('*', '%').replace('?', '_')).split('.')] + ['%', '%'] replacements = {'name1_comparitor': self.comparitor(names[0]), 'name2_comparitor': self.comparitor(names[1]), @@ -294,8 +294,6 @@ default_port = 5432 def name_case(self, s): return s.lower() - def object_type_case(self, s): - return s.upper() def set_defaults(self): self.port = os.getenv('PGPORT') or self.default_port self.database = os.getenv('ORACLE_SID') @@ -324,13 +322,15 @@ NULL AS synonym_name FROM pg_namespace ns JOIN pg_class c ON (ns.oid = c.relnamespace) - WHERE ( ns.nspname = %%(schema)s - OR position(ns.nspname in (SELECT setting FROM pg_settings WHERE name = 'search_path')) > 0 - OR ( %(all)s - AND ns.nspname = 'pg_catalog' - ) + WHERE ( ( ns.nspname = %%(schema)s + OR position(ns.nspname in (SELECT setting FROM pg_settings WHERE name = 'search_path')) > 0 + OR %(all)s + ) + AND c.relname %(name1_comparitor)s %%(name1)s ) - AND c.relname %(name1_comparitor)s %%(name1)s + OR ( ns.nspname %(name1_comparitor)s %%(name1)s + AND c.relname %(name2_comparitor)s %%(name2)s + ) ) subq WHERE object_type %(object_type_comparitor)s %%(object_type)s ORDER BY object_type, schema, object_name %(sort)s""" @@ -345,8 +345,9 @@ WHERE owner %s %s AND UPPER(text) LIKE %s""" gerald_types = {'table': gerald.postgres_schema.Table, - 'view': gerald.postgres_schema.View} - + 'view': gerald.postgres_schema.View, + 'trigger': gerald.postgres_schema.Trigger} + class OracleInstance(DatabaseInstance): rdbms = 'oracle' default_port = 1521 @@ -354,7 +355,6 @@ re.IGNORECASE) def name_case(self, s): return s.upper() - object_type_case = name_case def uri(self): if self.hostname: uri = '%s://%s:%s@%s:%s/%s' % (self.rdbms, self.username, self.password, @@ -432,7 +432,14 @@ 'Puts a tuple of (name, value) pairs into the bind format desired by cx_Oracle' return dict((b[0], b[1].upper()) for b in binds) gerald_types = {'TABLE': gerald.oracle_schema.Table, - 'VIEW': gerald.oracle_schema.View} + 'VIEW': gerald.oracle_schema.View, + 'TRIGGER': gerald.oracle_schema.Trigger, + 'SEQUENCE': gerald.oracle_schema.Sequence, + 'PACKAGE': gerald.oracle_schema.Package, + 'DATABASE LINK': gerald.oracle_schema.DatabaseLink, + 'FUNCTION': gerald.oracle_schema.CodeObject, + 'PROCEDURE': gerald.oracle_schema.CodeObject + } if __name__ == '__main__': diff -r fcaf28842db7 -r 6f6e43ed656c sqlpython/sqlpyPlus.py --- a/sqlpython/sqlpyPlus.py Wed Sep 22 23:48:20 2010 -0400 +++ b/sqlpython/sqlpyPlus.py Thu Sep 23 09:42:28 2010 -0400 @@ -884,7 +884,8 @@ txt = centeredSlice(txt, center=opts.num+1, width=opts.width) txt = '\n'.join(txt) else: - txt = 'REMARK BEGIN %s/%s/%s\n%s\nREMARK END\n' % (owner, object_type, name, txt) + txt = 'REMARK BEGIN %(object_label)s\n%(txt)s\nREMARK END %(object_label)s\n' % { + 'object_label': self.object_label(object_type, owner, name, None), 'txt': txt} self.poutput(txt) if opts.dump: self.stdout.close()