> -----Original Message-----
> From: sqlalchemy@googlegroups.com [mailto:sqlalch...@googlegroups.com]
> On Behalf Of Michael Bayer
> Sent: Thursday, February 11, 2010 1:26 PM
> To: sqlalchemy@googlegroups.com
> Subject: RE: [sqlalchemy] Warnings take a really long time /
> NotImplementedError
>
> Jeff Peterson wrote:
> > The view name itself isn't but the names of all the tables that make
> up
> > that view are.  So I guess that must be why.
>
> It is only looking at the columns declared in your view - the Table
> reflection logic doesn't actually look at the original definition of
> the
> view (there is a function for that available but that's not what you're
> using here).
>
> I'm not familiar with what Oracle does here but if it places view
> columns
> into ALL_CONS_COLUMNS corresponding to the table column they represent,
> that would be the effect.  But it seems strange that would be the case,
> since there's no "constraint" on your view.
>
> The other possibility is that you are actually reflecting tables
> somewhere
> else.

If I am it's not on purpose. ;)  I was able to make one observation 
though...during my test, trying to get all the kinks worked out I setup 2 
connection strings, 1) the schema owner (who has rights to everything) and 2) 
my limited user that only has select rights on certain views.  When this 
happens, I am connected as the schema user.  When connected as the limited user 
it's lightning fast (I commented out the create code in the lib, I can't create 
new tables as it sits but it'll reflect just fine). So, bottom line is, despite 
the strangeness, I guess I can, just not worry about it, at least for now.  But 
it's clear that when it can't touch those tables it doesn't perform those 
commands.

