[MDEV-7063] Split String into logical components Created: 2014-11-10  Updated: 2023-12-22

Status: Stalled
Project: MariaDB Server
Component/s: None
Fix Version/s: 11.5

Type: Task Priority: Minor
Reporter: Alexander Barkov Assignee: Oleksandr Byelkin
Resolution: Unresolved Votes: 0
Labels: None

Issue Links:
Blocks
is blocked by MDEV-17905 Add class Charset Closed
is blocked by MDEV-17907 Class Static_binary_string Closed
Relates
relates to MDEV-17906 Class Binary_string Closed
Epic Link: Data type cleanups
Sprint: 10.1.7-2

 Description   

The string class currently consists of the following components:

  • memory allocation routines (using mysys)
  • binary string routines
  • character set aware routines.

Storage engines (e.g. ConnectSE) often need String-alike classes, but cannot use the current String implementation because of their own memory management system. So they have to reimplement the same set of functionality, but with their own memory managers. This is bug prone and makes duplicate code.

Also, in some cases it is useful to have character-set unaware strings (just array of bytes), and static strings without allocation.

This task is to split String into logical pieces:

1. class Static_binary_string
2. class Charset
3. class Static_character_string (#1 + #2)
4. class Memory_mysys
5. template<typename MEM> class String_with_alloc
6. class String (#3 + #5)

ConnectSE will use #5 (templace class String_with_alloc), in combination with their own memory allocator.


Generated at Thu Feb 08 07:16:40 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.