• Alexander Nozdrin's avatar
    Patch for Bug#11848763 / 60025 · acbe8238
    Alexander Nozdrin authored
    (SUBSTRING inside a stored function works too slow).
    
    The user-visible problem was that the server started to consume memory if a
    stored-routine of some sort is executed subsequently. The memory was freed
    only after the corresponding connection was closed.
    
    Technically, the problem was that the memory needed for temporary string
    conversions was allocated on the connection ("persistent") memory root,
    instead of statement one.
    
    The root cause of this problem was the incorrect patch for Bug 55744.
    That patch wrongly fixed a crash in prepared-statement-mode introduced by
    another patch. The patch for Bug 55744 used wrong condition to check if
    prepared statement mode is active (or whether the connection-scoped or
    statement-scoped memory root should be used). The thing is that for
    prepared statements such conversions should be done in the connection
    memory root, so that that the transformations of item-tree were correctly
    remembered in the PREPARE-phase.
    
    The fix is to use proper condition to detect prepared-statement-mode and
    use proper memory root.
    acbe8238
item.cc 228 KB