@@ -56,6 +56,12 @@ static MEM_ROOT mem;
5656static mysql_rwlock_t THR_LOCK_servers;
5757static LEX_CSTRING MYSQL_SERVERS_NAME= {STRING_WITH_LEN (" servers" ) };
5858
59+ enum servers_fields {
60+ SERVER_NAME_FIELD, HOST_FIELD, DB_FIELD, USERNAME_FIELD, PASSWORD_FIELD,
61+ PORT_FIELD, SOCKET_FIELD, SCHEME_FIELD, OWNER_FIELD,
62+ SERVERS_FIELDS_COUNT
63+ };
64+
5965static bool get_server_from_table_to_cache (TABLE *table);
6066
6167/* insert functions */
@@ -292,8 +298,7 @@ static bool servers_load(THD *thd, TABLE_LIST *tables)
292298 init_sql_alloc (key_memory_servers, &mem, ACL_ALLOC_BLOCK_SIZE, 0 , MYF (0 ));
293299
294300 table->use_all_columns ();
295- if (init_read_record (&read_record_info,thd,table, NULL , NULL ,
296- 1 ,0 , FALSE ))
301+ if (init_read_record (&read_record_info,thd,table, NULL , NULL , 1 ,0 , FALSE ))
297302 DBUG_RETURN (1 );
298303 while (!(read_record_info.read_record ()))
299304 {
@@ -406,27 +411,27 @@ get_server_from_table_to_cache(TABLE *table)
406411 DBUG_ENTER (" get_server_from_table_to_cache" );
407412
408413 /* get each field into the server struct ptr */
409- ptr= get_field (&mem, table->field [0 ]);
414+ ptr= get_field (&mem, table->field [SERVER_NAME_FIELD ]);
410415 server->server_name = ptr ? ptr : blank;
411416 server->server_name_length = (uint) strlen (server->server_name );
412- ptr= get_field (&mem, table->field [1 ]);
417+ ptr= get_field (&mem, table->field [HOST_FIELD ]);
413418 server->host = ptr ? ptr : blank;
414- ptr= get_field (&mem, table->field [2 ]);
419+ ptr= get_field (&mem, table->field [DB_FIELD ]);
415420 server->db = ptr ? ptr : blank;
416- ptr= get_field (&mem, table->field [3 ]);
421+ ptr= get_field (&mem, table->field [USERNAME_FIELD ]);
417422 server->username = ptr ? ptr : blank;
418- ptr= get_field (&mem, table->field [4 ]);
423+ ptr= get_field (&mem, table->field [PASSWORD_FIELD ]);
419424 server->password = ptr ? ptr : blank;
420- ptr= get_field (&mem, table->field [5 ]);
425+ ptr= get_field (&mem, table->field [PORT_FIELD ]);
421426 server->sport = ptr ? ptr : blank;
422427
423428 server->port = server->sport ? atoi (server->sport ) : 0 ;
424429
425- ptr= get_field (&mem, table->field [6 ]);
430+ ptr= get_field (&mem, table->field [SOCKET_FIELD ]);
426431 server->socket = ptr && strlen (ptr) ? ptr : blank;
427- ptr= get_field (&mem, table->field [7 ]);
432+ ptr= get_field (&mem, table->field [SCHEME_FIELD ]);
428433 server->scheme = ptr ? ptr : blank;
429- ptr= get_field (&mem, table->field [8 ]);
434+ ptr= get_field (&mem, table->field [OWNER_FIELD ]);
430435 server->owner = ptr ? ptr : blank;
431436 DBUG_PRINT (" info" , (" server->server_name %s" , server->server_name ));
432437 DBUG_PRINT (" info" , (" server->host %s" , server->host ));
@@ -554,7 +559,7 @@ store_server_fields(TABLE *table, FOREIGN_SERVER *server)
554559
555560 table->use_all_columns ();
556561
557- if (table->s ->fields < 9 )
562+ if (table->s ->fields < SERVERS_FIELDS_COUNT )
558563 return ER_CANT_FIND_SYSTEM_REC;
559564
560565 /*
@@ -566,34 +571,34 @@ store_server_fields(TABLE *table, FOREIGN_SERVER *server)
566571 even if with empty strings
567572 */
568573 if (server->host &&
569- table->field [1 ]->store (server->host ,
574+ table->field [HOST_FIELD ]->store (server->host ,
570575 (uint) strlen (server->host ), system_charset_info))
571576 goto err;
572577 if (server->db &&
573- table->field [2 ]->store (server->db ,
578+ table->field [DB_FIELD ]->store (server->db ,
574579 (uint) strlen (server->db ), system_charset_info))
575580 goto err;
576581 if (server->username &&
577- table->field [3 ]->store (server->username ,
582+ table->field [USERNAME_FIELD ]->store (server->username ,
578583 (uint) strlen (server->username ), system_charset_info))
579584 goto err;
580585 if (server->password &&
581- table->field [4 ]->store (server->password ,
586+ table->field [PASSWORD_FIELD ]->store (server->password ,
582587 (uint) strlen (server->password ), system_charset_info))
583588 goto err;
584589 if (server->port > -1 &&
585- table->field [5 ]->store (server->port ))
590+ table->field [PORT_FIELD ]->store (server->port ))
586591 goto err;
587592 if (server->socket &&
588- table->field [6 ]->store (server->socket ,
593+ table->field [SOCKET_FIELD ]->store (server->socket ,
589594 (uint) strlen (server->socket ), system_charset_info))
590595 goto err;
591596 if (server->scheme &&
592- table->field [7 ]->store (server->scheme ,
597+ table->field [SCHEME_FIELD ]->store (server->scheme ,
593598 (uint) strlen (server->scheme ), system_charset_info))
594599 goto err;
595600 if (server->owner &&
596- table->field [8 ]->store (server->owner ,
601+ table->field [OWNER_FIELD ]->store (server->owner ,
597602 (uint) strlen (server->owner ), system_charset_info))
598603 goto err;
599604 return 0 ;
@@ -638,17 +643,14 @@ int insert_server_record(TABLE *table, FOREIGN_SERVER *server)
638643 empty_record (table);
639644
640645 /* set the field that's the PK to the value we're looking for */
641- table->field [0 ]->store (server->server_name ,
642- server->server_name_length ,
643- system_charset_info);
646+ table->field [SERVER_NAME_FIELD ]->store (server->server_name ,
647+ server->server_name_length ,
648+ system_charset_info);
644649
645650 /* read index until record is that specified in server_name */
646- if (unlikely ((error=
647- table->file ->ha_index_read_idx_map (table->record [0 ], 0 ,
648- (uchar *)table->field [0 ]->
649- ptr,
650- HA_WHOLE_KEY,
651- HA_READ_KEY_EXACT))))
651+ if ((error= table->file ->ha_index_read_idx_map (table->record [0 ], 0 ,
652+ (uchar *)table->field [SERVER_NAME_FIELD]->ptr ,
653+ HA_WHOLE_KEY, HA_READ_KEY_EXACT)))
652654 {
653655 /* if not found, err */
654656 if (error != HA_ERR_KEY_NOT_FOUND && error != HA_ERR_END_OF_FILE)
@@ -988,22 +990,19 @@ update_server_record(TABLE *table, FOREIGN_SERVER *server)
988990
989991 table->use_all_columns ();
990992 /* set the field that's the PK to the value we're looking for */
991- if (table->field [0 ]->store (server->server_name ,
992- server->server_name_length ,
993- system_charset_info))
993+ if (table->field [SERVER_NAME_FIELD ]->store (server->server_name ,
994+ server->server_name_length ,
995+ system_charset_info))
994996 {
995997 DBUG_ASSERT (0 ); /* Protected by servers_cache */
996998 THD *thd= table->in_use ;
997999 DBUG_ASSERT (thd->is_error ());
9981000 return thd->get_stmt_da ()->get_sql_errno ();
9991001 }
10001002
1001- if (unlikely ((error=
1002- table->file ->ha_index_read_idx_map (table->record [0 ], 0 ,
1003- (uchar *)table->field [0 ]->
1004- ptr,
1005- ~(longlong)0 ,
1006- HA_READ_KEY_EXACT))))
1003+ if ((error=table->file ->ha_index_read_idx_map (table->record [0 ], 0 ,
1004+ (uchar *)table->field [SERVER_NAME_FIELD]->ptr ,
1005+ ~(longlong)0 , HA_READ_KEY_EXACT)))
10071006 {
10081007 if (error != HA_ERR_KEY_NOT_FOUND && error != HA_ERR_END_OF_FILE)
10091008 table->file ->print_error (error, MYF (0 ));
@@ -1057,14 +1056,11 @@ delete_server_record(TABLE *table, LEX_CSTRING *name)
10571056 table->use_all_columns ();
10581057
10591058 /* set the field that's the PK to the value we're looking for */
1060- table->field [0 ]->store (name->str , name->length , system_charset_info);
1061-
1062- if (unlikely ((error=
1063- table->file ->ha_index_read_idx_map (table->record [0 ], 0 ,
1064- (uchar *)table->field [0 ]->
1065- ptr,
1066- HA_WHOLE_KEY,
1067- HA_READ_KEY_EXACT))))
1059+ table->field [SERVER_NAME_FIELD]->store (name->str , name->length , system_charset_info);
1060+
1061+ if ((error= table->file ->ha_index_read_idx_map (table->record [0 ], 0 ,
1062+ (uchar *)table->field [SERVER_NAME_FIELD]->ptr ,
1063+ HA_WHOLE_KEY, HA_READ_KEY_EXACT)))
10681064 {
10691065 if (error != HA_ERR_KEY_NOT_FOUND && error != HA_ERR_END_OF_FILE)
10701066 table->file ->print_error (error, MYF (0 ));
0 commit comments