MCPcopy Create free account
hub / github.com/acl-dev/acl / append_key

Method append_key

lib_acl_cpp/src/db/query.cpp:41–85  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

39}
40
41bool query::append_key(string& buf, char* key)
42{
43 acl_lowercase(key);
44 std::map<string, query_param*>::iterator it = params_.find(key);
45 if (it == params_.end()) {
46 logger_warn("unknown key: %s", key);
47 buf.append(key);
48 return false;
49 }
50
51 char fmt[256];
52
53 query_param* param = it->second;
54 switch (param->type) {
55 case DB_PARAM_CHAR:
56 buf.format_append("'%c'", param->v.c);
57 break;
58 case DB_PARAM_SHORT:
59 buf.format_append("%d", param->v.s);
60 break;
61 case DB_PARAM_INT32:
62 buf.format_append("%d", param->v.n);
63 break;
64 case DB_PARAM_INT64:
65 buf.format_append("%lld", param->v.l);
66 break;
67 case DB_PARAM_STR:
68 buf.format_append("'%s'",
69 escape(param->v.S, param->dlen, buf_).c_str());
70 break;
71 case DB_PARAM_FLOAT:
72 safe_snprintf(fmt, sizeof(fmt), "%%.%df", param->precision);
73 buf.format_append(fmt, param->v.f);
74 break;
75 case DB_PARAM_DOUBLE:
76 safe_snprintf(fmt, sizeof(fmt), "%%.%df", param->precision);
77 buf.format_append(fmt, param->v.d);
78 break;
79 default:
80 logger_error("unknown type: %d", param->type);
81 break;
82 }
83
84 return true;
85}
86
87const string& query::to_string()
88{

Callers

nothing calls this directly

Calls 7

acl_lowercaseFunction · 0.85
safe_snprintfFunction · 0.85
escapeFunction · 0.50
findMethod · 0.45
endMethod · 0.45
appendMethod · 0.45
c_strMethod · 0.45

Tested by

no test coverage detected