Skip to content

Commit ac3a8a4

Browse files
authored
Merge branch 'develop' into ngates/scalar-fn-arrays
2 parents b921961 + d87dfed commit ac3a8a4

75 files changed

Lines changed: 2714 additions & 399 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.cargo/config.toml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,6 @@ rustflags = [
33
"-C", "force-frame-pointers=yes",
44
]
55

6-
[target.wasm32-unknown-unknown]
7-
rustflags = ['--cfg', 'getrandom_backend="wasm_js"', '-C', 'target-feature=+atomics']
8-
96
[alias]
107
xtask = "run -p xtask --"
118
vx = "run -p vortex-tui --"

.github/workflows/bench.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ jobs:
3838
&& format('runs-on={0}/runner=bench-dedicated/extras=s3-cache/tag={1}', github.run_id, matrix.benchmark.id)
3939
|| 'ubuntu-latest' }}
4040
strategy:
41+
fail-fast: false
4142
matrix:
4243
benchmark:
4344
- id: random-access-bench

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ jobs:
203203
runner: amd64-medium
204204
target: wasm32-unknown-unknown
205205
env:
206-
rustflags: "RUSTFLAGS='-A warnings'"
206+
rustflags: "RUSTFLAGS='-A warnings --cfg getrandom_backend=\"unsupported\"'"
207207
args: "--target wasm32-unknown-unknown --exclude vortex --exclude vortex-cuda --exclude vortex-cub --exclude vortex-nvcomp --exclude vortex-datafusion --exclude vortex-duckdb --exclude vortex-tui --exclude vortex-zstd --exclude vortex-test-e2e-cuda --exclude vortex-sqllogictest"
208208
steps:
209209
- uses: runs-on/action@v2

.github/workflows/stale.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
- uses: actions/stale@v10
1414
with:
1515
# After 30 days of no activity, a PR will be marked as stale
16-
days-before-pr-stale: 30
16+
days-before-pr-stale: 14
1717
# PR has 7 more days to become active, otherwise it will be closed.
1818
days-before-pr-close: 7
1919
stale-pr-label: "stale"

Cargo.lock

Lines changed: 0 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -302,11 +302,6 @@ vortex-duckdb = { path = "./vortex-duckdb", default-features = false }
302302
vortex-test-e2e-cuda = { path = "./vortex-test/e2e-cuda", default-features = false }
303303
vortex-tui = { path = "./vortex-tui" }
304304

305-
[workspace.dependencies.getrandom_v03]
306-
features = ["wasm_js"]
307-
package = "getrandom"
308-
version = "0.4.0"
309-
310305
[workspace.lints.rust]
311306
let_underscore_drop = "deny"
312307
macro_use_extern_crate = "deny"

encodings/parquet-variant/Cargo.toml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,5 +36,3 @@ vortex-session = { workspace = true }
3636
rstest = { workspace = true }
3737
vortex-array = { workspace = true, features = ["_test-harness"] }
3838

39-
[package.metadata.cargo-machete]
40-
ignored = ["getrandom_v03"]

encodings/pco/Cargo.toml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,3 @@ vortex-session = { workspace = true }
2929
rstest = { workspace = true }
3030
vortex-array = { workspace = true, features = ["_test-harness"] }
3131

32-
[package.metadata.cargo-machete]
33-
ignored = ["getrandom_v03"]

java/vortex-jni/src/main/java/dev/vortex/api/Expression.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,14 @@ interface Visitor<T> {
9595
*/
9696
T visitIsNull(IsNull isNull);
9797

98+
/**
99+
* Visits an is not null expression (non-null check).
100+
*
101+
* @param isNotNull the is not null expression to visit
102+
* @return the result of visiting the is not null expression
103+
*/
104+
T visitIsNotNull(IsNotNull isNotNull);
105+
98106
/**
99107
* For expressions that do not have a specific visitor method.
100108
*/
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
// SPDX-License-Identifier: Apache-2.0
2+
// SPDX-FileCopyrightText: Copyright the Vortex contributors
3+
4+
package dev.vortex.api.expressions;
5+
6+
import dev.vortex.api.Expression;
7+
import java.util.List;
8+
import java.util.Objects;
9+
import java.util.Optional;
10+
11+
/**
12+
* Represents an IS NOT NULL expression that checks whether values are non-null.
13+
* This expression returns true for non-null values and false for null values.
14+
*/
15+
public final class IsNotNull implements Expression {
16+
private final Expression child;
17+
18+
private IsNotNull(Expression child) {
19+
this.child = child;
20+
}
21+
22+
/**
23+
* Parses an IsNotNull expression from serialized metadata and child expressions.
24+
* This method is used during deserialization of Vortex expressions.
25+
*
26+
* @param metadata the serialized metadata, must be empty for IsNotNull expressions
27+
* @param children the child expressions, must contain exactly one element
28+
* @return a new IsNotNull expression parsed from the provided data
29+
* @throws IllegalArgumentException if the number of children is not exactly one,
30+
* or if metadata is not empty
31+
*/
32+
public static IsNotNull parse(byte[] metadata, List<Expression> children) {
33+
if (children.size() != 1) {
34+
throw new IllegalArgumentException(
35+
"IsNotNull expression must have exactly one child, found: " + children.size());
36+
}
37+
if (metadata.length > 0) {
38+
throw new IllegalArgumentException(
39+
"IsNotNull expression must not have metadata, found: " + metadata.length);
40+
}
41+
return new IsNotNull(children.get(0));
42+
}
43+
44+
/**
45+
* Creates a new IsNotNull expression that checks non-nullity of the given child expression.
46+
*
47+
* @param child the expression to check for non-null values
48+
* @return a new IsNotNull expression
49+
*/
50+
public static IsNotNull of(Expression child) {
51+
return new IsNotNull(child);
52+
}
53+
54+
@Override
55+
public boolean equals(Object o) {
56+
if (o == null || getClass() != o.getClass()) return false;
57+
IsNotNull other = (IsNotNull) o;
58+
return Objects.equals(child, other.child);
59+
}
60+
61+
@Override
62+
public int hashCode() {
63+
return Objects.hash(child);
64+
}
65+
66+
@Override
67+
public String id() {
68+
return "vortex.is_not_null";
69+
}
70+
71+
@Override
72+
public List<Expression> children() {
73+
return List.of(child);
74+
}
75+
76+
@Override
77+
public Optional<byte[]> metadata() {
78+
return Optional.of(new byte[] {});
79+
}
80+
81+
@Override
82+
public String toString() {
83+
return "vortex.is_not_null(" + child + ")";
84+
}
85+
86+
/**
87+
* Returns the child expression that will be checked for non-null values.
88+
*
89+
* @return the child expression
90+
*/
91+
public Expression getChild() {
92+
return child;
93+
}
94+
95+
@Override
96+
public <T> T accept(Visitor<T> visitor) {
97+
return visitor.visitIsNotNull(this);
98+
}
99+
}

0 commit comments

Comments
 (0)