Type:
Task
Priority:
Major
Resolution:
Unresolved
Affects Version/s:
2.1
Fix Version/s:
None
Component/s:
None
Provide import and export functions for popular data formats like JSON, XML (limited), PHP, ...
for Connector/C and MariaDB Server (which use same code base for dynamic columns)
Tasks:
Dynamic column library (includes MariaDB Server and Connector/C).
1) Add support for arrays with ordinal indexes (currently dynamic columns are limited to use string indexes only)
2) Provide a library for importing/exporting data to and from Dynamic columns.
The following data formats should be supported:
JSON
XML (limited to unique keys only)
PHP,
...
MariaDB Server:
3) Provide user defined function (UDF) based on library (task 2) for importing and exporting data
MariaDB Connector/C:
3) Provide a plugin interface based on library (task 2) for importing and exporting data
Examples of usage:
1) MariaDB Server
SET @a:='{"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}}';
INSERT INTO my_table (dyncol) VALUES (COLUMN_IMPORT("JSON", @a))
2) Connector/C
char *json_str='{'menu': {
'id': 'file',
'value': 'File',
'popup': {
'menuitem': [
{'value': 'New', 'onclick': 'CreateNewDoc()'},
{'value': 'Open', 'onclick': 'OpenDoc()'},
{'value': 'Close', 'onclick': 'CloseDoc()'}
]
}
}}";
rc= mariadb_dyncol_import(dyncol, "json", json_str);
Programming language: C
{"report":{"fcp":808.4000000059605,"ttfb":166.7000000178814,"pageVisibility":"visible","entityId":50316,"key":"jira.project.issue.view-issue","isInitial":true,"threshold":1000,"elementTimings":{},"userDeviceMemory":8,"userDeviceProcessors":64,"apdex":1,"journeyId":"90df01a4-c9b7-4224-8bda-b9113e499dbe","navigationType":0,"readyForUser":878.8000000119209,"redirectCount":0,"resourceLoadedEnd":843.7000000178814,"resourceLoadedStart":182.60000002384186,"resourceTiming":[{"duration":203.5,"initiatorType":"link","name":"https://jira.mariadb.org/s/2c21342762a6a02add1c328bed317ffd-CDN/lu2bv2/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/css/_super/batch.css","startTime":182.60000002384186,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":182.60000002384186,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":386.10000002384186,"responseStart":0,"secureConnectionStart":0},{"duration":203.59999999403954,"initiatorType":"link","name":"https://jira.mariadb.org/s/7ebd35e77e471bc30ff0eba799ebc151-CDN/lu2bv2/820016/12ta74/2380add21a9a1006587582385952de73/_/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","startTime":182.80000001192093,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":182.80000001192093,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":386.40000000596046,"responseStart":0,"secureConnectionStart":0},{"duration":212.39999997615814,"initiatorType":"script","name":"https://jira.mariadb.org/s/e9b27a47da5fb0f74a35acd57e9847fb-CDN/lu2bv2/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/js/_super/batch.js?locale=en","startTime":183.10000002384186,"connectEnd":183.10000002384186,"connectStart":183.10000002384186,"domainLookupEnd":183.10000002384186,"domainLookupStart":183.10000002384186,"fetchStart":183.10000002384186,"redirectEnd":0,"redirectStart":0,"requestStart":183.10000002384186,"responseEnd":395.5,"responseStart":395.5,"secureConnectionStart":183.10000002384186},{"duration":237.5,"initiatorType":"script","name":"https://jira.mariadb.org/s/c32eb0da7ad9831253f8397e6cc26afd-CDN/lu2bv2/820016/12ta74/2380add21a9a1006587582385952de73/_/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","startTime":183.2000000178814,"connectEnd":183.2000000178814,"connectStart":183.2000000178814,"domainLookupEnd":183.2000000178814,"domainLookupStart":183.2000000178814,"fetchStart":183.2000000178814,"redirectEnd":0,"redirectStart":0,"requestStart":183.2000000178814,"responseEnd":420.7000000178814,"responseStart":420.7000000178814,"secureConnectionStart":183.2000000178814},{"duration":241.40000000596046,"initiatorType":"script","name":"https://jira.mariadb.org/s/bc0bcb146314416123c992714ee00ff7-CDN/lu2bv2/820016/12ta74/c92c0caa9a024ae85b0ebdbed7fb4bd7/_/download/contextbatch/js/atl.global,-_super/batch.js?locale=en","startTime":183.5,"connectEnd":183.5,"connectStart":183.5,"domainLookupEnd":183.5,"domainLookupStart":183.5,"fetchStart":183.5,"redirectEnd":0,"redirectStart":0,"requestStart":183.5,"responseEnd":424.90000000596046,"responseStart":424.90000000596046,"secureConnectionStart":183.5},{"duration":241.69999998807907,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bv2/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-en/jira.webresources:calendar-en.js","startTime":183.7000000178814,"connectEnd":183.7000000178814,"connectStart":183.7000000178814,"domainLookupEnd":183.7000000178814,"domainLookupStart":183.7000000178814,"fetchStart":183.7000000178814,"redirectEnd":0,"redirectStart":0,"requestStart":183.7000000178814,"responseEnd":425.40000000596046,"responseStart":425.40000000596046,"secureConnectionStart":183.7000000178814},{"duration":241.90000000596046,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bv2/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-localisation-moment/jira.webresources:calendar-localisation-moment.js","startTime":183.90000000596046,"connectEnd":183.90000000596046,"connectStart":183.90000000596046,"domainLookupEnd":183.90000000596046,"domainLookupStart":183.90000000596046,"fetchStart":183.90000000596046,"redirectEnd":0,"redirectStart":0,"requestStart":183.90000000596046,"responseEnd":425.80000001192093,"responseStart":425.80000001192093,"secureConnectionStart":183.90000000596046},{"duration":243.5,"initiatorType":"link","name":"https://jira.mariadb.org/s/b04b06a02d1959df322d9cded3aeecc1-CDN/lu2bv2/820016/12ta74/a2ff6aa845ffc9a1d22fe23d9ee791fc/_/download/contextbatch/css/jira.global.look-and-feel,-_super/batch.css","startTime":184,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":184,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":427.5,"responseStart":0,"secureConnectionStart":0},{"duration":242.09999999403954,"initiatorType":"script","name":"https://jira.mariadb.org/rest/api/1.0/shortcuts/820016/47140b6e0a9bc2e4913da06536125810/shortcuts.js?context=issuenavigation&context=issueaction","startTime":184.10000002384186,"connectEnd":184.10000002384186,"connectStart":184.10000002384186,"domainLookupEnd":184.10000002384186,"domainLookupStart":184.10000002384186,"fetchStart":184.10000002384186,"redirectEnd":0,"redirectStart":0,"requestStart":184.10000002384186,"responseEnd":426.2000000178814,"responseStart":426.2000000178814,"secureConnectionStart":184.10000002384186},{"duration":243.30000001192093,"initiatorType":"link","name":"https://jira.mariadb.org/s/3ac36323ba5e4eb0af2aa7ac7211b4bb-CDN/lu2bv2/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":184.30000001192093,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":184.30000001192093,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":427.60000002384186,"responseStart":0,"secureConnectionStart":0},{"duration":242.30000001192093,"initiatorType":"script","name":"https://jira.mariadb.org/s/719848dd97ebe0663199f49a3936487a-CDN/lu2bv2/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":184.5,"connectEnd":184.5,"connectStart":184.5,"domainLookupEnd":184.5,"domainLookupStart":184.5,"fetchStart":184.5,"redirectEnd":0,"redirectStart":0,"requestStart":184.5,"responseEnd":426.80000001192093,"responseStart":426.80000001192093,"secureConnectionStart":184.5},{"duration":297.19999998807907,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bv2/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-js/jira.webresources:bigpipe-js.js","startTime":185.30000001192093,"connectEnd":185.30000001192093,"connectStart":185.30000001192093,"domainLookupEnd":185.30000001192093,"domainLookupStart":185.30000001192093,"fetchStart":185.30000001192093,"redirectEnd":0,"redirectStart":0,"requestStart":185.30000001192093,"responseEnd":482.5,"responseStart":482.5,"secureConnectionStart":185.30000001192093},{"duration":658.4000000059605,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bv2/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-init/jira.webresources:bigpipe-init.js","startTime":185.30000001192093,"connectEnd":185.30000001192093,"connectStart":185.30000001192093,"domainLookupEnd":185.30000001192093,"domainLookupStart":185.30000001192093,"fetchStart":185.30000001192093,"redirectEnd":0,"redirectStart":0,"requestStart":185.30000001192093,"responseEnd":843.7000000178814,"responseStart":843.7000000178814,"secureConnectionStart":185.30000001192093},{"duration":287.19999998807907,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":629.6000000238419,"connectEnd":629.6000000238419,"connectStart":629.6000000238419,"domainLookupEnd":629.6000000238419,"domainLookupStart":629.6000000238419,"fetchStart":629.6000000238419,"redirectEnd":0,"redirectStart":0,"requestStart":629.6000000238419,"responseEnd":916.8000000119209,"responseStart":916.8000000119209,"secureConnectionStart":629.6000000238419},{"duration":172.40000000596046,"initiatorType":"script","name":"https://www.google-analytics.com/analytics.js","startTime":802.4000000059605,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":802.4000000059605,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":974.8000000119209,"responseStart":0,"secureConnectionStart":0}],"fetchStart":0,"domainLookupStart":0,"domainLookupEnd":0,"connectStart":0,"connectEnd":0,"requestStart":28,"responseStart":166,"responseEnd":169,"domLoading":180,"domInteractive":927,"domContentLoadedEventStart":927,"domContentLoadedEventEnd":962,"domComplete":1509,"loadEventStart":1509,"loadEventEnd":1511,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[{"name":"bigPipe.sidebar-id.start","time":915.6000000238419},{"name":"bigPipe.sidebar-id.end","time":916.3000000119209},{"name":"bigPipe.activity-panel-pipe-id.start","time":916.5},{"name":"bigPipe.activity-panel-pipe-id.end","time":919},{"name":"activityTabFullyLoaded","time":978.8000000119209}],"measures":[],"correlationId":"6336a3b6bc1f49","effectiveType":"4g","downlink":10,"rtt":0,"serverDuration":79,"dbReadsTimeInMs":7,"dbConnsTimeInMs":14,"applicationHash":"9d11dbea5f4be3d4cc21f03a88dd11d8c8687422","experiments":[]}}