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

Method load_tbl_idxes

lib_acl_cpp/app/ndb/ctl_server/db_ctl.cpp:506–565  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

504}
505
506int db_ctl::load_tbl_idxes(void)
507{
508 const char* sql = "select id_idx, id_db, id_tbl, unique, type from tbl_tbl_idx";
509 if ((ctl_conn_->sql_select(sql)) == false)
510 {
511 logger_error("sql(%s) error", sql);
512 return -1;
513 }
514
515 const std::vector<acl::db_row*>* rows = ctl_conn_->get_rows();
516 if (rows == NULL)
517 {
518 logger_warn("tbl_tbl_idx empty");
519 return 0;
520 }
521
522 unsigned int id_idx, id_db, id_tbl, unique, type;
523
524 size_t i;
525 for (i = 0; i < rows->size(); i++)
526 {
527 const acl::db_row* row = (*rows)[i];
528 if ((id_idx = row->field_int("id_idx", -1)) ==
529 (unsigned int) -1)
530 {
531 logger_warn("id_idx invalid");
532 continue;
533 }
534 else if ((id_db = row->field_int("id_db", -1)) ==
535 (unsigned int) -1)
536 {
537 logger_warn("id_db invalid");
538 continue;
539 }
540 else if ((id_tbl = row->field_int("id_tbl", -1)) ==
541 (unsigned int) -1)
542 {
543 logger_warn("id_tbl invalid");
544 continue;
545 }
546 type = row->field_int("type", -1);
547 if (type < IDX_TYPE_STR || type > IDX_TYPE_INT64)
548 {
549 logger_warn("type(%d) invalid", type);
550 continue;
551 }
552
553 unique = row->field_int("unique");
554 TBL_IDX* idx = (TBL_IDX*) acl_mymalloc(sizeof(TBL_IDX));
555 idx->id_idx = id_idx;
556 idx->id_db = id_db;
557 idx->id_tbl = id_tbl;
558 idx->unique = unique ? true : false;
559 idx->type = (idx_type_t) type;
560 tbl_idxes_.push_back(idx);
561 }
562
563 ctl_conn_->free_result();

Callers

nothing calls this directly

Calls 6

get_rowsMethod · 0.80
field_intMethod · 0.80
free_resultMethod · 0.80
sql_selectMethod · 0.45
sizeMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected