On Jan 21, 2011, at 12:56 PM, A.M. wrote:

> Hello,
> 
> I would like SQLAlchemy to generate views much in the same way it can 
> generate tables- perhaps like this:
> 
> View('bob',select([...]))
> 
> Is the SQLAlchemy code modular enough to support a user-defined SchemaItem or 
> does that require changes to SQLAlchemy itself? 
> 
> The reason I would very much like this is because I currently use the Table 
> objects, munge them through a processor to add common attributes, and 
> generate a schema- I would like to be able to do the same with View objects.
> 
> I looked at subclassing sqlalchemy.schema.Table, but the __new__ override and 
> the fact that the sql.compiler.DDLCompiler has hardcoded 
> visit_create_<schemaitem> names gives me pause as to whether or not this can 
> be accomplished without modifying SQLAlchemy itself. 
> 
> I realize that questions surrounding view pop up from time-to-time, so does 
> it make sense to create or support a dialect-specific or user-defined 
> SchemaItem?
> 
> Thanks!

You may not be aware that we have a full API for creation of custom SQL 
expression subclasses as well as establishing compilation rules, which is 
documented at http://www.sqlalchemy.org/docs/core/compiler.html .

Regarding views specifically, we've got a usage recipe against this system, 
though I don't know if its seen any real world usage, at 
http://www.sqlalchemy.org/trac/wiki/UsageRecipes/Views .   Its using lower-case 
table() objects as the core structure, which is your basic "thing with a bunch 
of columns" object, the superclass of Table that doesn't have the hard linkages 
with MetaData or constraints, so no SchemaItem subclass is needed.  Subclassing 
TableClause (the result of table()) would be the likely way to go if you wanted 
your view construct to have extra features.






> 
> Cheers,
> M
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "sqlalchemy" group.
> To post to this group, send email to sqlalchemy@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 sqlalchemy@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