mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-11 15:35:05 +00:00
58f43ad4f0
Remove functions without a backing matrix agg MatrixAgg works across multiple fields and exposing it directly in SQL does not work. Instead isolated functions are exposed which get folded and optimized into one matrix agg per field. Thus not all matrix functions can be exposed in SQL, at least at this time. Instead of depending on the plugin directly, depend on the plugin client jar (matrix-agg-client) Remove outdated test Original commit: elastic/x-pack-elasticsearch@ec9b31bf59
117 lines
3.8 KiB
Groovy
117 lines
3.8 KiB
Groovy
evaluationDependsOn(xpackModule('core'))
|
|
|
|
apply plugin: 'elasticsearch.esplugin'
|
|
esplugin {
|
|
name 'x-pack-sql'
|
|
description 'The Elasticsearch plugin that powers SQL for Elasticsearch'
|
|
classname 'org.elasticsearch.xpack.sql.plugin.SqlPlugin'
|
|
extendedPlugins = ['x-pack-core']
|
|
}
|
|
|
|
configurations {
|
|
// Bundles the sql-cli.jar into the distribution
|
|
bin
|
|
}
|
|
|
|
archivesBaseName = 'x-pack-sql'
|
|
|
|
// All integration tests live in qa modules
|
|
integTest.enabled = false
|
|
|
|
dependencies {
|
|
compileOnly "org.elasticsearch.plugin:x-pack-core:${version}"
|
|
compile project('sql-proto')
|
|
compile "org.elasticsearch.plugin:aggs-matrix-stats-client:${version}"
|
|
compile "org.antlr:antlr4-runtime:4.5.3"
|
|
testCompile "org.elasticsearch.test:framework:${version}"
|
|
testCompile project(path: xpackModule('core'), configuration: 'testArtifacts')
|
|
testCompile project(path: xpackModule('security'), configuration: 'testArtifacts')
|
|
testCompile project(path: ':modules:reindex', configuration: 'runtime')
|
|
testCompile project(path: ':modules:parent-join', configuration: 'runtime')
|
|
testCompile project(path: ':modules:analysis-common', configuration: 'runtime')
|
|
|
|
bin(project(path: xpackModule('sql:sql-cli'))) {
|
|
// sql-cli bundles all of its dependencies into a single executable jar
|
|
transitive = false
|
|
}
|
|
}
|
|
|
|
/* Bundle the sql-cli into the binary files. It should end up
|
|
* in $ES_HOME/bin/x-pack/. This is useful because it is an
|
|
* executable jar that can be moved wherever it is needed.
|
|
*/
|
|
bundlePlugin {
|
|
from (configurations.bin) {
|
|
into 'bin'
|
|
}
|
|
}
|
|
|
|
/**********************************************
|
|
* SQL Parser regeneration *
|
|
**********************************************/
|
|
|
|
configurations {
|
|
regenerate
|
|
}
|
|
|
|
dependencies {
|
|
regenerate 'org.antlr:antlr4:4.5.3'
|
|
}
|
|
|
|
String grammarPath = 'src/main/antlr'
|
|
String outputPath = 'src/main/java/org/elasticsearch/xpack/sql/parser'
|
|
|
|
task cleanGenerated(type: Delete) {
|
|
delete fileTree(grammarPath) {
|
|
include '*.tokens'
|
|
}
|
|
delete fileTree(outputPath) {
|
|
include 'SqlBase*.java'
|
|
}
|
|
}
|
|
|
|
task regenParser(type: JavaExec) {
|
|
dependsOn cleanGenerated
|
|
main = 'org.antlr.v4.Tool'
|
|
classpath = configurations.regenerate
|
|
systemProperty 'file.encoding', 'UTF-8'
|
|
systemProperty 'user.language', 'en'
|
|
systemProperty 'user.country', 'US'
|
|
systemProperty 'user.variant', ''
|
|
args '-Werror',
|
|
'-package', 'org.elasticsearch.xpack.sql.parser',
|
|
'-listener',
|
|
'-visitor',
|
|
'-o', outputPath,
|
|
"${file(grammarPath)}/SqlBase.g4"
|
|
}
|
|
|
|
task regen {
|
|
dependsOn regenParser
|
|
doLast {
|
|
// moves token files to grammar directory for use with IDE's
|
|
ant.move(file: "${outputPath}/SqlBase.tokens", toDir: grammarPath)
|
|
ant.move(file: "${outputPath}/SqlBaseLexer.tokens", toDir: grammarPath)
|
|
// make the generated classes package private
|
|
ant.replaceregexp(match: 'public ((interface|class) \\QSqlBase\\E\\w+)',
|
|
replace: '\\1',
|
|
encoding: 'UTF-8') {
|
|
fileset(dir: outputPath, includes: 'SqlBase*.java')
|
|
}
|
|
// nuke timestamps/filenames in generated files
|
|
ant.replaceregexp(match: '\\Q// Generated from \\E.*',
|
|
replace: '\\/\\/ ANTLR GENERATED CODE: DO NOT EDIT',
|
|
encoding: 'UTF-8') {
|
|
fileset(dir: outputPath, includes: 'SqlBase*.java')
|
|
}
|
|
// remove tabs in antlr generated files
|
|
ant.replaceregexp(match: '\t', flags: 'g', replace: ' ', encoding: 'UTF-8') {
|
|
fileset(dir: outputPath, includes: 'SqlBase*.java')
|
|
}
|
|
// fix line endings
|
|
ant.fixcrlf(srcdir: outputPath, eol: 'lf') {
|
|
patternset(includes: 'SqlBase*.java')
|
|
}
|
|
}
|
|
}
|