Inspect usage of the Estimates library and make it more resilient

XMLWordPrintableJSON

    • Type: Improvement
    • Resolution: Unresolved
    • Priority: Blocker - P1
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Query Optimization
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      The estimates library (estimates.[h,cpp]) provides a compile-time safe double wrapper with runtime bounds checking and approximate equality.

      Runtime checks ensure that it is not possible to generate meaningless estimates, such as negative CEs or costs. However, approximate comparison requires more careful consideration by users of this library because some operations may have non-obvious consequences.

      • Inspect all potentially dangerous uses of estimates. Most notably subtraction and division that may result in invalid estimates that would trigger a tassert.
      • Make the Estimates library more resilient to developer errors when comparison operator semantics differs from that of built-in C++ operators.

      As a result there should be fewer cases when tasserts may be thrown, and fewer cases where users of the library must understand its details.

            Assignee:
            Timour Katchaounov
            Reporter:
            Timour Katchaounov
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: