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
22 changes: 11 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -199,10 +199,10 @@ Download the self-contained fat JAR for your Elasticsearch version:

| Elasticsearch Version | Artifact |
|-----------------------|----------------------------------------|
| ES 6.x | `softclient4es6-jdbc-driver-0.2.3.jar` |
| ES 7.x | `softclient4es7-jdbc-driver-0.2.3.jar` |
| ES 8.x | `softclient4es8-jdbc-driver-0.2.3.jar` |
| ES 9.x | `softclient4es9-jdbc-driver-0.2.3.jar` |
| ES 6.x | `softclient4es6-jdbc-driver-0.2.4.jar` |
| ES 7.x | `softclient4es7-jdbc-driver-0.2.4.jar` |
| ES 8.x | `softclient4es8-jdbc-driver-0.2.4.jar` |
| ES 9.x | `softclient4es9-jdbc-driver-0.2.4.jar` |

> **Java 11+ recommended** (17+ for ES 9.x): **cross-index JOINs require Java 11+** — the embedded JOIN engine is built on Apache Arrow 18.x, which ships Java-11 bytecode.

Expand All @@ -219,20 +219,20 @@ Driver class: app.softnetwork.elastic.jdbc.ElasticDriver
<dependency>
<groupId>app.softnetwork.elastic</groupId>
<artifactId>softclient4es8-jdbc-driver</artifactId>
<version>0.2.3</version>
<version>0.2.4</version>
</dependency>
```

**Gradle:**

```groovy
implementation 'app.softnetwork.elastic:softclient4es8-jdbc-driver:0.2.3'
implementation 'app.softnetwork.elastic:softclient4es8-jdbc-driver:0.2.4'
```

**sbt:**

```scala
libraryDependencies += "app.softnetwork.elastic" % "softclient4es8-jdbc-driver" % "0.2.3"
libraryDependencies += "app.softnetwork.elastic" % "softclient4es8-jdbc-driver" % "0.2.4"
```

The JDBC driver JARs are Scala-version-independent (no `_2.12` or `_2.13` suffix) and include all required dependencies.
Expand Down Expand Up @@ -320,13 +320,13 @@ For programmatic access, add SoftClient4ES to your project.
resolvers += "Softnetwork" at "https://softnetwork.jfrog.io/artifactory/releases/"

// Choose your Elasticsearch version
libraryDependencies += "app.softnetwork.elastic" %% "softclient4es8-java-client" % "0.20.2"
libraryDependencies += "app.softnetwork.elastic" %% "softclient4es8-java-client" % "0.20.3"
// Add the community extensions for materialized views (optional)
libraryDependencies += "app.softnetwork.elastic" %% "softclient4es-community-extensions" % "0.2.2"
libraryDependencies += "app.softnetwork.elastic" %% "softclient4es-community-extensions" % "0.2.3"
// Add the arrow extensions for cross-index JOIN (required for JOINs; Java 11+)
libraryDependencies += "app.softnetwork.elastic" %% "softclient4es-arrow-extensions" % "0.2.3"
libraryDependencies += "app.softnetwork.elastic" %% "softclient4es-arrow-extensions" % "0.2.4"
// Add the JDBC driver if you want to use it from Scala (optional)
libraryDependencies += "app.softnetwork.elastic" %% "softclient4es-jdbc-driver" % "0.2.3"
libraryDependencies += "app.softnetwork.elastic" %% "softclient4es-jdbc-driver" % "0.2.4"
```

```scala
Expand Down
14 changes: 7 additions & 7 deletions documentation/client/adbc_driver.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@ Download the self-contained fat JAR for your Elasticsearch version:

| Elasticsearch | Artifact |
|----------------|-----------------------------------------------------|
| ES 6.x | `softclient4es6-adbc-driver-0.2.3.jar` |
| ES 7.x | `softclient4es7-adbc-driver-0.2.3.jar` |
| ES 8.x | `softclient4es8-adbc-driver-0.2.3.jar` |
| ES 9.x | `softclient4es9-adbc-driver-0.2.3.jar` |
| ES 6.x | `softclient4es6-adbc-driver-0.2.4.jar` |
| ES 7.x | `softclient4es7-adbc-driver-0.2.4.jar` |
| ES 8.x | `softclient4es8-adbc-driver-0.2.4.jar` |
| ES 9.x | `softclient4es9-adbc-driver-0.2.4.jar` |

### Maven / Gradle / sbt

Expand All @@ -36,20 +36,20 @@ Download the self-contained fat JAR for your Elasticsearch version:
<dependency>
<groupId>app.softnetwork.elastic</groupId>
<artifactId>softclient4es8-adbc-driver</artifactId>
<version>0.2.3</version>
<version>0.2.4</version>
</dependency>
```

**Gradle:**

```groovy
implementation 'app.softnetwork.elastic:softclient4es8-adbc-driver:0.2.3'
implementation 'app.softnetwork.elastic:softclient4es8-adbc-driver:0.2.4'
```

**sbt:**

```scala
libraryDependencies += "app.softnetwork.elastic" % "softclient4es8-adbc-driver" % "0.2.3"
libraryDependencies += "app.softnetwork.elastic" % "softclient4es8-adbc-driver" % "0.2.4"
```

---
Expand Down
10 changes: 5 additions & 5 deletions documentation/client/arrow_flight_sql.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,15 +49,15 @@ Available images per ES version:
### Fat JAR

```bash
java -jar softclient4es8-arrow-flight-sql-0.2.3.jar
java -jar softclient4es8-arrow-flight-sql-0.2.4.jar
```

| Elasticsearch | Artifact |
|---------------|----------|
| ES 6.x | `softclient4es6-arrow-flight-sql-0.2.3.jar` |
| ES 7.x | `softclient4es7-arrow-flight-sql-0.2.3.jar` |
| ES 8.x | `softclient4es8-arrow-flight-sql-0.2.3.jar` |
| ES 9.x | `softclient4es9-arrow-flight-sql-0.2.3.jar` |
| ES 6.x | `softclient4es6-arrow-flight-sql-0.2.4.jar` |
| ES 7.x | `softclient4es7-arrow-flight-sql-0.2.4.jar` |
| ES 8.x | `softclient4es8-arrow-flight-sql-0.2.4.jar` |
| ES 9.x | `softclient4es9-arrow-flight-sql-0.2.4.jar` |

---

Expand Down
2 changes: 1 addition & 1 deletion documentation/client/download_analytics.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ beacon to a public endpoint with exactly these fields:
|---------------|----------|-----------------------------------------------|
| `source` | `portal` | Where the count came from (the docs button) |
| `driver` | `jdbc` | Which driver family (`jdbc` or `adbc`) |
| `version` | `0.2.3` | The published artifact version |
| `version` | `0.2.4` | The published artifact version |
| `count_delta` | `1` | One download |

A timestamp is added on the server. That is the **entire** record.
Expand Down
14 changes: 7 additions & 7 deletions documentation/client/jdbc.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@ Download the self-contained fat JAR for your Elasticsearch version. The JARs are

| Elasticsearch | Artifact |
|---------------|----------|
| ES 6.x | `softclient4es6-jdbc-driver-0.2.3.jar` |
| ES 7.x | `softclient4es7-jdbc-driver-0.2.3.jar` |
| ES 8.x | `softclient4es8-jdbc-driver-0.2.3.jar` |
| ES 9.x | `softclient4es9-jdbc-driver-0.2.3.jar` |
| ES 6.x | `softclient4es6-jdbc-driver-0.2.4.jar` |
| ES 7.x | `softclient4es7-jdbc-driver-0.2.4.jar` |
| ES 8.x | `softclient4es8-jdbc-driver-0.2.4.jar` |
| ES 9.x | `softclient4es9-jdbc-driver-0.2.4.jar` |

### Build Tool Integration

