[jOOQ/jOOQ#9413] Add support for RDB in Firebird code

This commit is contained in:
Lukas Eder 2019-10-22 09:53:44 +02:00
parent e7d63e271c
commit b8ab91eac5
2 changed files with 11 additions and 11 deletions

View File

@ -57,7 +57,6 @@ import java.util.List;
import org.jooq.DSLContext;
import org.jooq.Field;
import org.jooq.Record;
import org.jooq.Record2;
import org.jooq.Record3;
import org.jooq.Result;
import org.jooq.SQLDialect;
@ -235,15 +234,17 @@ public class FirebirdDatabase extends AbstractDatabase {
protected List<TableDefinition> getTables0() throws SQLException {
List<TableDefinition> result = new ArrayList<>();
for (Record2<String, Boolean> record : create()
for (Record3<String, Boolean, String> record : create()
.select(
RDB$RELATIONS.RDB$RELATION_NAME.trim(),
inline(false).as("table_valued_function"))
inline(false).as("table_valued_function"),
RDB$RELATIONS.RDB$DESCRIPTION.trim())
.from(RDB$RELATIONS)
.unionAll(
select(
RDB$PROCEDURES.RDB$PROCEDURE_NAME.trim(),
inline(true).as("table_valued_function"))
inline(true).as("table_valued_function"),
inline(""))
.from(RDB$PROCEDURES)
// "selectable" procedures
@ -254,12 +255,10 @@ public class FirebirdDatabase extends AbstractDatabase {
)
.orderBy(1)) {
if (record.value2()) {
if (record.value2())
result.add(new FirebirdTableValuedFunction(getSchemata().get(0), record.value1(), ""));
}
else {
result.add(new FirebirdTableDefinition(getSchemata().get(0), record.value1(), ""));
}
else
result.add(new FirebirdTableDefinition(getSchemata().get(0), record.value1(), record.value3()));
}
return result;

View File

@ -92,7 +92,8 @@ public class FirebirdTableDefinition extends AbstractTableDefinition {
f.RDB$FIELD_PRECISION,
FIELD_SCALE(f).as("FIELD_SCALE"),
FIELD_TYPE(f).as("FIELD_TYPE"),
f.RDB$FIELD_SUB_TYPE)
f.RDB$FIELD_SUB_TYPE,
r.RDB$DESCRIPTION)
.from(r)
.leftOuterJoin(f).on(r.RDB$FIELD_SOURCE.eq(f.RDB$FIELD_NAME))
.where(r.RDB$RELATION_NAME.eq(getName()))
@ -122,7 +123,7 @@ public class FirebirdTableDefinition extends AbstractTableDefinition {
record.get(r.RDB$FIELD_POSITION),
type,
false,
null
record.get(r.RDB$DESCRIPTION)
);
result.add(column);