MCPcopy Create free account
hub / github.com/MariaDB/server / parse_fields

Method parse_fields

plugin/handler_socket/handlersocket/database.cpp:1041–1069  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1039}
1040
1041bool
1042dbcontext::parse_fields(TABLE *const table, const char *str,
1043 prep_stmt::fields_type& flds)
1044{
1045 string_ref flds_sr(str, strlen(str));
1046 std::vector<string_ref> fldnms;
1047 if (flds_sr.size() != 0) {
1048 split(',', flds_sr, fldnms);
1049 }
1050 for (size_t i = 0; i < fldnms.size(); ++i) {
1051 Field **fld = 0;
1052 size_t j = 0;
1053 for (fld = table->field; *fld; ++fld, ++j) {
1054 DBG_FLD(fprintf(stderr, "f %s\n", (*fld)->field_name.str));
1055 string_ref fn((*fld)->field_name.str, (*fld)->field_name.length);
1056 if (fn == fldnms[i]) {
1057 break;
1058 }
1059 }
1060 if (*fld == 0) {
1061 DBG_FLD(fprintf(stderr, "UNKNOWN FLD %s [%s]\n", retflds,
1062 std::string(fldnms[i].begin(), fldnms[i].size()).c_str()));
1063 return false;
1064 }
1065 DBG_FLD(fprintf(stderr, "FLD %s %zu\n", (*fld)->field_name.str, j));
1066 flds.push_back(j);
1067 }
1068 return true;
1069}
1070
1071enum db_write_op {
1072 db_write_op_none = 0,

Callers

nothing calls this directly

Calls 6

splitFunction · 0.85
stringClass · 0.85
sizeMethod · 0.45
c_strMethod · 0.45
beginMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected