On relational database with type="list:string" the internal representation is the same as before '|xxx|yyy|zzz|' but it is no longer exposed to the user. The user inserts a list a string and extract a list of strings.
On GAE things have changed. At the web2py level the user still inserts a list of strings and extract a list of strings but "list:string" is mapped into a StringListPropery(). This allow taking advantage of fast search. "list:string" also handles pathological cases like db.aaa.insert(bbb=['this','is','a|test']) and | gets escaped into '||' as in '|this|is|a||test|'. Empty strings are not allowed. and it allows better searching db(db.aaa.bbb.contains('this')).select() When using export/import it should export always (even on GAE) as a '| xxx|yyy|zzz|' Hope this clarifies it. "list:string" the inter On Sep 20, 2:01 pm, Wikus van de Merwe <dupakrop...@googlemail.com> wrote: > As far as I can see, when "list:string" is being used the effect is > very similar (I'm testing this on GAE). Again a list like > representation is used (this time using unicode): > [u'xxx',u'yyy',u'zzz'], not the old '|' separated strings. Does it > mean that now this is the new way of representing a list of checked > options or there is still a way to get strings split by '|' in the DB > as in the old versions of web2py? I would like to know exactly how it > is stored as I need to access this DB fields also outside of web2py.