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

Function prepare_keybuf

plugin/handler_socket/handlersocket/database.cpp:666–693  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

664}
665
666static size_t
667prepare_keybuf(const cmd_exec_args& args, uchar *key_buf, TABLE *table,
668 KEY& kinfo, size_t invalues_index)
669{
670 size_t kplen_sum = 0;
671 DBG_KEY(fprintf(stderr, "SLOW\n"));
672 for (size_t i = 0; i < args.kvalslen; ++i) {
673 const KEY_PART_INFO & kpt = kinfo.key_part[i];
674 string_ref kval = args.kvals[i];
675 if (args.invalues_keypart >= 0 &&
676 static_cast<size_t>(args.invalues_keypart) == i) {
677 kval = args.invalues[invalues_index];
678 }
679 if (kval.begin() == 0) {
680 kpt.field->set_null();
681 } else {
682 kpt.field->set_notnull();
683 }
684 kpt.field->store(kval.begin(), kval.size(), &my_charset_bin);
685 kplen_sum += kpt.store_length;
686 DBG_KEYLEN(fprintf(stderr, "l=%u sl=%zu\n", kpt.length,
687 kpt.store_length));
688 }
689 key_copy(key_buf, table->record[0], &kinfo, kplen_sum);
690 DBG_KEYLEN(fprintf(stderr, "sum=%zu flen=%u\n", kplen_sum,
691 kinfo.key_length));
692 return kplen_sum;
693}
694
695void
696dbcontext::cmd_find_internal(dbcallback_i& cb, const prep_stmt& pst,

Callers 1

cmd_find_internalMethod · 0.85

Calls 6

key_copyFunction · 0.85
set_notnullMethod · 0.80
beginMethod · 0.45
set_nullMethod · 0.45
storeMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected