I do not know if this is a good idea and I'd like to hear your
opinions:
I have added in trunk to define custom column types
Here is an example of usage:
import cPickle
from gluon.sql import SQLCustomType
from decimal import Decimal
decimal = SQLCustomType(native='NUMERIC(10,2)',decoder=(lambda x:
Decimal(str(x))))
pickable = SQLCustomType(type='text',encoder=(lambda x:
"'%s'"%cPickle.dumps(x).replace("'","''")),decoder=(lambda x:
cPickle.loads(x)))
db.define_table('test',
SQLField('my_decimal',type=decimal),
SQLField('my_pickle',type=pickable))
the SQLCustomType constructor takes the following arguments:
- type indicates how web2py sqlform should treat this field
- native indicates how the database should treat this field
- encoder indicates how to represent (and escape) a value in SQL
- decoder indicates how to process the value once it is extracted from
the database
It seems to work well with migrations. Of course using native=....
makes the custom table not portable across databases.
The implementation is not very clean but can be improved.
Is this a good idea?
Massimo
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"web2py Web Framework" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---