Proposal:
Hide
Relax ABNF from
functionExprParameter = functionParameterName EQ ( parameterValue / firstMemberExpr )
to
functionExprParameter = functionParameterName EQ ( parameterValue / commonExpr )
Note: this passes in the result of the expression to the function (not the expression)
Show
Relax ABNF from
functionExprParameter = functionParameterName EQ ( parameterValue / firstMemberExpr )
to
functionExprParameter = functionParameterName EQ ( parameterValue / commonExpr )
Note: this passes in the result of the expression to the function (not the expression)
Resolution:
Show
Accepted: https://www.oasis-open.org/committees/download.php/49055/odata-meeting-35_on-20130502-minutes.html#odata-239
To be able to use/extend the set of functions that can be used in a $apply query option functions need parameters of type expression, which expression can then be applied to each and every instance in the set they are processing.
An very simple example of such a function would:
$apply=GroupBy()/TopN(N=5, Value=Revenue)
Where 5 is just a number indicating the top N we are interested in but were 'Revenue' is actually an expression referring to the Revenue property of the entity in the set the function is acting upon. A better example in which this becomes more apparent would be:
$apply=GroupBy()/TopN(N=5, Value=Revenue sub Cost)
For build in functions we can obviously simply define this but currently there is no way of defining a 'custom' function that could implement the same behavior because we can't pass in expressions.
We then could annotate these functions to signal to tools that they can be used in $apply.
Ralf Handl
made changes -
26/Feb/13 5:00 AM
Field
Original Value
New Value
Proposal
Relax ABNF from
functionExprParameter = functionParameterName EQ ( parameterValue / firstMemberExpr )
to
functionExprParameter = functionParameterName EQ ( parameterValue / commonExpr )
Description
To be able to use/extend the set of functions that can be used in a $apply query option functions need parameters of type (lambda) expression, which expression can then be applied to each and every instance in the set they are processing.
An very simple example of such a function would:
$apply=GroupBy()/TopN( 5, Revenue )
Where 5 is just a number indicating the top N we are interested in but were 'Revenue' is actually an expression refering to the Revenue property of the entity in the set the function is acting upon. A better example in which this becomes more apparent would be:
$apply=GroupBy()/TopN( 5, Revenue - Cost )
For build in functions we can obviously simply define this but currently there is no way of defining a 'custom' function that could implement the same behavior because we can't pass in expressions.
To be able to use/extend the set of functions that can be used in a $apply query option functions need parameters of type expression, which expression can then be applied to each and every instance in the set they are processing.
An very simple example of such a function would:
$apply=GroupBy()/TopN(N=5, Value=Revenue)
Where 5 is just a number indicating the top N we are interested in but were 'Revenue' is actually an expression referring to the Revenue property of the entity in the set the function is acting upon. A better example in which this becomes more apparent would be:
$apply=GroupBy()/TopN(N=5, Value=Revenue sub Cost)
For build in functions we can obviously simply define this but currently there is no way of defining a 'custom' function that could implement the same behavior because we can't pass in expressions.
We then could annotate these functions to signal to tools that they can be used in $apply.
Environment
[Proposed]
Ralf Handl
made changes -
28/Feb/13 4:32 PM
Fix Version/s
V4.0_WD01
[ 10247
]
Ralf Handl
made changes -
22/Mar/13 2:34 AM
Status
New
[ 10000
]
Open
[ 1
]
Michael Pizzo (Inactive)
made changes -
24/Apr/13 10:28 AM
Proposal
Relax ABNF from
functionExprParameter = functionParameterName EQ ( parameterValue / firstMemberExpr )
to
functionExprParameter = functionParameterName EQ ( parameterValue / commonExpr )
Relax ABNF from
functionExprParameter = functionParameterName EQ ( parameterValue / firstMemberExpr )
to
functionExprParameter = functionParameterName EQ ( parameterValue / commonExpr
Note: this passes in the result of the expression to the function (not the expression)
Stefan Drees (Inactive)
made changes -
25/Apr/13 5:34 AM
Proposal
Relax ABNF from
functionExprParameter = functionParameterName EQ ( parameterValue / firstMemberExpr )
to
functionExprParameter = functionParameterName EQ ( parameterValue / commonExpr
Note: this passes in the result of the expression to the function (not the expression)
Relax ABNF from
functionExprParameter = functionParameterName EQ ( parameterValue / firstMemberExpr )
to
functionExprParameter = functionParameterName EQ ( parameterValue / commonExpr )
Note: this passes in the result of the expression to the function (not the expression)
Ralf Handl
made changes -
25/Apr/13 12:11 PM
Resolution
Fixed
[ 1
]
Status
Open
[ 1
]
Resolved
[ 5
]
Ralf Handl
made changes -
25/Apr/13 12:34 PM
Assignee
Ralf Handl
[ ralfhandl
]
Ralf Handl
made changes -
25/Apr/13 5:34 PM
Component/s
OData ABNF Construction Rules
[ 10269
]
Component/s
OData URL Conventions
[ 10270
]
Component/s
OData CSDL
[ 10268
]
Environment
[Proposed]
[Applied]
Ralf Handl
made changes -
07/Aug/15 12:53 PM
Assignee
Ralf Handl
[ ralfhandl
]
Ralf Handl
[ handl
]
{"report":{"apdex":1,"isInitial":true,"journeyId":"6cbf60dd-a4a8-459e-8acb-fcfb2a4f2c32","key":"jira.project.issue.view-issue","navigationType":0,"readyForUser":567.2999997138977,"redirectCount":0,"resourceLoadedEnd":431.5,"resourceLoadedStart":136.40000009536743,"resourceTiming":[{"duration":36.89999961853027,"initiatorType":"link","name":"https://issues.oasis-open.org/s/3edeca31ab9ba77980aae0809fbe7121-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/0a4716d29b2d5b1bdcdb168b4efc119e/_/download/contextbatch/css/_super/batch.css","startTime":136.40000009536743,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":136.40000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":173.2999997138977,"responseStart":0,"secureConnectionStart":0},{"duration":36.90000009536743,"initiatorType":"link","name":"https://issues.oasis-open.org/s/7d2823769c2e7b66e860863fe879b7f8-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/9aebb1c0aaa4c36289529757ec9dbb54/_/download/contextbatch/css/project.issue.navigator,jira.view.issue,jira.global,atl.general,-_super/batch.css?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&richediton=true","startTime":136.69999980926514,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":136.69999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":173.59999990463257,"responseStart":0,"secureConnectionStart":0},{"duration":37.19999980926514,"initiatorType":"link","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/8.0.5/_/download/batch/com.atlassian.auiplugin:split_aui.pattern.label/com.atlassian.auiplugin:split_aui.pattern.label.css","startTime":136.90000009536743,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":136.90000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":174.09999990463257,"responseStart":0,"secureConnectionStart":0},{"duration":37.5,"initiatorType":"link","name":"https://issues.oasis-open.org/s/645acc233eb869f48a571293b8358a7d-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:global-static-adgs/jira.webresources:global-static-adgs.css","startTime":137,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":137,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":174.5,"responseStart":0,"secureConnectionStart":0},{"duration":37.60000038146973,"initiatorType":"link","name":"https://issues.oasis-open.org/s/a0dd6509771c1de0667aae5429c04cda-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:global-static/jira.webresources:global-static.css","startTime":137.2999997138977,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":137.2999997138977,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":174.90000009536743,"responseStart":0,"secureConnectionStart":0},{"duration":89,"initiatorType":"script","name":"https://issues.oasis-open.org/s/e5479157e7a0c08b005e6522f2f04104-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/0a4716d29b2d5b1bdcdb168b4efc119e/_/download/contextbatch/js/_super/batch.js?locale=en-US","startTime":137.5,"connectEnd":137.5,"connectStart":137.5,"domainLookupEnd":137.5,"domainLookupStart":137.5,"fetchStart":137.5,"redirectEnd":0,"redirectStart":0,"requestStart":137.5,"responseEnd":226.5,"responseStart":226.40000009536743,"secureConnectionStart":137.5},{"duration":107.19999980926514,"initiatorType":"script","name":"https://issues.oasis-open.org/s/83514d5d4e8543747b02042eafcdc99c-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/9aebb1c0aaa4c36289529757ec9dbb54/_/download/contextbatch/js/project.issue.navigator,jira.view.issue,jira.global,atl.general,-_super/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&locale=en-US&richediton=true","startTime":138.09999990463257,"connectEnd":138.09999990463257,"connectStart":138.09999990463257,"domainLookupEnd":138.09999990463257,"domainLookupStart":138.09999990463257,"fetchStart":138.09999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":138.09999990463257,"responseEnd":245.2999997138977,"responseStart":245.2999997138977,"secureConnectionStart":138.09999990463257},{"duration":109.40000009536743,"initiatorType":"script","name":"https://issues.oasis-open.org/s/70bb2263e59e7e1f04fbd137c80b895b-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/aae1242f5fc81cc6a5bb8bc963ccda29/_/download/contextbatch/js/atl.global,-_super/batch.js?locale=en-US","startTime":138.19999980926514,"connectEnd":138.19999980926514,"connectStart":138.19999980926514,"domainLookupEnd":138.19999980926514,"domainLookupStart":138.19999980926514,"fetchStart":138.19999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":138.19999980926514,"responseEnd":247.59999990463257,"responseStart":247.59999990463257,"secureConnectionStart":138.19999980926514},{"duration":109.69999980926514,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:calendar-en/jira.webresources:calendar-en.js","startTime":138.40000009536743,"connectEnd":138.40000009536743,"connectStart":138.40000009536743,"domainLookupEnd":138.40000009536743,"domainLookupStart":138.40000009536743,"fetchStart":138.40000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":138.40000009536743,"responseEnd":248.09999990463257,"responseStart":248.09999990463257,"secureConnectionStart":138.40000009536743},{"duration":109.90000009536743,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:calendar-localisation-moment/jira.webresources:calendar-localisation-moment.js","startTime":138.59999990463257,"connectEnd":138.59999990463257,"connectStart":138.59999990463257,"domainLookupEnd":138.59999990463257,"domainLookupStart":138.59999990463257,"fetchStart":138.59999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":138.59999990463257,"responseEnd":248.5,"responseStart":248.5,"secureConnectionStart":138.59999990463257},{"duration":110.2000002861023,"initiatorType":"script","name":"https://issues.oasis-open.org/s/cda37faab827dbdf305de8efe8282062-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/8.0.5/_/download/batch/com.atlassian.auiplugin:split_aui.pattern.label/com.atlassian.auiplugin:split_aui.pattern.label.js?locale=en-US","startTime":138.69999980926514,"connectEnd":138.69999980926514,"connectStart":138.69999980926514,"domainLookupEnd":138.69999980926514,"domainLookupStart":138.69999980926514,"fetchStart":138.69999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":138.69999980926514,"responseEnd":248.90000009536743,"responseStart":248.90000009536743,"secureConnectionStart":138.69999980926514},{"duration":110.5,"initiatorType":"link","name":"https://issues.oasis-open.org/s/07245784f53abc49bad9d9d4d36c577a-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/cadc4f20cc5c138dee060d42cf85f220/_/download/contextbatch/css/jira.global.look-and-feel,-_super/batch.css","startTime":138.90000009536743,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":138.90000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":249.40000009536743,"responseStart":0,"secureConnectionStart":0},{"duration":110.2999997138977,"initiatorType":"script","name":"https://issues.oasis-open.org/rest/api/1.0/shortcuts/803004/a29179d70fa8562374ee16707692af77/shortcuts.js?context=issuenavigation&context=issueaction","startTime":139,"connectEnd":139,"connectStart":139,"domainLookupEnd":139,"domainLookupStart":139,"fetchStart":139,"redirectEnd":0,"redirectStart":0,"requestStart":139,"responseEnd":249.2999997138977,"responseStart":249.2999997138977,"secureConnectionStart":139},{"duration":68.7999997138977,"initiatorType":"link","name":"https://issues.oasis-open.org/s/f77fd89aa211a76b20e9b0e63564383c-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/4a9288299d147101bf66484f4be48925/_/download/contextbatch/css/com.atlassian.jira.projects.sidebar.init,-_super,-jira.view.issue,-project.issue.navigator/batch.css?jira.create.linked.issue=true&richediton=true","startTime":181.40000009536743,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":181.40000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":250.19999980926514,"responseStart":0,"secureConnectionStart":0},{"duration":68.69999980926514,"initiatorType":"script","name":"https://issues.oasis-open.org/s/41525c48ddceeb9b11e54085268fc285-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/4a9288299d147101bf66484f4be48925/_/download/contextbatch/js/com.atlassian.jira.projects.sidebar.init,-_super,-jira.view.issue,-project.issue.navigator/batch.js?jira.create.linked.issue=true&locale=en-US&richediton=true","startTime":181.59999990463257,"connectEnd":181.59999990463257,"connectStart":181.59999990463257,"domainLookupEnd":181.59999990463257,"domainLookupStart":181.59999990463257,"fetchStart":181.59999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":181.59999990463257,"responseEnd":250.2999997138977,"responseStart":250.2999997138977,"secureConnectionStart":181.59999990463257},{"duration":127.40000009536743,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:bigpipe-js/jira.webresources:bigpipe-js.js","startTime":191.09999990463257,"connectEnd":191.09999990463257,"connectStart":191.09999990463257,"domainLookupEnd":191.09999990463257,"domainLookupStart":191.09999990463257,"fetchStart":191.09999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":191.09999990463257,"responseEnd":318.5,"responseStart":318.5,"secureConnectionStart":191.09999990463257},{"duration":216.40000009536743,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:bigpipe-init/jira.webresources:bigpipe-init.js","startTime":215.09999990463257,"connectEnd":215.09999990463257,"connectStart":215.09999990463257,"domainLookupEnd":215.09999990463257,"domainLookupStart":215.09999990463257,"fetchStart":215.09999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":215.09999990463257,"responseEnd":431.5,"responseStart":431.5,"secureConnectionStart":215.09999990463257},{"duration":78,"initiatorType":"xmlhttprequest","name":"https://issues.oasis-open.org/rest/webResources/1.0/resources","startTime":420.40000009536743,"connectEnd":420.40000009536743,"connectStart":420.40000009536743,"domainLookupEnd":420.40000009536743,"domainLookupStart":420.40000009536743,"fetchStart":420.40000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":420.40000009536743,"responseEnd":498.40000009536743,"responseStart":498.40000009536743,"secureConnectionStart":420.40000009536743}],"threshold":1000,"fetchStart":0,"domainLookupStart":31,"domainLookupEnd":31,"connectStart":31,"connectEnd":80,"secureConnectionStart":55,"requestStart":80,"responseStart":129,"responseEnd":215,"domLoading":132,"domInteractive":646,"domContentLoadedEventStart":646,"domContentLoadedEventEnd":696,"domComplete":755,"loadEventStart":755,"loadEventEnd":757,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[],"measures":[],"correlationId":"f6d0a1732be97b","effectiveType":"4g","downlink":10,"rtt":0,"serverDuration":109,"dbReadsTimeInMs":23,"dbConnsTimeInMs":26,"applicationHash":"4d4040e0714d65b7fffa4801569d014c0b16eaa9","experiments":[]}}