Skip to content

Commit cd1b141

Browse files
committed
[CI] Re-enable SLT rotating tests
Signed-off-by: Mihai Budiu <mbudiu@feldera.com>
1 parent cac016d commit cd1b141

File tree

2 files changed

+15
-7
lines changed

2 files changed

+15
-7
lines changed

.github/workflows/test-java.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,8 @@ jobs:
3939
- name: Run mvn test
4040
run: mvn test --no-transfer-progress -q -B -pl SQL-compiler -Dsurefire.failIfNoSpecifiedTests=false -Dtest=!OtherTests.rustFmt
4141
working-directory: ./sql-to-dbsp-compiler
42+
43+
- name: Run SLT tests
44+
run: mvn test --no-transfer-progress -q -B -Dsurefire.failIfNoSpecifiedTests=false -Dtest=RotateTests
45+
working-directory: ./sql-to-dbsp-compiler
46+

sql-to-dbsp-compiler/lib/hashing/src/lib.rs

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ use dbsp::dynamic::{DowncastTrait, Erase};
99
use feldera_sqllib::{SqlString, WSet, Weight};
1010
use sltsqlvalue::*;
1111
use std::ops::{Add, Neg};
12+
use std::sync::Arc;
1213

1314
#[derive(Eq, PartialEq)]
1415
pub enum SortOrder {
@@ -117,21 +118,22 @@ where
117118
/// Version of hash that takes the result of orderby: a zset that is expected
118119
/// to contain a single vector with all the data.
119120
pub fn zset_of_vectors_to_strings<K>(
120-
set: &WSet<Vec<K>>,
121+
set: &WSet<Arc<Vec<K>>>,
121122
format: SqlString,
122123
order: SortOrder,
123124
) -> Vec<Vec<SqlString>>
124125
where
125126
K: DBData + ToSqlRow,
126127
{
127128
let mut data_rows = DataRows::new(&format, &order);
128-
let mut cursor = set.cursor();
129+
let mut cursor = (*set).cursor();
129130
while cursor.key_valid() {
130131
let w = **cursor.weight();
131132
if w != Weight::one() {
132133
panic!("Weight is not one!");
133134
}
134-
let row_vec: Vec<K> = unsafe { cursor.key().downcast::<Vec<K>>() }.to_vec();
135+
let row_vec: &Arc<Vec<K>> = unsafe { cursor.key().downcast::<Arc<Vec<K>>>() };
136+
let row_vec = (*row_vec).to_vec();
135137
let sql_rows = row_vec.iter().map(|k| k.to_row());
136138
for row in sql_rows {
137139
data_rows.push(row);
@@ -161,19 +163,20 @@ where
161163

162164
/// Version of hash that takes the result of orderby: a zset that is expected
163165
/// to contain a single vector with all the data.
164-
pub fn hash_vectors<K>(set: &WSet<Vec<K>>, format: SqlString, order: SortOrder) -> String
166+
pub fn hash_vectors<K>(set: &WSet<Arc<Vec<K>>>, format: SqlString, order: SortOrder) -> SqlString
165167
where
166168
K: DBData + ToSqlRow,
167169
{
168170
// Result of orderby - there should be at most one row in the set.
169171
let mut builder = String::default();
170-
let mut cursor = set.cursor();
172+
let mut cursor = (*set).cursor();
171173
while cursor.key_valid() {
172174
let w = **cursor.weight();
173175
if w != Weight::one() {
174176
panic!("Weight is not one!");
175177
}
176-
let row_vec: Vec<K> = unsafe { cursor.key().downcast::<Vec<K>>() }.to_vec();
178+
let row_vec: &Arc<Vec<K>> = unsafe { cursor.key().downcast::<Arc<Vec<K>>>() };
179+
let row_vec = (*row_vec).to_vec();
177180
let sql_rows = row_vec.iter().map(|k| k.to_row());
178181
let mut data_rows = DataRows::with_capacity(&format, &order, sql_rows.len());
179182
for row in sql_rows {
@@ -188,7 +191,7 @@ where
188191
}
189192
// println!("{}", builder);
190193
let digest = md5::compute(builder);
191-
format!("{:x}", digest)
194+
SqlString::from_ref(&format!("{:x}", digest))
192195
}
193196

194197
// The count of elements in a zset that contains a vector is

0 commit comments

Comments
 (0)