On Mon, Jun 1, 2009 at 12:10 PM, HansD <hans.don...@pobox.com> wrote:
> > one way to get portability is to express it in the supported types: > eg: decimals can be *100 stored in integer see discussions around fixed point arithmetic, and binary vs. decimal encoding, and then the various decimal encoding schemes (starting w/ bcd): http://en.wikipedia.org/wiki/Fixed-point_arithmetic http://en.wikipedia.org/wiki/Binary-coded_decimal > > > > On 25 mei, 07:17, mdipierro <mdipie...@cs.depaul.edu> 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 web2py@googlegroups.com To unsubscribe from this group, send email to web2py+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/web2py?hl=en -~----------~----~----~----~------~----~------~--~---