MySQL error `HistoryTreeNode`s `batch_get`
eozturk1 opened this issue · comments
Ercan Ozturk commented
For big-sized trees, mysql_tests
are failing in batch_get
due to errors similar to
ERROR HY000 (1366): Incorrect integer value: '??%????\u{3}?\\??N??\u{4}a??H??~~S??!DU9D' for column 'label_val' at row 1
Sean Lawlor commented
The get_batch_create_temp_table
function has some mismatching type information from the rest of the MySQL implementation.
It should read something like
fn get_batch_create_temp_table<St: Storable>() -> Option<String> {
match St::data_type() {
StorageType::Azks => None,
StorageType::HistoryNodeState => {
Some(
format!(
"CREATE TEMPORARY TABLE `{}`(`label_len` INT UNSIGNED NOT NULL, `label_val` VARBINARY(32) NOT NULL, `epoch` BIGINT UNSIGNED NOT NULL, PRIMARY KEY(`label_len`, `label_val`, `epoch`))",
TEMP_IDS_TABLE
)
)
},
StorageType::HistoryTreeNode => {
Some(
format!(
"CREATE TEMPORARY TABLE `{}`(`label_len` INT UNSIGNED NOT NULL, `label_val` VARBINARY(32) NOT NULL, PRIMARY KEY(`label_len`, `label_val`))",
TEMP_IDS_TABLE
)
)
},
StorageType::ValueState => {
Some(
format!(
"CREATE TEMPORARY TABLE `{}`(`username` VARCHAR(256) NOT NULL, `epoch` BIGINT UNSIGNED NOT NULL, PRIMARY KEY(`username`, `epoch`))",
TEMP_IDS_TABLE
)
)
},
}
}
Sean Lawlor commented
I think we're resolved on this no?