Uploaded image for project: 'Calcite'
  1. Calcite
  2. CALCITE-6522

MAP_KEYS and MAP_VALUES function should throw if a key value is null

    XMLWordPrintableJSON

Details

    Description

      scala> val df = spark.sql("select map_keys(map(null,0))");
      df: org.apache.spark.sql.DataFrame = [map_keys(map(NULL, 0)): array<void>]

      scala> df.show();
      org.apache.spark.SparkRuntimeException: [NULL_MAP_KEY] Cannot use null as map key.
      at org.apache.spark.sql.errors.QueryExecutionErrors$.nullAsMapKeyNotAllowedError(QueryExecutionErrors.scala:445)
      at org.apache.spark.sql.catalyst.util.ArrayBasedMapBuilder.put(ArrayBasedMapBuilder.scala:56)
      at org.apache.spark.sql.catalyst.expressions.CreateMap.eval(complexTypeCreator.scala:248)

      scala> val df = spark.sql("select map_values(map(cast(null as int),0, 'foo', 1))");
      df: org.apache.spark.sql.DataFrame = [map_values(map(CAST(NULL AS INT), 0, foo, 1)): array<int>]

      scala> df.show()
      org.apache.spark.SparkRuntimeException: [NULL_MAP_KEY] Cannot use null as map key.
      at org.apache.spark.sql.errors.QueryExecutionErrors$.nullAsMapKeyNotAllowedError(QueryExecutionErrors.scala:445)

      Attachments

        Issue Links

          Activity

            People

              caicancai Caican Cai
              caicancai Caican Cai
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: