including small example

in the actual case, I can't find anything as obvious as the equivalent
of 'print t.data' in my code.. but something is triggering these
selects of columns with defaults




from sqlalchemy import MetaData, create_engine, Table, Column, Integer
from sqlalchemy.orm import mapper, sessionmaker, relationship

engine = create_engine('oracle://bob:b...@mig01', echo=True)
meta = MetaData(bind=engine)

ddls = [
"""drop table t""",
"""create table t (id number primary key,
                      data number default null)
"""
]

for ddl in ddls:
    engine.execute(ddl)


t = Table('t', meta, autoload=True, useexisting=True)

meta.create_all()

class T(object):
    pass

session = sessionmaker()()

mapper(T, t)

p = T()
p.id = 1
session.add(p)
session.flush()

print p.data





2010-06-21 11:41:46,168 INFO sqlalchemy.engine.base.Engine.0x...84ec
{'table_name': u'T', 'schema': u'BOB'}
2010-06-21 11:41:46,173 INFO sqlalchemy.engine.base.Engine.0x...84ec
SELECT table_name FROM all_tables WHERE table_name = :name AND owner
= :schema_name
2010-06-21 11:41:46,173 INFO sqlalchemy.engine.base.Engine.0x...84ec
{'name': u'T', 'schema_name': u'BOB'}
2010-06-21 11:41:46,184 INFO sqlalchemy.engine.base.Engine.0x...84ec
BEGIN
2010-06-21 11:41:46,185 INFO sqlalchemy.engine.base.Engine.0x...84ec
INSERT INTO t (id) VALUES (:id)
2010-06-21 11:41:46,186 INFO sqlalchemy.engine.base.Engine.0x...84ec
{'id': 1}
2010-06-21 11:41:46,215 INFO sqlalchemy.engine.base.Engine.0x...84ec
SELECT t.data AS t_data
FROM t
WHERE t.id = :param_1
2010-06-21 11:41:46,215 INFO sqlalchemy.engine.base.Engine.0x...84ec
{'param_1': 1}

On 21 Jun, 11:40, GHZ <geraint.willi...@gmail.com> wrote:
> Hi,
>
> If I create a table with a default.
>
> create table T (id number primary key, data number default NULL)
>
> Then reflect this table.
>
> then using the ORM I trigger an insert, but only into the id column
> and flush()
> then I try to access the 'data' attribute
>
> this causes a select, to get the actual value of 'data'
>
> Is there any simple way to turn this behavior off`..  i.e for
> sqlalchemy to pretend the server default does not exist..?
>
> Thanks.

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalch...@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to