MCPcopy Create free account
hub / github.com/bytebase/bytebase / TestQuery_ConditionalOrOnlyDatabases

Function TestQuery_ConditionalOrOnlyDatabases

backend/common/qb/qb_test.go:769–793  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

767}
768
769func TestQuery_ConditionalOrOnlyDatabases(t *testing.T) {
770 // Test when only database conditions exist (no environment filter)
771 where := Q()
772
773 databases := []struct {
774 InstanceID string
775 DatabaseName string
776 }{
777 {"inst-1", "db-1"},
778 {"inst-2", "db-2"},
779 }
780
781 for _, db := range databases {
782 where.Or("(db.instance = ? AND db.name = ?)", db.InstanceID, db.DatabaseName)
783 }
784
785 set := Q().Comma("project = ?", "proj-123")
786 q := Q().Space("UPDATE db SET ?", set).Space("WHERE ?", where)
787
788 sql, args, err := q.ToSQL()
789 require.NoError(t, err)
790 // First Or() should NOT have " OR " prefix
791 require.Equal(t, "UPDATE db SET project = $1 WHERE (db.instance = $2 AND db.name = $3) OR (db.instance = $4 AND db.name = $5)", sql)
792 require.Equal(t, []any{"proj-123", "inst-1", "db-1", "inst-2", "db-2"}, args)
793}

Callers

nothing calls this directly

Calls 6

QFunction · 0.85
OrMethod · 0.80
CommaMethod · 0.80
SpaceMethod · 0.80
ToSQLMethod · 0.80
EqualMethod · 0.65

Tested by

no test coverage detected