Note, this task is only to understand and ignore the NOCOPY keyword. The optimization (pass-by-reference instead of pass-by-value) helping to avoid value copying will be done in a separate task when needed.
As was noted elsewhere, some of the existing comments are already wrong, so maybe the list needs a general cleanup, out of the scope of this task.
In Oracle NOCOPY is only allowed for OUT and IN OUT parameters, but not for IN parameters. MariaDB now allows them for all, as specified in the task description. Since the goal is Oracle => MariaDB compatibility, more relaxed rules shouldn't cause any harm.
To my understanding, in Oracle parameter attributes (including NOCOPY) in a package description and the package body must strictly match. In MariaDB they can be different; but it is already so for other parameter attributes and types.
MDEV-28248 is an unfortunate nuisance which now affects nocopy as well.
Elena Stepanova
added a comment - - edited After MDEV-35229 was fixed, I don't see anything else that wouldn't allow the feature to remain in the main branch and be released with 11.7.1.
Minor notes:
when keywords are added, it is customary to accompany them with a comment. It hasn't been done for NOCOPY :
%token <kwd> GOTO_MARIADB_SYM // Oracle-R
%token <kwd> NOCOPY_SYM
%token <kwd> OTHERS_MARIADB_SYM // SQL-2011-N, PLSQL-R
As was noted elsewhere, some of the existing comments are already wrong, so maybe the list needs a general cleanup, out of the scope of this task.
In Oracle NOCOPY is only allowed for OUT and IN OUT parameters, but not for IN parameters. MariaDB now allows them for all, as specified in the task description. Since the goal is Oracle => MariaDB compatibility, more relaxed rules shouldn't cause any harm.
To my understanding, in Oracle parameter attributes (including NOCOPY ) in a package description and the package body must strictly match. In MariaDB they can be different; but it is already so for other parameter attributes and types.
MDEV-28248 is an unfortunate nuisance which now affects nocopy as well.
NOCOPY is not a reserved word in Oracle, so Oracle-R is strictly speaking incorrect, but we don't have Oracle-N anywhere, even non-reserved words are marked with Oracle-R. I'm hesitant to fix these labels as a part of this MDEV
Sergei Golubchik
added a comment - - edited NOCOPY is not a reserved word in Oracle, so Oracle-R is strictly speaking incorrect, but we don't have Oracle-N anywhere, even non-reserved words are marked with Oracle-R . I'm hesitant to fix these labels as a part of this MDEV
People
Sergei Golubchik
Alexander Barkov
Votes:
0Vote for this issue
Watchers:
5Start 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":759.5999994277954,"ttfb":162.89999961853027,"pageVisibility":"visible","entityId":129456,"key":"jira.project.issue.view-issue","isInitial":true,"threshold":1000,"elementTimings":{},"userDeviceMemory":8,"userDeviceProcessors":32,"apdex":1,"journeyId":"81710541-bcd6-46ac-9443-4ab7b51ad2a6","navigationType":0,"readyForUser":846.3999996185303,"redirectCount":0,"resourceLoadedEnd":792.8999996185303,"resourceLoadedStart":167.5999994277954,"resourceTiming":[{"duration":7.699999809265137,"initiatorType":"link","name":"https://jira.mariadb.org/s/2c21342762a6a02add1c328bed317ffd-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/css/_super/batch.css","startTime":167.5999994277954,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":167.5999994277954,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":175.29999923706055,"responseStart":0,"secureConnectionStart":0},{"duration":7.699999809265137,"initiatorType":"link","name":"https://jira.mariadb.org/s/7ebd35e77e471bc30ff0eba799ebc151-CDN/lu2cib/820016/12ta74/2bf333562ca6724060a9d5f1535471f6/_/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":167.89999961853027,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":167.89999961853027,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":175.5999994277954,"responseStart":0,"secureConnectionStart":0},{"duration":72.09999942779541,"initiatorType":"script","name":"https://jira.mariadb.org/s/0917945aaa57108d00c5076fea35e069-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/js/_super/batch.js?locale=en","startTime":168,"connectEnd":168,"connectStart":168,"domainLookupEnd":168,"domainLookupStart":168,"fetchStart":168,"redirectEnd":0,"redirectStart":0,"requestStart":168,"responseEnd":240.0999994277954,"responseStart":240.0999994277954,"secureConnectionStart":168},{"duration":115.30000019073486,"initiatorType":"script","name":"https://jira.mariadb.org/s/2d8175ec2fa4c816e8023260bd8c1786-CDN/lu2cib/820016/12ta74/2bf333562ca6724060a9d5f1535471f6/_/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":168.19999980926514,"connectEnd":168.19999980926514,"connectStart":168.19999980926514,"domainLookupEnd":168.19999980926514,"domainLookupStart":168.19999980926514,"fetchStart":168.19999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":168.19999980926514,"responseEnd":283.5,"responseStart":283.5,"secureConnectionStart":168.19999980926514},{"duration":119,"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":168.29999923706055,"connectEnd":168.29999923706055,"connectStart":168.29999923706055,"domainLookupEnd":168.29999923706055,"domainLookupStart":168.29999923706055,"fetchStart":168.29999923706055,"redirectEnd":0,"redirectStart":0,"requestStart":168.29999923706055,"responseEnd":287.29999923706055,"responseStart":287.29999923706055,"secureConnectionStart":168.29999923706055},{"duration":119.39999961853027,"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":168.5,"connectEnd":168.5,"connectStart":168.5,"domainLookupEnd":168.5,"domainLookupStart":168.5,"fetchStart":168.5,"redirectEnd":0,"redirectStart":0,"requestStart":168.5,"responseEnd":287.8999996185303,"responseStart":287.8999996185303,"secureConnectionStart":168.5},{"duration":119.60000038146973,"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":168.79999923706055,"connectEnd":168.79999923706055,"connectStart":168.79999923706055,"domainLookupEnd":168.79999923706055,"domainLookupStart":168.79999923706055,"fetchStart":168.79999923706055,"redirectEnd":0,"redirectStart":0,"requestStart":168.79999923706055,"responseEnd":288.3999996185303,"responseStart":288.3999996185303,"secureConnectionStart":168.79999923706055},{"duration":225.39999961853027,"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":168.89999961853027,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":168.89999961853027,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":394.29999923706055,"responseStart":0,"secureConnectionStart":0},{"duration":120.19999980926514,"initiatorType":"script","name":"https://jira.mariadb.org/rest/api/1.0/shortcuts/820016/47140b6e0a9bc2e4913da06536125810/shortcuts.js?context=issuenavigation&context=issueaction","startTime":169,"connectEnd":169,"connectStart":169,"domainLookupEnd":169,"domainLookupStart":169,"fetchStart":169,"redirectEnd":0,"redirectStart":0,"requestStart":169,"responseEnd":289.19999980926514,"responseStart":289.19999980926514,"secureConnectionStart":169},{"duration":225.19999980926514,"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":169.19999980926514,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":169.19999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":394.3999996185303,"responseStart":0,"secureConnectionStart":0},{"duration":120.39999961853027,"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":169.39999961853027,"connectEnd":169.39999961853027,"connectStart":169.39999961853027,"domainLookupEnd":169.39999961853027,"domainLookupStart":169.39999961853027,"fetchStart":169.39999961853027,"redirectEnd":0,"redirectStart":0,"requestStart":169.39999961853027,"responseEnd":289.79999923706055,"responseStart":289.79999923706055,"secureConnectionStart":169.39999961853027},{"duration":299.79999923706055,"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":175,"connectEnd":175,"connectStart":175,"domainLookupEnd":175,"domainLookupStart":175,"fetchStart":175,"redirectEnd":0,"redirectStart":0,"requestStart":175,"responseEnd":474.79999923706055,"responseStart":474.79999923706055,"secureConnectionStart":175},{"duration":495.9000005722046,"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":175.0999994277954,"connectEnd":175.0999994277954,"connectStart":175.0999994277954,"domainLookupEnd":175.0999994277954,"domainLookupStart":175.0999994277954,"fetchStart":175.0999994277954,"redirectEnd":0,"redirectStart":0,"requestStart":175.0999994277954,"responseEnd":671,"responseStart":671,"secureConnectionStart":175.0999994277954},{"duration":41.69999980926514,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":453.69999980926514,"connectEnd":453.69999980926514,"connectStart":453.69999980926514,"domainLookupEnd":453.69999980926514,"domainLookupStart":453.69999980926514,"fetchStart":453.69999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":453.69999980926514,"responseEnd":495.3999996185303,"responseStart":495.3999996185303,"secureConnectionStart":453.69999980926514},{"duration":38.20000076293945,"initiatorType":"link","name":"https://jira.mariadb.org/s/d5715adaadd168a9002b108b2b039b50-CDN/lu2cib/820016/12ta74/be4b45e9cec53099498fa61c8b7acba4/_/download/contextbatch/css/jira.project.sidebar,-_super,-project.issue.navigator,-jira.general,-jira.browse.project,-jira.view.issue,-jira.global,-atl.general,-com.atlassian.jira.projects.sidebar.init/batch.css?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&slack-enabled=true","startTime":671.7999992370605,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":671.7999992370605,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":710,"responseStart":0,"secureConnectionStart":0},{"duration":115.80000019073486,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/e65b778d185daf5aee24936755b43da6/_/download/contextbatch/js/browser-metrics-plugin.contrib,-_super,-project.issue.navigator,-jira.view.issue,-atl.general/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&slack-enabled=true","startTime":672.6999998092651,"connectEnd":672.6999998092651,"connectStart":672.6999998092651,"domainLookupEnd":672.6999998092651,"domainLookupStart":672.6999998092651,"fetchStart":672.6999998092651,"redirectEnd":0,"redirectStart":0,"requestStart":672.6999998092651,"responseEnd":788.5,"responseStart":788.5,"secureConnectionStart":672.6999998092651},{"duration":119.80000019073486,"initiatorType":"script","name":"https://jira.mariadb.org/s/097ae97cb8fbec7d6ea4bbb1f26955b9-CDN/lu2cib/820016/12ta74/be4b45e9cec53099498fa61c8b7acba4/_/download/contextbatch/js/jira.project.sidebar,-_super,-project.issue.navigator,-jira.general,-jira.browse.project,-jira.view.issue,-jira.global,-atl.general,-com.atlassian.jira.projects.sidebar.init/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&locale=en&slack-enabled=true","startTime":673.0999994277954,"connectEnd":673.0999994277954,"connectStart":673.0999994277954,"domainLookupEnd":673.0999994277954,"domainLookupStart":673.0999994277954,"fetchStart":673.0999994277954,"redirectEnd":0,"redirectStart":0,"requestStart":673.0999994277954,"responseEnd":792.8999996185303,"responseStart":792.8999996185303,"secureConnectionStart":673.0999994277954},{"duration":127.70000076293945,"initiatorType":"script","name":"https://www.google-analytics.com/analytics.js","startTime":753.2999992370605,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":753.2999992370605,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":881,"responseStart":0,"secureConnectionStart":0},{"duration":130.20000076293945,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":774.2999992370605,"connectEnd":774.2999992370605,"connectStart":774.2999992370605,"domainLookupEnd":774.2999992370605,"domainLookupStart":774.2999992370605,"fetchStart":774.2999992370605,"redirectEnd":0,"redirectStart":0,"requestStart":774.2999992370605,"responseEnd":904.5,"responseStart":904.5,"secureConnectionStart":774.2999992370605},{"duration":31.5,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":923.3999996185303,"connectEnd":923.3999996185303,"connectStart":923.3999996185303,"domainLookupEnd":923.3999996185303,"domainLookupStart":923.3999996185303,"fetchStart":923.3999996185303,"redirectEnd":0,"redirectStart":0,"requestStart":923.3999996185303,"responseEnd":954.8999996185303,"responseStart":954.8999996185303,"secureConnectionStart":923.3999996185303}],"fetchStart":0,"domainLookupStart":0,"domainLookupEnd":0,"connectStart":0,"connectEnd":0,"requestStart":3,"responseStart":163,"responseEnd":168,"domLoading":166,"domInteractive":923,"domContentLoadedEventStart":923,"domContentLoadedEventEnd":965,"domComplete":1012,"loadEventStart":1012,"loadEventEnd":1013,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[{"name":"bigPipe.sidebar-id.start","time":883.0999994277954},{"name":"bigPipe.sidebar-id.end","time":883.8999996185303},{"name":"bigPipe.activity-panel-pipe-id.start","time":884.0999994277954},{"name":"bigPipe.activity-panel-pipe-id.end","time":885.5999994277954},{"name":"activityTabFullyLoaded","time":984.5}],"measures":[],"correlationId":"537ed7b3609a11","effectiveType":"4g","downlink":10,"rtt":0,"serverDuration":101,"dbReadsTimeInMs":12,"dbConnsTimeInMs":20,"applicationHash":"9d11dbea5f4be3d4cc21f03a88dd11d8c8687422","experiments":[]}}
PR #3517 was reviewed and merged.