Skip to content
Open
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
12 changes: 12 additions & 0 deletions api/src/org/labkey/api/data/dialect/sqlKeywords.txt
Original file line number Diff line number Diff line change
Expand Up @@ -253,6 +253,7 @@ des_key_file
desc
describe
descriptor
destination
destroy
destructor
detach
Expand Down Expand Up @@ -294,6 +295,7 @@ dynamic
dynamic_function
dynamic_function_code
each
edge
element
else
elseif
Expand Down Expand Up @@ -400,6 +402,8 @@ goto
grant
granted
grants
graph
graph_table
greatest
group
group_replication
Expand Down Expand Up @@ -560,6 +564,7 @@ longtext
loop
low_priority
lower
lsn
m
map
mapping
Expand Down Expand Up @@ -672,6 +677,7 @@ nocompress
nocreatedb
nocreaterole
nocreateuser
node
nodegroup
noholdlock
noinherit
Expand Down Expand Up @@ -793,6 +799,7 @@ point
policy
polygon
port
portion
position
position_regex
postfix
Expand All @@ -819,6 +826,8 @@ processlist
profile
profiles
program
properties
property
proxy
public
publication
Expand Down Expand Up @@ -866,6 +875,7 @@ regr_sxx
regr_sxy
regr_syy
reindex
relationship
relative
relay
relay_log_file
Expand All @@ -877,6 +887,7 @@ reload
remove
rename
reorganize
repack
repair
repeat
repeatable
Expand Down Expand Up @@ -1216,6 +1227,7 @@ varying
vector
verbose
version
vertex
view
views
virtual
Expand Down
18 changes: 9 additions & 9 deletions core/src/org/labkey/core/dialect/PostgreSqlDialectFactory.java
Original file line number Diff line number Diff line change
Expand Up @@ -130,9 +130,9 @@ public Collection<? extends Class<?>> getJUnitTests()
public Collection<? extends SqlDialect> getDialectsToTest()
{
// PostgreSQL dialects are nearly identical, so just test the oldest supported one
PostgreSql_13_Dialect conforming = getOldestSupportedDialect();
PostgreSql_14_Dialect conforming = getOldestSupportedDialect();
conforming.setStandardConformingStrings(true);
PostgreSql_13_Dialect nonconforming = getOldestSupportedDialect();
PostgreSql_14_Dialect nonconforming = getOldestSupportedDialect();
nonconforming.setStandardConformingStrings(false);

return PageFlowUtil.set(
Expand All @@ -141,14 +141,14 @@ public Collection<? extends SqlDialect> getDialectsToTest()
);
}

public static PostgreSql_13_Dialect getOldestSupportedDialect()
public static PostgreSql_14_Dialect getOldestSupportedDialect()
{
return new PostgreSql_13_Dialect();
return new PostgreSql_14_Dialect();
}

public static BasePostgreSqlDialect getLatestSupportedDialect()
{
return new PostgreSql_18_Dialect();
return new PostgreSql_19_Dialect();
}

public static class DialectRetrievalTestCase extends AbstractDialectRetrievalTestCase
Expand All @@ -158,17 +158,17 @@ public void testDialectRetrieval()
{
final String connectionUrl = "jdbc:postgresql:";

// < 13.0 should result in bad version number exception
badVersion("PostgreSQL", 0.0, 13.0, null, connectionUrl);
// < 14.0 should result in bad version number exception
badVersion("PostgreSQL", 0.0, 14.0, null, connectionUrl);

// Test good versions
good("PostgreSQL", 13.0, 14.0, "", connectionUrl, null, PostgreSql_13_Dialect.class);
good("PostgreSQL", 14.0, 15.0, "", connectionUrl, null, PostgreSql_14_Dialect.class);
good("PostgreSQL", 15.0, 16.0, "", connectionUrl, null, PostgreSql_15_Dialect.class);
good("PostgreSQL", 16.0, 17.0, "", connectionUrl, null, PostgreSql_16_Dialect.class);
good("PostgreSQL", 17.0, 18.0, "", connectionUrl, null, PostgreSql_17_Dialect.class);
good("PostgreSQL", 18.0, 19.0, "", connectionUrl, null, PostgreSql_18_Dialect.class);
good("PostgreSQL", 19.0, 20.0, "", connectionUrl, null, PostgreSql_18_Dialect.class);
good("PostgreSQL", 19.0, 20.0, "", connectionUrl, null, PostgreSql_19_Dialect.class);
good("PostgreSQL", 20.0, 21.0, "", connectionUrl, null, PostgreSql_19_Dialect.class);
}
}

