[#514] [WIP] Keep active call in table
This is a WIP for fixing #514. In particular, it is missing any sort of new tests.
Currently, Octo loads a call-in file and sets it as active. After this MR, Octo will instead load the call-in file and store the descriptor through the process lifetime. It will change the active table only when necessary, switching back to the old table afterwards.
Possible improvements:
- The new
CALL_IN_KEEPING_TAB
macro is not particularly efficient. ForSELECT
queries (_ydboctoselect
), it might be better to use aci_name_descriptor
withydb_cip
, which is both more efficient than the existing implementation and does not require switching the active call-in table for each query. For the initial startup (_ydboctoInit
), the call-in is only called once soydb_cip
would not help.
Unresolved questions:
- Can
_ydboctoInit
and_ydboctoselect
themselves call other M routines which depend on$ydb_ci
? This use case is not currently supported.
Edited by Jynn Nelson