1 parent
621074beca
commit
5ca99c632b
2 files changed
+40
-3
No files matched your search
@@ -62,7 +62,7 @@ public final class IrisAgent extends ConfiguredJdbcAgent {
|
||||
stringOrNull(rs, "COLUMN_DEFAULT"),
|
||||
"YES".equalsIgnoreCase(stringOrNull(rs, "PRIMARY_KEY")),
|
||||
null,
|
||||
null,
|
||||
stringOrNull(rs, "DESCRIPTION"),
|
||||
intOrNull(rs, "NUMERIC_PRECISION"),
|
||||
intOrNull(rs, "NUMERIC_SCALE"),
|
||||
intOrNull(rs, "CHARACTER_MAXIMUM_LENGTH")
|
||||
@@ -126,7 +126,7 @@ public final class IrisAgent extends ConfiguredJdbcAgent {
|
||||
private static String columnSql(String schema) {
|
||||
StringBuilder sql = new StringBuilder(
|
||||
"SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT, "
|
||||
+ "PRIMARY_KEY, NUMERIC_PRECISION, NUMERIC_SCALE, CHARACTER_MAXIMUM_LENGTH "
|
||||
+ "PRIMARY_KEY, DESCRIPTION, NUMERIC_PRECISION, NUMERIC_SCALE, CHARACTER_MAXIMUM_LENGTH "
|
||||
+ "FROM INFORMATION_SCHEMA.COLUMNS WHERE "
|
||||
);
|
||||
if (!isBlank(schema)) {
|
||||
|
||||
@@ -19,6 +19,7 @@ import java.util.Map;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
import static org.junit.jupiter.api.Assertions.assertNull;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
class IrisAgentTest {
|
||||
@@ -63,12 +64,45 @@ class IrisAgentTest {
|
||||
assertEquals("INTEGER", columns.get(0).getData_type());
|
||||
assertFalse(columns.get(0).getIs_nullable());
|
||||
assertTrue(columns.get(0).getIs_primary_key());
|
||||
assertEquals("42", columns.get(0).getColumn_default());
|
||||
assertEquals("identifier", columns.get(0).getComment());
|
||||
assertEquals(Integer.valueOf(10), columns.get(0).getNumeric_precision());
|
||||
assertEquals(Integer.valueOf(0), columns.get(0).getNumeric_scale());
|
||||
assertNull(columns.get(0).getCharacter_maximum_length());
|
||||
assertEquals("NAME", columns.get(1).getName());
|
||||
assertEquals("VARCHAR", columns.get(1).getData_type());
|
||||
assertTrue(columns.get(1).getIs_nullable());
|
||||
assertNull(columns.get(1).getColumn_default());
|
||||
assertNull(columns.get(1).getComment());
|
||||
assertNull(columns.get(1).getNumeric_precision());
|
||||
assertNull(columns.get(1).getNumeric_scale());
|
||||
assertEquals(Integer.valueOf(64), columns.get(1).getCharacter_maximum_length());
|
||||
assertEquals(1, calls.size());
|
||||
assertFalse(calls.get(0).contains("LIMIT"));
|
||||
assertTrue(calls.get(0).contains("PRIMARY_KEY"));
|
||||
assertTrue(calls.get(0).contains("DESCRIPTION"));
|
||||
assertTrue(calls.get(0).contains("INFORMATION_SCHEMA.COLUMNS"));
|
||||
assertTrue(calls.get(0).contains("UPPER(TABLE_SCHEMA) = UPPER(?)"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void readsDescriptionsWithoutSchemaFilter() {
|
||||
List<String> calls = new ArrayList<>();
|
||||
Connection conn = fakeConnection(
|
||||
calls,
|
||||
true,
|
||||
Collections.emptyList(),
|
||||
null,
|
||||
Collections.emptyList()
|
||||
);
|
||||
|
||||
List<ColumnInfo> columns = IrisAgent.irisColumns(conn, null, "People");
|
||||
|
||||
assertEquals("identifier", columns.get(0).getComment());
|
||||
assertNull(columns.get(1).getComment());
|
||||
assertEquals(1, calls.size());
|
||||
assertTrue(calls.get(0).contains("DESCRIPTION"));
|
||||
assertFalse(calls.get(0).contains("TABLE_SCHEMA"));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -185,8 +219,11 @@ class IrisAgentTest {
|
||||
"COLUMN_NAME", "ID",
|
||||
"DATA_TYPE", "INTEGER",
|
||||
"IS_NULLABLE", "NO",
|
||||
"COLUMN_DEFAULT", "42",
|
||||
"PRIMARY_KEY", inlinePrimaryKey ? "YES" : "NO",
|
||||
"NUMERIC_PRECISION", 10
|
||||
"DESCRIPTION", "identifier",
|
||||
"NUMERIC_PRECISION", 10,
|
||||
"NUMERIC_SCALE", 0
|
||||
),
|
||||
Map.of(
|
||||
"COLUMN_NAME", "NAME",
|
||||
|
||||
Reference in new issue
Block a user