MCPcopy Create free account
hub / github.com/DeNA/HandlerSocket-Plugin-for-MySQL / parse_fields

Method parse_fields

handlersocket/database.cpp:1115–1143  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1113}
1114
1115bool
1116dbcontext::parse_fields(TABLE *const table, const char *str,
1117 prep_stmt::fields_type& flds)
1118{
1119 string_ref flds_sr(str, strlen(str));
1120 std::vector<string_ref> fldnms;
1121 if (flds_sr.size() != 0) {
1122 split(',', flds_sr, fldnms);
1123 }
1124 for (size_t i = 0; i < fldnms.size(); ++i) {
1125 Field **fld = 0;
1126 size_t j = 0;
1127 for (fld = table->field; *fld; ++fld, ++j) {
1128 DBG_FLD(fprintf(stderr, "f %s\n", (*fld)->field_name));
1129 string_ref fn((*fld)->field_name, strlen((*fld)->field_name));
1130 if (fn == fldnms[i]) {
1131 break;
1132 }
1133 }
1134 if (*fld == 0) {
1135 DBG_FLD(fprintf(stderr, "UNKNOWN FLD %s [%s]\n", retflds,
1136 std::string(fldnms[i].begin(), fldnms[i].size()).c_str()));
1137 return false;
1138 }
1139 DBG_FLD(fprintf(stderr, "FLD %s %zu\n", (*fld)->field_name, j));
1140 flds.push_back(j);
1141 }
1142 return true;
1143}
1144
1145enum db_write_op {
1146 db_write_op_none = 0,

Callers

nothing calls this directly

Calls 3

splitFunction · 0.85
sizeMethod · 0.45
beginMethod · 0.45

Tested by

no test coverage detected