[Sqlalchemy-commits] [1289] sqlalchemy/branches/schema/test: mapper test working with PG
Brought to you by:
zzzeek
From: <co...@sq...> - 2006-04-18 20:00:58
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><style type="text/css"><!-- #msg dl { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; } #msg dt { float: left; width: 6em; font-weight: bold; } #msg dt:after { content:':';} #msg dl, #msg dt, #msg ul, #msg li { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; } #msg dl a { font-weight: bold} #msg dl a:link { color:#fc3; } #msg dl a:active { color:#ff0; } #msg dl a:visited { color:#cc6; } h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; } #msg pre { overflow: auto; background: #ffc; border: 1px #fc0 solid; padding: 6px; } #msg ul, pre { overflow: auto; } #patch { width: 100%; } #patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;} #patch .propset h4, #patch .binary h4 {margin:0;} #patch pre {padding:0;line-height:1.2em;margin:0;} #patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;} #patch .propset .diff, #patch .binary .diff {padding:10px 0;} #patch span {display:block;padding:0 10px;} #patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;} #patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;} #patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;} #patch .lines, .info {color:#888;background:#fff;} --></style> <title>[1289] sqlalchemy/branches/schema/test: mapper test working with PG</title> </head> <body> <div id="msg"> <dl> <dt>Revision</dt> <dd>1289</dd> <dt>Author</dt> <dd>zzzeek</dd> <dt>Date</dt> <dd>2006-04-18 15:00:40 -0500 (Tue, 18 Apr 2006)</dd> </dl> <h3>Log Message</h3> <pre>mapper test working with PG</pre> <h3>Modified Paths</h3> <ul> <li><a href="#sqlalchemybranchesschemalibsqlalchemyansisqlpy">sqlalchemy/branches/schema/lib/sqlalchemy/ansisql.py</a></li> <li><a href="#sqlalchemybranchesschemalibsqlalchemydatabasessqlitepy">sqlalchemy/branches/schema/lib/sqlalchemy/databases/sqlite.py</a></li> <li><a href="#sqlalchemybranchesschemalibsqlalchemysqlpy">sqlalchemy/branches/schema/lib/sqlalchemy/sql.py</a></li> <li><a href="#sqlalchemybranchesschematestmapperpy">sqlalchemy/branches/schema/test/mapper.py</a></li> </ul> </div> <div id="patch"> <h3>Diff</h3> <a id="sqlalchemybranchesschemalibsqlalchemyansisqlpy"></a> <div class="modfile"><h4>Modified: sqlalchemy/branches/schema/lib/sqlalchemy/ansisql.py (1288 => 1289)</h4> <pre class="diff"><span> <span class="info">--- sqlalchemy/branches/schema/lib/sqlalchemy/ansisql.py 2006-04-18 19:39:03 UTC (rev 1288) +++ sqlalchemy/branches/schema/lib/sqlalchemy/ansisql.py 2006-04-18 20:00:40 UTC (rev 1289) </span><span class="lines">@@ -45,7 +45,7 @@ </span><span class="cx"> </span><span class="cx"> class ANSICompiler(sql.Compiled): </span><span class="cx"> """default implementation of Compiled, which compiles ClauseElements into ANSI-compliant SQL strings.""" </span><del>- def __init__(self, dialect, statement, parameters=None, typemap=None, positional=None, paramstyle=None, **kwargs): </del><ins>+ def __init__(self, dialect, statement, parameters=None, **kwargs): </ins><span class="cx"> """constructs a new ANSICompiler object. </span><span class="cx"> </span><span class="cx"> dialect - Dialect to be used </span><span class="lines">@@ -63,7 +63,7 @@ </span><span class="cx"> self.wheres = {} </span><span class="cx"> self.strings = {} </span><span class="cx"> self.select_stack = [] </span><del>- self.typemap = typemap or {} </del><ins>+ self.typemap = {} </ins><span class="cx"> self.isinsert = False </span><span class="cx"> self.isupdate = False </span><span class="cx"> self.bindtemplate = ":%s" </span></span></pre></div> <a id="sqlalchemybranchesschemalibsqlalchemydatabasessqlitepy"></a> <div class="modfile"><h4>Modified: sqlalchemy/branches/schema/lib/sqlalchemy/databases/sqlite.py (1288 => 1289)</h4> <pre class="diff"><span> <span class="info">--- sqlalchemy/branches/schema/lib/sqlalchemy/databases/sqlite.py 2006-04-18 19:39:03 UTC (rev 1288) +++ sqlalchemy/branches/schema/lib/sqlalchemy/databases/sqlite.py 2006-04-18 20:00:40 UTC (rev 1289) </span><span class="lines">@@ -210,9 +210,6 @@ </span><span class="cx"> table.columns[col]._set_primary_key() </span><span class="cx"> </span><span class="cx"> class SQLiteCompiler(ansisql.ANSICompiler): </span><del>- def __init__(self, *args, **params): - params.setdefault('paramstyle', 'named') - ansisql.ANSICompiler.__init__(self, *args, **params) </del><span class="cx"> def limit_clause(self, select): </span><span class="cx"> text = "" </span><span class="cx"> if select.limit is not None: </span></span></pre></div> <a id="sqlalchemybranchesschemalibsqlalchemysqlpy"></a> <div class="modfile"><h4>Modified: sqlalchemy/branches/schema/lib/sqlalchemy/sql.py (1288 => 1289)</h4> <pre class="diff"><span> <span class="info">--- sqlalchemy/branches/schema/lib/sqlalchemy/sql.py 2006-04-18 19:39:03 UTC (rev 1288) +++ sqlalchemy/branches/schema/lib/sqlalchemy/sql.py 2006-04-18 20:00:40 UTC (rev 1289) </span><span class="lines">@@ -456,13 +456,24 @@ </span><span class="cx"> return multiparams[0] </span><span class="cx"> else: </span><span class="cx"> return params </span><del>- def compile(self, engine=None, parameters=None, typemap=None, compiler=None, dialect=None): - """compiles this SQL expression using its underlying Engine to produce - a Compiler object. Alternatively, a Compiler can be provided, or provided via a Dialect. - If no Compiler/Dialect/Engine arguments are given and this object is not bound to an Engine, - an ANSICompiler is used with an ANSIDialect. </del><ins>+ def compile(self, engine=None, parameters=None, compiler=None, dialect=None): + """compiles this SQL expression. + + Uses the given Compiler, or the given Dialect or Engine to create a Compiler. If no compiler + arguments are given, tries to use the underlying Engine this ClauseElement is bound + to to create a Compiler, if any. Finally, if there is no bound Engine, uses an ANSIDialect + to create a default Compiler. + </ins><span class="cx"> bindparams is a dictionary representing the default bind parameters to be used with </span><del>- the statement. """ </del><ins>+ the statement. if the bindparams is a list, it is assumed to be a list of dictionaries + and the first dictionary in the list is used with which to compile against. + The bind parameters can in some cases determine the output of the compilation, such as for UPDATE + and INSERT statements the bind parameters that are present determine the SET and VALUES clause of + those statements. + """ + + if (isinstance(parameters, list) or isinstance(parameters, tuple)): + parameters = parameters[0] </ins><span class="cx"> </span><span class="cx"> if compiler is None: </span><span class="cx"> if dialect is not None: </span></span></pre></div> <a id="sqlalchemybranchesschematestmapperpy"></a> <div class="modfile"><h4>Modified: sqlalchemy/branches/schema/test/mapper.py (1288 => 1289)</h4> <pre class="diff"><span> <span class="info">--- sqlalchemy/branches/schema/test/mapper.py 2006-04-18 19:39:03 UTC (rev 1288) +++ sqlalchemy/branches/schema/test/mapper.py 2006-04-18 20:00:40 UTC (rev 1289) </span><span class="lines">@@ -391,8 +391,9 @@ </span><span class="cx"> o2 = l[2] </span><span class="cx"> print o2.description </span><span class="cx"> </span><ins>+ orderby = str(orders.default_order_by()[0].compile(engine=db)) </ins><span class="cx"> self.assert_sql(db, go, [ </span><del>- ("SELECT orders.order_id AS orders_order_id, orders.user_id AS orders_user_id, orders.isopen AS orders_isopen FROM orders ORDER BY orders.%s" % orders.default_order_by()[0].key, {}), </del><ins>+ ("SELECT orders.order_id AS orders_order_id, orders.user_id AS orders_user_id, orders.isopen AS orders_isopen FROM orders ORDER BY %s" % orderby, {}), </ins><span class="cx"> ("SELECT orders.description AS orders_description FROM orders WHERE orders.order_id = :orders_order_id", {'orders_order_id':3}) </span><span class="cx"> ]) </span><span class="cx"> </span><span class="lines">@@ -419,8 +420,10 @@ </span><span class="cx"> l = m.select() </span><span class="cx"> o2 = l[2] </span><span class="cx"> print o2.opened, o2.description, o2.userident </span><ins>+ + orderby = str(orders.default_order_by()[0].compile(db)) </ins><span class="cx"> self.assert_sql(db, go, [ </span><del>- ("SELECT orders.order_id AS orders_order_id FROM orders ORDER BY orders.%s" % orders.default_order_by()[0].key, {}), </del><ins>+ ("SELECT orders.order_id AS orders_order_id FROM orders ORDER BY %s" % orderby, {}), </ins><span class="cx"> ("SELECT orders.user_id AS orders_user_id, orders.description AS orders_description, orders.isopen AS orders_isopen FROM orders WHERE orders.order_id = :orders_order_id", {'orders_order_id':3}) </span><span class="cx"> ]) </span><span class="cx"> </span><span class="lines">@@ -431,8 +434,10 @@ </span><span class="cx"> def go(): </span><span class="cx"> l = m2.select() </span><span class="cx"> print l[2].user_id </span><ins>+ + orderby = str(orders.default_order_by()[0].compile(db)) </ins><span class="cx"> self.assert_sql(db, go, [ </span><del>- ("SELECT orders.order_id AS orders_order_id, orders.description AS orders_description, orders.isopen AS orders_isopen FROM orders ORDER BY orders.%s" % orders.default_order_by()[0].key, {}), </del><ins>+ ("SELECT orders.order_id AS orders_order_id, orders.description AS orders_description, orders.isopen AS orders_isopen FROM orders ORDER BY %s" % orderby, {}), </ins><span class="cx"> ("SELECT orders.user_id AS orders_user_id FROM orders WHERE orders.order_id = :orders_order_id", {'orders_order_id':3}) </span><span class="cx"> ]) </span><span class="cx"> objectstore.clear() </span><span class="lines">@@ -441,7 +446,7 @@ </span><span class="cx"> l = m3.select() </span><span class="cx"> print l[3].user_id </span><span class="cx"> self.assert_sql(db, go, [ </span><del>- ("SELECT orders.order_id AS orders_order_id, orders.user_id AS orders_user_id, orders.description AS orders_description, orders.isopen AS orders_isopen FROM orders ORDER BY orders.%s" % orders.default_order_by()[0].key, {}), </del><ins>+ ("SELECT orders.order_id AS orders_order_id, orders.user_id AS orders_user_id, orders.description AS orders_description, orders.isopen AS orders_isopen FROM orders ORDER BY %s" % orderby, {}), </ins><span class="cx"> ]) </span><span class="cx"> </span><span class="cx"> def testdeepoptions(self): </span></span></pre> </div> </div> </body> </html> |