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

Method append_row

sql/sql_show.cc:3249–3299  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3247}
3248
3249int select_result_text_buffer::append_row(List<Item> &items, bool send_names)
3250{
3251 List_iterator<Item> it(items);
3252 Item *item;
3253 char **row;
3254 int column= 0;
3255
3256 if (!(row= thd->alloc<char*>(n_columns)) ||
3257 rows.push_back(row, thd->mem_root))
3258 return true;
3259
3260 StringBuffer<32> buf;
3261
3262 while ((item= it++))
3263 {
3264 DBUG_ASSERT(column < n_columns);
3265 const char *data_ptr;
3266 char *ptr;
3267 size_t data_len;
3268
3269 buf.set_buffer_if_not_allocated(&my_charset_bin);
3270 if (send_names)
3271 {
3272 DBUG_ASSERT(strlen(item->name.str) == item->name.length);
3273 data_ptr= item->name.str;
3274 data_len= item->name.length;
3275 }
3276 else
3277 {
3278 String *res;
3279 res= item->val_str(&buf);
3280 if (item->null_value)
3281 {
3282 data_ptr= "NULL";
3283 data_len=4;
3284 }
3285 else
3286 {
3287 data_ptr= res->c_ptr_safe();
3288 data_len= res->length();
3289 }
3290 }
3291
3292 if (!(ptr= (char*) thd->memdup(data_ptr, data_len + 1)))
3293 return true;
3294 row[column]= ptr;
3295
3296 column++;
3297 }
3298 return false;
3299}
3300
3301
3302void select_result_text_buffer::save_to(String *res)

Callers

nothing calls this directly

Calls 6

memdupMethod · 0.80
push_backMethod · 0.45
val_strMethod · 0.45
c_ptr_safeMethod · 0.45
lengthMethod · 0.45

Tested by

no test coverage detected