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"),
|
stringOrNull(rs, "COLUMN_DEFAULT"),
|
||||||
"YES".equalsIgnoreCase(stringOrNull(rs, "PRIMARY_KEY")),
|
"YES".equalsIgnoreCase(stringOrNull(rs, "PRIMARY_KEY")),
|
||||||
null,
|
null,
|
||||||
null,
|
stringOrNull(rs, "DESCRIPTION"),
|
||||||
intOrNull(rs, "NUMERIC_PRECISION"),
|
intOrNull(rs, "NUMERIC_PRECISION"),
|
||||||
intOrNull(rs, "NUMERIC_SCALE"),
|
intOrNull(rs, "NUMERIC_SCALE"),
|
||||||
intOrNull(rs, "CHARACTER_MAXIMUM_LENGTH")
|
intOrNull(rs, "CHARACTER_MAXIMUM_LENGTH")
|
||||||
@@ -126,7 +126,7 @@ public final class IrisAgent extends ConfiguredJdbcAgent {
|
|||||||
private static String columnSql(String schema) {
|
private static String columnSql(String schema) {
|
||||||
StringBuilder sql = new StringBuilder(
|
StringBuilder sql = new StringBuilder(
|
||||||
"SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT, "
|
"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 "
|
+ "FROM INFORMATION_SCHEMA.COLUMNS WHERE "
|
||||||
);
|
);
|
||||||
if (!isBlank(schema)) {
|
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.assertEquals;
|
||||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertNull;
|
||||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
|
|
||||||
class IrisAgentTest {
|
class IrisAgentTest {
|
||||||
@@ -63,12 +64,45 @@ class IrisAgentTest {
|
|||||||
assertEquals("INTEGER", columns.get(0).getData_type());
|
assertEquals("INTEGER", columns.get(0).getData_type());
|
||||||
assertFalse(columns.get(0).getIs_nullable());
|
assertFalse(columns.get(0).getIs_nullable());
|
||||||
assertTrue(columns.get(0).getIs_primary_key());
|
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("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(Integer.valueOf(64), columns.get(1).getCharacter_maximum_length());
|
||||||
assertEquals(1, calls.size());
|
assertEquals(1, calls.size());
|
||||||
assertFalse(calls.get(0).contains("LIMIT"));
|
assertFalse(calls.get(0).contains("LIMIT"));
|
||||||
assertTrue(calls.get(0).contains("PRIMARY_KEY"));
|
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("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
|
@Test
|
||||||
@@ -185,8 +219,11 @@ class IrisAgentTest {
|
|||||||
"COLUMN_NAME", "ID",
|
"COLUMN_NAME", "ID",
|
||||||
"DATA_TYPE", "INTEGER",
|
"DATA_TYPE", "INTEGER",
|
||||||
"IS_NULLABLE", "NO",
|
"IS_NULLABLE", "NO",
|
||||||
|
"COLUMN_DEFAULT", "42",
|
||||||
"PRIMARY_KEY", inlinePrimaryKey ? "YES" : "NO",
|
"PRIMARY_KEY", inlinePrimaryKey ? "YES" : "NO",
|
||||||
"NUMERIC_PRECISION", 10
|
"DESCRIPTION", "identifier",
|
||||||
|
"NUMERIC_PRECISION", 10,
|
||||||
|
"NUMERIC_SCALE", 0
|
||||||
),
|
),
|
||||||
Map.of(
|
Map.of(
|
||||||
"COLUMN_NAME", "NAME",
|
"COLUMN_NAME", "NAME",
|
||||||
|
|||||||
Reference in new issue
Block a user