Expand All @@ -33,20 +33,20 @@ Download the self-contained fat JAR for your Elasticsearch version. The JARs are
<dependency>
<groupId>app.softnetwork.elastic</groupId>
<artifactId>softclient4es8-jdbc-driver</artifactId>
<version>0.2.3</version>
<version>0.2.4</version>
</dependency>
```

**Gradle:**

```groovy
implementation 'app.softnetwork.elastic:softclient4es8-jdbc-driver:0.2.3'
implementation 'app.softnetwork.elastic:softclient4es8-jdbc-driver:0.2.4'
```

**sbt:**

```scala
libraryDependencies += "app.softnetwork.elastic" % "softclient4es8-jdbc-driver" % "0.2.3"
libraryDependencies += "app.softnetwork.elastic" % "softclient4es8-jdbc-driver" % "0.2.4"
```

---
Expand Down
9 changes: 5 additions & 4 deletions documentation/client/repl.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,7 @@ Before installing, you can list all available versions for a specific Elasticsea

• 0.20.1
• 0.20.2
• 0.20.3

Total: 2 version(s)

Expand Down Expand Up @@ -147,7 +148,7 @@ Before installing, you can list all available versions for a specific Elasticsea
./install.sh --list-versions --es-version 8

# Install specific version
./install.sh --es-version 8 --version 0.20.1
./install.sh --es-version 8 --version 0.20.3

# Install for Elasticsearch 9 (requires Java 17+)
./install.sh --es-version 9
Expand All @@ -156,7 +157,7 @@ Before installing, you can list all available versions for a specific Elasticsea
./install.sh --target /opt/softclient4es

# Full custom installation
./install.sh --target ~/tools/softclient4es --es-version 7 --version 0.20.1
./install.sh --target ~/tools/softclient4es --es-version 7 --version 0.20.3
```

#### Windows
Expand All @@ -169,7 +170,7 @@ Before installing, you can list all available versions for a specific Elasticsea
.\install.ps1 -ListVersions -EsVersion 8

# Install specific version
.\install.ps1 -EsVersion 8 -Version 0.20.1
.\install.ps1 -EsVersion 8 -Version 0.20.3

# Install for Elasticsearch 9 (requires Java 17+)
.\install.ps1 -EsVersion 9
Expand All @@ -178,7 +179,7 @@ Before installing, you can list all available versions for a specific Elasticsea
.\install.ps1 -Target "C:\tools\softclient4es"

# Full custom installation
.\install.ps1 -Target "C:\tools\softclient4es" -EsVersion 7 -Version 0.20.1
.\install.ps1 -Target "C:\tools\softclient4es" -EsVersion 7 -Version 0.20.3
```

---
Expand Down
2 changes: 1 addition & 1 deletion documentation/sql/dml_statements.md
Original file line number Diff line number Diff line change
Expand Up @@ -410,7 +410,7 @@ every supported JVM too** — including JDK 23, 24 and 25.

##### If you are on an older release

Releases up to and including **0.20.3** fail on **JDK 23 and newer** for `PARQUET`, `DELTA_LAKE` and
Releases up to and including **0.20.2** fail on **JDK 23 and newer** for `PARQUET`, `DELTA_LAKE` and
remote schemes, with:

| JDK | Error text | `-Djava.security.manager=allow` |
Expand Down
24 changes: 18 additions & 6 deletions documentation/sql/materialized_views.md
Original file line number Diff line number Diff line change
Expand Up @@ -536,13 +536,25 @@ To automate this re-execution, the engine creates an **Elasticsearch Watcher** t
The warning looks like this:

```
✅ Success (14203ms)
✅ Success (9549ms)
⚠️ Materialized view 'orders_with_customers_mv' was created, but automatic refresh is
unavailable: this Elasticsearch cluster's licence does not include Watcher, so the joined
data cannot be refreshed on a schedule. Run 'REFRESH MATERIALIZED VIEW
orders_with_customers_mv' whenever the joined tables change, or schedule that statement
externally (cron, Kubernetes CronJob, Airflow). Elasticsearch reported: …
```
unavailable: this deployment cannot host the refresh watcher, so the joined data cannot
be refreshed on a schedule. Run 'REFRESH MATERIALIZED VIEW orders_with_customers_mv'
whenever the joined tables change, or schedule that statement externally (cron,
Kubernetes CronJob, Airflow). Reason: Elasticsearch error during createWatcher:
security_exception - current license is non-compliant for [watcher]
```

