Uploaded image for project: 'OASIS Open Data Protocol (OData) TC'
  1. OASIS Open Data Protocol (OData) TC
  2. ODATA-919

Specify the result type for each operation based on operator types

    XMLWordPrintable

    Details

    • Type: Improvement
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: V4.0_OS
    • Fix Version/s: V4.02_WD01
    • Component/s: URL Conventions
    • Labels:
      None
    • Proposal:
      Hide

      Specify the result type for each operation based on operator types (refine and put in matrix)
      a) int* add/mult/sub int* => int64 (may be +/-inf)
      b) Int* add/mult/sub decimal/single/double => promotion rules will promote, then type
      c) int* div int* => loperand (or larger) -> service can always promote to int64
      d) Int* div decimal/single/double => roperand
      e) decimal/single/double div number => operation promotes smaller operand; result is that type
      f) number divideby number =>decimal
      g) Int* mod Int* the type of the loperand (or larger)
      h) Int* mod decimal/single/double => roperand (service can promote to decimal)
      i) Decimal/single/double mod number => loperand (service can promote to decimal)
      j) Single add/mult/sub single -> single
      k) Double add/mult/sub Double -> double (note, if either operand is single, gets promoted to double)

      l) Don't promote outside of type families
      m) Do not promote Single->Double

      Show
      Specify the result type for each operation based on operator types (refine and put in matrix) a) int* add/mult/sub int* => int64 (may be +/-inf) b) Int* add/mult/sub decimal/single/double => promotion rules will promote, then type c) int* div int* => loperand (or larger) -> service can always promote to int64 d) Int* div decimal/single/double => roperand e) decimal/single/double div number => operation promotes smaller operand; result is that type f) number divideby number =>decimal g) Int* mod Int* the type of the loperand (or larger) h) Int* mod decimal/single/double => roperand (service can promote to decimal) i) Decimal/single/double mod number => loperand (service can promote to decimal) j) Single add/mult/sub single -> single k) Double add/mult/sub Double -> double (note, if either operand is single, gets promoted to double) l) Don't promote outside of type families m) Do not promote Single->Double

      Description

      See ODATA-785 for a description of the issue --> Comments Section.

        Attachments

          Activity

            People

            • Assignee:
              handl Ralf Handl
              Reporter:
              martinzurmuehl Martin Zurmuehl
            • Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated: