author | Matthew Wild <mwild1@gmail.com> |
Thu, 14 Mar 2024 09:48:30 +0000 | |
changeset 5874 | 1ac4a59ac575 |
parent 5695 | 78f766372e2c |
permissions | -rw-r--r-- |
2065
b84284144e21
mod_storage_appendmap: Experimental storage module optimized for map stores
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
1 |
local dump = require "util.serialization".serialize; |
b84284144e21
mod_storage_appendmap: Experimental storage module optimized for map stores
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
2 |
local load = require "util.envload".envloadfile; |
5695
78f766372e2c
mod_storage_appendmap: Include timestamps when appending data
Kim Alvefur <zash@zash.se>
parents:
5694
diff
changeset
|
3 |
local datetime = require "util.datetime".datetime; |
2065
b84284144e21
mod_storage_appendmap: Experimental storage module optimized for map stores
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
4 |
local dm = require "core.storagemanager".olddm; |
b84284144e21
mod_storage_appendmap: Experimental storage module optimized for map stores
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
5 |
|
2800
6a7b7cb7148e
mod_storage_appendmap: Factor out serialization into reusable functions
Kim Alvefur <zash@zash.se>
parents:
2639
diff
changeset
|
6 |
local REMOVE = {}; -- Special value for removing keys |
6a7b7cb7148e
mod_storage_appendmap: Factor out serialization into reusable functions
Kim Alvefur <zash@zash.se>
parents:
2639
diff
changeset
|
7 |
|
2065
b84284144e21
mod_storage_appendmap: Experimental storage module optimized for map stores
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
8 |
local driver = {}; |
b84284144e21
mod_storage_appendmap: Experimental storage module optimized for map stores
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
9 |
|
5695
78f766372e2c
mod_storage_appendmap: Include timestamps when appending data
Kim Alvefur <zash@zash.se>
parents:
5694
diff
changeset
|
10 |
local timestamps = module:get_option_boolean("appendmap_timestamps", true); |
2800
6a7b7cb7148e
mod_storage_appendmap: Factor out serialization into reusable functions
Kim Alvefur <zash@zash.se>
parents:
2639
diff
changeset
|
11 |
|
6a7b7cb7148e
mod_storage_appendmap: Factor out serialization into reusable functions
Kim Alvefur <zash@zash.se>
parents:
2639
diff
changeset
|
12 |
local keywords = { |
6a7b7cb7148e
mod_storage_appendmap: Factor out serialization into reusable functions
Kim Alvefur <zash@zash.se>
parents:
2639
diff
changeset
|
13 |
["do"] = true; ["and"] = true; ["else"] = true; ["break"] = true; |
6a7b7cb7148e
mod_storage_appendmap: Factor out serialization into reusable functions
Kim Alvefur <zash@zash.se>
parents:
2639
diff
changeset
|
14 |
["if"] = true; ["end"] = true; ["goto"] = true; ["false"] = true; |
6a7b7cb7148e
mod_storage_appendmap: Factor out serialization into reusable functions
Kim Alvefur <zash@zash.se>
parents:
2639
diff
changeset
|
15 |
["in"] = true; ["for"] = true; ["then"] = true; ["local"] = true; |
6a7b7cb7148e
mod_storage_appendmap: Factor out serialization into reusable functions
Kim Alvefur <zash@zash.se>
parents:
2639
diff
changeset
|
16 |
["or"] = true; ["nil"] = true; ["true"] = true; ["until"] = true; |
6a7b7cb7148e
mod_storage_appendmap: Factor out serialization into reusable functions
Kim Alvefur <zash@zash.se>
parents:
2639
diff
changeset
|
17 |
["elseif"] = true; ["function"] = true; ["not"] = true; |
6a7b7cb7148e
mod_storage_appendmap: Factor out serialization into reusable functions
Kim Alvefur <zash@zash.se>
parents:
2639
diff
changeset
|
18 |
["repeat"] = true; ["return"] = true; ["while"] = true; |
6a7b7cb7148e
mod_storage_appendmap: Factor out serialization into reusable functions
Kim Alvefur <zash@zash.se>
parents:
2639
diff
changeset
|
19 |
|
6a7b7cb7148e
mod_storage_appendmap: Factor out serialization into reusable functions
Kim Alvefur <zash@zash.se>
parents:
2639
diff
changeset
|
20 |
-- _ENV is not technically a keyword but we need to treat it as such |
6a7b7cb7148e
mod_storage_appendmap: Factor out serialization into reusable functions
Kim Alvefur <zash@zash.se>
parents:
2639
diff
changeset
|
21 |
["_ENV"] = true; |
6a7b7cb7148e
mod_storage_appendmap: Factor out serialization into reusable functions
Kim Alvefur <zash@zash.se>
parents:
2639
diff
changeset
|