Add shift to DDL object type while restoring backup of prior version.
Rework DDL access checks. Remove unneeded constants, duplicating code.
Rename some functions to suit their purpose.
Provide a way to extent object type constants in future not changing
existing ones.
Keep metadata name strings in hash table having just a pointer to a hash table member in all places where metadata name is needed in order to save RAM. Hash table of metadata names is almost lock-less: mutex is used only when new segment of memory is needed or hash table should be grown.
Co-authored-by: hvlad <hvlad@users.sourceforge.net>
* Release objects of external engine
1. Added explicit destruction of procedures and functions, because it
should execute external routines destructor to avoid leaks inside
external engine
2. Add explicit destruction of trigger and destruction of linked
external trigger
3. Release external engine after use
* Fix external engine procedures leaking, when creating new procedure
Store ValueExprNodes instead of jrd_nod in the metadata cache.
Make RecordSourceNode child of ExprNode as they share most operations.
Get rid of the JRD visitors in favor of direct calls.
Convert assignments statement lists created inside expressions to separate source and targets ValuesExprNodes.