Derby
  1. Derby
  2. DERBY-5246

Simplify bytecode generation for concatenation operator

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 10.9.1.0
    • Fix Version/s: 10.9.1.0
    • Component/s: SQL
    • Labels:
      None

      Description

      ConcatenationOperatorNode generates bytecode that ensures the result object is not null before calling the method that implements the operator. This breaks the pattern used by other operators (which ensures that the result object is not null inside the method that implements the operator, not in the generated bytecode), and it unnecessarily complicates the code in BinaryOperatorNode.

      The comments indicate that the current approach was chosen to prevent the null check from happening at execution time, but the generated bytecode does perform the null check at execution time, so generating byte code for it shouldn't have any real benefit over writing Java code for it. In general, implementing as much as possible of the execution time code as Java code is preferred to implementing it directly as bytecode because it's easier to read and debug Java code, and because the generated bytecode cannot be shared between execution plans and take more memory.

      1. concat.diff
        5 kB
        Knut Anders Hatlen

        Activity

        Knut Anders Hatlen created issue -
        Knut Anders Hatlen made changes -
        Field Original Value New Value
        Attachment concat.diff [ 12480395 ]
        Knut Anders Hatlen made changes -
        Issue & fix info [Patch Available]
        Knut Anders Hatlen made changes -
        Status Open [ 1 ] In Progress [ 3 ]
        Knut Anders Hatlen made changes -
        Status In Progress [ 3 ] Resolved [ 5 ]
        Issue & fix info [Patch Available]
        Fix Version/s 10.9.0.0 [ 12316344 ]
        Resolution Fixed [ 1 ]
        Knut Anders Hatlen made changes -
        Status Resolved [ 5 ] Closed [ 6 ]
        Gavin made changes -
        Workflow jira [ 12614600 ] Default workflow, editable Closed status [ 12801127 ]

          People

          • Assignee:
            Knut Anders Hatlen
            Reporter:
            Knut Anders Hatlen
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development