Type:
Task
Priority:
Major
Resolution:
Unresolved
Fix Version/s:
None
Component/s:
None
Create_field is a big class and some of its parts are not really used in many contexts.
Before adding pluggable data types under terms of MDEV-4912 , it would be nice to clean-up use of Create_field.
Under terms of this task we will:
1. Move members of Create_field that are needed only at ALTER time into a separate class Alter_column_specification:
class Alter_column_specification
{
public:
const char *change; // If done with alter table
const char *after; // Put column after this one
Field *field; // For alter table
TYPELIB *save_interval; // Temporary copy for the above
// Used only for UCS2 intervals
uint offset;
uint8 interval_id; // For rea_create_table
bool create_if_not_exists; // Used in ALTER TABLE IF NOT EXISTS
};
2. Move the rest of Create_field members (except field_name) into a separate class Column_specification.
class Column_specification
{
public:
LEX_STRING comment;
Item *def, *on_update;
enum enum_field_types sql_type;
ulonglong length;
uint32 char_length;
uint decimals, flags, pack_length, key_length;
Field::utype unireg_check;
TYPELIB *interval;
List<String> interval_list;
CHARSET_INFO *charset;
uint32 srid;
Field::geometry_type geom_type;
engine_option_value *option_list;
ha_field_option_struct *option_struct;
uint pack_flag;
Virtual_column_info *vcol_info;
bool stored_in_db;
};
3. Derive Create_field from Column_specification and Alter_column_specification:
class Create_field: public Column_specification,
public Alter_column_specification,
public Sql_alloc
{
public:
LEX_CSTRING field_name;
};
Note, Create_field::field_name will be changed from "const char *" to LEX_CSTRING
under terms of MDEV-8092 .
4. Change data type of sp_variable::field_def and sp_head::m_return_field_def
from Create_field to Column_specification. These classes need neither the
Alter_column_specification nor the "field_name" parts of Create_field.
is blocked by
MDEV-8092
Change Column_definition::field_name from "const char *" to LEX_CSTRING
Closed
{"report":{"fcp":3088.199999809265,"ttfb":951.4000000953674,"pageVisibility":"visible","entityId":51203,"key":"jira.project.issue.view-issue","isInitial":true,"threshold":1000,"elementTimings":{},"userDeviceMemory":8,"userDeviceProcessors":64,"apdex":0.5,"journeyId":"378575fb-b34f-4950-a168-fb23358233b5","navigationType":0,"readyForUser":3142.5999999046326,"redirectCount":0,"resourceLoadedEnd":3593.0999999046326,"resourceLoadedStart":1051.6999998092651,"resourceTiming":[{"duration":1147.5,"initiatorType":"link","name":"https://jira.mariadb.org/s/2c21342762a6a02add1c328bed317ffd-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/css/_super/batch.css","startTime":1051.6999998092651,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":1051.6999998092651,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":2199.199999809265,"responseStart":0,"secureConnectionStart":0},{"duration":1147.4000000953674,"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":1052.0999999046326,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":1052.0999999046326,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":2199.5,"responseStart":0,"secureConnectionStart":0},{"duration":1298.2999997138977,"initiatorType":"script","name":"https://jira.mariadb.org/s/0917945aaa57108d00c5076fea35e069-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/js/_super/batch.js?locale=en","startTime":1052.3000001907349,"connectEnd":1052.3000001907349,"connectStart":1052.3000001907349,"domainLookupEnd":1052.3000001907349,"domainLookupStart":1052.3000001907349,"fetchStart":1052.3000001907349,"redirectEnd":0,"redirectStart":0,"requestStart":1052.3000001907349,"responseEnd":2350.5999999046326,"responseStart":2350.5999999046326,"secureConnectionStart":1052.3000001907349},{"duration":1394.5999999046326,"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":1052.5,"connectEnd":1052.5,"connectStart":1052.5,"domainLookupEnd":1052.5,"domainLookupStart":1052.5,"fetchStart":1052.5,"redirectEnd":0,"redirectStart":0,"requestStart":1052.5,"responseEnd":2447.0999999046326,"responseStart":2447.0999999046326,"secureConnectionStart":1052.5},{"duration":1399.7000002861023,"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":1052.6999998092651,"connectEnd":1052.6999998092651,"connectStart":1052.6999998092651,"domainLookupEnd":1052.6999998092651,"domainLookupStart":1052.6999998092651,"fetchStart":1052.6999998092651,"redirectEnd":0,"redirectStart":0,"requestStart":1052.6999998092651,"responseEnd":2452.4000000953674,"responseStart":2452.4000000953674,"secureConnectionStart":1052.6999998092651},{"duration":1400.0999999046326,"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":1053,"connectEnd":1053,"connectStart":1053,"domainLookupEnd":1053,"domainLookupStart":1053,"fetchStart":1053,"redirectEnd":0,"redirectStart":0,"requestStart":1053,"responseEnd":2453.0999999046326,"responseStart":2453.0999999046326,"secureConnectionStart":1053},{"duration":1400.5999999046326,"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":1053.0999999046326,"connectEnd":1053.0999999046326,"connectStart":1053.0999999046326,"domainLookupEnd":1053.0999999046326,"domainLookupStart":1053.0999999046326,"fetchStart":1053.0999999046326,"redirectEnd":0,"redirectStart":0,"requestStart":1053.0999999046326,"responseEnd":2453.699999809265,"responseStart":2453.699999809265,"secureConnectionStart":1053.0999999046326},{"duration":1603,"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":1053.3000001907349,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":1053.3000001907349,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":2656.300000190735,"responseStart":0,"secureConnectionStart":0},{"duration":1400.9000000953674,"initiatorType":"script","name":"https://jira.mariadb.org/rest/api/1.0/shortcuts/820016/47140b6e0a9bc2e4913da06536125810/shortcuts.js?context=issuenavigation&context=issueaction","startTime":1053.4000000953674,"connectEnd":1053.4000000953674,"connectStart":1053.4000000953674,"domainLookupEnd":1053.4000000953674,"domainLookupStart":1053.4000000953674,"fetchStart":1053.4000000953674,"redirectEnd":0,"redirectStart":0,"requestStart":1053.4000000953674,"responseEnd":2454.300000190735,"responseStart":2454.300000190735,"secureConnectionStart":1053.4000000953674},{"duration":1603.1000003814697,"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":1053.6999998092651,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":1053.6999998092651,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":2656.800000190735,"responseStart":0,"secureConnectionStart":0},{"duration":1414.1999998092651,"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":1053.8000001907349,"connectEnd":1053.8000001907349,"connectStart":1053.8000001907349,"domainLookupEnd":1053.8000001907349,"domainLookupStart":1053.8000001907349,"fetchStart":1053.8000001907349,"redirectEnd":0,"redirectStart":0,"requestStart":1053.8000001907349,"responseEnd":2468,"responseStart":2467.9000000953674,"secureConnectionStart":1053.8000001907349},{"duration":2531.300000190735,"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":1054.6999998092651,"connectEnd":1054.6999998092651,"connectStart":1054.6999998092651,"domainLookupEnd":1054.6999998092651,"domainLookupStart":1054.6999998092651,"fetchStart":1054.6999998092651,"redirectEnd":0,"redirectStart":0,"requestStart":1054.6999998092651,"responseEnd":3586,"responseStart":3586,"secureConnectionStart":1054.6999998092651},{"duration":2538.2999997138977,"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":1054.8000001907349,"connectEnd":1054.8000001907349,"connectStart":1054.8000001907349,"domainLookupEnd":1054.8000001907349,"domainLookupStart":1054.8000001907349,"fetchStart":1054.8000001907349,"redirectEnd":0,"redirectStart":0,"requestStart":1054.8000001907349,"responseEnd":3593.0999999046326,"responseStart":3593.0999999046326,"secureConnectionStart":1054.8000001907349},{"duration":648.1999998092651,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":2695.5,"connectEnd":2695.5,"connectStart":2695.5,"domainLookupEnd":2695.5,"domainLookupStart":2695.5,"fetchStart":2695.5,"redirectEnd":0,"redirectStart":0,"requestStart":2695.5,"responseEnd":3343.699999809265,"responseStart":3343.699999809265,"secureConnectionStart":2695.5},{"duration":621.1000003814697,"initiatorType":"script","name":"https://www.google-analytics.com/analytics.js","startTime":3064.199999809265,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":3064.199999809265,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":3685.300000190735,"responseStart":0,"secureConnectionStart":0}],"fetchStart":0,"domainLookupStart":0,"domainLookupEnd":0,"connectStart":0,"connectEnd":0,"requestStart":794,"responseStart":951,"responseEnd":1047,"domLoading":1049,"domInteractive":3616,"domContentLoadedEventStart":3616,"domContentLoadedEventEnd":3680,"domComplete":6109,"loadEventStart":6109,"loadEventEnd":6111,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[{"name":"bigPipe.sidebar-id.start","time":3595.300000190735},{"name":"bigPipe.sidebar-id.end","time":3596.300000190735},{"name":"bigPipe.activity-panel-pipe-id.start","time":3596.4000000953674},{"name":"bigPipe.activity-panel-pipe-id.end","time":3599.0999999046326},{"name":"activityTabFullyLoaded","time":3690.0999999046326}],"measures":[],"correlationId":"250572bbdffe73","effectiveType":"4g","downlink":9.1,"rtt":0,"serverDuration":93,"dbReadsTimeInMs":11,"dbConnsTimeInMs":19,"applicationHash":"9d11dbea5f4be3d4cc21f03a88dd11d8c8687422","experiments":[]}}