docs: void setInConditionsAsTables() {
  
          for (int i = rangeVariables.length - 1; i >= 0; i--) {
              RangeVariable rangeVar = rangeVariables[i];
              Expression    in       = inExpressions[i];
  
              if (in != null) {
                  Index index = rangeVar.rangeTable.getIndexForColumn(
                      in.getLeftNode().nodes[0].getColumnIndex());
                  RangeVariable newRangeVar =
                      new RangeVariable(in.getRightNode().subQuery.getTable(),
                                        null, null, null, compileContext);
                  RangeVariable[] newList =
                      new RangeVariable[rangeVariables.length + 1];
  
                  ArrayUtil.copyAdjustArray(rangeVariables, newList,
                                            newRangeVar, i, 1);
  
                  rangeVariables = newList;
  
                  // make two columns as arg
                  ColumnSchema left = rangeVar.rangeTable.getColumn(
                      in.getLeftNode().nodes[0].getColumnIndex());
                  ColumnSchema right = newRangeVar.rangeTable.getColumn(0);
                  Expression e = new ExpressionLogical(rangeVar, left,
                                                       newRangeVar, right);
  
                  rangeVar.addIndexCondition(e, index, flags[i]);
              }
          }
      }