[ https://issues.apache.org/jira/browse/DRILL-8354?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17631049#comment-17631049 ]
ASF GitHub Bot commented on DRILL-8354: --------------------------------------- cgivre commented on code in PR #2703: URL: https://github.com/apache/drill/pull/2703#discussion_r1017888203 ########## exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/IsEmptyUtils.java: ########## @@ -0,0 +1,61 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.drill.exec.expr.fn.impl; + +import org.apache.drill.common.types.TypeProtos.MinorType; +import org.apache.drill.exec.vector.complex.impl.SingleMapReaderImpl; +import org.apache.drill.exec.vector.complex.reader.FieldReader; + +public class IsEmptyUtils { + + /** + * This function recursively traverses a Drill map to determine whether the map is empty or not. + * @param reader A {@link FieldReader} containing the field in question + * @return True if the field contains no data, false if it does. + */ + public static boolean mapIsEmpty(FieldReader reader) { + + if (reader.getType().getMinorType() == MinorType.MAP) { + SingleMapReaderImpl mapReader = (SingleMapReaderImpl) reader; + + // If the map reader has no fields returns nothing return true Review Comment: Fixed. > Add IS_EMPTY Function. > ---------------------- > > Key: DRILL-8354 > URL: https://issues.apache.org/jira/browse/DRILL-8354 > Project: Apache Drill > Issue Type: Improvement > Components: Functions - Drill > Affects Versions: 1.20.2 > Reporter: Charles Givre > Assignee: Charles Givre > Priority: Major > Fix For: 2.0.0 > > > When analyzing data, there is currently no single function to evaluate > whether a given field is empty. With scalar fields, this can be accomplished > with the `IS NOT NULL` operator, but with complex fields, this is more > challenging as complex fields are never null. > This PR adds a UDF called IS_EMPTY() which accepts any type of field and > returns true if the field does not contain data. > > In the case of scalar fields, if the field is `null` this returns true. In > the case of complex fields, which can never be `null`, in the case of lists, > the function returns true if the list is empty. In the case of maps, it > returns true if all of the map's fields are unpopulated. -- This message was sent by Atlassian Jira (v8.20.10#820010)