Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ root:
\ sourceBuilder={\"from\":0,\"size\":0,\"timeout\":\"1m\",\"aggregations\"\
:{\"composite_buckets\":{\"composite\":{\"size\":1000,\"sources\":[{\"patterns_field\"\
:{\"terms\":{\"script\":{\"source\":\"{\\\"langType\\\":\\\"v2\\\",\\\"\
script\\\":\\\"rO0ABXNyADZvcmcub3BlbnNlYXJjaC5zcWwuZXhwcmVzc2lvbi5wYXJzZS5QYXR0ZXJuc0V4cHJlc3Npb26h4+bazqpHBgIAAloAEHVzZUN1c3RvbVBhdHRlcm5MAAdwYXR0ZXJudAAZTGphdmEvdXRpbC9yZWdleC9QYXR0ZXJuO3hyADNvcmcub3BlbnNlYXJjaC5zcWwuZXhwcmVzc2lvbi5wYXJzZS5QYXJzZUV4cHJlc3Npb25977zy2Qz+ogIABEwACmlkZW50aWZpZXJ0ACpMb3JnL29wZW5zZWFyY2gvc3FsL2V4cHJlc3Npb24vRXhwcmVzc2lvbjtMAA1pZGVudGlmaWVyU3RydAASTGphdmEvbGFuZy9TdHJpbmc7TAAHcGF0dGVybnEAfgADTAALc291cmNlRmllbGRxAH4AA3hyADBvcmcub3BlbnNlYXJjaC5zcWwuZXhwcmVzc2lvbi5GdW5jdGlvbkV4cHJlc3Npb26yKjDT3HVqewIAAkwACWFyZ3VtZW50c3QAEExqYXZhL3V0aWwvTGlzdDtMAAxmdW5jdGlvbk5hbWV0ADVMb3JnL29wZW5zZWFyY2gvc3FsL2V4cHJlc3Npb24vZnVuY3Rpb24vRnVuY3Rpb25OYW1lO3hwc3IAPXNoYWRlZC5jb20uZ29vZ2xlLmNvbW1vbi5jb2xsZWN0LkltbXV0YWJsZUxpc3QkU2VyaWFsaXplZEZvcm0AAAAAAAAAAAIAAVsACGVsZW1lbnRzdAATW0xqYXZhL2xhbmcvT2JqZWN0O3hwdXIAE1tMamF2YS5sYW5nLk9iamVjdDuQzlifEHMpbAIAAHhwAAAAA3NyADFvcmcub3BlbnNlYXJjaC5zcWwuZXhwcmVzc2lvbi5SZWZlcmVuY2VFeHByZXNzaW9uq0TvXBIHhdYCAARMAARhdHRycQB+AARMAAVwYXRoc3EAfgAGTAAHcmF3UGF0aHEAfgAETAAEdHlwZXQAJ0xvcmcvb3BlbnNlYXJjaC9zcWwvZGF0YS90eXBlL0V4cHJUeXBlO3hwdAAFZW1haWxzcgAaamF2YS51dGlsLkFycmF5cyRBcnJheUxpc3TZpDy+zYgG0gIAAVsAAWFxAH4ACnhwdXIAE1tMamF2YS5sYW5nLlN0cmluZzut0lbn6R17RwIAAHhwAAAAAXEAfgARcQB+ABFzcgA6b3JnLm9wZW5zZWFyY2guc3FsLm9wZW5zZWFyY2guZGF0YS50eXBlLk9wZW5TZWFyY2hUZXh0VHlwZa2Do5ME4zFEAgABTAAGZmllbGRzdAAPTGphdmEvdXRpbC9NYXA7eHIAOm9yZy5vcGVuc2VhcmNoLnNxbC5vcGVuc2VhcmNoLmRhdGEudHlwZS5PcGVuU2VhcmNoRGF0YVR5cGXCY7zKAvoFNQIAA0wADGV4cHJDb3JlVHlwZXQAK0xvcmcvb3BlbnNlYXJjaC9zcWwvZGF0YS90eXBlL0V4cHJDb3JlVHlwZTtMAAttYXBwaW5nVHlwZXQASExvcmcvb3BlbnNlYXJjaC9zcWwvb3BlbnNlYXJjaC9kYXRhL3R5cGUvT3BlblNlYXJjaERhdGFUeXBlJE1hcHBpbmdUeXBlO0wACnByb3BlcnRpZXNxAH4AF3hwfnIAKW9yZy5vcGVuc2VhcmNoLnNxbC5kYXRhLnR5cGUuRXhwckNvcmVUeXBlAAAAAAAAAAASAAB4cgAOamF2YS5sYW5nLkVudW0AAAAAAAAAABIAAHhwdAAHVU5LTk9XTn5yAEZvcmcub3BlbnNlYXJjaC5zcWwub3BlbnNlYXJjaC5kYXRhLnR5cGUuT3BlblNlYXJjaERhdGFUeXBlJE1hcHBpbmdUeXBlAAAAAAAAAAASAAB4cQB+AB10AARUZXh0c3IAPHNoYWRlZC5jb20uZ29vZ2xlLmNvbW1vbi5jb2xsZWN0LkltbXV0YWJsZU1hcCRTZXJpYWxpemVkRm9ybQAAAAAAAAAAAgACTAAEa2V5c3QAEkxqYXZhL2xhbmcvT2JqZWN0O0wABnZhbHVlc3EAfgAkeHB1cQB+AAwAAAAAdXEAfgAMAAAAAHNyABFqYXZhLnV0aWwuQ29sbFNlcleOq7Y6G6gRAwABSQADdGFneHAAAAADdwQAAAACdAAHa2V5d29yZHNxAH4AGH5xAH4AHHQABlNUUklOR35xAH4AIHQAB0tleXdvcmRxAH4AJXhzcgAvb3JnLm9wZW5zZWFyY2guc3FsLmV4cHJlc3Npb24uTGl0ZXJhbEV4cHJlc3Npb25FQi3wjMeCJAIAAUwACWV4cHJWYWx1ZXQAKUxvcmcvb3BlbnNlYXJjaC9zcWwvZGF0YS9tb2RlbC9FeHByVmFsdWU7eHBzcgAtb3JnLm9wZW5zZWFyY2guc3FsLmRhdGEubW9kZWwuRXhwclN0cmluZ1ZhbHVlAEEyJXOJDhMCAAFMAAV2YWx1ZXEAfgAEeHIAL29yZy5vcGVuc2VhcmNoLnNxbC5kYXRhLm1vZGVsLkFic3RyYWN0RXhwclZhbHVlyWu1dgYURIoCAAB4cHQAAHNxAH4AMHNxAH4AM3QADnBhdHRlcm5zX2ZpZWxkc3IAM29yZy5vcGVuc2VhcmNoLnNxbC5leHByZXNzaW9uLmZ1bmN0aW9uLkZ1bmN0aW9uTmFtZQuoOE3O9meXAgABTAAMZnVuY3Rpb25OYW1lcQB+AAR4cHQACHBhdHRlcm5zcQB+ADdxAH4AOXEAfgAycQB+ABAAcA==\\\
script\\\":\\\"rO0ABXNyADZvcmcub3BlbnNlYXJjaC5zcWwuZXhwcmVzc2lvbi5wYXJzZS5QYXR0ZXJuc0V4cHJlc3Npb26h4+bazqpHBgIAAloAEHVzZUN1c3RvbVBhdHRlcm5MAAdwYXR0ZXJudAAZTGphdmEvdXRpbC9yZWdleC9QYXR0ZXJuO3hyADNvcmcub3BlbnNlYXJjaC5zcWwuZXhwcmVzc2lvbi5wYXJzZS5QYXJzZUV4cHJlc3Npb25977zy2Qz+ogIABEwACmlkZW50aWZpZXJ0ACpMb3JnL29wZW5zZWFyY2gvc3FsL2V4cHJlc3Npb24vRXhwcmVzc2lvbjtMAA1pZGVudGlmaWVyU3RydAASTGphdmEvbGFuZy9TdHJpbmc7TAAHcGF0dGVybnEAfgADTAALc291cmNlRmllbGRxAH4AA3hyADBvcmcub3BlbnNlYXJjaC5zcWwuZXhwcmVzc2lvbi5GdW5jdGlvbkV4cHJlc3Npb26yKjDT3HVqewIAAkwACWFyZ3VtZW50c3QAEExqYXZhL3V0aWwvTGlzdDtMAAxmdW5jdGlvbk5hbWV0ADVMb3JnL29wZW5zZWFyY2gvc3FsL2V4cHJlc3Npb24vZnVuY3Rpb24vRnVuY3Rpb25OYW1lO3hwc3IANmNvbS5nb29nbGUuY29tbW9uLmNvbGxlY3QuSW1tdXRhYmxlTGlzdCRTZXJpYWxpemVkRm9ybQAAAAAAAAAAAgABWwAIZWxlbWVudHN0ABNbTGphdmEvbGFuZy9PYmplY3Q7eHB1cgATW0xqYXZhLmxhbmcuT2JqZWN0O5DOWJ8QcylsAgAAeHAAAAADc3IAMW9yZy5vcGVuc2VhcmNoLnNxbC5leHByZXNzaW9uLlJlZmVyZW5jZUV4cHJlc3Npb26rRO9cEgeF1gIABEwABGF0dHJxAH4ABEwABXBhdGhzcQB+AAZMAAdyYXdQYXRocQB+AARMAAR0eXBldAAnTG9yZy9vcGVuc2VhcmNoL3NxbC9kYXRhL3R5cGUvRXhwclR5cGU7eHB0AAVlbWFpbHNyABpqYXZhLnV0aWwuQXJyYXlzJEFycmF5TGlzdNmkPL7NiAbSAgABWwABYXEAfgAKeHB1cgATW0xqYXZhLmxhbmcuU3RyaW5nO63SVufpHXtHAgAAeHAAAAABcQB+ABFxAH4AEXNyADpvcmcub3BlbnNlYXJjaC5zcWwub3BlbnNlYXJjaC5kYXRhLnR5cGUuT3BlblNlYXJjaFRleHRUeXBlrYOjkwTjMUQCAAFMAAZmaWVsZHN0AA9MamF2YS91dGlsL01hcDt4cgA6b3JnLm9wZW5zZWFyY2guc3FsLm9wZW5zZWFyY2guZGF0YS50eXBlLk9wZW5TZWFyY2hEYXRhVHlwZcJjvMoC+gU1AgADTAAMZXhwckNvcmVUeXBldAArTG9yZy9vcGVuc2VhcmNoL3NxbC9kYXRhL3R5cGUvRXhwckNvcmVUeXBlO0wAC21hcHBpbmdUeXBldABITG9yZy9vcGVuc2VhcmNoL3NxbC9vcGVuc2VhcmNoL2RhdGEvdHlwZS9PcGVuU2VhcmNoRGF0YVR5cGUkTWFwcGluZ1R5cGU7TAAKcHJvcGVydGllc3EAfgAXeHB+cgApb3JnLm9wZW5zZWFyY2guc3FsLmRhdGEudHlwZS5FeHByQ29yZVR5cGUAAAAAAAAAABIAAHhyAA5qYXZhLmxhbmcuRW51bQAAAAAAAAAAEgAAeHB0AAdVTktOT1dOfnIARm9yZy5vcGVuc2VhcmNoLnNxbC5vcGVuc2VhcmNoLmRhdGEudHlwZS5PcGVuU2VhcmNoRGF0YVR5cGUkTWFwcGluZ1R5cGUAAAAAAAAAABIAAHhxAH4AHXQABFRleHRzcgA1Y29tLmdvb2dsZS5jb21tb24uY29sbGVjdC5JbW11dGFibGVNYXAkU2VyaWFsaXplZEZvcm0AAAAAAAAAAAIAAkwABGtleXN0ABJMamF2YS9sYW5nL09iamVjdDtMAAZ2YWx1ZXNxAH4AJHhwdXEAfgAMAAAAAHVxAH4ADAAAAABzcgARamF2YS51dGlsLkNvbGxTZXJXjqu2OhuoEQMAAUkAA3RhZ3hwAAAAA3cEAAAAAnQAB2tleXdvcmRzcQB+ABh+cQB+ABx0AAZTVFJJTkd+cQB+ACB0AAdLZXl3b3JkcQB+ACV4c3IAL29yZy5vcGVuc2VhcmNoLnNxbC5leHByZXNzaW9uLkxpdGVyYWxFeHByZXNzaW9uRUIt8IzHgiQCAAFMAAlleHByVmFsdWV0AClMb3JnL29wZW5zZWFyY2gvc3FsL2RhdGEvbW9kZWwvRXhwclZhbHVlO3hwc3IALW9yZy5vcGVuc2VhcmNoLnNxbC5kYXRhLm1vZGVsLkV4cHJTdHJpbmdWYWx1ZQBBMiVziQ4TAgABTAAFdmFsdWVxAH4ABHhyAC9vcmcub3BlbnNlYXJjaC5zcWwuZGF0YS5tb2RlbC5BYnN0cmFjdEV4cHJWYWx1ZclrtXYGFESKAgAAeHB0AABzcQB+ADBzcQB+ADN0AA5wYXR0ZXJuc19maWVsZHNyADNvcmcub3BlbnNlYXJjaC5zcWwuZXhwcmVzc2lvbi5mdW5jdGlvbi5GdW5jdGlvbk5hbWULqDhNzvZnlwIAAUwADGZ1bmN0aW9uTmFtZXEAfgAEeHB0AAhwYXR0ZXJuc3EAfgA3cQB+ADlxAH4AMnEAfgAQAHA=\\\

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It confused me why a plan changed by your PR

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After decode, the script previously using
import shaded.com.google...
The shaded here is caused by shade jar.
But now we remove it, so it is
import com.google...
So the script changed.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you run explain command with extended and attach the result here

@LantaoJin LantaoJin Dec 12, 2025

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh, it's a v2 plan. not sure how to decode the base64 string.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using online decode and here are the result:
using shadow jar

��sr�6org.opensearch.sql.expression.parse.PatternsExpressionΪG����Z��useCustomPatternL��patternt��Ljava/util/regex/Pattern;xr�3org.opensearch.sql.expression.parse.ParseExpression
} ���L�
identifiert�Lorg/opensearch/sql/expression/Expression;L�
identifierStrt��Ljava/lang/String;L��patternq���L��sourceFieldq���xr�0org.opensearch.sql.expression.FunctionExpression
0uj{���L� argumentst��Ljava/util/List;L� functionNamet�5Lorg/opensearch/sql/expression/function/FunctionName;xpsr�=shaded.com.google.common.collect.ImmutableList$SerializedForm�����������[��elementst��[Ljava/lang/Object;xpur��[Ljava.lang.Object;X�s)l���xp����sr�1org.opensearch.sql.expression.ReferenceExpressionD\�����L��attrq���L��pathsq���L��rawPathq���L��typet�'Lorg/opensearch/sql/data/type/ExprType;xpt��emailsr��java.util.Arrays$ArrayList٤<͈����[��aq�
xpur��[Ljava.lang.String;V�{G���xp����q���q���sr�:org.opensearch.sql.opensearch.data.type.OpenSearchTextType�1D���L��fieldst��Ljava/util/Map;xr�:org.opensearch.sql.opensearch.data.type.OpenSearchDataTypec��5���L� exprCoreTypet�+Lorg/opensearch/sql/data/type/ExprCoreType;L��mappingTypet�HLorg/opensearch/sql/opensearch/data/type/OpenSearchDataType$MappingType;L�
propertiesq���xpr�)org.opensearch.sql.data.type.ExprCoreType�����������xr��java.lang.Enum�����������xpt��UNKNOWNr�Forg.opensearch.sql.opensearch.data.type.OpenSearchDataType$MappingType�����������xq���t��Textsr�<*shaded.com.google.common.collect.ImmutableMap$SerializedForm*�����������L��keyst��Ljava/lang/Object;L��valuesq��$xpuq�� ����uq�� ����sr��java.util.CollSerW:�����I��tagxp����w�����t��keywordsq���q���t��STRINGq�� t��Keywordq��%xsr�/org.opensearch.sql.expression.LiteralExpressionEB-ǂ$���L� exprValuet�)Lorg/opensearch/sql/data/model/ExprValue;xpsr�-org.opensearch.sql.data.model.ExprStringValue�A2%s�����L��valueq���xr�/org.opensearch.sql.data.model.AbstractExprValuekv��D���xpt��sq��0sq��3t��patterns_fieldsr�3org.opensearch.sql.expression.function.FunctionName�8Mg���L� functionNameq���xpt��patternsq��7q��9q��2q�~���p

And without shadow jar

��sr�6org.opensearch.sql.expression.parse.PatternsExpressionΪG����Z��useCustomPatternL��patternt��Ljava/util/regex/Pattern;xr�3org.opensearch.sql.expression.parse.ParseExpression} ���L�
identifiert�Lorg/opensearch/sql/expression/Expression;L�
identifierStrt��Ljava/lang/String;L��patternq���L��sourceFieldq���xr�0org.opensearch.sql.expression.FunctionExpression
0uj{���L� argumentst��Ljava/util/List;L� functionNamet�5Lorg/opensearch/sql/expression/function/FunctionName;xpsr�6*com.google.common.collect.ImmutableList$SerializedForm�����������[��elementst��[Ljava/lang/Object;xpur��[Ljava.lang.Object;X�s)l���xp����sr�1org.opensearch.sql.expression.ReferenceExpressionD\�����L��attrq���L��pathsq���L��rawPathq���L��typet�'Lorg/opensearch/sql/data/type/ExprType;xpt��emailsr��java.util.Arrays$ArrayList٤<͈����[��aq�
xpur��[Ljava.lang.String;V�{G���xp����q���q���sr�:org.opensearch.sql.opensearch.data.type.OpenSearchTextType�1D���L��fieldst��Ljava/util/Map;xr�:org.opensearch.sql.opensearch.data.type.OpenSearchDataTypec��5���L� exprCoreTypet�+Lorg/opensearch/sql/data/type/ExprCoreType;L��mappingTypet�HLorg/opensearch/sql/opensearch/data/type/OpenSearchDataType$MappingType;L�
propertiesq���xpr�)org.opensearch.sql.data.type.ExprCoreType�����������xr��java.lang.Enum�����������xpt��UNKNOWNr�Forg.opensearch.sql.opensearch.data.type.OpenSearchDataType$MappingType�����������xq���t��Textsr�5
com.google.common.collect.ImmutableMap$SerializedForm*�����������L��keyst��Ljava/lang/Object;L��valuesq��$xpuq�� ����uq�� ����sr��java.util.CollSerW:�����I��tagxp����w�����t��keywordsq���q���t��STRINGq�� t��Keywordq��%xsr�/org.opensearch.sql.expression.LiteralExpressionEB-ǂ$���L� exprValuet�)Lorg/opensearch/sql/data/model/ExprValue;xpsr�-org.opensearch.sql.data.model.ExprStringValue�A2%s�����L��valueq���xr�/org.opensearch.sql.data.model.AbstractExprValuekv��D���xpt��sq��0sq��3t��patterns_fieldsr�3org.opensearch.sql.expression.function.FunctionName�8Mg���L� functionNameq���xpt��patternsq��7q��9q��2q�~���p

You could see the com.google.common.collect.ImmutableList$SerializedForm path changed.

\"}\",\"lang\":\"opensearch_compounded_script\"},\"missing_bucket\":true,\"\
missing_order\":\"first\",\"order\":\"asc\"}}}]},\"aggregations\":{\"pattern_count\"\
:{\"value_count\":{\"field\":\"_index\"}},\"sample_logs\":{\"top_hits\"\
:{\"from\":0,\"size\":10,\"version\":false,\"seq_no_primary_term\":false,\"\
explain\":false,\"fields\":[{\"field\":\"email\"}]}}}}}}, pitId=*, cursorKeepAlive=null,\
\ searchAfter=null, searchResponse=null)"
children: []
children: []
67 changes: 0 additions & 67 deletions plugin/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ plugins {
id 'jacoco'
id 'opensearch.opensearchplugin'
id 'com.diffplug.spotless'
id 'com.gradleup.shadow'
}

apply plugin: 'opensearch.pluginzip'
Expand Down Expand Up @@ -227,57 +226,10 @@ testingConventions.enabled = false
// TODO: need to verify the thirdPartyAudit
// currently it complains missing classes like ibatis, mysql etc, should not be a problem
thirdPartyAudit.enabled = false
tasks.named("publishShadowPublicationToMavenLocal") {
dependsOn tasks.named("generatePomFileForNebulaPublication")
}
apply plugin: 'com.netflix.nebula.ospackage'
validateNebulaPom.enabled = false
generatePomFileForShadowPublication.enabled = false
validateShadowPom.enabled = false
//generatePomFileForShadowPublication.enabled = false
// This is afterEvaluate because the bundlePlugin ZIP task is updated afterEvaluate and changes the ZIP name to match the plugin name
afterEvaluate {
tasks.named("bundlePlugin", Zip).configure { zipTask ->
zipTask.doLast {
def zipFile = zipTask.archiveFile.get().asFile
println "Original bundlePlugin ZIP: ${zipFile.absolutePath}"

// Create a temporary directory for processing
def tempDir = file("$buildDir/tempBundle")
delete(tempDir)
tempDir.mkdirs()

// Extract the ZIP into the temporary directory
copy {
from zipTree(zipFile)
into tempDir
}
println "Extracted ZIP to: ${tempDir.absolutePath}"

// Determine the relocated jar produced by shadowJar.
def relocatedJar = shadowJar.archiveFile.get().asFile
def jarName = relocatedJar.getName()
println "Relocated jar to keep: ${jarName}"

// Delete all jar files (files ending with .jar) that are not the relocated jar.
fileTree(dir: tempDir, includes: ['**/*.jar']).each { File jarFile ->
if (!jarFile.getName().equals(jarName)) {
println "Deleting jar file: ${jarFile.absolutePath}"
jarFile.delete()
}
}

// Reassemble the ZIP using the remaining files
ant.zip(destfile: zipFile) {
fileset(dir: tempDir)
}
println "Final bundlePlugin ZIP updated: ${zipFile.absolutePath}"

// Clean up the temporary directory
delete(tempDir)
}
}

ospackage {
packageName = "${rootProject.name}"
release = isSnapshot ? "0.1" : '1'
Expand Down Expand Up @@ -369,22 +321,3 @@ run {
useCluster testClusters.integTest
}

def compileOnlyResolveableFiles = project.configurations.getByName(CompileOnlyResolvePlugin.RESOLVEABLE_COMPILE_ONLY_CONFIGURATION_NAME).files
shadowJar {
configurations = [project.configurations.runtimeClasspath]
exclude { details ->
def file = details.file
return compileOnlyResolveableFiles.contains(file)
}

destinationDirectory = file("${project.buildDir}/distributions")
archiveClassifier.set(null)

exclude 'META-INF/maven/com.google.guava/**'
exclude 'com/google/thirdparty/**'
exclude 'org/opensearch/jobscheduler/**'
exclude 'org/apache/lucene/**'

relocate 'com.google.common', 'shaded.com.google.common'
relocate 'org.joda.time', 'shaded.org.joda.time'
}
Loading