This is an automated email from the ASF dual-hosted git repository.
morrysnow pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
from 601d9af23b [fix](planner) disconjunct in sub-query failed when plan it
on hash join (#15653)
add 025623a124 [feature](Nereids) Support lots of aggregate functions
(#15671)
No new revisions were added by this update.
Summary of changes:
.../antlr4/org/apache/doris/nereids/DorisParser.g4 | 2 +-
.../apache/doris/analysis/FunctionCallExpr.java | 30 +-
.../doris/catalog/BuiltinAggregateFunctions.java | 86 +++-
.../doris/catalog/BuiltinScalarFunctions.java | 103 ++++-
.../org/apache/doris/catalog/FunctionHelper.java | 2 -
.../apache/doris/catalog/FunctionSignature.java | 57 ++-
.../glue/translator/ExpressionTranslator.java | 91 +++-
.../doris/nereids/jobs/batch/AnalyzeRulesJob.java | 12 +-
.../doris/nereids/jobs/batch/BatchRulesJob.java | 9 +
.../batch/CheckLegalityAfterRewrite.java} | 22 +-
...b.java => CheckLegalityBeforeTypeCoercion.java} | 30 +-
.../jobs/batch/NereidsRewriteJobExecutor.java | 6 +-
.../doris/nereids/jobs/batch/TypeCoercionJob.java | 5 +
.../doris/nereids/parser/LogicalPlanBuilder.java | 25 ++
.../apache/doris/nereids/properties/OrderKey.java | 6 +-
.../AdjustAggregateNullableForEmptySet.java | 8 +-
.../doris/nereids/rules/analysis/BindFunction.java | 2 +
.../nereids/rules/analysis/BindSlotReference.java | 2 +-
.../nereids/rules/analysis/CheckAfterRewrite.java | 7 +-
.../nereids/rules/analysis/FillUpMissingSlots.java | 3 +-
.../nereids/rules/analysis/NormalizeRepeat.java | 11 +-
.../rewrite/ExpressionNormalization.java | 4 +-
.../rules/CharacterLiteralTypeCoercion.java | 3 +
.../rewrite/rules/FoldConstantRuleOnFE.java | 31 +-
.../rewrite/rules/SupportJavaDateFormatter.java | 87 ++++
.../expression/rewrite/rules/TypeCoercion.java | 7 +-
.../rewrite/logical/CountDistinctRewrite.java | 4 +-
.../rules/rewrite/logical/NormalizeAggregate.java | 9 +-
.../doris/nereids/trees/expressions/Cast.java | 4 +-
.../doris/nereids/trees/expressions/Divide.java | 2 +-
.../{Cast.java => OrderExpression.java} | 63 +--
.../functions/BitmapIntersectFunction.java | 45 ++
.../trees/expressions/functions/BoundFunction.java | 151 +------
...ricTypeArguments.java => ComputePrecision.java} | 11 +-
.../functions/ComputePrecisionForRound.java | 56 +++
...eArguments.java => ComputePrecisionForSum.java} | 23 +-
.../expressions/functions/ComputeSignature.java | 37 +-
.../functions/ComputeSignatureHelper.java | 178 ++++++++
.../functions/DateTimeWithPrecision.java | 2 +-
.../functions/ExplicitlyCastableSignature.java | 16 +-
.../expressions/functions/ExpressionTrait.java | 13 +
.../expressions/functions/IdenticalSignature.java | 10 +-
.../functions/ImplicitlyCastableSignature.java | 24 +-
.../functions/NullOrIdenticalSignature.java | 12 +-
.../functions/agg/AggregateFunction.java | 41 +-
.../trees/expressions/functions/agg/AnyValue.java | 52 +--
.../functions/agg/ApproxCountDistinct.java | 76 ----
.../trees/expressions/functions/agg/Avg.java | 112 +++--
.../agg/{VarianceSamp.java => AvgWeighted.java} | 66 ++-
.../BitmapFunction.java} | 22 +-
.../expressions/functions/agg/BitmapIntersect.java | 35 +-
.../expressions/functions/agg/BitmapUnion.java | 35 +-
.../functions/agg/BitmapUnionCount.java | 39 +-
.../expressions/functions/agg/BitmapUnionInt.java | 45 +-
.../expressions/functions/agg/CollectList.java | 110 +++++
.../expressions/functions/agg/CollectSet.java | 110 +++++
.../trees/expressions/functions/agg/Count.java | 69 +--
.../expressions/functions/agg/GroupBitAnd.java | 52 ++-
.../expressions/functions/agg/GroupBitOr.java | 46 +-
.../expressions/functions/agg/GroupBitXor.java | 45 +-
.../expressions/functions/agg/GroupBitmapXor.java | 45 +-
.../expressions/functions/agg/GroupConcat.java | 141 +++++++
.../MoneyFormat.java => agg/Histogram.java} | 55 ++-
.../HllFunction.java} | 20 +-
.../trees/expressions/functions/agg/HllUnion.java | 39 +-
.../expressions/functions/agg/HllUnionAgg.java | 39 +-
.../{BitmapUnionCount.java => IntersectCount.java} | 56 ++-
.../trees/expressions/functions/agg/Max.java | 35 +-
.../{scalar/GetJsonDouble.java => agg/MaxBy.java} | 57 ++-
.../trees/expressions/functions/agg/Min.java | 35 +-
.../{scalar/GetJsonDouble.java => agg/MinBy.java} | 57 ++-
.../functions/agg/MultiDistinctCount.java | 34 +-
.../functions/agg/MultiDistinctSum.java | 32 +-
.../trees/expressions/functions/agg/Ndv.java | 86 +---
.../functions/agg/NullableAggregateFunction.java | 26 +-
...mapUnion.java => OrthogonalBitmapFunction.java} | 48 +--
.../functions/agg/OrthogonalBitmapIntersect.java | 66 +++
.../agg/OrthogonalBitmapIntersectCount.java | 66 +++
.../OrthogonalBitmapUnionCount.java} | 31 +-
.../BitmapAndNotCount.java => agg/Percentile.java} | 44 +-
.../functions/agg/PercentileApprox.java | 110 +++++
.../PercentileArray.java} | 37 +-
.../{scalar/Acos.java => agg/QuantileUnion.java} | 46 +-
.../{scalar/Md5Sum.java => agg/Retention.java} | 59 ++-
.../MinutesDiff.java => agg/SequenceCount.java} | 59 +--
.../functions/agg/SequenceFunction.java | 52 +++
.../Quarter.java => agg/SequenceMatch.java} | 55 ++-
.../StdDevOrVarianceFunction.java} | 19 +-
.../agg/{VarianceSamp.java => Stddev.java} | 56 +--
.../agg/{VarianceSamp.java => StddevSamp.java} | 58 +--
.../trees/expressions/functions/agg/Sum.java | 90 ++--
.../{scalar/Substring.java => agg/TopN.java} | 86 ++--
.../trees/expressions/functions/agg/TopNArray.java | 158 +++++++
.../expressions/functions/agg/TopNWeighted.java | 174 ++++++++
.../trees/expressions/functions/agg/Variance.java | 60 +--
.../expressions/functions/agg/VarianceSamp.java | 57 ++-
.../expressions/functions/agg/WindowFunnel.java | 128 ++++++
.../trees/expressions/functions/scalar/Abs.java | 2 +-
.../trees/expressions/functions/scalar/Acos.java | 2 +-
.../functions/scalar/AesCryptoFunction.java | 75 ++++
.../expressions/functions/scalar/AesDecrypt.java | 34 +-
.../expressions/functions/scalar/AesEncrypt.java | 37 +-
.../scalar/AppendTrailingCharIfAbsent.java | 2 +-
.../trees/expressions/functions/scalar/Array.java | 126 ++++++
.../functions/scalar/{Abs.java => ArrayAvg.java} | 45 +-
.../expressions/functions/scalar/ArrayCompact.java | 98 +++++
.../scalar/{NullIf.java => ArrayContains.java} | 60 +--
.../scalar/{Abs.java => ArrayDifference.java} | 41 +-
.../functions/scalar/ArrayDistinct.java | 99 +++++
.../functions/scalar/ArrayEnumerate.java | 97 +++++
.../expressions/functions/scalar/ArrayExcept.java | 111 +++++
.../functions/scalar/ArrayIntersect.java | 111 +++++
.../expressions/functions/scalar/ArrayJoin.java | 159 +++++++
.../scalar/{Greatest.java => ArrayMax.java} | 63 +--
.../scalar/{Greatest.java => ArrayMin.java} | 63 +--
.../scalar/{Abs.java => ArrayPopback.java} | 52 ++-
.../scalar/{NullIf.java => ArrayPosition.java} | 57 +--
.../scalar/{Abs.java => ArrayProduct.java} | 45 +-
.../scalar/{FromUnixtime.java => ArrayRange.java} | 48 ++-
.../expressions/functions/scalar/ArrayRemove.java | 112 +++++
.../functions/scalar/{Ceil.java => ArraySize.java} | 24 +-
.../expressions/functions/scalar/ArraySlice.java | 143 +++++++
.../expressions/functions/scalar/ArraySort.java | 100 +++++
.../functions/scalar/{Abs.java => ArraySum.java} | 45 +-
.../expressions/functions/scalar/ArrayUnion.java | 111 +++++
.../scalar/{NullIf.java => ArrayWithConstant.java} | 60 ++-
.../functions/scalar/ArraysOverlap.java | 111 +++++
.../trees/expressions/functions/scalar/Ascii.java | 2 +-
.../trees/expressions/functions/scalar/Asin.java | 2 +-
.../trees/expressions/functions/scalar/Atan.java | 2 +-
.../trees/expressions/functions/scalar/Bin.java | 2 +-
.../expressions/functions/scalar/BitLength.java | 2 +-
.../expressions/functions/scalar/BitmapAnd.java | 2 +-
.../functions/scalar/BitmapAndCount.java | 2 +-
.../expressions/functions/scalar/BitmapAndNot.java | 2 +-
.../functions/scalar/BitmapAndNotCount.java | 2 +-
.../functions/scalar/BitmapContains.java | 2 +-
.../expressions/functions/scalar/BitmapCount.java | 5 +-
.../expressions/functions/scalar/BitmapEmpty.java | 2 +-
.../{BitmapMax.java => BitmapFromArray.java} | 29 +-
.../functions/scalar/BitmapFromString.java | 2 +-
.../expressions/functions/scalar/BitmapHasAll.java | 2 +-
.../expressions/functions/scalar/BitmapHasAny.java | 2 +-
.../expressions/functions/scalar/BitmapHash.java | 2 +-
.../expressions/functions/scalar/BitmapHash64.java | 2 +-
.../expressions/functions/scalar/BitmapMax.java | 2 +-
.../expressions/functions/scalar/BitmapMin.java | 2 +-
.../expressions/functions/scalar/BitmapNot.java | 2 +-
.../expressions/functions/scalar/BitmapOr.java | 2 +-
.../functions/scalar/BitmapOrCount.java | 2 +-
.../functions/scalar/BitmapSubsetInRange.java | 2 +-
.../functions/scalar/BitmapSubsetLimit.java | 2 +-
.../scalar/{Bin.java => BitmapToArray.java} | 25 +-
.../functions/scalar/BitmapToString.java | 2 +-
.../expressions/functions/scalar/BitmapXor.java | 2 +-
.../functions/scalar/BitmapXorCount.java | 2 +-
.../scalar/{Ceil.java => Cardinality.java} | 24 +-
.../trees/expressions/functions/scalar/Cbrt.java | 2 +-
.../trees/expressions/functions/scalar/Ceil.java | 5 +-
.../expressions/functions/scalar/Ceiling.java | 2 +-
.../expressions/functions/scalar/CharLength.java | 71 ----
.../functions/scalar/CharacterLength.java | 2 +-
.../expressions/functions/scalar/Coalesce.java | 2 +-
.../scalar/CompatibleTypeArrayFunction.java | 65 +++
.../trees/expressions/functions/scalar/Concat.java | 2 +-
.../expressions/functions/scalar/ConcatWs.java | 13 +-
.../trees/expressions/functions/scalar/Conv.java | 2 +-
.../{ExtractUrlParameter.java => ConvertTo.java} | 29 +-
.../expressions/functions/scalar/ConvertTz.java | 2 +-
.../trees/expressions/functions/scalar/Cos.java | 2 +-
.../scalar/{NullIf.java => CountEqual.java} | 57 +--
.../functions/scalar/CryptoFunction.java | 93 ++++
.../expressions/functions/scalar/CurrentDate.java | 2 +-
.../expressions/functions/scalar/CurrentTime.java | 2 +-
.../functions/scalar/CurrentTimestamp.java | 2 +-
.../expressions/functions/scalar/Curtime.java | 2 +-
.../trees/expressions/functions/scalar/Date.java | 2 +-
.../expressions/functions/scalar/DateDiff.java | 2 +-
.../expressions/functions/scalar/DateFormat.java | 2 +-
.../expressions/functions/scalar/DateTrunc.java | 2 +-
.../trees/expressions/functions/scalar/DateV2.java | 2 +-
.../trees/expressions/functions/scalar/Day.java | 2 +-
.../expressions/functions/scalar/DayCeil.java | 2 +-
.../expressions/functions/scalar/DayFloor.java | 2 +-
.../expressions/functions/scalar/DayName.java | 2 +-
.../expressions/functions/scalar/DayOfMonth.java | 2 +-
.../expressions/functions/scalar/DayOfWeek.java | 2 +-
.../expressions/functions/scalar/DayOfYear.java | 2 +-
.../expressions/functions/scalar/DaysDiff.java | 2 +-
.../trees/expressions/functions/scalar/Dceil.java | 2 +-
.../expressions/functions/scalar/Degrees.java | 2 +-
.../trees/expressions/functions/scalar/Dexp.java | 2 +-
.../trees/expressions/functions/scalar/Dfloor.java | 2 +-
.../trees/expressions/functions/scalar/Dlog1.java | 2 +-
.../trees/expressions/functions/scalar/Dlog10.java | 2 +-
.../scalar/{ToBase64.java => Domain.java} | 24 +-
.../scalar/{Trim.java => DomainWithoutWww.java} | 22 +-
.../trees/expressions/functions/scalar/Dpow.java | 2 +-
.../trees/expressions/functions/scalar/Dround.java | 5 +-
.../trees/expressions/functions/scalar/Dsqrt.java | 2 +-
.../trees/expressions/functions/scalar/E.java | 2 +-
.../scalar/{NullIf.java => ElementAt.java} | 51 +--
.../scalar/{NullIf.java => ElementExtract.java} | 51 +--
.../expressions/functions/scalar/ElementSlice.java | 143 +++++++
.../trees/expressions/functions/scalar/Elt.java | 2 +-
.../expressions/functions/scalar/EndsWith.java | 2 +-
.../expressions/functions/scalar/EsQuery.java | 2 +-
.../trees/expressions/functions/scalar/Exp.java | 2 +-
.../functions/scalar/ExtractUrlParameter.java | 2 +-
.../functions/scalar/{Greatest.java => Field.java} | 55 ++-
.../expressions/functions/scalar/FindInSet.java | 2 +-
.../trees/expressions/functions/scalar/Floor.java | 5 +-
.../trees/expressions/functions/scalar/Fmod.java | 2 +-
.../trees/expressions/functions/scalar/Fpow.java | 2 +-
.../expressions/functions/scalar/FromBase64.java | 2 +-
.../expressions/functions/scalar/FromDays.java | 2 +-
.../expressions/functions/scalar/FromUnixtime.java | 2 +-
.../functions/scalar/GetJsonDouble.java | 2 +-
.../expressions/functions/scalar/GetJsonInt.java | 2 +-
.../functions/scalar/GetJsonString.java | 2 +-
.../expressions/functions/scalar/Greatest.java | 2 +-
.../trees/expressions/functions/scalar/Hex.java | 2 +-
.../functions/scalar/HllCardinality.java | 5 +-
.../expressions/functions/scalar/HllEmpty.java | 2 +-
.../expressions/functions/scalar/HllHash.java | 2 +-
.../trees/expressions/functions/scalar/Hour.java | 2 +-
.../expressions/functions/scalar/HourCeil.java | 2 +-
.../expressions/functions/scalar/HourFloor.java | 2 +-
.../expressions/functions/scalar/HoursDiff.java | 2 +-
.../trees/expressions/functions/scalar/If.java | 102 ++++-
.../expressions/functions/scalar/Initcap.java | 2 +-
.../trees/expressions/functions/scalar/Instr.java | 2 +-
.../expressions/functions/scalar/JsonArray.java | 2 +-
.../expressions/functions/scalar/JsonObject.java | 12 +-
.../expressions/functions/scalar/JsonQuote.java | 2 +-
.../functions/scalar/JsonbExistsPath.java | 2 +-
.../expressions/functions/scalar/JsonbExtract.java | 2 +-
.../functions/scalar/JsonbExtractBigint.java | 2 +-
.../functions/scalar/JsonbExtractBool.java | 2 +-
.../functions/scalar/JsonbExtractDouble.java | 2 +-
.../functions/scalar/JsonbExtractInt.java | 2 +-
.../functions/scalar/JsonbExtractIsnull.java | 2 +-
.../functions/scalar/JsonbExtractString.java | 2 +-
.../expressions/functions/scalar/JsonbParse.java | 2 +-
.../functions/scalar/JsonbParseErrorToInvalid.java | 2 +-
.../functions/scalar/JsonbParseErrorToNull.java | 2 +-
.../functions/scalar/JsonbParseErrorToValue.java | 2 +-
.../functions/scalar/JsonbParseNotnull.java | 2 +-
.../scalar/JsonbParseNotnullErrorToInvalid.java | 2 +-
.../scalar/JsonbParseNotnullErrorToValue.java | 2 +-
.../functions/scalar/JsonbParseNullable.java | 2 +-
.../scalar/JsonbParseNullableErrorToInvalid.java | 2 +-
.../scalar/JsonbParseNullableErrorToNull.java | 2 +-
.../scalar/JsonbParseNullableErrorToValue.java | 2 +-
.../expressions/functions/scalar/JsonbType.java | 2 +-
.../functions/scalar/{ToDate.java => LastDay.java} | 24 +-
.../trees/expressions/functions/scalar/Least.java | 2 +-
.../trees/expressions/functions/scalar/Left.java | 2 +-
.../trees/expressions/functions/scalar/Length.java | 2 +-
.../trees/expressions/functions/scalar/Ln.java | 2 +-
.../expressions/functions/scalar/LocalTime.java | 2 +-
.../functions/scalar/LocalTimestamp.java | 2 +-
.../trees/expressions/functions/scalar/Locate.java | 2 +-
.../trees/expressions/functions/scalar/Log.java | 2 +-
.../trees/expressions/functions/scalar/Log10.java | 2 +-
.../trees/expressions/functions/scalar/Log2.java | 2 +-
.../trees/expressions/functions/scalar/Lower.java | 2 +-
.../trees/expressions/functions/scalar/Lpad.java | 2 +-
.../trees/expressions/functions/scalar/Ltrim.java | 2 +-
.../expressions/functions/scalar/MakeDate.java | 2 +-
.../trees/expressions/functions/scalar/Md5.java | 2 +-
.../trees/expressions/functions/scalar/Md5Sum.java | 2 +-
.../trees/expressions/functions/scalar/Minute.java | 2 +-
.../expressions/functions/scalar/MinuteCeil.java | 2 +-
.../expressions/functions/scalar/MinuteFloor.java | 2 +-
.../expressions/functions/scalar/MinutesDiff.java | 2 +-
.../expressions/functions/scalar/MoneyFormat.java | 2 +-
.../trees/expressions/functions/scalar/Month.java | 2 +-
.../expressions/functions/scalar/MonthCeil.java | 2 +-
.../expressions/functions/scalar/MonthFloor.java | 2 +-
.../expressions/functions/scalar/MonthName.java | 2 +-
.../expressions/functions/scalar/MonthsDiff.java | 2 +-
.../scalar/{JsonbType.java => MultiMatchAny.java} | 29 +-
.../{Right.java => MultiSearchAllPositions.java} | 30 +-
.../functions/scalar/MurmurHash332.java | 2 +-
.../functions/scalar/MurmurHash364.java | 2 +-
.../expressions/functions/scalar/Negative.java | 2 +-
.../functions/scalar/NotNullOrEmpty.java | 2 +-
.../trees/expressions/functions/scalar/Now.java | 2 +-
.../trees/expressions/functions/scalar/NullIf.java | 2 +-
.../expressions/functions/scalar/NullOrEmpty.java | 2 +-
.../trees/expressions/functions/scalar/Nvl.java | 2 +-
.../expressions/functions/scalar/ParseUrl.java | 2 +-
.../trees/expressions/functions/scalar/Pi.java | 2 +-
.../trees/expressions/functions/scalar/Pmod.java | 2 +-
.../expressions/functions/scalar/Positive.java | 2 +-
.../trees/expressions/functions/scalar/Pow.java | 2 +-
.../trees/expressions/functions/scalar/Power.java | 2 +-
.../scalar/{ToBase64.java => Protocol.java} | 24 +-
.../functions/scalar/QuantilePercent.java | 2 +-
.../expressions/functions/scalar/Quarter.java | 2 +-
.../expressions/functions/scalar/Radians.java | 2 +-
.../trees/expressions/functions/scalar/Random.java | 2 +-
.../functions/scalar/RegexpExtract.java | 2 +-
.../{GetJsonString.java => RegexpExtractAll.java} | 20 +-
.../functions/scalar/RegexpReplace.java | 2 +-
.../{RegexpReplace.java => RegexpReplaceOne.java} | 20 +-
.../trees/expressions/functions/scalar/Repeat.java | 2 +-
.../expressions/functions/scalar/Replace.java | 2 +-
.../expressions/functions/scalar/Reverse.java | 37 +-
.../trees/expressions/functions/scalar/Right.java | 2 +-
.../trees/expressions/functions/scalar/Round.java | 5 +-
.../expressions/functions/scalar/RoundBankers.java | 5 +-
.../trees/expressions/functions/scalar/Rpad.java | 2 +-
.../trees/expressions/functions/scalar/Rtrim.java | 2 +-
.../scalar/{Abs.java => RunningDifference.java} | 47 ++-
.../trees/expressions/functions/scalar/Second.java | 2 +-
.../expressions/functions/scalar/SecondCeil.java | 2 +-
.../expressions/functions/scalar/SecondFloor.java | 2 +-
.../expressions/functions/scalar/SecondsDiff.java | 2 +-
.../trees/expressions/functions/scalar/Sign.java | 2 +-
.../trees/expressions/functions/scalar/Sin.java | 2 +-
.../functions/scalar/{Ceil.java => Size.java} | 24 +-
.../trees/expressions/functions/scalar/Sleep.java | 2 +-
.../trees/expressions/functions/scalar/Sm3.java | 2 +-
.../trees/expressions/functions/scalar/Sm3sum.java | 2 +-
.../functions/scalar/Sm4CryptoFunction.java | 57 +++
.../expressions/functions/scalar/Sm4Decrypt.java | 39 +-
.../expressions/functions/scalar/Sm4Encrypt.java | 34 +-
.../trees/expressions/functions/scalar/Space.java | 2 +-
.../scalar/{Instr.java => SplitByChar.java} | 26 +-
.../scalar/{Instr.java => SplitByString.java} | 26 +-
.../expressions/functions/scalar/SplitPart.java | 2 +-
.../trees/expressions/functions/scalar/Sqrt.java | 2 +-
.../expressions/functions/scalar/StAstext.java | 2 +-
.../expressions/functions/scalar/StAswkt.java | 2 +-
.../expressions/functions/scalar/StCircle.java | 2 +-
.../expressions/functions/scalar/StContains.java | 2 +-
.../functions/scalar/StDistanceSphere.java | 2 +-
.../functions/scalar/StGeometryfromtext.java | 2 +-
.../functions/scalar/StGeomfromtext.java | 2 +-
.../functions/scalar/StLinefromtext.java | 2 +-
.../functions/scalar/StLinestringfromtext.java | 2 +-
.../expressions/functions/scalar/StPoint.java | 2 +-
.../functions/scalar/StPolyfromtext.java | 2 +-
.../expressions/functions/scalar/StPolygon.java | 2 +-
.../functions/scalar/StPolygonfromtext.java | 2 +-
.../trees/expressions/functions/scalar/StX.java | 2 +-
.../trees/expressions/functions/scalar/StY.java | 2 +-
.../expressions/functions/scalar/StartsWith.java | 2 +-
.../expressions/functions/scalar/StrLeft.java | 2 +-
.../expressions/functions/scalar/StrRight.java | 2 +-
.../expressions/functions/scalar/StrToDate.java | 4 +-
.../expressions/functions/scalar/SubBitmap.java | 2 +-
.../expressions/functions/scalar/Substring.java | 4 +-
.../scalar/{SplitPart.java => SubstringIndex.java} | 20 +-
.../trees/expressions/functions/scalar/Tan.java | 2 +-
.../expressions/functions/scalar/TimeDiff.java | 2 +-
.../expressions/functions/scalar/Timestamp.java | 2 +-
.../expressions/functions/scalar/ToBase64.java | 2 +-
.../expressions/functions/scalar/ToBitmap.java | 2 +-
.../functions/scalar/ToBitmapWithCheck.java | 2 +-
.../trees/expressions/functions/scalar/ToDate.java | 2 +-
.../expressions/functions/scalar/ToDateV2.java | 2 +-
.../trees/expressions/functions/scalar/ToDays.java | 2 +-
.../scalar/{ToDate.java => ToMonday.java} | 24 +-
.../functions/scalar/ToQuantileState.java | 10 +-
.../trees/expressions/functions/scalar/Trim.java | 2 +-
.../expressions/functions/scalar/Truncate.java | 5 +-
.../trees/expressions/functions/scalar/Unhex.java | 2 +-
.../functions/scalar/UnixTimestamp.java | 2 +-
.../trees/expressions/functions/scalar/Upper.java | 2 +-
.../expressions/functions/scalar/UtcTimestamp.java | 2 +-
.../functions/scalar/{Version.java => Uuid.java} | 19 +-
.../expressions/functions/scalar/Version.java | 2 +-
.../trees/expressions/functions/scalar/Week.java | 2 +-
.../expressions/functions/scalar/WeekCeil.java | 2 +-
.../expressions/functions/scalar/WeekFloor.java | 2 +-
.../expressions/functions/scalar/WeekOfYear.java | 2 +-
.../expressions/functions/scalar/Weekday.java | 2 +-
.../expressions/functions/scalar/WeeksDiff.java | 2 +-
.../trees/expressions/functions/scalar/Year.java | 2 +-
.../expressions/functions/scalar/YearCeil.java | 2 +-
.../expressions/functions/scalar/YearFloor.java | 2 +-
.../expressions/functions/scalar/YearWeek.java | 2 +-
.../expressions/functions/scalar/YearsDiff.java | 2 +-
.../trees/expressions/literal/ArrayLiteral.java | 98 +++++
.../nereids/trees/expressions/literal/Literal.java | 22 +-
.../visitor/AggregateFunctionVisitor.java | 188 +++++++--
.../expressions/visitor/ExpressionVisitor.java | 10 +
.../expressions/visitor/ScalarFunctionVisitor.java | 269 +++++++++++-
.../org/apache/doris/nereids/types/ArrayType.java | 10 +-
.../org/apache/doris/nereids/types/BigIntType.java | 3 +-
.../org/apache/doris/nereids/types/DataType.java | 123 +++++-
.../apache/doris/nereids/types/IntegerType.java | 3 +-
.../apache/doris/nereids/types/SmallIntType.java | 3 +-
.../apache/doris/nereids/types/TinyIntType.java | 3 +-
.../FollowToArgumentType.java} | 43 +-
.../coercion/Int16OrLessType.java} | 10 +-
.../coercion/Int32OrLessType.java} | 10 +-
.../coercion/Int64OrLessType.java} | 10 +-
.../doris/nereids/util/TypeCoercionUtils.java | 14 +-
.../analysis/CheckExpressionLegalityTest.java | 74 ++++
.../rules/analysis/FillUpMissingSlotsTest.java | 4 +-
...teScalarFunction.java => GenerateFunction.java} | 466 ++++++++++++++++-----
.../rules/expression/rewrite/TypeCoercionTest.java | 10 +-
.../nereids/trees/expressions/GetDataTypeTest.java | 39 +-
.../nereids/trees/plans/PlanToStringTest.java | 2 +-
.../suites/nereids_syntax_p0/array_function.groovy | 44 ++
.../suites/nereids_syntax_p0/function.groovy | 10 +
.../suites/nereids_syntax_p0/group_concat.groovy | 25 +-
.../nereids_syntax_p0/sub_query_correlated.groovy | 102 ++---
.../sub_query_diff_old_optimize.groovy | 62 +--
.../system/test_query_sys_data_type.groovy | 2 +-
414 files changed, 7610 insertions(+), 2616 deletions(-)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/{trees/expressions/functions/ForbiddenMetricTypeArguments.java
=> jobs/batch/CheckLegalityAfterRewrite.java} (53%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/batch/{TypeCoercionJob.java
=> CheckLegalityBeforeTypeCoercion.java} (53%)
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rewrite/rules/SupportJavaDateFormatter.java
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/{Cast.java
=> OrderExpression.java} (56%)
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/BitmapIntersectFunction.java
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/{ForbiddenMetricTypeArguments.java
=> ComputePrecision.java} (81%)
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/ComputePrecisionForRound.java
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/{ForbiddenMetricTypeArguments.java
=> ComputePrecisionForSum.java} (53%)
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/ComputeSignatureHelper.java
delete mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/agg/ApproxCountDistinct.java
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/agg/{VarianceSamp.java
=> AvgWeighted.java} (60%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/{ForbiddenMetricTypeArguments.java
=> agg/BitmapFunction.java} (55%)
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/agg/CollectList.java
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/agg/CollectSet.java
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/agg/GroupConcat.java
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/{scalar/MoneyFormat.java
=> agg/Histogram.java} (52%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/{ForbiddenMetricTypeArguments.java
=> agg/HllFunction.java} (59%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/agg/{BitmapUnionCount.java
=> IntersectCount.java} (50%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/{scalar/GetJsonDouble.java
=> agg/MaxBy.java} (54%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/{scalar/GetJsonDouble.java
=> agg/MinBy.java} (53%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/agg/{BitmapUnion.java
=> OrthogonalBitmapFunction.java} (51%)
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/agg/OrthogonalBitmapIntersect.java
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/agg/OrthogonalBitmapIntersectCount.java
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/{scalar/BitmapCount.java
=> agg/OrthogonalBitmapUnionCount.java} (71%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/{scalar/BitmapAndNotCount.java
=> agg/Percentile.java} (61%)
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/agg/PercentileApprox.java
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/{scalar/BitmapAndNotCount.java
=> agg/PercentileArray.java} (65%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/{scalar/Acos.java
=> agg/QuantileUnion.java} (59%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/{scalar/Md5Sum.java
=> agg/Retention.java} (50%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/{scalar/MinutesDiff.java
=> agg/SequenceCount.java} (50%)
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/agg/SequenceFunction.java
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/{scalar/Quarter.java
=> agg/SequenceMatch.java} (50%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/{ForbiddenMetricTypeArguments.java
=> agg/StdDevOrVarianceFunction.java} (59%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/agg/{VarianceSamp.java
=> Stddev.java} (71%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/agg/{VarianceSamp.java
=> StddevSamp.java} (69%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/{scalar/Substring.java
=> agg/TopN.java} (53%)
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/agg/TopNArray.java
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/agg/TopNWeighted.java
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/agg/WindowFunnel.java
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/AesCryptoFunction.java
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Array.java
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/{Abs.java
=> ArrayAvg.java} (60%)
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ArrayCompact.java
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/{NullIf.java
=> ArrayContains.java} (52%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/{Abs.java
=> ArrayDifference.java} (62%)
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ArrayDistinct.java
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ArrayEnumerate.java
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ArrayExcept.java
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ArrayIntersect.java
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ArrayJoin.java
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/{Greatest.java
=> ArrayMax.java} (51%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/{Greatest.java
=> ArrayMin.java} (51%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/{Abs.java
=> ArrayPopback.java} (51%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/{NullIf.java
=> ArrayPosition.java} (53%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/{Abs.java
=> ArrayProduct.java} (60%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/{FromUnixtime.java
=> ArrayRange.java} (60%)
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ArrayRemove.java
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/{Ceil.java
=> ArraySize.java} (80%)
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ArraySlice.java
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ArraySort.java
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/{Abs.java
=> ArraySum.java} (60%)
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ArrayUnion.java
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/{NullIf.java
=> ArrayWithConstant.java} (53%)
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ArraysOverlap.java
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/{BitmapMax.java
=> BitmapFromArray.java} (67%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/{Bin.java
=> BitmapToArray.java} (77%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/{Ceil.java
=> Cardinality.java} (79%)
delete mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/CharLength.java
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/CompatibleTypeArrayFunction.java
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/{ExtractUrlParameter.java
=> ConvertTo.java} (74%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/{NullIf.java
=> CountEqual.java} (53%)
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/CryptoFunction.java
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/{ToBase64.java
=> Domain.java} (81%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/{Trim.java
=> DomainWithoutWww.java} (81%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/{NullIf.java
=> ElementAt.java} (57%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/{NullIf.java
=> ElementExtract.java} (57%)
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ElementSlice.java
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/{Greatest.java
=> Field.java} (59%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/{ToDate.java
=> LastDay.java} (81%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/{JsonbType.java
=> MultiMatchAny.java} (74%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/{Right.java
=> MultiSearchAllPositions.java} (73%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/{ToBase64.java
=> Protocol.java} (81%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/{GetJsonString.java
=> RegexpExtractAll.java} (83%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/{RegexpReplace.java
=> RegexpReplaceOne.java} (82%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/{Abs.java
=> RunningDifference.java} (66%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/{Ceil.java
=> Size.java} (81%)
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Sm4CryptoFunction.java
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/{Instr.java
=> SplitByChar.java} (76%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/{Instr.java
=> SplitByString.java} (76%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/{SplitPart.java
=> SubstringIndex.java} (83%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/{ToDate.java
=> ToMonday.java} (81%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/{Version.java
=> Uuid.java} (85%)
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/literal/ArrayLiteral.java
copy fe/fe-core/src/main/java/org/apache/doris/nereids/types/{IntegerType.java
=> coercion/FollowToArgumentType.java} (58%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/{trees/expressions/functions/ForbiddenMetricTypeArguments.java
=> types/coercion/Int16OrLessType.java} (79%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/{trees/expressions/functions/ForbiddenMetricTypeArguments.java
=> types/coercion/Int32OrLessType.java} (79%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/{trees/expressions/functions/ForbiddenMetricTypeArguments.java
=> types/coercion/Int64OrLessType.java} (79%)
create mode 100644
fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/CheckExpressionLegalityTest.java
rename
fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/{GenerateScalarFunction.java
=> GenerateFunction.java} (73%)
create mode 100644
regression-test/suites/nereids_syntax_p0/array_function.groovy
rename
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/ForbiddenMetricTypeArguments.java
=> regression-test/suites/nereids_syntax_p0/group_concat.groovy (52%)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]