diff --git a/.idea/misc.xml b/.idea/misc.xml index 014943bf2b..b5850a4e20 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -8,47 +8,55 @@ - + \ No newline at end of file diff --git a/build.gradle b/build.gradle index d4dc5c72ea..86823573f1 100644 --- a/build.gradle +++ b/build.gradle @@ -191,8 +191,8 @@ subprojects { apply from: rootProject.file('gradle/testing.gradle') java { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } def publishBuild = Boolean.parseBoolean(findProperty('publishBuild') ?: 'false') @@ -233,7 +233,7 @@ subprojects { // It would be good to have more coverage, but this allows us to move forward with incomplete docs options.addBooleanOption('Xdoclint:none', true) - options.addStringOption('source', '11') + options.addStringOption('source', '17') options.with { overview "src/main/javadoc/overview.html" @@ -257,8 +257,8 @@ subprojects { //enable incremental compilation options.incremental = true - //target byte-code compatibility with Java 11 (regardless of build JDK) - options.release = 11 + //target byte-code compatibility with Java 17 (regardless of build JDK) + options.release = 17 } } } diff --git a/fdb-extensions/src/test/java/com/apple/foundationdb/async/RangeSetTest.java b/fdb-extensions/src/test/java/com/apple/foundationdb/async/RangeSetTest.java index b830405c33..2b9a500f22 100644 --- a/fdb-extensions/src/test/java/com/apple/foundationdb/async/RangeSetTest.java +++ b/fdb-extensions/src/test/java/com/apple/foundationdb/async/RangeSetTest.java @@ -357,7 +357,7 @@ void insertNonOverlappingRanges() { Range fullRange = new Range(new byte[]{1}, new byte[]{(byte) (transactionCount + 1)}); List gaps = IntStream.range(0, transactionCount) .mapToObj(i -> new Range(new byte[]{(byte)(i + 1), 0x00}, new byte[]{(byte)(i + 2)})) - .collect(Collectors.toList()); + .toList(); assertGaps(fullRange, gaps, new byte[]{(byte)(transactionCount), 0x00}); } @@ -386,7 +386,7 @@ void insertOverlappingRanges() { List gaps = IntStream.range(0, transactionCount) .filter(i -> i % 2 != 0) .mapToObj(i -> new Range(new byte[]{(byte)(i + 1), 0x00}, new byte[]{(byte)(i + 2)})) - .collect(Collectors.toList()); + .toList(); assertGaps(fullRange, gaps, new byte[]{(byte)(transactionCount), 0x00}); } @@ -432,7 +432,7 @@ private void assertGaps(Range fullRange, List gaps, byte[] lastInRange) { void concurrentlyReadAndFillInGaps() { List ranges = IntStream.range(0, 10) .mapToObj(i -> new Range(new byte[]{(byte) (2 * i + 1)}, new byte[]{(byte) (2 * i + 2)})) - .collect(Collectors.toList()); + .toList(); try (Transaction tr = db.createTransaction()) { for (Range r : ranges) { rs.insertRange(tr, r, true).join(); diff --git a/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/SqlInsertTest.java b/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/SqlInsertTest.java index ad549732b5..64bf2a3a16 100644 --- a/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/SqlInsertTest.java +++ b/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/SqlInsertTest.java @@ -52,10 +52,13 @@ public class SqlInsertTest { @RegisterExtension @Order(1) - public final SimpleDatabaseRule database = new SimpleDatabaseRule( - BasicMetadataTest.class, "CREATE TABLE simple (rest_no bigint, name string, primary key(rest_no)) " + - "CREATE TYPE AS STRUCT location (address string, latitude string, longitude string) " + - "CREATE TABLE with_loc (rest_no bigint, name string, loc location, primary key(rest_no))"); + public final SimpleDatabaseRule database = new SimpleDatabaseRule(BasicMetadataTest.class, + """ + CREATE TABLE simple (rest_no bigint, name string, primary key(rest_no)) + CREATE TYPE AS STRUCT location (address string, latitude string, longitude string) + CREATE TABLE with_loc (rest_no bigint, name string, loc location, primary key(rest_no)) + """ + ); @ParameterizedTest @ValueSource(booleans = {true, false}) diff --git a/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/CaseSensitiveDbObjectsTest.java b/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/CaseSensitiveDbObjectsTest.java index 8c95663bb8..5e0ea17305 100644 --- a/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/CaseSensitiveDbObjectsTest.java +++ b/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/CaseSensitiveDbObjectsTest.java @@ -45,8 +45,10 @@ */ public class CaseSensitiveDbObjectsTest { @Nonnull - private static final String SCHEMA_TEMPLATE = "CREATE TABLE \"t1\" (\"group\" bigint, \"id\" string, \"val\" " + - "bigint, PRIMARY KEY(\"group\", \"id\")) "; + private static final String SCHEMA_TEMPLATE = + """ + CREATE TABLE "t1" ("group" bigint, "id" string, "val" bigint, PRIMARY KEY("group", "id")) + """; @RegisterExtension @Order(0) diff --git a/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/DeleteRangeNoMetadataKeyTest.java b/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/DeleteRangeNoMetadataKeyTest.java index cd30e2e11a..f05c2d255c 100644 --- a/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/DeleteRangeNoMetadataKeyTest.java +++ b/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/DeleteRangeNoMetadataKeyTest.java @@ -47,8 +47,11 @@ * has records that share a single primary key extent. */ public class DeleteRangeNoMetadataKeyTest { - private static final String SCHEMA_TEMPLATE = " CREATE TABLE t1 (id bigint, a string, b string, c string, d string, PRIMARY KEY(id, a, b)) " + - "CREATE TABLE t2 (id bigint, a string, b string, e bigint, f boolean, PRIMARY KEY(id, a, b))"; + private static final String SCHEMA_TEMPLATE = + """ + CREATE TABLE t1 (id bigint, a string, b string, c string, d string, PRIMARY KEY(id, a, b)) + CREATE TABLE t2 (id bigint, a string, b string, e bigint, f boolean, PRIMARY KEY(id, a, b)) + """; @RegisterExtension @Order(0) diff --git a/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/IntermingledTablesTest.java b/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/IntermingledTablesTest.java index 0172e8db31..15f01e5922 100644 --- a/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/IntermingledTablesTest.java +++ b/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/IntermingledTablesTest.java @@ -43,9 +43,11 @@ * and thus different types share the same extent. */ public class IntermingledTablesTest { - private static final String SCHEMA_TEMPLATE = " " + - "CREATE TABLE t1 (group bigint, id string, val bigint, PRIMARY KEY(group, id)) " + - "CREATE TABLE t2 (group bigint, id string, val2 string, PRIMARY KEY(group, id))"; + private static final String SCHEMA_TEMPLATE = + """ + CREATE TABLE t1 (group bigint, id string, val bigint, PRIMARY KEY(group, id)) + CREATE TABLE t2 (group bigint, id string, val2 string, PRIMARY KEY(group, id)) + """; @RegisterExtension @Order(0) diff --git a/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/JoinWithLimitTest.java b/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/JoinWithLimitTest.java index 88048d0684..c3b0811d12 100644 --- a/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/JoinWithLimitTest.java +++ b/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/JoinWithLimitTest.java @@ -40,10 +40,12 @@ public class JoinWithLimitTest { public final EmbeddedRelationalExtension relationalExtension = new EmbeddedRelationalExtension(); private static final String getTemplate_definition = - "CREATE TABLE R(rpk bigint, ra bigint, primary key(rpk))" + - "CREATE TABLE S(spk bigint, sa bigint, primary key(spk))" + - "CREATE TYPE AS STRUCT D ( e bigint )" + - "CREATE TABLE Q(qpk bigint, d D array, PRIMARY KEY(qpk))"; + """ + CREATE TABLE R(rpk bigint, ra bigint, primary key(rpk)) + CREATE TABLE S(spk bigint, sa bigint, primary key(spk)) + CREATE TYPE AS STRUCT D ( e bigint ) + CREATE TABLE Q(qpk bigint, d D array, PRIMARY KEY(qpk)) + """; @RegisterExtension @Order(1) diff --git a/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/RecordTypeKeyTest.java b/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/RecordTypeKeyTest.java index 7106708675..21cd11b2cb 100644 --- a/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/RecordTypeKeyTest.java +++ b/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/RecordTypeKeyTest.java @@ -45,9 +45,12 @@ public class RecordTypeKeyTest { @Order(1) public final SimpleDatabaseRule database = new SimpleDatabaseRule( RecordTypeKeyTest.class, - "CREATE TABLE restaurant_review (reviewer bigint, rating bigint, SINGLE ROW ONLY)" + - " CREATE TABLE restaurant_tag (tag string, weight bigint, PRIMARY KEY(tag))" + - " CREATE INDEX record_rt_covering_idx as select reviewer from restaurant_review"); + """ + CREATE TABLE restaurant_review (reviewer bigint, rating bigint, SINGLE ROW ONLY) + CREATE TABLE restaurant_tag (tag string, weight bigint, PRIMARY KEY(tag)) + CREATE INDEX record_rt_covering_idx as select reviewer from restaurant_review + """ + ); @RegisterExtension @Order(2) diff --git a/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/RelationalArrayTest.java b/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/RelationalArrayTest.java index bcae7dc15f..7b7d08030c 100644 --- a/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/RelationalArrayTest.java +++ b/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/RelationalArrayTest.java @@ -55,30 +55,34 @@ import static org.junit.jupiter.api.Assertions.assertTrue; public class RelationalArrayTest { + + // "enumeration_null enumeration array, enumeration_not_null enumeration array not null, " + + private static final String SCHEMA_TEMPLATE = + """ + CREATE TYPE AS STRUCT STRUCTURE(a integer, b string) + CREATE TYPE as enum enumeration('a', 'b') + CREATE TABLE T( + pk integer, + boolean_null boolean array, boolean_not_null boolean array not null, + integer_null integer array, integer_not_null integer array not null, + bigint_null bigint array, bigint_not_null bigint array not null, + float_null float array, float_not_null float array not null, + double_null double array, double_not_null double array not null, + string_null string array, string_not_null string array not null, + bytes_null bytes array, bytes_not_null bytes array not null, + struct_null structure array, struct_not_null structure array not null, + uuid_null uuid array, uuid_not_null uuid array not null, + primary key(pk)) + CREATE TABLE B(pk integer, uuid_null uuid array, primary key(pk)) + """; + @RegisterExtension @Order(0) public final EmbeddedRelationalExtension relationalExtension = new EmbeddedRelationalExtension(); @RegisterExtension @Order(1) - public final SimpleDatabaseRule database = new SimpleDatabaseRule(RelationalArrayTest.class, SCHEMA); - - private static final String SCHEMA = "CREATE TYPE AS STRUCT STRUCTURE(a integer, b string) " + - "CREATE TYPE as enum enumeration('a', 'b') " + - "CREATE TABLE T(" + - "pk integer, " + - "boolean_null boolean array, boolean_not_null boolean array not null, " + - "integer_null integer array, integer_not_null integer array not null, " + - "bigint_null bigint array, bigint_not_null bigint array not null, " + - "float_null float array, float_not_null float array not null, " + - "double_null double array, double_not_null double array not null, " + - "string_null string array, string_not_null string array not null, " + - "bytes_null bytes array, bytes_not_null bytes array not null, " + - "struct_null structure array, struct_not_null structure array not null, " + - "uuid_null uuid array, uuid_not_null uuid array not null, " + - // "enumeration_null enumeration array, enumeration_not_null enumeration array not null, " + - "primary key(pk)) " + - "CREATE TABLE B(pk integer, uuid_null uuid array, primary key(pk))"; + public final SimpleDatabaseRule database = new SimpleDatabaseRule(RelationalArrayTest.class, SCHEMA_TEMPLATE); public void insertQuery(@Nonnull String q) throws SQLException { try (final var conn = DriverManager.getConnection(database.getConnectionUri().toString())) { diff --git a/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/SqlFunctionsTest.java b/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/SqlFunctionsTest.java index 3247b9de6b..2334fed6c4 100644 --- a/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/SqlFunctionsTest.java +++ b/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/SqlFunctionsTest.java @@ -34,16 +34,18 @@ public class SqlFunctionsTest { @Nonnull - private static final String SCHEMA_TEMPLATE = " " + - "create table t1(col1 bigint, col2 string, col3 integer, primary key(col1))\n" + - "create function f1 ( in a bigint, in b string )\n" + - "as select col1, col2 from t1 where col1 < a and col2 = b\n" + - "create function f2 ( in k bigint )\n" + - "as select col1, col2 from f1(102, 'b')\n" + - "create function f3 (in x bigint, in y string)\n" + - "as select a.col1 as col1a, a.col2 as col2a, b.col1 as col1b, b.col2 as col2b from f2(x) as a, f1(x, y) as b\n" + - "create function f4 (in x bigint, in y string)\n" + - "as select col1a + col1b as s, col2a, col2b from f3(x, y)\n"; + private static final String SCHEMA_TEMPLATE = + """ + create table t1(col1 bigint, col2 string, col3 integer, primary key(col1)) + create function f1 ( in a bigint, in b string ) + as select col1, col2 from t1 where col1 < a and col2 = b + create function f2 ( in k bigint ) + as select col1, col2 from f1 (102, 'b') + create function f3 (in x bigint, in y string) + as select a.col1 as col1a, a.col2 as col2a, b.col1 as col1b, b.col2 as col2b from f2(x) as a, f1(x, y) as b + create function f4 (in x bigint, in y string) + as select col1a + col1b as s, col2a, col2b from f3(x, y) + """; @RegisterExtension @Order(0) diff --git a/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/StructDataMetadataTest.java b/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/StructDataMetadataTest.java index cd55ce6993..898e0313d0 100644 --- a/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/StructDataMetadataTest.java +++ b/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/StructDataMetadataTest.java @@ -54,18 +54,19 @@ public class StructDataMetadataTest { public static final EmbeddedRelationalExtension relationalExtension = new EmbeddedRelationalExtension(); private static final String TABLE_STRUCTURE = - "CREATE TYPE AS STRUCT struct_1 (a string) " + - " CREATE TABLE t (name string, st1 struct_1, PRIMARY KEY(name))" + - " CREATE TYPE AS STRUCT struct_2 (c bigint, d struct_1) " + - " CREATE TABLE nt (t_name string, st1 struct_2, PRIMARY KEY(t_name))" + - " CREATE TYPE AS STRUCT struct_3 (c bytes, d boolean) " + - " CREATE TABLE at (a_name string, st2 struct_3 ARRAY, PRIMARY KEY(a_name))" + - " CREATE TYPE AS STRUCT n1(a bigint, b string) " + - " CREATE TYPE AS STRUCT n2(a bigint, b string) " + - " CREATE TYPE AS STRUCT m(x n1, y n2) " + - " CREATE TABLE t3(id bigint, m m, PRIMARY KEY(id)) " + - " CREATE TABLE t4(id bigint, n1 n1, n2 n2, PRIMARY KEY(id)) "; - + """ + CREATE TYPE AS STRUCT struct_1 (a string) + CREATE TABLE t (name string, st1 struct_1, PRIMARY KEY(name)) + CREATE TYPE AS STRUCT struct_2 (c bigint, d struct_1) + CREATE TABLE nt (t_name string, st1 struct_2, PRIMARY KEY(t_name)) + CREATE TYPE AS STRUCT struct_3 (c bytes, d boolean) + CREATE TABLE at (a_name string, st2 struct_3 ARRAY, PRIMARY KEY(a_name)) + CREATE TYPE AS STRUCT n1(a bigint, b string) + CREATE TYPE AS STRUCT n2(a bigint, b string) + CREATE TYPE AS STRUCT m(x n1, y n2) + CREATE TABLE t3(id bigint, m m, PRIMARY KEY(id)) + CREATE TABLE t4(id bigint, n1 n1, n2 n2, PRIMARY KEY(id)) + """; /* message at { diff --git a/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/UniqueIndexTests.java b/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/UniqueIndexTests.java index c3474e944c..3fca332608 100644 --- a/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/UniqueIndexTests.java +++ b/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/UniqueIndexTests.java @@ -45,18 +45,20 @@ public class UniqueIndexTests { public final EmbeddedRelationalExtension relationalExtension = new EmbeddedRelationalExtension(); private static final String getTemplate_definition = - "CREATE TABLE T1(t1_p bigint, t1_a bigint, primary key(t1_p))\n" + - "CREATE UNIQUE INDEX mv1 AS SELECT t1_a FROM t1\n" + - "CREATE TABLE T2(t2_p bigint, t2_a bigint, t2_b bigint, primary key(t2_p))\n" + - "CREATE UNIQUE INDEX mv2 AS SELECT t2_a, t2_b FROM t2 order by t2_a, t2_b\n" + - "CREATE TABLE T3(t3_p bigint, t3_a bigint, t3_b bigint, primary key(t3_p))\n" + - "CREATE UNIQUE INDEX mv3 AS SELECT t3_a FROM t3\n" + - "CREATE UNIQUE INDEX mv4 AS SELECT t3_b FROM t3\n" + - "CREATE TYPE AS STRUCT ST1(st1_a bigint)\n" + - "CREATE TABLE T4(t4_p bigint, t4_st1 st1 array, primary key(t4_p))\n" + - "CREATE UNIQUE INDEX mv5 AS SELECT v.st1_a from t4 t, (SELECT u.st1_a from t.t4_st1 u) v\n" + - "CREATE TABLE T5(t5_p bigint, t5_a bigint, t5_b bigint, t5_c bigint, t5_d bigint, primary key(t5_p))\n" + - "CREATE UNIQUE INDEX mv6 AS SELECT t5_a, t5_b, t5_c, t5_d from t5 order by t5_d, t5_c\n"; + """ + CREATE TABLE T1(t1_p bigint, t1_a bigint, primary key(t1_p)) + CREATE UNIQUE INDEX mv1 AS SELECT t1_a FROM t1 + CREATE TABLE T2(t2_p bigint, t2_a bigint, t2_b bigint, primary key(t2_p)) + CREATE UNIQUE INDEX mv2 AS SELECT t2_a, t2_b FROM t2 order by t2_a, t2_b + CREATE TABLE T3(t3_p bigint, t3_a bigint, t3_b bigint, primary key(t3_p)) + CREATE UNIQUE INDEX mv3 AS SELECT t3_a FROM t3 + CREATE UNIQUE INDEX mv4 AS SELECT t3_b FROM t3 + CREATE TYPE AS STRUCT ST1(st1_a bigint) + CREATE TABLE T4(t4_p bigint, t4_st1 st1 array, primary key(t4_p)) + CREATE UNIQUE INDEX mv5 AS SELECT v.st1_a from t4 t, (SELECT u.st1_a from t.t4_st1 u) v + CREATE TABLE T5(t5_p bigint, t5_a bigint, t5_b bigint, t5_c bigint, t5_d bigint, primary key(t5_p)) + CREATE UNIQUE INDEX mv6 AS SELECT t5_a, t5_b, t5_c, t5_d from t5 order by t5_d, t5_c + """; @RegisterExtension @Order(1) diff --git a/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/query/CountQueryTest.java b/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/query/CountQueryTest.java index 5fdf6bd20c..06960d591e 100644 --- a/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/query/CountQueryTest.java +++ b/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/query/CountQueryTest.java @@ -43,10 +43,12 @@ */ public class CountQueryTest { private static final String SCHEMA_TEMPLATE = - "CREATE TABLE t1 (id bigint, a string, b bigint, primary key (id)) " + - "CREATE INDEX i1 ON t1(a) " + - "CREATE INDEX i2 AS SELECT count(*) FROM t1 GROUP BY a " + - "CREATE INDEX i3 AS SELECT count(a) FROM t1 GROUP BY b"; + """ + CREATE TABLE t1 (id bigint, a string, b bigint, primary key (id)) + CREATE INDEX i1 ON t1(a) + CREATE INDEX i2 AS SELECT count(*) FROM t1 GROUP BY a + CREATE INDEX i3 AS SELECT count(a) FROM t1 GROUP BY b + """; @RegisterExtension @Order(0) diff --git a/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/query/ForceContinuationQueryTests.java b/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/query/ForceContinuationQueryTests.java index 02b4a07e24..849c1cd32b 100644 --- a/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/query/ForceContinuationQueryTests.java +++ b/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/query/ForceContinuationQueryTests.java @@ -45,23 +45,25 @@ public class ForceContinuationQueryTests { public final EmbeddedRelationalExtension relationalExtension = new EmbeddedRelationalExtension(); private static final String getTemplate_definition = - "create table t1(id bigint, col1 bigint, col2 bigint, primary key(id))\n" + - "create index mv1 as select count(*) from t1\n" + - "create index mv2 as select count(*) from t1 group by col2\n" + - "create index mv3 as select count(col1) from t1\n" + - "create index mv4 as select count(col1) from t1 group by col2\n" + - - "create table t2(id bigint, col1 bigint, col2 bigint, col3 bigint, primary key(id))\n" + - "create index mv5 as select col2 from t2\n" + - "create index mv7 as select min_ever(col3) from t2\n" + - - "create table t3(id bigint, col1 bigint, col2 bigint, primary key(id))\n" + - "create index t3_i1 as select count(*) from t3\n" + - "create index t3_i2 as select count(*) from t3 group by col1\n" + - "create index t3_i3 as select count(col2) from t3\n" + - "create index t3_i4 as select count(col2) from t3 group by col1\n" + - "create index t3_i5 as select sum(col1) from t3\n" + - "create index t3_i6 as select sum(col1) from t3 group by col2"; + """ + create table t1(id bigint, col1 bigint, col2 bigint, primary key(id)) + create index mv1 as select count(*) from t1 + create index mv2 as select count(*) from t1 group by col2 + create index mv3 as select count(col1) from t1 + create index mv4 as select count(col1) from t1 group by col2 + + create table t2(id bigint, col1 bigint, col2 bigint, col3 bigint, primary key(id)) + create index mv5 as select col2 from t2 + create index mv7 as select min_ever(col3) from t2 + + create table t3(id bigint, col1 bigint, col2 bigint, primary key(id)) + create index t3_i1 as select count(*) from t3 + create index t3_i2 as select count(*) from t3 group by col1 + create index t3_i3 as select count(col2) from t3 + create index t3_i4 as select count(col2) from t3 group by col1 + create index t3_i5 as select sum(col1) from t3 + create index t3_i6 as select sum(col1) from t3 group by col2 + """; @RegisterExtension @Order(1) diff --git a/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/query/TransactionBoundQueryTest.java b/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/query/TransactionBoundQueryTest.java index d3f9844ff7..15ae12cfba 100644 --- a/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/query/TransactionBoundQueryTest.java +++ b/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/query/TransactionBoundQueryTest.java @@ -72,10 +72,13 @@ public class TransactionBoundQueryTest { @Nonnull - private static final String SCHEMA_TEMPLATE = " CREATE TABLE t1(id bigint, a bigint, b string, PRIMARY KEY(id)) " + - "CREATE TYPE as STRUCT entry(key string, value bigint) " + - "CREATE TABLE t2(id bigint, a bigint, c string, d entry ARRAY, PRIMARY KEY (id)) " + - "CREATE TABLE t3(id bigint, a bigint, e bigint, f bigint, PRIMARY KEY(id))"; + private static final String SCHEMA_TEMPLATE = + """ + CREATE TABLE t1(id bigint, a bigint, b string, PRIMARY KEY(id)) + CREATE TYPE as STRUCT entry(key string, value bigint) + CREATE TABLE t2(id bigint, a bigint, c string, d entry ARRAY, PRIMARY KEY (id)) + CREATE TABLE t3(id bigint, a bigint, e bigint, f bigint, PRIMARY KEY(id)) + """; @RegisterExtension @Order(0) @Nonnull diff --git a/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/query/UpdateTest.java b/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/query/UpdateTest.java index a5c11bbd3a..cb37157b60 100644 --- a/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/query/UpdateTest.java +++ b/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/query/UpdateTest.java @@ -54,9 +54,11 @@ public class UpdateTest { private static final String schemaTemplate = - "CREATE TYPE AS STRUCT LatLong (latitude double, longitude double)" + - " CREATE TYPE AS STRUCT ReviewerStats (start_date bigint, school_name string, hometown string)" + - " CREATE TABLE RestaurantReviewer (id bigint, name string, email string, stats ReviewerStats, secrets bytes array, PRIMARY KEY(id))"; + """ + CREATE TYPE AS STRUCT LatLong (latitude double, longitude double) + CREATE TYPE AS STRUCT ReviewerStats (start_date bigint, school_name string, hometown string) + CREATE TABLE RestaurantReviewer (id bigint, name string, email string, stats ReviewerStats, secrets bytes array, PRIMARY KEY(id)) + """; @RegisterExtension @Order(0) diff --git a/fdb-relational-core/src/testFixtures/java/com/apple/foundationdb/relational/utils/TestSchemas.java b/fdb-relational-core/src/testFixtures/java/com/apple/foundationdb/relational/utils/TestSchemas.java index 60b5bd9e94..006b9075c8 100644 --- a/fdb-relational-core/src/testFixtures/java/com/apple/foundationdb/relational/utils/TestSchemas.java +++ b/fdb-relational-core/src/testFixtures/java/com/apple/foundationdb/relational/utils/TestSchemas.java @@ -35,17 +35,19 @@ private TestSchemas() { } private static final String RESTAURANT_SCHEMA = - "CREATE TYPE AS STRUCT Location (address string, latitude string, longitude string)" + - "CREATE TYPE AS ENUM cuisine ('indian', 'british', 'mexican', 'japanese', 'korean')" + - "CREATE TYPE AS STRUCT restaurant_review (reviewer bigint, rating bigint)" + - "CREATE TYPE AS STRUCT restaurant_tag (tag string, weight bigint)" + - "CREATE TYPE AS STRUCT reviewer_stats (start_date bigint, school_name string, hometown string)" + - "CREATE TYPE AS STRUCT item (name string, price float)" + - "CREATE TABLE restaurant (rest_no bigint, name string, location Location, reviews restaurant_review ARRAY, tags restaurant_tag array, customer string array, encoded_bytes bytes, PRIMARY KEY(rest_no))" + - "CREATE TABLE restaurant_reviewer (id bigint, name string, email string, stats reviewer_stats, PRIMARY KEY(id))" + - "CREATE TABLE restaurant_menu(id bigint, rest_no bigint, cuisine cuisine, items item array not null, reviews restaurant_review ARRAY, primary key(id, rest_no))" + - "CREATE INDEX record_name_idx as select name from restaurant " + - "CREATE INDEX reviewer_name_idx as select name from restaurant_reviewer "; + """ + CREATE TYPE AS STRUCT Location (address string, latitude string, longitude string) + CREATE TYPE AS ENUM cuisine ('indian', 'british', 'mexican', 'japanese', 'korean') + CREATE TYPE AS STRUCT restaurant_review (reviewer bigint, rating bigint) + CREATE TYPE AS STRUCT restaurant_tag (tag string, weight bigint) + CREATE TYPE AS STRUCT reviewer_stats (start_date bigint, school_name string, hometown string) + CREATE TYPE AS STRUCT item (name string, price float) + CREATE TABLE restaurant (rest_no bigint, name string, location Location, reviews restaurant_review ARRAY, tags restaurant_tag array, customer string array, encoded_bytes bytes, PRIMARY KEY(rest_no)) + CREATE TABLE restaurant_reviewer (id bigint, name string, email string, stats reviewer_stats, PRIMARY KEY(id)) + CREATE TABLE restaurant_menu(id bigint, rest_no bigint, cuisine cuisine, items item array not null, reviews restaurant_review ARRAY, primary key(id, rest_no)) + CREATE INDEX record_name_idx as select name from restaurant + CREATE INDEX reviewer_name_idx as select name from restaurant_reviewer + """; @Nonnull public static String restaurant() { @@ -60,12 +62,14 @@ public static String restaurantWithCoveringIndex() { @Nonnull private static final String PLAYING_CARD = - "CREATE TYPE AS ENUM suit ('SPADES', 'HEARTS', 'DIAMONDS', 'CLUBS') " + - "CREATE TYPE AS STRUCT SuitAndRank (suit suit, rank bigint)" + - "CREATE TABLE Card (id bigint, suit suit, rank bigint, PRIMARY KEY(id))" + - "CREATE TABLE Card_Nested (id bigint, info SuitAndRank, PRIMARY KEY(id))" + - "CREATE TABLE Card_Array (id bigint, collection SuitAndRank array, PRIMARY KEY(id))" + - "CREATE INDEX suit_idx ON Card(suit)"; + """ + CREATE TYPE AS ENUM suit ('SPADES', 'HEARTS', 'DIAMONDS', 'CLUBS') + CREATE TYPE AS STRUCT SuitAndRank (suit suit, rank bigint) + CREATE TABLE Card (id bigint, suit suit, rank bigint, PRIMARY KEY(id)) + CREATE TABLE Card_Nested (id bigint, info SuitAndRank, PRIMARY KEY(id)) + CREATE TABLE Card_Array (id bigint, collection SuitAndRank array, PRIMARY KEY(id)) + CREATE INDEX suit_idx ON Card(suit) + """; @Nonnull public static String playingCard() { @@ -74,11 +78,13 @@ public static String playingCard() { @Nonnull private static final String BOOKS_SCHEMAS = - "CREATE TABLE BOOKS(id integer, TITLE string, YEAR integer, primary key (id))" + - "CREATE INDEX IDX_1970 AS SELECT YEAR FROM BOOKS WHERE YEAR > 1970 AND YEAR <= 1979" + - "CREATE INDEX IDX_1980 AS SELECT YEAR FROM BOOKS WHERE YEAR > 1980 AND YEAR <= 1989" + - "CREATE INDEX IDX_1990 AS SELECT YEAR FROM BOOKS WHERE YEAR > 1990 AND YEAR <= 1999" + - "CREATE INDEX IDX_2000 AS SELECT YEAR FROM BOOKS WHERE YEAR > 2000"; + """ + CREATE TABLE BOOKS(id integer, TITLE string, YEAR integer, primary key (id)) + CREATE INDEX IDX_1970 AS SELECT YEAR FROM BOOKS WHERE YEAR > 1970 AND YEAR <= 1979 + CREATE INDEX IDX_1980 AS SELECT YEAR FROM BOOKS WHERE YEAR > 1980 AND YEAR <= 1989 + CREATE INDEX IDX_1990 AS SELECT YEAR FROM BOOKS WHERE YEAR > 1990 AND YEAR <= 1999 + CREATE INDEX IDX_2000 AS SELECT YEAR FROM BOOKS WHERE YEAR > 2000 + """; @Nonnull public static String books() { @@ -87,13 +93,15 @@ public static String books() { @Nonnull private static final String SCORE_SCHEMA = - "CREATE TABLE score(id bigint, player string, game bigint, score bigint, playDuration bigint, primary key(id))" + - "CREATE TABLE game(id bigint, score_id bigint, name string, primary key(id))" + - "CREATE INDEX maxScoreByGame10 AS SELECT MAX(score), game + 10 FROM score GROUP BY game + 10" + - "CREATE INDEX maxScoreByGame20 AS SELECT MAX(score), game + 20 FROM score GROUP BY game + 20" + - "CREATE INDEX bitAndScore2 AS SELECT game & 2, MAX(score) FROM score GROUP BY game & 2" + - "CREATE INDEX bitAndScore4 AS SELECT game & 4, MAX(score) FROM score GROUP BY game & 4" + - "CREATE INDEX gameIdx AS SELECT score_id, id, name FROM game WHERE score_id IS NOT NULL ORDER BY score_id, id, name"; + """ + CREATE TABLE score(id bigint, player string, game bigint, score bigint, playDuration bigint, primary key(id)) + CREATE TABLE game(id bigint, score_id bigint, name string, primary key(id)) + CREATE INDEX maxScoreByGame10 AS SELECT MAX(score), game + 10 FROM score GROUP BY game + 10 + CREATE INDEX maxScoreByGame20 AS SELECT MAX(score), game + 20 FROM score GROUP BY game + 20 + CREATE INDEX bitAndScore2 AS SELECT game & 2, MAX(score) FROM score GROUP BY game & 2 + CREATE INDEX bitAndScore4 AS SELECT game & 4, MAX(score) FROM score GROUP BY game & 4 + CREATE INDEX gameIdx AS SELECT score_id, id, name FROM game WHERE score_id IS NOT NULL ORDER BY score_id, id, name + """; @Nonnull public static String score() { diff --git a/gradle.properties b/gradle.properties index f7fd6bcaed..2f85665dc4 100644 --- a/gradle.properties +++ b/gradle.properties @@ -19,7 +19,7 @@ # rootProject.name=fdb-record-layer -version=4.10.7.0 +version=4.11.0.0 releaseBuild=false # this should be false for release branches (i.e. if there is no -SNAPSHOT on the above version) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 7c262cc9d7..3690345df6 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -70,7 +70,7 @@ snakeyaml = "2.2" # Static analysis dependency versions -jacoco = "0.8.5" +jacoco = "0.8.14" spotbugs = "4.9.0" [libraries]