[MDEV-19] Memory tables: VARCHAR and BLOB support Created: 2011-11-24 Updated: 2023-08-14 |
|
| Status: | Stalled |
| Project: | MariaDB Server |
| Component/s: | Storage Engine - Memory |
| Fix Version/s: | None |
| Type: | Task | Priority: | Major |
| Reporter: | Rasmus Johansson (Inactive) | Assignee: | Michael Widenius |
| Resolution: | Unresolved | Votes: | 17 |
| Labels: | energy | ||
| Issue Links: |
|
||||||||||||||||||||||||
| Description |
|
Extend HEAP tables to be able to handle VARCHAR and BLOB's efficently. Currently HEAP stores VARCHAR at their maximum width and can't store BLOB/TEXT columns. This causes a problem for internally memory tables that are used to store temporary results from SELECT and also The idea is to create a separate BLOB storage area (can consist of multipe blocks), attached to the HEAP table, that holds all long varchar and blob columns. The BLOB storage will be a fixed size buffer where all VARCHAR and BLOB's are stored. Initially all VARCHAR and BLOBS are The benefit of this structure is that there is no need for any garbage collection. There is a loss of 12 bytes per link, which is neglectable for the typical usage of temporary tables (which will not have any linked records). |
| Comments |
| Comment by Rasmus Johansson (Inactive) [ 2013-07-23 ] |
|
Finish new heap/memory tables that can handle VARCHAR and BLOB's gracefully |
| Comment by Daniël van Eeden [ 2015-10-17 ] |
|
This is important if utf8 is used for varchars and/or if the varchar column is much wider that the data for most rows. |