Rafael Ávila de Espíndola
1294770970
lua: Use a negative index for consistency
...
In this case we know the size of the stack and both indexes refer to
the same position. Using a negative index is just more consistent with
the rest of the file and hopefully a bit less brittle to future
changes.
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2020-02-03 18:23:09 -08:00
Rafael Ávila de Espíndola
a4d668e8ed
lua: Fix returning list<decimal>
...
We were accessing the wrong stack location if a decimal was not at top
of the stack.
Fixes : #5711
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2020-02-03 18:10:04 -08:00
Rafael Ávila de Espíndola
39e637f6bf
lua: Fix returning list<varint>
...
We were accessing the wrong stack location if a varint was not at the
top of the stack.
Refs: #5711
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2020-02-03 18:09:59 -08:00
Rafael Ávila de Espíndola
530779efb6
lua: Use a lua_slice_state instead of a from_lua_visitor
...
A few places were using a from_lua_visitor only to access the
lua_slice_state member variable.
This is just a simplification. No functionality changed.
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2020-02-03 18:04:36 -08:00
Rafael Ávila de Espíndola
bd7593eab3
lua: Handle nil returns correctly
...
With this patch lua nil values are mapped to CQL null values instead
of producing an error.
Fixes #5667
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2020-01-29 14:05:01 -08:00
Rafael Ávila de Espíndola
bd93a0af52
types: Return bytes_opt from data_value::serialize
...
Since a data_value can contain a null value, returning bytes from
serialize() was losing information as it was mapping null to empty.
This also introduces a serialize_nonnull that still returns bytes, but
results in an internal error if called with a null value.
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2020-01-29 14:04:59 -08:00
Rafael Ávila de Espíndola
3d641d4062
lua: Use existing cpp_int cast logic
...
Different versions of boost have different rules for what conversions
from cpp_int to smaller intergers are allowed.
We already had a function that worked with all supported versions, but
it was not being use by lua.
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
Message-Id: <20200104041028.215153-1-espindola@scylladb.com >
2020-01-05 12:10:54 +02:00
Dejan Mircevski
c43b286f35
utils: Add operator<< for big_decimal
...
... and remove an existing duplicate from lua.cc.
Signed-off-by: Dejan Mircevski <dejan@scylladb.com >
2019-11-29 15:32:09 -05:00
Rafael Ávila de Espíndola
750adee6e3
lua: fix build with boost 1.67 and older vs fmt
...
It is not completely clear why the fmt base code fails with boost
1.67, but it is easy to avoid.
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
Message-Id: <20191118210540.129603-1-espindola@scylladb.com >
2019-11-19 11:14:00 +02:00
Rafael Ávila de Espíndola
6ffddeae5e
Lua: Implement decimal subtraction
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
aba8e531d1
Lua: Implement decimal addition
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
bb84eabbb3
Lua: Implement support for returning decimal
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
bc17312a86
Lua: Implement decimal to string conversion
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
e83d5bf375
Lua: Implement decimal to floating point conversion
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
b568bf4f54
Lua: Implement support for decimal arguments
...
This is just the minimum to pass a value to Lua. Right now you can't
actually do anything with it.
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
6c3f050eb4
Lua: Implement support for returning varint
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
dc377abd68
Lua: Implement support for returning duration
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
c3f021d2e4
Lua: Implement support for duration arguments
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
9208b2f498
Lua: Implement support for returning inet
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
64be94ab01
Lua: Implement support for inet arguments
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
faf029d472
Lua: Implement support for returning time
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
772f2a4982
Lua: Implement support for time arguments
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
484f498534
Lua: Implement support for returning timeuuid
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
9c2daf6554
Lua: Implement support for returning uuid
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
ae1a1a4085
Lua: Implement support for uuid and timeuuid arguments
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
f8aeed5beb
Lua: Implement support for returning date
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
384effa54b
Lua: Implement support for date arguments
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
63bc960152
Lua: Implement support for returning timestamp
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
ee95756f62
Lua: Implement support for timestamp arguments
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
1c6d5507b4
Lua: Implement support for returning counter
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
b226511ce8
Lua: Implement support for returning maps
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
5c8d1a797f
Lua: Implement support for map arguments
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
b5b15ce4e6
Lua: Implement support for returning set
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
cf7ba441e4
Lua: Implement support for set arguments
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
02f076be43
Lua: Implement support for returning udt
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
92c8e94d9a
Lua: Implement support for udt arguments
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
a7c3f6f297
Lua: Implement support for returning list
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
688736f5ff
Lua: Implement support for returning tuple
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
ab5708a711
Lua: Implement support for list and tuple arguments
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
534f29172c
Lua: Implement support for returning boolean
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
b03c580493
Lua: Implement support for boolean arguments
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
dcfe397eb6
Lua: Implement support for returning floating point
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
cf4b7ab39a
Lua: Implement support for returning blob
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
3d22433cd4
Lua: Implement support for blob arguments
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
dd754fcf01
Lua: Implement support for returning ascii
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
affb1f8efd
Lua: Implement support for returning text
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
f8ed347ee7
Lua: Implement support for string arguments
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
0e4f047113
Lua: Implement a visitor for return values
...
This adds support for all integer types. Followup commits will
implement the missing types.
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
34b770e2fb
Lua: Push varint as decimal
...
This makes it substantially simpler to support both varint and
decimal, which will be implemented in a followup patch.
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00
Rafael Ávila de Espíndola
9b3cab8865
Lua: Implement support for varint to integer conversion
...
Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com >
2019-11-07 08:41:08 -08:00