Implement storing binary serialized operations in the HAF database
Related issue: #92 (closed)
Merge Request related to this one on the hive-side: hive!802 (merged)
Changes to the repo:
- Fixed
hive_fork_managerbeing built always in the mainnet configuration on the CI - Added new type:
hive.operation - Added operator class (using btree) for the
hive.operationtype - Changed
hive.operations.bodycolumn type fromtexttohive.operation - Made
CUSTOM_LOGvariadic arguments optional - Optimized
escape_rawfunction - Changed tests to work with the new type
- Made
colect_data_and_fill_returned_recordsettruly noexcept - Created
colect_operation_data_and_fill_returned_recordsetfunction wrappingcolect_data_and_fill_returned_recordsetfunction specifically for thehive.operationtype - Changed sql_serializer to put binary data into the
hive.operationstable instead of the json representation - Added
HiveOperationtype class for thesqlalchemyORM
What should be added/changed/discussed before merging (not critical):
Fix warnings generated by thesqlalchemyORM related to thehive.operationtype- Make
update_state_provider_keyauthfunction work with the binary data representation instead of text one - Search for other possibilities to optimize the SQL code execution using binary data representation instead of the text one
@gandalf Please review and test full replay + live sync
Edited by Bartek Wrona