PL/SQL parser (MDEV-10142)

[MDEV-13531] Add Database_qualified_name::copy() Created: 2017-08-15  Updated: 2018-08-31  Resolved: 2017-08-15

Status: Closed
Project: MariaDB Server
Component/s: Stored routines
Affects Version/s: None
Fix Version/s: 10.3.1

Type: Technical task Priority: Major
Reporter: Alexander Barkov Assignee: Alexander Barkov
Resolution: Fixed Votes: 0
Labels: Compatibility, refactoring

Issue Links:
Blocks
blocks MDEV-10591 Oracle-style packages Closed
Sprint: 10.2.2-3, 10.2.2-1, 10.2.2-2, 10.2.2-4, 10.1.18

 Description   

We'll move this code in sp_head::init_sp_name():

  /* We have to copy strings to get them into the right memroot. */
 
  m_db.length= spname->m_db.length;
  m_db.str= strmake_root(thd->mem_root, spname->m_db.str, spname->m_db.length);
 
  m_name.length= spname->m_name.length;
  m_name.str= strmake_root(thd->mem_root, spname->m_name.str,
                           spname->m_name.length);

to a new method in Database_qualified_name:

void Database_qualified_name::copy(MEM_ROOT *mem_root,
                                   const LEX_CSTRING &db,
                                   const LEX_CSTRING &name)
{
  m_db.length= db.length;
  m_db.str= strmake_root(mem_root, db.str, db.length);
  m_name.length= name.length;
  m_name.str= strmake_root(mem_root, name.str, name.length);
}

It will be easier to reuse this code this way, e.g. for MDEV-10591.


Generated at Thu Feb 08 08:06:19 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.