>
>
> >
> > --
> > Jeffrey D Peterson
> > Webmaster
> > Crary Industries, Inc.
> >
> >
> >> -----Original Message-----
> >> From: sqlalchemy@googlegroups.com
> [mailto:sqlalch...@googlegroups.com]
> >> On Behalf Of Michael Bayer
> >> Sent: Thursday, February 11, 2010 12:59 PM
> >> To: sqlalchemy@googlegroups.com
> >> Subject: RE: [sqlalchemy] Warnings take a really long time /
> >> NotImplementedError
> >>
> >> Jeff Peterson wrote:
> >> > That is the troubling part, I am reflecting a view, and yet it is
> >> still
> >> > touching all those tables in the DB for schema='CRAR1APP'
> >>
> >> does the name of your view appear at all in
> ALL_CONS_COLUMNS.TABLE_NAME
> >> ?
> >> that's the only way reflection of a view could get the name of a
> table
> >> to
> >> reflect.    if you turn on echo='debug' or set "sqlalchemy.engine"
> to
> >> DEBUG level logging, you'd see all the rows returned from every
> query.
> >>
> >>
> >> >
> >> > --
> >> > Jeffrey D Peterson
> >> > Webmaster
> >> > Crary Industries, Inc.
> >> >
> >> >
> >> >> -----Original Message-----
> >> >> From: sqlalchemy@googlegroups.com
> >> [mailto:sqlalch...@googlegroups.com]
> >> >> On Behalf Of Michael Bayer
> >> >> Sent: Thursday, February 11, 2010 12:05 PM
> >> >> To: sqlalchemy@googlegroups.com
> >> >> Subject: RE: [sqlalchemy] Warnings take a really long time /
> >> >> NotImplementedError
> >> >>
> >> >> I thought you were reflecting a view ?  a table will fan out to
> all
> >> of
> >> >> its
> >> >> constraints, yes.
> >> >>
> >> >>
> >> >> Jeff Peterson wrote:
> >> >> > Right, and there is that same code outputted  for every table
> in
> >> the
> >> >> > schema, when reflecting that one view.  What I posted was just
> the
> >> >> one
> >> >> > snippet, it is repeated over and over for each different table.
> >> >> >
> >> >> > --
> >> >> > Jeffrey D Peterson
> >> >> > Webmaster
> >> >> > Crary Industries, Inc.
> >> >> >
> >> >> >> -----Original Message-----
> >> >> >> From: sqlalchemy@googlegroups.com
> >> >> [mailto:sqlalch...@googlegroups.com]
> >> >> >> On Behalf Of Michael Bayer
> >> >> >> Sent: Thursday, February 11, 2010 11:46 AM
> >> >> >> To: sqlalchemy@googlegroups.com
> >> >> >> Subject: RE: [sqlalchemy] Warnings take a really long time /
> >> >> >> NotImplementedError
> >> >> >>
> >> >> >> that SQL output is specific to 'table_name':
> >> >> 'CFA_CASH_FLOW_STATUS_TAB'
> >> >> >> and 'table_name': 'CFA_CASH_FLOW_TAB'.  that's two tables.
> >> >> >>
> >> >> >>
> >> >> >> Jeff Peterson wrote:
> >> >> >> >
> >> >> >> >
> >> >> >> > --
> >> >> >> > Jeffrey D Peterson
> >> >> >> > Webmaster
> >> >> >> > Crary Industries, Inc.
> >> >> >> >
> >> >> >> > From: sqlalchemy@googlegroups.com
> >> >> >> [mailto:sqlalch...@googlegroups.com] On
> >> >> >> > Behalf Of Michael Bayer
> >> >> >> > Sent: Wednesday, February 10, 2010 6:30 PM
> >> >> >> > To: sqlalchemy@googlegroups.com
> >> >> >> > Subject: Re: [sqlalchemy] Warnings take a really long time /
> >> >> >> > NotImplementedError
> >> >> >> >
> >> >> >> >
> >> >> >> > On Feb 10, 2010, at 6:05 PM, Jeff Peterson wrote:
> >> >> >> >
> >> >> >> >
> >> >> >> >
> >> >> >> > It's touching a ton of tables, hundreds...if I had to guess
> I'd
> >> >> say
> >> >> >> every
> >> >> >> > table in the schema.  The reasons for this are unknown to
> me,
> >> >> >> certainly
> >> >> >> > all those tables are not related specifically to the single
> >> view I
> >> >> am
> >> >> >> > attempting to reflect.
> >> >> >> >
> >> >> >> > that shouldn't be possible on a single table reflect, if its
> a
> >> >> view.
> >> >> >> > Views have no foreign key metadata so it would have no
> reason
> >> to
> >> >> go
> >> >> >> > anywhere else.   you'd have to provide more specifics in
> order
> >> for
> >> >> us
> >> >> >> to
> >> >> >> > see how that might be reproduced.
> >> >> >> >
> >> >> >> > Seeing this for basicall(I think) everything in the Schema:
> >> >> >> >
> >> >> >> >  INFO [sqlalchemy.engine.base.Engine.0x...5bcc]
> >> >> >> >         SELECT a.index_name, a.column_name, b.uniqueness
> >> >> >> >         FROM ALL_IND_COLUMNS a,
> >> >> >> >         ALL_INDEXES b
> >> >> >> >         WHERE
> >> >> >> >             a.index_name = b.index_name
> >> >> >> >             AND a.table_owner = b.table_owner
> >> >> >> >             AND a.table_name = b.table_name
> >> >> >> >
> >> >> >> >         AND a.table_name = :table_name
> >> >> >> >         AND a.table_owner = :schema
> >> >> >> >         ORDER BY a.index_name, a.column_position
> >> >> >> > 2010-02-11 11:01:43,410 INFO
> >> >> sqlalchemy.engine.base.Engine.0x...5bcc
> >> >> >> > {'table_name': 'CFA_CASH_FLOW_STATUS_TAB', 'schema':
> >> 'CRAR1APP'}
> >> >> >> > 2010-02-11 11:01:43,410 INFO
> >> >> >> [sqlalchemy.engine.base.Engine.0x...5bcc]
> >> >> >> > {'table_name': 'CFA_CASH_FLOW_STATUS_TAB', 'schema':
> >> 'CRAR1APP'}
> >> >> >> > 2010-02-11 11:01:43,413 INFO
> >> >> sqlalchemy.engine.base.Engine.0x...5bcc
> >> >> >> > SELECT column_name, data_type, data_length, data_precision,
> >> >> >> data_scale,
> >> >> >> > nullable, data_default FROM ALL_TAB_COLUMNS WHERE table_name
> =
> >> >> >> :table_name
> >> >> >> > AND owner = :owner ORDER BY column_id
> >> >> >> > 2010-02-11 11:01:43,413 INFO
> >> >> >> [sqlalchemy.engine.base.Engine.0x...5bcc]
> >> >> >> > SELECT column_name, data_type, data_length, data_precision,
> >> >> >> data_scale,
> >> >> >> > nullable, data_default FROM ALL_TAB_COLUMNS WHERE table_name
> =
> >> >> >> :table_name
> >> >> >> > AND owner = :owner ORDER BY column_id
> >> >> >> > 2010-02-11 11:01:43,414 INFO
> >> >> sqlalchemy.engine.base.Engine.0x...5bcc
> >> >> >> > {'owner': 'CRAR1APP', 'table_name': 'CFA_CASH_FLOW_TAB'}
> >> >> >> > 2010-02-11 11:01:43,414 INFO
> >> >> >> [sqlalchemy.engine.base.Engine.0x...5bcc]
> >> >> >> > {'owner': 'CRAR1APP', 'table_name': 'CFA_CASH_FLOW_TAB'}
> >> >> >> > 2010-02-11 11:01:43,421 INFO
> >> >> sqlalchemy.engine.base.Engine.0x...5bcc
> >> >> >> > SELECT
> >> >> >> >              ac.constraint_name,
> >> >> >> >              ac.constraint_type,
> >> >> >> >              loc.column_name AS local_column,
> >> >> >> >              rem.table_name AS remote_table,
> >> >> >> >              rem.column_name AS remote_column,
> >> >> >> >              rem.owner AS remote_owner,
> >> >> >> >              loc.position as loc_pos,
> >> >> >> >              rem.position as rem_pos
> >> >> >> >            FROM all_constraints ac,
> >> >> >> >              all_cons_columns loc,
> >> >> >> >              all_cons_columns rem
> >> >> >> >            WHERE ac.table_name = :table_name
> >> >> >> >            AND ac.constraint_type IN ('R','P')
> >> >> >> >            AND ac.owner = :owner
> >> >> >> >            AND ac.owner = loc.owner
> >> >> >> >            AND ac.constraint_name = loc.constraint_name
> >> >> >> >            AND ac.r_owner = rem.owner(+)
> >> >> >> >            AND ac.r_constraint_name = rem.constraint_name(+)
> >> >> >> >            AND (rem.position IS NULL or
> >> loc.position=rem.position)
> >> >> >> >            ORDER BY ac.constraint_name, loc.position
> >> >> >> > 2010-02-11 11:01:43,421 INFO
> >> >> >> [sqlalchemy.engine.base.Engine.0x...5bcc]
> >> >> >> > SELECT
> >> >> >> >              ac.constraint_name,
> >> >> >> >              ac.constraint_type,
> >> >> >> >              loc.column_name AS local_column,
> >> >> >> >              rem.table_name AS remote_table,
> >> >> >> >              rem.column_name AS remote_column,
> >> >> >> >              rem.owner AS remote_owner,
> >> >> >> >              loc.position as loc_pos,
> >> >> >> >              rem.position as rem_pos
> >> >> >> >            FROM all_constraints ac,
> >> >> >> >              all_cons_columns loc,
> >> >> >> >              all_cons_columns rem
> >> >> >> >            WHERE ac.table_name = :table_name
> >> >> >> >            AND ac.constraint_type IN ('R','P')
> >> >> >> >            AND ac.owner = :owner
> >> >> >> >            AND ac.owner = loc.owner
> >> >> >> >            AND ac.constraint_name = loc.constraint_name
> >> >> >> >            AND ac.r_owner = rem.owner(+)
> >> >> >> >            AND ac.r_constraint_name = rem.constraint_name(+)
> >> >> >> >            AND (rem.position IS NULL or
> >> loc.position=rem.position)
> >> >> >> >            ORDER BY ac.constraint_name, loc.position
> >> >> >> > 2010-02-11 11:01:43,421 INFO
> >> >> sqlalchemy.engine.base.Engine.0x...5bcc
> >> >> >> > {'owner': 'CRAR1APP', 'table_name': 'CFA_CASH_FLOW_TAB'}
> >> >> >> >
> >> >> >> > 2010-02-111:01:43,421 INFO
> >> >> [sqlalchemy.engine.base.Engine.0x...5bcc]
> >> >> >> > {'owner': 'CRAR1APP', 'table_name': 'CFA_CASH_FLOW_TAB'}
> >> >> >> >
> >> >> >> >
> >> >> >> >
> >> >> >> > * Snip *
> >> >> >> >
> >> >> >> > --
> >> >> >> > 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.
> >> >> >> >
> >> >> >> >
> >> >> >>
> >> >> >> --
> >> >> >> 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.
> >> >> >
> >> >> > --
> >> >> > 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.
> >> >> >
> >> >> >
> >> >>
> >> >> --
> >> >> 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.
> >> >
> >> > --
> >> > 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.
> >> >
> >> >
> >>
> >> --
> >> 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.
> >
> > --
> > 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.
> >
> >
>
> --
> 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.

-- 
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