[MDEV-21504] Collation: Create shared library for engines to use Created: 2020-01-16 Updated: 2020-04-21 Resolved: 2020-04-21 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Character Sets |
| Fix Version/s: | N/A |
| Type: | Task | Priority: | Critical |
| Reporter: | David Hall (Inactive) | Assignee: | Vladislav Vaintroub |
| Resolution: | Won't Do | Votes: | 1 |
| Labels: | None | ||
| Issue Links: |
|
||||||||||||||||||||||||||||||||||||||||
| Description |
|
In order for handler engines, e.g. columnstore, to collate correctly and identically to innodb, we need access to the same collation code as the server. currently this code is included in server as object files, making it difficult for other projects to include it. This JIRA is a request to include the code in a shared library accessible by both the server and engines. Note that having it as service is not enough, because some engines (e.g. columnstore) has separately running binaries that needs to collate strings too. |
| Comments |
| Comment by David Hall (Inactive) [ 2020-02-06 ] |
|
Added the proper link to show what is blocked. |
| Comment by Sergei Golubchik [ 2020-03-25 ] |
|
I think we can start with a static library, if that turns out to be simpler |
| Comment by Vladislav Vaintroub [ 2020-04-03 ] |
|
David.Hall, the collation code is in "strings" library, which depends on , or rather like interdepends on mysys and dbug. I would not do that in storage engine code, since it can use symbols from the server. But in an executable it should work. |
| Comment by Sergei Golubchik [ 2020-04-03 ] |
|
Part of the code is in mysys, so one might need TARGET_LINK_LIBRARIES(your_binary mysys) too. |
| Comment by David Hall (Inactive) [ 2020-04-03 ] |
|
There's no reason we can't use a static lib. If it makes it easier for you, lets do it that way. |
| Comment by Vladislav Vaintroub [ 2020-04-08 ] |
|
Code bloat is not an issue, those libraries are rather tiny. David.Hall, should be keep the issue open, or can we close this, if static linking works for you? |
| Comment by David Hall (Inactive) [ 2020-04-09 ] |
|
If the libs are ready, this can be closed. I may need to bother you if I have problems getting things to link. Probably won't have a problem, but you never know. |
| Comment by Vladislav Vaintroub [ 2020-04-09 ] |
|
The libs are "strings", they are there, and always been, during the server build. The interdependency between strings and mysys is mentioned by serg, so one might need to link with mysys as well, and also with dbug. |
| Comment by Sergei Golubchik [ 2020-04-10 ] |
|
Supporting collation/charset code is in mysys — loading, comparing, compiling, etc. Actual collations/charsets are in string. |
| Comment by Vladislav Vaintroub [ 2020-04-21 ] |
|
I'm closing it for now. Hopefully there is no problems with proposed solution (static libs) |