mirror of
https://github.com/t8y2/dbx.git
synced 2026-10-02 02:34:42 +08:00
fix(xugu): preserve invalid view status in object tree
This commit is contained in:
@@ -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 (?)"} {
|
||||
|
||||
Reference in New Issue
Block a user