The Unicode 14.0 collations have the character set values set to NULL.
SELECT * FROM information_schema.COLLATIONS
WHERE CHARACTER_SET_NAME='utf8mb4'
OR CHARACTER_SET_NAME ISNULL
ORDERBY COLLATION_NAME ASC;
Recently I was finally able to upgrade to a version of MariaDB on a server that supports Unicode 14.0. I prefer low-level programing whenever possible for control and performance reasons. So I directly querying the information_schema table instead of referencing SHOW for example. It doesn't seem right that the CHARACTER_SET_NAME values for the Unicode 14.0 collations are NULL. I don't imagine that the newer collations suddenly don't require character set support.
This introduces a minor inconvenience for a collation tool I created though I've dealt with much worse from other software. I wouldn't mind some insight in to the correlation and why these values are NULL.
The logic here that collation as such does not have an id. Collation is how to compare characters, where 'a' is less than, greater than, or equal to 'ä'. Character set is how to store characters, whether 'ä' is x'E4' or x'C3A4'.
Every valid character set + collation combination has a unique id. But since 10.10 MariaDB has collations that apply to many character sets. For example, collation uca1400_latvian_ai_ci applies to utf8mb4, to utf16, utf32, etc. In all these different character sets you'll have exactly the same character comparison rules, because it's exactly the same collation.
So since 10.10 collations no longer have unique ids, because since 10.10 collation name no longer have to include a character set.
You need to use COLLATION_CHARACTER_SET_APPLICABILITY table, it lists character set + collation combination, and every such combination has a unique id. Old collations, that apply only to one character set, have a unique id shown already in COLLATIONS table.
Sergei Golubchik
added a comment - The logic here that collation as such does not have an id. Collation is how to compare characters, where 'a' is less than, greater than, or equal to 'ä'. Character set is how to store characters, whether 'ä' is x'E4' or x'C3A4'.
Every valid character set + collation combination has a unique id. But since 10.10 MariaDB has collations that apply to many character sets. For example, collation uca1400_latvian_ai_ci applies to utf8mb4, to utf16, utf32, etc. In all these different character sets you'll have exactly the same character comparison rules, because it's exactly the same collation.
So since 10.10 collations no longer have unique ids, because since 10.10 collation name no longer have to include a character set.
You need to use COLLATION_CHARACTER_SET_APPLICABILITY table, it lists character set + collation combination, and every such combination has a unique id. Old collations, that apply only to one character set, have a unique id shown already in COLLATIONS table.
People
Sergei Golubchik
John Bilicki
Votes:
0Vote for this issue
Watchers:
1Start watching this issue
Dates
Created:
Updated:
Resolved:
Git Integration
Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.
{"report":{"fcp":1179.5999999046326,"ttfb":189.7000002861023,"pageVisibility":"visible","entityId":130125,"key":"jira.project.issue.view-issue","isInitial":true,"threshold":1000,"elementTimings":{},"userDeviceMemory":8,"userDeviceProcessors":64,"apdex":0.5,"journeyId":"c177cee2-2b5b-42a2-ae88-24a0c451e37f","navigationType":0,"readyForUser":1261.3000001907349,"redirectCount":0,"resourceLoadedEnd":1695.8000001907349,"resourceLoadedStart":201.30000019073486,"resourceTiming":[{"duration":367.5,"initiatorType":"link","name":"https://jira.mariadb.org/s/2c21342762a6a02add1c328bed317ffd-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/css/_super/batch.css","startTime":201.30000019073486,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":201.30000019073486,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":568.8000001907349,"responseStart":0,"secureConnectionStart":0},{"duration":367.6000003814697,"initiatorType":"link","name":"https://jira.mariadb.org/s/7ebd35e77e471bc30ff0eba799ebc151-CDN/lu2cib/820016/12ta74/494e4c556ecbb29f90a3d3b4f09cb99c/_/download/contextbatch/css/jira.browse.project,project.issue.navigator,jira.view.issue,jira.general,jira.global,atl.general,-_super/batch.css?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&slack-enabled=true&whisper-enabled=true","startTime":201.59999990463257,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":201.59999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":569.2000002861023,"responseStart":0,"secureConnectionStart":0},{"duration":410.7999997138977,"initiatorType":"script","name":"https://jira.mariadb.org/s/0917945aaa57108d00c5076fea35e069-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/js/_super/batch.js?locale=en","startTime":201.7000002861023,"connectEnd":201.7000002861023,"connectStart":201.7000002861023,"domainLookupEnd":201.7000002861023,"domainLookupStart":201.7000002861023,"fetchStart":201.7000002861023,"redirectEnd":0,"redirectStart":0,"requestStart":201.7000002861023,"responseEnd":612.5,"responseStart":612.5,"secureConnectionStart":201.7000002861023},{"duration":462,"initiatorType":"script","name":"https://jira.mariadb.org/s/2d8175ec2fa4c816e8023260bd8c1786-CDN/lu2cib/820016/12ta74/494e4c556ecbb29f90a3d3b4f09cb99c/_/download/contextbatch/js/jira.browse.project,project.issue.navigator,jira.view.issue,jira.general,jira.global,atl.general,-_super/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&locale=en&slack-enabled=true&whisper-enabled=true","startTime":201.90000009536743,"connectEnd":201.90000009536743,"connectStart":201.90000009536743,"domainLookupEnd":201.90000009536743,"domainLookupStart":201.90000009536743,"fetchStart":201.90000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":201.90000009536743,"responseEnd":663.9000000953674,"responseStart":663.9000000953674,"secureConnectionStart":201.90000009536743},{"duration":468.40000009536743,"initiatorType":"script","name":"https://jira.mariadb.org/s/a9324d6758d385eb45c462685ad88f1d-CDN/lu2cib/820016/12ta74/c92c0caa9a024ae85b0ebdbed7fb4bd7/_/download/contextbatch/js/atl.global,-_super/batch.js?locale=en","startTime":202.09999990463257,"connectEnd":202.09999990463257,"connectStart":202.09999990463257,"domainLookupEnd":202.09999990463257,"domainLookupStart":202.09999990463257,"fetchStart":202.09999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":202.09999990463257,"responseEnd":670.5,"responseStart":670.5,"secureConnectionStart":202.09999990463257},{"duration":480.59999990463257,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-en/jira.webresources:calendar-en.js","startTime":202.30000019073486,"connectEnd":202.30000019073486,"connectStart":202.30000019073486,"domainLookupEnd":202.30000019073486,"domainLookupStart":202.30000019073486,"fetchStart":202.30000019073486,"redirectEnd":0,"redirectStart":0,"requestStart":202.30000019073486,"responseEnd":682.9000000953674,"responseStart":682.9000000953674,"secureConnectionStart":202.30000019073486},{"duration":496.90000009536743,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-localisation-moment/jira.webresources:calendar-localisation-moment.js","startTime":202.5,"connectEnd":202.5,"connectStart":202.5,"domainLookupEnd":202.5,"domainLookupStart":202.5,"fetchStart":202.5,"redirectEnd":0,"redirectStart":0,"requestStart":202.5,"responseEnd":699.4000000953674,"responseStart":699.4000000953674,"secureConnectionStart":202.5},{"duration":592.5999999046326,"initiatorType":"link","name":"https://jira.mariadb.org/s/b04b06a02d1959df322d9cded3aeecc1-CDN/lu2cib/820016/12ta74/a2ff6aa845ffc9a1d22fe23d9ee791fc/_/download/contextbatch/css/jira.global.look-and-feel,-_super/batch.css","startTime":202.7000002861023,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":202.7000002861023,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":795.3000001907349,"responseStart":0,"secureConnectionStart":0},{"duration":497.40000009536743,"initiatorType":"script","name":"https://jira.mariadb.org/rest/api/1.0/shortcuts/820016/47140b6e0a9bc2e4913da06536125810/shortcuts.js?context=issuenavigation&context=issueaction","startTime":202.90000009536743,"connectEnd":202.90000009536743,"connectStart":202.90000009536743,"domainLookupEnd":202.90000009536743,"domainLookupStart":202.90000009536743,"fetchStart":202.90000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":202.90000009536743,"responseEnd":700.3000001907349,"responseStart":700.3000001907349,"secureConnectionStart":202.90000009536743},{"duration":592.9000000953674,"initiatorType":"link","name":"https://jira.mariadb.org/s/3ac36323ba5e4eb0af2aa7ac7211b4bb-CDN/lu2cib/820016/12ta74/d176f0986478cc64f24226b3d20c140d/_/download/contextbatch/css/com.atlassian.jira.projects.sidebar.init,-_super,-project.issue.navigator,-jira.view.issue/batch.css?jira.create.linked.issue=true","startTime":203,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":203,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":795.9000000953674,"responseStart":0,"secureConnectionStart":0},{"duration":498.3999996185303,"initiatorType":"script","name":"https://jira.mariadb.org/s/5d5e8fe91fbc506585e83ea3b62ccc4b-CDN/lu2cib/820016/12ta74/d176f0986478cc64f24226b3d20c140d/_/download/contextbatch/js/com.atlassian.jira.projects.sidebar.init,-_super,-project.issue.navigator,-jira.view.issue/batch.js?jira.create.linked.issue=true&locale=en","startTime":203.2000002861023,"connectEnd":203.2000002861023,"connectStart":203.2000002861023,"domainLookupEnd":203.2000002861023,"domainLookupStart":203.2000002861023,"fetchStart":203.2000002861023,"redirectEnd":0,"redirectStart":0,"requestStart":203.2000002861023,"responseEnd":701.5999999046326,"responseStart":701.5999999046326,"secureConnectionStart":203.2000002861023},{"duration":1125.5,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-js/jira.webresources:bigpipe-js.js","startTime":204.09999990463257,"connectEnd":204.09999990463257,"connectStart":204.09999990463257,"domainLookupEnd":204.09999990463257,"domainLookupStart":204.09999990463257,"fetchStart":204.09999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":204.09999990463257,"responseEnd":1329.5999999046326,"responseStart":1329.5999999046326,"secureConnectionStart":204.09999990463257},{"duration":1491.5999999046326,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-init/jira.webresources:bigpipe-init.js","startTime":204.2000002861023,"connectEnd":204.2000002861023,"connectStart":204.2000002861023,"domainLookupEnd":204.2000002861023,"domainLookupStart":204.2000002861023,"fetchStart":204.2000002861023,"redirectEnd":0,"redirectStart":0,"requestStart":204.2000002861023,"responseEnd":1695.8000001907349,"responseStart":1695.8000001907349,"secureConnectionStart":204.2000002861023},{"duration":567.5999999046326,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":833.2000002861023,"connectEnd":833.2000002861023,"connectStart":833.2000002861023,"domainLookupEnd":833.2000002861023,"domainLookupStart":833.2000002861023,"fetchStart":833.2000002861023,"redirectEnd":0,"redirectStart":0,"requestStart":833.2000002861023,"responseEnd":1400.8000001907349,"responseStart":1400.8000001907349,"secureConnectionStart":833.2000002861023},{"duration":546.8000001907349,"initiatorType":"script","name":"https://www.google-analytics.com/analytics.js","startTime":1172.4000000953674,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":1172.4000000953674,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":1719.2000002861023,"responseStart":0,"secureConnectionStart":0}],"fetchStart":0,"domainLookupStart":0,"domainLookupEnd":0,"connectStart":0,"connectEnd":0,"requestStart":11,"responseStart":189,"responseEnd":194,"domLoading":199,"domInteractive":1739,"domContentLoadedEventStart":1739,"domContentLoadedEventEnd":1783,"domComplete":2375,"loadEventStart":2375,"loadEventEnd":2375,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[{"name":"bigPipe.sidebar-id.start","time":1721.2000002861023},{"name":"bigPipe.sidebar-id.end","time":1722.4000000953674},{"name":"bigPipe.activity-panel-pipe-id.start","time":1722.5},{"name":"bigPipe.activity-panel-pipe-id.end","time":1723.5},{"name":"activityTabFullyLoaded","time":1796.0999999046326}],"measures":[],"correlationId":"cdc3f3a58c8ee2","effectiveType":"4g","downlink":9.7,"rtt":0,"serverDuration":109,"dbReadsTimeInMs":11,"dbConnsTimeInMs":19,"applicationHash":"9d11dbea5f4be3d4cc21f03a88dd11d8c8687422","experiments":[]}}
The logic here that collation as such does not have an id. Collation is how to compare characters, where 'a' is less than, greater than, or equal to 'ä'. Character set is how to store characters, whether 'ä' is x'E4' or x'C3A4'.
Every valid character set + collation combination has a unique id. But since 10.10 MariaDB has collations that apply to many character sets. For example, collation uca1400_latvian_ai_ci applies to utf8mb4, to utf16, utf32, etc. In all these different character sets you'll have exactly the same character comparison rules, because it's exactly the same collation.
So since 10.10 collations no longer have unique ids, because since 10.10 collation name no longer have to include a character set.
You need to use COLLATION_CHARACTER_SET_APPLICABILITY table, it lists character set + collation combination, and every such combination has a unique id. Old collations, that apply only to one character set, have a unique id shown already in COLLATIONS table.