| 174 | |
| 175 | |
| 176 | void sp_head::init_sp_name(THD *thd, sp_name *spname) |
| 177 | { |
| 178 | /* Must be initialized in the parser. */ |
| 179 | |
| 180 | DBUG_ASSERT(spname && spname->m_db.str && spname->m_db.length); |
| 181 | |
| 182 | /* We have to copy strings to get them into the right memroot. */ |
| 183 | |
| 184 | m_db.length= spname->m_db.length; |
| 185 | m_db.str= strmake_root(thd->mem_root, spname->m_db.str, spname->m_db.length); |
| 186 | |
| 187 | m_name.length= spname->m_name.length; |
| 188 | m_name.str= strmake_root(thd->mem_root, spname->m_name.str, |
| 189 | spname->m_name.length); |
| 190 | |
| 191 | m_explicit_name= spname->m_explicit_name; |
| 192 | |
| 193 | if (spname->m_qname.length == 0) |
| 194 | spname->init_qname(thd); |
| 195 | |
| 196 | m_qname.length= spname->m_qname.length; |
| 197 | m_qname.str= (char*) memdup_root(thd->mem_root, |
| 198 | spname->m_qname.str, |
| 199 | spname->m_qname.length + 1); |
| 200 | } |
| 201 | |
| 202 | |
| 203 | void sp_head::set_body_start(THD *thd, const char *begin_ptr) |
no test coverage detected