Expand Down
15 changes: 8 additions & 7 deletions core/src/org/labkey/core/dialect/PostgreSqlVersion.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,22 +33,22 @@
public enum PostgreSqlVersion
{
POSTGRESQL_UNSUPPORTED(-1, true, false, null),
POSTGRESQL_13(130, true, true, PostgreSql_13_Dialect::new),
POSTGRESQL_14(140, false, true, PostgreSql_14_Dialect::new),
POSTGRESQL_15(150, false, true, PostgreSql_15_Dialect::new),
POSTGRESQL_16(160, false, true, PostgreSql_16_Dialect::new),
POSTGRESQL_17(170, false, true, PostgreSql_17_Dialect::new),
POSTGRESQL_18(180, false, true, PostgreSql_18_Dialect::new),
POSTGRESQL_FUTURE(Integer.MAX_VALUE, true, false, PostgreSql_18_Dialect::new);
POSTGRESQL_19(190, false, false, PostgreSql_19_Dialect::new),
POSTGRESQL_FUTURE(Integer.MAX_VALUE, true, false, PostgreSql_19_Dialect::new);

public static final String RECOMMENDED = PRODUCT_NAME + " 18.x is the recommended version.";

private final int _version;
private final boolean _deprecated;
private final boolean _tested;
private final Supplier<? extends PostgreSql_13_Dialect> _dialectFactory;
private final Supplier<? extends PostgreSql_14_Dialect> _dialectFactory;

PostgreSqlVersion(int version, boolean deprecated, boolean tested, Supplier<? extends PostgreSql_13_Dialect> dialectFactory)
PostgreSqlVersion(int version, boolean deprecated, boolean tested, Supplier<? extends PostgreSql_14_Dialect> dialectFactory)
{
_version = version;
_deprecated = deprecated;
Expand All @@ -67,7 +67,7 @@ public boolean isTested()
return _tested;
}

public PostgreSql_13_Dialect getDialect()
public PostgreSql_14_Dialect getDialect()
{
return _dialectFactory.get();
}
Expand Down Expand Up @@ -102,17 +102,17 @@ public static class TestCase extends Assert
public void test()
{
// Good
test(130, POSTGRESQL_13);
test(140, POSTGRESQL_14);
test(150, POSTGRESQL_15);
test(160, POSTGRESQL_16);
test(170, POSTGRESQL_17);
test(180, POSTGRESQL_18);
test(190, POSTGRESQL_19);

// Future
test(190, POSTGRESQL_FUTURE);
test(200, POSTGRESQL_FUTURE);
test(210, POSTGRESQL_FUTURE);
test(220, POSTGRESQL_FUTURE);

// Bad
test(83, POSTGRESQL_UNSUPPORTED);
Expand All @@ -131,6 +131,7 @@ public void test()
test(100, POSTGRESQL_UNSUPPORTED);
test(110, POSTGRESQL_UNSUPPORTED);
test(120, POSTGRESQL_UNSUPPORTED);
test(130, POSTGRESQL_UNSUPPORTED);
}

private void test(int version, PostgreSqlVersion expectedVersion)
Expand Down
5 changes: 5 additions & 0 deletions core/src/org/labkey/core/dialect/PostgreSql_19_Dialect.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package org.labkey.core.dialect;

public class PostgreSql_19_Dialect extends PostgreSql_18_Dialect
{
}
Loading