docs: @Override
    protected ResultSetFuture newFuture() {
      BoundStatement bound =
          factory
              .preparedStatement
              .bind()
              .setUUID("ts_uuid", input.ts_uuid())
              .setString("trace_id", input.trace_id())
              .setString("id", input.id());
  
      // now set the nullable fields
      if (null != input.trace_id_high()) bound.setString("trace_id_high", input.trace_id_high());
      if (null != input.parent_id()) bound.setString("parent_id", input.parent_id());
      if (null != input.kind()) bound.setString("kind", input.kind());
      if (null != input.span()) bound.setString("span", input.span());
      if (0L != input.ts()) bound.setLong("ts", input.ts());
      if (0L != input.duration()) bound.setLong("duration", input.duration());
      if (null != input.l_ep()) bound.set("l_ep", input.l_ep(), EndpointUDT.class);
      if (null != input.r_ep()) bound.set("r_ep", input.r_ep(), EndpointUDT.class);
      if (!input.annotations().isEmpty()) bound.setList("annotations", input.annotations());
      if (!input.tags().isEmpty()) bound.setMap("tags", input.tags());
      if (input.shared()) bound.setBool("shared", true);
      if (input.debug()) bound.setBool("debug", true);
  
      if (factory.searchEnabled) {
        if (null != input.l_ep()) bound.setString("l_service", input.l_ep().getService());
        if (null != input.annotation_query()) {
          bound.setString("annotation_query", input.annotation_query());
        }
      }
      return factory.session.executeAsync(bound);
    }