Type:
Task
Priority:
Major
Resolution:
Unresolved
Component/s:
None
Not only binary data in tab-separated files look bad in any editor,
it is hardly editable, and this is hard to parse it for the LOAD DATA itself
One possible idea is to add escaping to the field, e.g \X for hex and \B for base64, this makes output tab-separated file more self-describing.
Or, SELECT INTO OUTFILE could rely on result set metadata like command-line client or mariadb-dump does, and LOAD DATA INFILE with hexblob option can rely on DDL info to unhex the field
Otherwise, it should be possibly to explicitly provide field names of hex/base64 encoded fields (although, not quite as user-friendly)
MySQL Shell dump-utilities do that (base64), and store the base64-ed fields in the metadata file, but it would be better to have it implemented in server itself.
Vladislav Vaintroub
made changes -
2024-09-06 11:43
Description
Not only binary data in tab-separated files look bad in any editor,
it is hardly editable, and this is hard to parse it for the LOAD DATA itself
One possible idea is to add escaping to the field, e.g \X for hex and \B for base64.
Otherwise, it should be possibly to explicitely provide field names of hex/base64 encoded fields (although, not quite as user-friendly)
Not only binary data in tab-separated files look bad in any editor,
it is hardly editable, and this is hard to parse it for the LOAD DATA itself
One possible idea is to add escaping to the field, e.g \X for hex and \B for base64, this makes output tab-separated file more self-describing.
Or, SELECT INTO OUTFILE could rely on result set metadata like command-line client or mariadb-dump does, and LOAD DATA INFILE with hexblob option can rely on DDL info to unhex the field
Otherwise, it should be possibly to explicitly provide field names of hex/base64 encoded fields (although, not quite as user-friendly)
Vladislav Vaintroub
made changes -
2024-09-06 11:48
Description
Not only binary data in tab-separated files look bad in any editor,
it is hardly editable, and this is hard to parse it for the LOAD DATA itself
One possible idea is to add escaping to the field, e.g \X for hex and \B for base64, this makes output tab-separated file more self-describing.
Or, SELECT INTO OUTFILE could rely on result set metadata like command-line client or mariadb-dump does, and LOAD DATA INFILE with hexblob option can rely on DDL info to unhex the field
Otherwise, it should be possibly to explicitly provide field names of hex/base64 encoded fields (although, not quite as user-friendly)
Not only binary data in tab-separated files look bad in any editor,
it is hardly editable, and this is hard to parse it for the LOAD DATA itself
One possible idea is to add escaping to the field, e.g \X for hex and \B for base64, this makes output tab-separated file more self-describing.
Or, SELECT INTO OUTFILE could rely on result set metadata like command-line client or mariadb-dump does, and LOAD DATA INFILE with hexblob option can rely on DDL info to unhex the field
Otherwise, it should be possibly to explicitly provide field names of hex/base64 encoded fields (although, not quite as user-friendly)
MySQL Shell dump-utilities do that (base64), and store the base64-ed fields in the metadata file, but it would be better to have it implemented in server itself.
Sergei Golubchik
made changes -
2024-12-10 15:31
Fix Version/s
11.9
[ 29945
]
Fix Version/s
11.8
[ 29921
]
Sergei Golubchik
made changes -
2025-02-25 19:38
Fix Version/s
12.1
[ 29992
]
Fix Version/s
12.0
[ 29945
]
{"report":{"fcp":921.4000000953674,"ttfb":268.90000009536743,"pageVisibility":"visible","entityId":130662,"key":"jira.project.issue.view-issue","isInitial":true,"threshold":1000,"elementTimings":{},"userDeviceMemory":8,"userDeviceProcessors":64,"apdex":1,"journeyId":"4111b7ff-dc5c-4284-85c7-acf47466d90b","navigationType":0,"readyForUser":990.8000001907349,"redirectCount":0,"resourceLoadedEnd":1158.5,"resourceLoadedStart":274.6000003814697,"resourceTiming":[{"duration":116.09999990463257,"initiatorType":"link","name":"https://jira.mariadb.org/s/2c21342762a6a02add1c328bed317ffd-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/css/_super/batch.css","startTime":274.6000003814697,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":274.6000003814697,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":390.7000002861023,"responseStart":0,"secureConnectionStart":0},{"duration":116.2000002861023,"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":274.90000009536743,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":274.90000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":391.1000003814697,"responseStart":0,"secureConnectionStart":0},{"duration":159.7000002861023,"initiatorType":"script","name":"https://jira.mariadb.org/s/0917945aaa57108d00c5076fea35e069-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/js/_super/batch.js?locale=en","startTime":275,"connectEnd":275,"connectStart":275,"domainLookupEnd":275,"domainLookupStart":275,"fetchStart":275,"redirectEnd":0,"redirectStart":0,"requestStart":275,"responseEnd":434.7000002861023,"responseStart":434.7000002861023,"secureConnectionStart":275},{"duration":251.40000009536743,"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":275.2000002861023,"connectEnd":275.2000002861023,"connectStart":275.2000002861023,"domainLookupEnd":275.2000002861023,"domainLookupStart":275.2000002861023,"fetchStart":275.2000002861023,"redirectEnd":0,"redirectStart":0,"requestStart":275.2000002861023,"responseEnd":526.6000003814697,"responseStart":526.6000003814697,"secureConnectionStart":275.2000002861023},{"duration":255.5,"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":275.40000009536743,"connectEnd":275.40000009536743,"connectStart":275.40000009536743,"domainLookupEnd":275.40000009536743,"domainLookupStart":275.40000009536743,"fetchStart":275.40000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":275.40000009536743,"responseEnd":530.9000000953674,"responseStart":530.9000000953674,"secureConnectionStart":275.40000009536743},{"duration":255.69999980926514,"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":275.7000002861023,"connectEnd":275.7000002861023,"connectStart":275.7000002861023,"domainLookupEnd":275.7000002861023,"domainLookupStart":275.7000002861023,"fetchStart":275.7000002861023,"redirectEnd":0,"redirectStart":0,"requestStart":275.7000002861023,"responseEnd":531.4000000953674,"responseStart":531.4000000953674,"secureConnectionStart":275.7000002861023},{"duration":256.5,"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":275.80000019073486,"connectEnd":275.80000019073486,"connectStart":275.80000019073486,"domainLookupEnd":275.80000019073486,"domainLookupStart":275.80000019073486,"fetchStart":275.80000019073486,"redirectEnd":0,"redirectStart":0,"requestStart":275.80000019073486,"responseEnd":532.3000001907349,"responseStart":532.3000001907349,"secureConnectionStart":275.80000019073486},{"duration":313,"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":275.90000009536743,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":275.90000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":588.9000000953674,"responseStart":0,"secureConnectionStart":0},{"duration":256.8999996185303,"initiatorType":"script","name":"https://jira.mariadb.org/rest/api/1.0/shortcuts/820016/47140b6e0a9bc2e4913da06536125810/shortcuts.js?context=issuenavigation&context=issueaction","startTime":276.1000003814697,"connectEnd":276.1000003814697,"connectStart":276.1000003814697,"domainLookupEnd":276.1000003814697,"domainLookupStart":276.1000003814697,"fetchStart":276.1000003814697,"redirectEnd":0,"redirectStart":0,"requestStart":276.1000003814697,"responseEnd":533,"responseStart":533,"secureConnectionStart":276.1000003814697},{"duration":313,"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":276.2000002861023,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":276.2000002861023,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":589.2000002861023,"responseStart":0,"secureConnectionStart":0},{"duration":257.30000019073486,"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":276.40000009536743,"connectEnd":276.40000009536743,"connectStart":276.40000009536743,"domainLookupEnd":276.40000009536743,"domainLookupStart":276.40000009536743,"fetchStart":276.40000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":276.40000009536743,"responseEnd":533.7000002861023,"responseStart":533.7000002861023,"secureConnectionStart":276.40000009536743},{"duration":880.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":277.7000002861023,"connectEnd":277.7000002861023,"connectStart":277.7000002861023,"domainLookupEnd":277.7000002861023,"domainLookupStart":277.7000002861023,"fetchStart":277.7000002861023,"redirectEnd":0,"redirectStart":0,"requestStart":277.7000002861023,"responseEnd":1158.2000002861023,"responseStart":1158.2000002861023,"secureConnectionStart":277.7000002861023},{"duration":876.3999996185303,"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":282.1000003814697,"connectEnd":282.1000003814697,"connectStart":282.1000003814697,"domainLookupEnd":282.1000003814697,"domainLookupStart":282.1000003814697,"fetchStart":282.1000003814697,"redirectEnd":0,"redirectStart":0,"requestStart":282.1000003814697,"responseEnd":1158.5,"responseStart":1158.5,"secureConnectionStart":282.1000003814697},{"duration":448.69999980926514,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":610.1000003814697,"connectEnd":610.1000003814697,"connectStart":610.1000003814697,"domainLookupEnd":610.1000003814697,"domainLookupStart":610.1000003814697,"fetchStart":610.1000003814697,"redirectEnd":0,"redirectStart":0,"requestStart":610.1000003814697,"responseEnd":1058.8000001907349,"responseStart":1058.8000001907349,"secureConnectionStart":610.1000003814697},{"duration":248.5,"initiatorType":"script","name":"https://www.google-analytics.com/analytics.js","startTime":913.9000000953674,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":913.9000000953674,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":1162.4000000953674,"responseStart":0,"secureConnectionStart":0}],"fetchStart":0,"domainLookupStart":0,"domainLookupEnd":0,"connectStart":0,"connectEnd":0,"requestStart":109,"responseStart":269,"responseEnd":274,"domLoading":272,"domInteractive":1201,"domContentLoadedEventStart":1201,"domContentLoadedEventEnd":1243,"domComplete":1524,"loadEventStart":1524,"loadEventEnd":1525,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[{"name":"bigPipe.sidebar-id.start","time":1163.2000002861023},{"name":"bigPipe.sidebar-id.end","time":1164.1000003814697},{"name":"bigPipe.activity-panel-pipe-id.start","time":1164.3000001907349},{"name":"bigPipe.activity-panel-pipe-id.end","time":1168.3000001907349},{"name":"activityTabFullyLoaded","time":1261}],"measures":[],"correlationId":"8ae00153917627","effectiveType":"4g","downlink":10,"rtt":0,"serverDuration":105,"dbReadsTimeInMs":17,"dbConnsTimeInMs":26,"applicationHash":"9d11dbea5f4be3d4cc21f03a88dd11d8c8687422","experiments":[]}}