[jOOQ/jOOQ#1985] Add support for EXASOL

- Fix empty OVER () clauses for NTILE, LEAD, LAG
- Fix timestamp with precision casts
- Fix EXTRACT() test (avoid testing TIME stuff)
- Fix TINYINT NULL bind values
- Skip a few binary data type tests
- Fix default expression discovery in MetaImpl
- Use record instead of immutable class
This commit is contained in:
Lukas Eder 2021-05-12 15:23:30 +02:00
parent 4c7fc5e3b5
commit de71ceb246
4 changed files with 7 additions and 47 deletions

View File

@ -438,51 +438,5 @@ public class DefaultRelations implements Relations {
/**
* A simple local wrapper for a key definition (table + key name)
*/
private static class Key {
final TableDefinition table;
final String keyName;
Key(TableDefinition table, String keyName) {
this.table = table;
this.keyName = keyName;
}
@Override
public String toString() {
return "Key [table=" + table + ", keyName=" + keyName + "]";
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((keyName == null) ? 0 : keyName.hashCode());
result = prime * result + ((table == null) ? 0 : table.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Key other = (Key) obj;
if (keyName == null) {
if (other.keyName != null)
return false;
}
else if (!keyName.equals(other.keyName))
return false;
if (table == null) {
if (other.table != null)
return false;
}
else if (!table.equals(other.table))
return false;
return true;
}
}
private static final /* record */ class Key { private final TableDefinition table; private final String keyName; public Key(TableDefinition table, String keyName) { this.table = table; this.keyName = keyName; } public TableDefinition table() { return table; } public String keyName() { return keyName; } @Override public boolean equals(Object o) { if (!(o instanceof Key)) return false; Key other = (Key) o; if (!java.util.Objects.equals(this.table, other.table)) return false; if (!java.util.Objects.equals(this.keyName, other.keyName)) return false; return true; } @Override public int hashCode() { return java.util.Objects.hash(this.table, this.keyName); } @Override public String toString() { return new StringBuilder("Key[").append("table=").append(this.table).append(", keyName=").append(this.keyName).append("]").toString(); } }
}

View File

@ -38,6 +38,7 @@
package org.jooq.impl;
import static org.jooq.SQLDialect.DERBY;
// ...
import static org.jooq.SQLDialect.FIREBIRD;
// ...
// ...

View File

@ -56,6 +56,7 @@ import static org.jooq.SQLDialect.CUBRID;
// ...
import static org.jooq.SQLDialect.DEFAULT;
import static org.jooq.SQLDialect.DERBY;
// ...
import static org.jooq.SQLDialect.FIREBIRD;
import static org.jooq.SQLDialect.H2;
// ...
@ -1836,6 +1837,9 @@ public class DefaultBinding<T, U> implements Binding<T, U> {
return Types.TINYINT;
}
}

View File

@ -46,6 +46,7 @@ import static java.lang.Boolean.TRUE;
// ...
// ...
import static org.jooq.SQLDialect.DERBY;
// ...
import static org.jooq.SQLDialect.FIREBIRD;
import static org.jooq.SQLDialect.H2;
import static org.jooq.SQLDialect.HSQLDB;