On Jul 27, 2011, at 8:56 PM, Sergey V. wrote:
Good day,
I'm trying to figure out how to do something similar to the Symmetric
Encryption recipe (http://www.sqlalchemy.org/trac/wiki/UsageRecipes/
SymmetricEncryption), only on the database side, not in Python.
I have a suspicion that @compiles decorator may provide a solution,
but having trouble understaning how to apply it to my case.
For simplicity, let's imagine a field which stores data in upper case
but always returns it in lower case... so it needs to generate SQL
similar to
INSERT INTO tablename VALUES (..., upper(...), ...)
this can be assigned, (1) i.e.
myobject.fieldname = func.upper(somename)
which you can apply with a @validates decorator (2)
on insert and
SELECT ..., lower(fieldname) as fieldname, ... FROM tablename
for this you'd use column_property(). (3)
for the SQL functions themselves we're using func (4)
1:
http://www.sqlalchemy.org/docs/orm/session.html#embedding-sql-insert-update-expressions-into-a-flush
2: http://www.sqlalchemy.org/docs/orm/mapper_config.html#simple-validators
3:
http://www.sqlalchemy.org/docs/orm/mapper_config.html#sql-expressions-as-mapped-attributes
4:
http://www.sqlalchemy.org/docs/core/expression_api.html#sqlalchemy.sql.expression.func
For a slightly old example of some of this kind of thing (probably more
complicated than you'd need here), see the PostGIS example under
examples/postgis/.
--
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.