-
Notifications
You must be signed in to change notification settings - Fork 44
Closed
Labels
featureA new functionalityA new functionalityreference[location] Tarantool manual, Reference part[location] Tarantool manual, Reference partserver[area] Task relates to Tarantool's server (core) functionality[area] Task relates to Tarantool's server (core) functionality
Description
tuple:update and space:update now support deicmal operands for
arithmetic operations ('+' and '-'). The syntax is as usual:
d = box.tuple.new(decimal.new('1'))
---
...
d:update{{'+', 1, decimal.new('0.5')}}
---
- [1.5]
...
Insertion ('!') and assignment ('=') are also supported:
a = decimal.new('1')
---
...
b = decimal.new('1e10')
---
...
c = decimal.new('1e-10')
---
...
d = box.tuple.new{5, a, 6, b, 7, c, "string"}
---
...
d
---
- [5, 1, 6, 10000000000, 7, 0.0000000001, 'string']
...
d:update{{'!', 3, dec.new('1234.5678')}}
---
- [5, 1, 1234.5678, 6, 10000000000, 7, 0.0000000001, 'string']
...
d:update{{'=', -1, dec.new('0.12345678910111213')}}
---
- [5, 1, 6, 10000000000, 7, 0.0000000001, 0.12345678910111213]
When performing an arithmetic operation ('+', '-'), where either the
updated field or the operand is decimal, the result will be decimal.
When both the updated field and the operand are decimal, the result
will, of course, be decimal.
...
Requested by @sergepetrenko in tarantool/tarantool@8317189.
Metadata
Metadata
Assignees
Labels
featureA new functionalityA new functionalityreference[location] Tarantool manual, Reference part[location] Tarantool manual, Reference partserver[area] Task relates to Tarantool's server (core) functionality[area] Task relates to Tarantool's server (core) functionality