consolidate
This commit is contained in:
@@ -1,15 +1,12 @@
|
||||
// Storage engine mapping DynamoDB operations to RocksDB
|
||||
package dynamodb
|
||||
|
||||
import "core:encoding/json"
|
||||
import "core:fmt"
|
||||
import "core:mem"
|
||||
import "core:slice"
|
||||
import "core:strings"
|
||||
import "core:sync"
|
||||
import "core:time"
|
||||
import "../key_codec"
|
||||
import "../item_codec"
|
||||
import "../rocksdb"
|
||||
|
||||
Storage_Error :: enum {
|
||||
@@ -218,12 +215,12 @@ serialize_table_metadata :: proc(metadata: ^Table_Metadata) -> ([]byte, bool) {
|
||||
meta_item["CreationDateTime"] = Number(fmt.aprint(metadata.creation_date_time))
|
||||
|
||||
// Encode to binary
|
||||
return item_codec.encode(meta_item)
|
||||
return encode(meta_item)
|
||||
}
|
||||
|
||||
// Deserialize table metadata from binary format
|
||||
deserialize_table_metadata :: proc(data: []byte, allocator: mem.Allocator) -> (Table_Metadata, bool) {
|
||||
meta_item, ok := item_codec.decode(data)
|
||||
meta_item, ok := decode(data)
|
||||
if !ok {
|
||||
return {}, false
|
||||
}
|
||||
@@ -239,7 +236,7 @@ deserialize_table_metadata :: proc(data: []byte, allocator: mem.Allocator) -> (T
|
||||
|
||||
// Get table metadata
|
||||
get_table_metadata :: proc(engine: ^Storage_Engine, table_name: string) -> (Table_Metadata, Storage_Error) {
|
||||
meta_key := key_codec.build_meta_key(table_name)
|
||||
meta_key := build_meta_key(table_name)
|
||||
defer delete(meta_key)
|
||||
|
||||
value, get_err := rocksdb.db_get(&engine.db, meta_key)
|
||||
@@ -275,7 +272,7 @@ create_table :: proc(
|
||||
defer sync.rw_mutex_unlock(table_lock)
|
||||
|
||||
// Check if table already exists
|
||||
meta_key := key_codec.build_meta_key(table_name)
|
||||
meta_key := build_meta_key(table_name)
|
||||
defer delete(meta_key)
|
||||
|
||||
existing, get_err := rocksdb.db_get(&engine.db, meta_key)
|
||||
@@ -340,7 +337,7 @@ delete_table :: proc(engine: ^Storage_Engine, table_name: string) -> Storage_Err
|
||||
defer sync.rw_mutex_unlock(table_lock)
|
||||
|
||||
// Check table exists
|
||||
meta_key := key_codec.build_meta_key(table_name)
|
||||
meta_key := build_meta_key(table_name)
|
||||
defer delete(meta_key)
|
||||
|
||||
existing, get_err := rocksdb.db_get(&engine.db, meta_key)
|
||||
@@ -403,11 +400,11 @@ put_item :: proc(engine: ^Storage_Engine, table_name: string, item: Item) -> Sto
|
||||
}
|
||||
|
||||
// Build storage key
|
||||
storage_key := key_codec.build_data_key(table_name, key_values.pk, key_values.sk)
|
||||
storage_key := build_data_key(table_name, key_values.pk, key_values.sk)
|
||||
defer delete(storage_key)
|
||||
|
||||
// Encode item
|
||||
encoded_item, encode_ok := item_codec.encode(item)
|
||||
encoded_item, encode_ok := encode(item)
|
||||
if !encode_ok {
|
||||
return .Serialization_Error
|
||||
}
|
||||
@@ -456,7 +453,7 @@ get_item :: proc(engine: ^Storage_Engine, table_name: string, key: Item) -> (May
|
||||
}
|
||||
|
||||
// Build storage key
|
||||
storage_key := key_codec.build_data_key(table_name, key_values.pk, key_values.sk)
|
||||
storage_key := build_data_key(table_name, key_values.pk, key_values.sk)
|
||||
defer delete(storage_key)
|
||||
|
||||
// Get from RocksDB
|
||||
@@ -470,7 +467,7 @@ get_item :: proc(engine: ^Storage_Engine, table_name: string, key: Item) -> (May
|
||||
defer delete(value)
|
||||
|
||||
// Decode item
|
||||
item, decode_ok := item_codec.decode(value)
|
||||
item, decode_ok := decode(value)
|
||||
if !decode_ok {
|
||||
return nil, .Serialization_Error
|
||||
}
|
||||
@@ -512,7 +509,7 @@ delete_item :: proc(engine: ^Storage_Engine, table_name: string, key: Item) -> S
|
||||
}
|
||||
|
||||
// Build storage key
|
||||
storage_key := key_codec.build_data_key(table_name, key_values.pk, key_values.sk)
|
||||
storage_key := build_data_key(table_name, key_values.pk, key_values.sk)
|
||||
defer delete(storage_key)
|
||||
|
||||
// Delete from RocksDB
|
||||
|
||||
Reference in New Issue
Block a user