Get the tuple whose key starts with start.
120 {
121 SqliteWraper sqlite;
122 std::vector<std::pair<std::string, std::string>> results;
123
124
125
126 std::string sql = absl::StrCat(
127 "SELECT key, value FROM key_value WHERE key LIKE '", start, "%';");
128
129
130 auto callback = [](void *data, int argc, char **argv,
131 char **col_name) -> int {
132 auto *vec =
133 static_cast<std::vector<std::pair<std::string, std::string>> *>(data);
134 if (argc == 2 && argv[0] && argv[1]) {
135 vec->emplace_back(argv[0], argv[1]);
136 }
137 return 0;
138 };
139
140 char *error = nullptr;
141 if (sqlite3_exec(sqlite.GetDB(), sql.c_str(), callback, &results, &error) !=
142 SQLITE_OK) {
143 AERROR <<
"Failed to execute SQL: " << error;
144 sqlite3_free(error);
145 }
146
147 return results;
148}