your line numbers are off from mine so i'm having trouble making sense of this. :(
can you send your model definition so i can see what you are working with? i think then i can line it up with the dal version i have here (which was trunk from HG as of saturday AM PST) cfh On Tuesday, February 26, 2013 3:18:13 PM UTC-8, Scott Hunter wrote: > > Sorry about that. I've fixed it, and now I get the following: > > In FILE: /base/data/home/apps/s~sbhweb2py/1.365574604253984974/ > applications/ppt_demo/models/db_wizard.py > > > Traceback (most recent call last): > File > "/base/data/home/apps/s~sbhweb2py/1.365574604253984974/gluon/restricted.py" > , line 212, in restricted > exec ccode in environment > File > "/base/data/home/apps/s~sbhweb2py/1.365574604253984974/applications/ppt_demo/models/db_wizard.py" > , line 198, in <module> > migrate=settings.migrate) > File > "/base/data/home/apps/s~sbhweb2py/1.365574604253984974/gluon/dal.py",line > 7189, in define_table > table = self.lazy_define_table(tablename,*fields,**args) > File > "/base/data/home/apps/s~sbhweb2py/1.365574604253984974/gluon/dal.py",line > 7225, in lazy_define_table > polymodel=polymodel) > File > "/base/data/home/apps/s~sbhweb2py/1.365574604253984974/gluon/dal.py",line > 4368, in create_table > ftype = self.types[field_type](**attr) > TypeError: <lambda>() takes no arguments (1 given) > > > This only happens if one of the fields in question is a string; I get no > error when the unindexed fields are all integer, boolean or double. > > - Scott > > > On Tuesday, February 26, 2013 1:04:12 AM UTC-5, howesc wrote: >> >> it looks like you have a typo.... "custom_qualifer" vs "custom_qualifier" >> >> On Monday, February 25, 2013 6:44:14 PM UTC-8, Scott Hunter wrote: >>> >>> I applied the patch, and added custom_qualifiers like so: >>> >>> Field('f_name', type='string',custom_qualifer={'indexed':False}, >>> label=T('Name')), >>> >>> >>> >>> and this is the error I got: >>> >>> In FILE: /base/data/home/apps/s~sbhweb2py/1.365567821359373728/ >>> applications/ppt_demo/models/db_wizard.py >>> >>> >>> Traceback (most recent call last): >>> File >>> "/base/data/home/apps/s~sbhweb2py/1.365567821359373728/gluon/restricted.py" >>> , line 212, in restricted >>> exec ccode in environment >>> File >>> "/base/data/home/apps/s~sbhweb2py/1.365567821359373728/applications/ppt_demo/models/db_wizard.py" >>> , line 165, in <module> >>> label=T('Name')), >>> TypeError: __init__() got an unexpected keyword argument >>> 'custom_qualifer' >>> >>> >>> >>> >>> On Saturday, February 23, 2013 12:30:48 PM UTC-5, howesc wrote: >>>> >>>> Scott, >>>> >>>> this is *completely* untested, but here's a proposal: >>>> - use the (undocumented) field.custom_qualifier property in GAE field >>>> definitions >>>> - if you want a field to be unindexed set >>>> custom_qualifier={'indexed':False} >>>> - for "properties that don't get listed explicitly"....override those >>>> default properties with what you want (there are a few techniques for not >>>> explicitly listing fields, depending on which technique you are using the >>>> answer here is different. >>>> >>>> this patch against HG trunk this AM might work (i say might cause i >>>> have not tested it). are you willing to experiment with it and let us >>>> know? >>>> >>>> thanks, >>>> >>>> christian >>>> >>>> On Friday, February 22, 2013 3:53:33 PM UTC-8, Scott Hunter wrote: >>>>> >>>>> If I had to guess, I'd say a patch is needed in the loop over the >>>>> fields in create_table, that would add a new entry to the dict for the >>>>> field definition based on a new attribute (which would be ignored for >>>>> anything other than Google's Datastore) which gets added to sql_fields; >>>>> then migrate_table, which seems to build the table building/altering >>>>> commands would need to be made to recognize the new entry & add the >>>>> disable >>>>> index command. There's not a lot of comments in the code, and I'd be >>>>> afraid to break something, but might give it a try. >>>>> >>>>> - Scott >>>>> >>>>> P.S. Not sure of the best way to handle this (what's describe above >>>>> wouldn't handle it), but it would be nice to be able to turn off the >>>>> indexes for the fields that don't get listed explicitly in models.db >>>>> (things like created by & when, modified by & when). >>>>> >>>>> On Friday, February 22, 2013 6:14:28 PM UTC-5, howesc wrote: >>>>>> >>>>>> thanks for the link. i'll try and take a look this weekend and see >>>>>> if there is a place for that in the DAL (feel free to open gluon/dal.py >>>>>> yourself too). >>>>>> >>>>>> yup, i'm paying more for writes right now then i am for instance >>>>>> hours per day on my largest paid application. :) >>>>>> >>>>>> cfh >>>>>> >>>>>> On Thursday, February 21, 2013 5:59:06 PM UTC-8, Scott Hunter wrote: >>>>>>> >>>>>>> According to >>>>>>> https://developers.google.com/appengine/docs/python/datastore/indexes#Unindexed_Properties, >>>>>>> >>>>>>> "You declare a property unindexed by setting indexed=False in the >>>>>>> property >>>>>>> constructor". >>>>>>> >>>>>>> One incurs the cost of a write (or 2?) for every property of a >>>>>>> record that gets written; so, for a table with about 25 fields (once >>>>>>> you >>>>>>> include all of the ones web2py adds), inserting 300 records incurs the >>>>>>> cost >>>>>>> of 14K+ writes; as the free account has a limit of 50K writes per day, >>>>>>> that >>>>>>> is rather limiting. It is easy to turn such indicies back on, but you >>>>>>> have >>>>>>> to re-write every record in order to repopulate them. >>>>>>> >>>>>>> - Scott >>>>>>> >>>>>>> On Thursday, February 21, 2013 4:51:59 PM UTC-5, howesc wrote: >>>>>>>> >>>>>>>> i'm being lazy here....do you have the instructions (or link to >>>>>>>> instructions) from GAE for disabling indexes? i don't have it handy >>>>>>>> right >>>>>>>> now.... >>>>>>>> >>>>>>>> we can check if the DAL has a secret way to handle it, and/or >>>>>>>> create a patch to allow it. >>>>>>>> >>>>>>>> may i ask what advantage you are hoping to achieve by skipping >>>>>>>> those indexes? i've left them on for fear of making a bad choice that >>>>>>>> i >>>>>>>> can't revert. >>>>>>>> >>>>>>>> christian >>>>>>>> >>>>>>>> On Thursday, February 21, 2013 5:56:07 AM UTC-8, Scott Hunter wrote: >>>>>>>>> >>>>>>>>> As I understand it, the GAE datastore will automatically create an >>>>>>>>> index for every field of every table (to facilitate queries using >>>>>>>>> single >>>>>>>>> fields); those requiring multiple fields also get generated, but will >>>>>>>>> get >>>>>>>>> added to index.yaml by the SDK when tested locally. Since these are >>>>>>>>> created outside of the DAL, I wouldn't expect to be able to remove >>>>>>>>> them >>>>>>>>> using it. I also understand that there is a way, with the GAE SDK, >>>>>>>>> to >>>>>>>>> disable the index for any given field (by a parameter in the field >>>>>>>>> definition); is there any way to accomplish this through the DAL, and >>>>>>>>> if >>>>>>>>> so, what is it? >>>>>>>> >>>>>>>> -- --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.