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

Function insert_server_record

sql/sql_servers.cc:669–708  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

667 */
668
669static
670int insert_server_record(TABLE *table, FOREIGN_SERVER *server)
671{
672 int error;
673 DBUG_ENTER("insert_server_record");
674 DBUG_ASSERT(!table->file->row_logging);
675
676 table->use_all_columns();
677 empty_record(table);
678
679 /* set the field that's the PK to the value we're looking for */
680 table->field[SERVER_NAME_FIELD]->store(server->server_name,
681 server->server_name_length,
682 system_charset_info);
683
684 /* read index until record is that specified in server_name */
685 if ((error= table->file->ha_index_read_idx_map(table->record[0], 0,
686 (uchar *)table->field[SERVER_NAME_FIELD]->ptr,
687 HA_WHOLE_KEY, HA_READ_KEY_EXACT)))
688 {
689 /* if not found, err */
690 if (error != HA_ERR_KEY_NOT_FOUND && error != HA_ERR_END_OF_FILE)
691 {
692 table->file->print_error(error, MYF(0));
693 error= 1;
694 }
695 /* store each field to be inserted */
696 if ((error= store_server_fields(table, server)))
697 DBUG_RETURN(error);
698
699 DBUG_PRINT("info",("record for server '%s' not found!",
700 server->server_name));
701 /* write/insert the new server */
702 if (unlikely(error=table->file->ha_write_row(table->record[0])))
703 table->file->print_error(error, MYF(0));
704 }
705 else
706 error= ER_FOREIGN_SERVER_EXISTS;
707 DBUG_RETURN(error);
708}
709
710/*
711 SYNOPSIS

Callers 1

insert_serverFunction · 0.85

Calls 6

store_server_fieldsFunction · 0.85
use_all_columnsMethod · 0.80
ha_index_read_idx_mapMethod · 0.80
ha_write_rowMethod · 0.80
storeMethod · 0.45
print_errorMethod · 0.45

Tested by

no test coverage detected