diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2011-08-22 11:12:36 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2011-08-22 11:12:36 -0400 |
commit | d3c1f245efb22b45c77561345346469cf6a82ddd (patch) | |
tree | d0a403d74c779e8a9f130f5a6b83ad67bd589189 /lib/sqlalchemy/sql/util.py | |
parent | 647a28a03e21c70c2195c2a0ea6f6c3e21d72958 (diff) | |
download | sqlalchemy-d3c1f245efb22b45c77561345346469cf6a82ddd.tar.gz |
- Improvement to multi-param statement logging,
long lists of bound parameter sets will be
compressed with an informative indicator
of the compression taking place. Exception
messages use the same improved formatting.
[ticket:2243]
Diffstat (limited to 'lib/sqlalchemy/sql/util.py')
-rw-r--r-- | lib/sqlalchemy/sql/util.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/lib/sqlalchemy/sql/util.py b/lib/sqlalchemy/sql/util.py index fa65070aa..61a95d764 100644 --- a/lib/sqlalchemy/sql/util.py +++ b/lib/sqlalchemy/sql/util.py @@ -170,6 +170,28 @@ def _quote_ddl_expr(element): else: return repr(element) +class _repr_params(object): + """A string view of bound parameters, truncating + display to the given number of 'multi' parameter sets. + + """ + def __init__(self, params, batches): + self.params = params + self.batches = batches + + def __repr__(self): + if isinstance(self.params, (list, tuple)) and \ + len(self.params) > self.batches and \ + isinstance(self.params[0], (list, dict, tuple)): + return ' '.join(( + repr(self.params[:self.batches - 2])[0:-1], + " ... displaying %i of %i total bound parameter sets ... " % (self.batches, len(self.params)), + repr(self.params[-2:])[1:] + )) + else: + return repr(self.params) + + def expression_as_ddl(clause): """Given a SQL expression, convert for usage in DDL, such as CREATE INDEX and CHECK CONSTRAINT. |