The wording names **no cause** — the licence is only one of two ways to end up here, and the
actual one is quoted verbatim after `Reason:`. The other is a cluster with no usable webhook
credentials for the watcher to call back with, which is what `xpack.security.enabled: false`
gives you — the default local, CI and testkit setup. Both are the same outcome: the view exists
and is queryable, only the scheduled refresh is missing, and `REFRESH MATERIALIZED VIEW` is the
manual equivalent.

A **wrong** credential is not this case. Supplying a username with no password, or a bad API key,
keeps failing the statement loudly — that is a fixable misconfiguration, not a missing capability,
and hiding it behind a warning would hide the typo.

A view created this way keeps `auto_refresh: unavailable` even if the cluster is later upgraded to a license that includes Watcher — re-run `CREATE OR REPLACE MATERIALIZED VIEW` with a changed definition to redeploy it with a watcher.

Expand Down
6 changes: 3 additions & 3 deletions install.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ Examples:
.\install.ps1
.\install.ps1 -ListVersions -EsVersion 8
.\install.ps1 -Target "C:\tools\softclient4es" -EsVersion 8 -Version 1.0.0
.\install.ps1 -EsVersion 7 -Version 0.20.2 -NoExtensions
.\install.ps1 -EsVersion 7 -Version 0.20.3 -NoExtensions

"@
exit 0
Expand Down Expand Up @@ -253,7 +253,7 @@ function Resolve-LatestVersion {

# Prefer non-snapshot versions.
# @(...) matters: with a single match the pipeline yields a bare string, and
# [-1] on a string returns its last CHARACTER ("0.20.2" -> "2").
# [-1] on a string returns its last CHARACTER ("0.20.3" -> "3").
$releaseVersions = @($versions | Where-Object { $_ -notmatch 'SNAPSHOT' })

if ($releaseVersions.Count -gt 0) {
Expand Down Expand Up @@ -281,7 +281,7 @@ if ($WITH_EXTENSIONS) {
Where-Object { $_ -notmatch 'SNAPSHOT' })
if ($bundleVersions.Count -gt 0) {
if ($Version -eq "latest") {
$Version = $bundleVersions[-1] # bundle-version line (0.20.2, 0.20.3, ...)
$Version = $bundleVersions[-1] # bundle-version line (0.20.2, 0.20.3, 0.20.4, ...)
$USE_BUNDLE = $true
Write-Success "Resolved latest -all bundle version: $Version"
}
Expand Down
4 changes: 2 additions & 2 deletions install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ Examples:
$0
$0 --list-versions --es-version 8
$0 --target /opt/softclient4es --es-version 8 --no-extensions
$0 -t ~/tools/softclient4es -e 7 -v 0.20.2 --no-extensions
$0 -t ~/tools/softclient4es -e 7 -v 0.20.3 --no-extensions

Detected OS: $OS_TYPE

Expand Down Expand Up @@ -424,7 +424,7 @@ if [[ "$WITH_EXTENSIONS" == true ]]; then
bundle_versions=$(fetch_versions "$BUNDLE_ARTIFACT_NAME" 2>/dev/null | grep -v 'SNAPSHOT' || true)
if [[ -n "$bundle_versions" ]]; then
if [[ "$SOFT_VERSION" == "latest" ]]; then
SOFT_VERSION=$(echo "$bundle_versions" | tail -1) # bundle-version line (0.20.1, 0.20.2, ...)
SOFT_VERSION=$(echo "$bundle_versions" | tail -1) # bundle-version line (0.20.1, 0.20.2, 0.20.3, ...)
USE_BUNDLE=true
success "Resolved latest -all bundle version: $SOFT_VERSION"
elif echo "$bundle_versions" | grep -qx "$SOFT_VERSION"; then
Expand Down
Loading