[Maria-developers] Performance: question about strings created in sql_lex.cc
Hello, When parsing an SQL query, the function get_text() in sql_lex.cc always makes a copy of the string, allocating new memory using lip->m_thd->alloc() and copying the original string from the SQL query fragment to this new memory. Note, this happens even if the string does not have any escaped characters! I'm seeing some performance bottleneck here. It would be nice to avoid copying. Why could not we point a non-escaped string to the original SQL query fragment where the string is actually written? Are there any situations when the original SQL query is not accessible any more, but Item_string created at parse time is still in use? Are there any other things that are created in sql_yacc.yy using the TEXT_STRING token, which could exist longer than the original SQL query? Thanks.
participants (1)
-
Alexander Barkov