tarantool / vshard

The new generation of sharding based on virtual buckets
Other
99 stars 30 forks source link

storage: fix local_call not finding C stored procedures #437

Closed Serpentian closed 11 months ago

Serpentian commented 1 year ago

Currently, if function was created as C stored procedure or as Lua persistent function (with body argument) via box.schema.func.create, all types of router.call and router.map_callrw cannot find it and return Procedure 'name' is not defined error.

This is cased by the fact that both of these function use local_call, which invokes net_box.self.call. It didn't work with these type of functions before Tarantool 3.0.0-beta1-18. Let's use box.func, where it's needed instead of net_box.self.call in local_call.

Closes https://github.com/tarantool/vshard/issues/436

NO_DOC=bugfix