This probably breaks quite a few apps out there? It did one for us. Did anyone open a bug report?
Regards, Ales On Wednesday, March 13, 2013 1:22:57 AM UTC+1, Alex wrote: > > I've got the same problem. I have a field with type decimal(12,4), I can > add a number to this field but not subtract. So instead of > db(db.client_service.id == id).update(minutes_done = > db.client_service.minutes_done > - minutes) > > I have to write > minutes = -minutes > db(db.client_service.id == id).update(minutes_done = > db.client_service.minutes_done > + minutes) > > as a workaround. that makes the code much harder to read. I see no reason > why the first query should not be possible. Any chance this will be fixed? > > Alex > > Am Mittwoch, 6. März 2013 19:30:22 UTC+1 schrieb Cliff Kachinske: >> >> I see what the code is doing. >> >> Would this work? >> >> if db._adapter.driver.__name__ in ('sqlite'): # maybe others? >> if self.type in ('integer','bigint'): >> result_type = 'integer' >> elif self.type in ['date','time','datetime','double','float']: >> result_type = 'double' >> else: >> raise SyntaxError("subtraction operation not supported >> for type") >> else: >> result_type = self.type >> >> >> >> On Wednesday, March 6, 2013 11:55:20 AM UTC-5, Massimo Di Pierro wrote: >>> >>> According to the code: >>> >>> if self.type in ('integer','bigint'): >>> result_type = 'integer' >>> elif self.type in ['date','time','datetime','double','float']: >>> result_type = 'double' >>> else: >>> raise SyntaxError("subtraction operation not supported for >>> type") >>> >>> what is the type of db.production_jobs.quantity_on_hand? >>> >>> On Wednesday, 6 March 2013 08:45:20 UTC-6, Cliff Kachinske wrote: >>>> >>>> V 2.4.2 >>>> >>>> Apparently I can add a negative number in an update expression but I >>>> cannot subtract a positive number. >>>> >>>> >>>> Snippet: >>>> >>>> delta = new_allocation - record.quantity_allocated >>>> db(db.production_jobs.id==record.production_job_id).update( >>>> quantity_on_hand=db.production_jobs.quantity_on_hand - delta # >>>> subtraction. DAL will not like it >>>> ) >>>> >>>> Snippet raises this exception: >>>> >>>> File >>>> "/home/cjk/pybin/w-2-4-2/web2py/applications/Inventory/controllers/customer_order_product_lots.py", >>>> line 70, in update_lot_record >>>> quantity_on_hand=db.production_jobs.quantity_on_hand - delta >>>> File "/home/cjk/pybin/w-2-4-2/web2py/gluon/dal.py", line 8820, in __sub__ >>>> raise SyntaxError("subtraction operation not supported for type") >>>> SyntaxError: subtraction operation not supported for type >>>> >>>> Hackish workaround: >>>> >>>> delta = -(new_allocation - record.quantity_allocated) # flip value to >>>> negative >>>> db(db.production_jobs.id==record.production_job_id).update( >>>> quantity_on_hand=db.production_jobs.quantity_on_hand + delta # add >>>> negative number. DAL okay with this >>>> ) >>>> >>>> >>>> Is this the expected behavior? >>>> >>>> Or am I missing something? >>>> >>>> >>>> -- --- 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.