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 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
-~----------~----~----~----~------~----~------~--~---

Reply via email to