one way to get portability is to express it in the supported types: eg: decimals can be *100 stored in integer
On 25 mei, 07:17, mdipierro <[email protected]> wrote: > 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 > fromdecimalimportDecimal > > 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 -~----------~----~----~----~------~----~------~--~---

