fix(xugu): preserve invalid view status in object tree
This commit is contained in:
parent
96d16b173b
commit
b8144da5f0
|
|
@ -2091,7 +2091,7 @@ JOIN ALL_SCHEMAS s ON s.DB_ID = t.DB_ID AND s.SCHEMA_ID = t.SCHEMA_ID
|
|||
WHERE s.DB_ID = CURRENT_DB_ID
|
||||
AND UPPER(s.SCHEMA_NAME) = UPPER(?)`},
|
||||
{objectTypes: []string{"VIEW"}, sql: `
|
||||
SELECT v.VIEW_NAME AS OBJECT_NAME, 'VIEW' AS OBJECT_TYPE, v.COMMENTS, NULL AS VALID
|
||||
SELECT v.VIEW_NAME AS OBJECT_NAME, 'VIEW' AS OBJECT_TYPE, v.COMMENTS, v.VALID
|
||||
FROM ALL_VIEWS v
|
||||
JOIN ALL_SCHEMAS s ON s.DB_ID = v.DB_ID AND s.SCHEMA_ID = v.SCHEMA_ID
|
||||
WHERE s.DB_ID = CURRENT_DB_ID
|
||||
|
|
|
|||
|
|
@ -1020,6 +1020,20 @@ func TestXuguListObjectsQueryIncludesProgrammableObjects(t *testing.T) {
|
|||
assertArgs(t, query.Args, wantArgs)
|
||||
}
|
||||
|
||||
func TestXuguListObjectsQueryPreservesViewValidity(t *testing.T) {
|
||||
query := xuguListObjectsQuery("APP", metadataListConstraints{ObjectTypes: []string{"VIEW"}})
|
||||
upper := strings.ToUpper(query.SQL)
|
||||
if !strings.Contains(upper, "FROM ALL_VIEWS V") {
|
||||
t.Fatalf("view lookup should query ALL_VIEWS: %s", query.SQL)
|
||||
}
|
||||
if !strings.Contains(upper, "V.VALID") {
|
||||
t.Fatalf("view lookup must preserve the catalog validity flag: %s", query.SQL)
|
||||
}
|
||||
if strings.Contains(upper, "NULL AS VALID") {
|
||||
t.Fatalf("view lookup must not discard the catalog validity flag: %s", query.SQL)
|
||||
}
|
||||
}
|
||||
|
||||
func TestXuguListObjectsQueryKeepsPublicSynonymsOutOfSchemaGroups(t *testing.T) {
|
||||
query := xuguListObjectsQuery("SYSDBA", metadataListConstraints{ObjectTypes: []string{"SYNONYM"}})
|
||||
for _, want := range []string{"FROM ALL_SYNONYMS y", "y.IS_PUBLIC = FALSE", "OBJECT_TYPE IN (?)"} {
|
||||
|
|
|
|||
Loading…
Reference in New Issue