{
  "comment" : "This is generated by ESQL's AbstractFunctionTestCase. Do not edit it. See ../README.md for how to regenerate it.",
  "type" : "scalar",
  "name" : "mv_intersection",
  "description" : "Returns the values that appear in both input fields. Returns `null` if either field is null or if no values match.",
  "signatures" : [
    {
      "params" : [
        {
          "name" : "field1",
          "type" : "boolean",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        },
        {
          "name" : "field2",
          "type" : "boolean",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        }
      ],
      "variadic" : false,
      "returnType" : "boolean"
    },
    {
      "params" : [
        {
          "name" : "field1",
          "type" : "cartesian_point",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        },
        {
          "name" : "field2",
          "type" : "cartesian_point",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        }
      ],
      "variadic" : false,
      "returnType" : "cartesian_point"
    },
    {
      "params" : [
        {
          "name" : "field1",
          "type" : "cartesian_shape",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        },
        {
          "name" : "field2",
          "type" : "cartesian_shape",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        }
      ],
      "variadic" : false,
      "returnType" : "cartesian_shape"
    },
    {
      "params" : [
        {
          "name" : "field1",
          "type" : "date",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        },
        {
          "name" : "field2",
          "type" : "date",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        }
      ],
      "variadic" : false,
      "returnType" : "date"
    },
    {
      "params" : [
        {
          "name" : "field1",
          "type" : "date_nanos",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        },
        {
          "name" : "field2",
          "type" : "date_nanos",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        }
      ],
      "variadic" : false,
      "returnType" : "date_nanos"
    },
    {
      "params" : [
        {
          "name" : "field1",
          "type" : "double",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        },
        {
          "name" : "field2",
          "type" : "double",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        }
      ],
      "variadic" : false,
      "returnType" : "double"
    },
    {
      "params" : [
        {
          "name" : "field1",
          "type" : "geo_point",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        },
        {
          "name" : "field2",
          "type" : "geo_point",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        }
      ],
      "variadic" : false,
      "returnType" : "geo_point"
    },
    {
      "params" : [
        {
          "name" : "field1",
          "type" : "geo_shape",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        },
        {
          "name" : "field2",
          "type" : "geo_shape",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        }
      ],
      "variadic" : false,
      "returnType" : "geo_shape"
    },
    {
      "params" : [
        {
          "name" : "field1",
          "type" : "geohash",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        },
        {
          "name" : "field2",
          "type" : "geohash",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        }
      ],
      "variadic" : false,
      "returnType" : "geohash"
    },
    {
      "params" : [
        {
          "name" : "field1",
          "type" : "geohex",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        },
        {
          "name" : "field2",
          "type" : "geohex",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        }
      ],
      "variadic" : false,
      "returnType" : "geohex"
    },
    {
      "params" : [
        {
          "name" : "field1",
          "type" : "geotile",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        },
        {
          "name" : "field2",
          "type" : "geotile",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        }
      ],
      "variadic" : false,
      "returnType" : "geotile"
    },
    {
      "params" : [
        {
          "name" : "field1",
          "type" : "integer",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        },
        {
          "name" : "field2",
          "type" : "integer",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        }
      ],
      "variadic" : false,
      "returnType" : "integer"
    },
    {
      "params" : [
        {
          "name" : "field1",
          "type" : "ip",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        },
        {
          "name" : "field2",
          "type" : "ip",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        }
      ],
      "variadic" : false,
      "returnType" : "ip"
    },
    {
      "params" : [
        {
          "name" : "field1",
          "type" : "keyword",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        },
        {
          "name" : "field2",
          "type" : "keyword",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        }
      ],
      "variadic" : false,
      "returnType" : "keyword"
    },
    {
      "params" : [
        {
          "name" : "field1",
          "type" : "keyword",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        },
        {
          "name" : "field2",
          "type" : "text",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        }
      ],
      "variadic" : false,
      "returnType" : "keyword"
    },
    {
      "params" : [
        {
          "name" : "field1",
          "type" : "long",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        },
        {
          "name" : "field2",
          "type" : "long",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        }
      ],
      "variadic" : false,
      "returnType" : "long"
    },
    {
      "params" : [
        {
          "name" : "field1",
          "type" : "text",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        },
        {
          "name" : "field2",
          "type" : "keyword",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        }
      ],
      "variadic" : false,
      "returnType" : "keyword"
    },
    {
      "params" : [
        {
          "name" : "field1",
          "type" : "text",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        },
        {
          "name" : "field2",
          "type" : "text",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        }
      ],
      "variadic" : false,
      "returnType" : "keyword"
    },
    {
      "params" : [
        {
          "name" : "field1",
          "type" : "unsigned_long",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        },
        {
          "name" : "field2",
          "type" : "unsigned_long",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        }
      ],
      "variadic" : false,
      "returnType" : "unsigned_long"
    },
    {
      "params" : [
        {
          "name" : "field1",
          "type" : "version",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        },
        {
          "name" : "field2",
          "type" : "version",
          "optional" : false,
          "description" : "Multivalue expression. If null, the function returns null."
        }
      ],
      "variadic" : false,
      "returnType" : "version"
    }
  ],
  "examples" : [
    "ROW a = [1, 2, 3, 4, 5], b = [2, 3, 4, 5, 6]\n| EVAL finalValue = MV_INTERSECTION(a, b)\n| KEEP finalValue",
    "ROW a = [1, 2, 3, 4, 5]::long, b = [2, 3, 4, 5, 6]::long\n| EVAL finalValue = MV_INTERSECTION(a, b)\n| KEEP finalValue",
    "ROW a = [true, false, false, false], b = [false]\n| EVAL finalValue = MV_INTERSECTION(a, b)\n| KEEP finalValue",
    "ROW a = [5.2, 10.5, 1.12345, 2.6928], b = [10.5, 2.6928]\n| EVAL finalValue = MV_INTERSECTION(a, b)\n| KEEP finalValue",
    "ROW a = [\"one\", \"two\", \"three\", \"four\", \"five\"], b = [\"one\", \"four\"]\n| EVAL finalValue = MV_INTERSECTION(a, b)\n| KEEP finalValue"
  ],
  "preview" : true,
  "snapshot_only" : false
}
