summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--internal/db/bundb/account.go4
-rw-r--r--internal/db/bundb/admin.go4
-rw-r--r--internal/db/bundb/instance.go5
-rw-r--r--internal/db/bundb/media.go6
-rw-r--r--internal/db/bundb/timeline.go4
-rw-r--r--internal/db/bundb/util.go28
6 files changed, 13 insertions, 38 deletions
diff --git a/internal/db/bundb/account.go b/internal/db/bundb/account.go
index d8aee80f4..17339732e 100644
--- a/internal/db/bundb/account.go
+++ b/internal/db/bundb/account.go
@@ -388,8 +388,8 @@ func (a *accountDB) GetAccountLastPosted(ctx context.Context, accountID string,
if webOnly {
q = q.
- WhereGroup(" AND ", whereEmptyOrNull("status.in_reply_to_uri")).
- WhereGroup(" AND ", whereEmptyOrNull("status.boost_of_id")).
+ Where("? IS NULL", bun.Ident("status.in_reply_to_uri")).
+ Where("? IS NULL", bun.Ident("status.boost_of_id")).
Where("? = ?", bun.Ident("status.visibility"), gtsmodel.VisibilityPublic).
Where("? = ?", bun.Ident("status.federated"), true)
}
diff --git a/internal/db/bundb/admin.go b/internal/db/bundb/admin.go
index 1b4c98765..ed595a951 100644
--- a/internal/db/bundb/admin.go
+++ b/internal/db/bundb/admin.go
@@ -102,7 +102,7 @@ func (a *adminDB) NewSignup(ctx context.Context, username string, reason string,
NewSelect().
Model(acct).
Where("? = ?", bun.Ident("account.username"), username).
- WhereGroup(" AND ", whereEmptyOrNull("account.domain")).
+ Where("? IS NULL", bun.Ident("account.domain")).
Scan(ctx); err != nil {
err = a.conn.ProcessError(err)
if err != db.ErrNoEntries {
@@ -199,7 +199,7 @@ func (a *adminDB) CreateInstanceAccount(ctx context.Context) db.Error {
TableExpr("? AS ?", bun.Ident("accounts"), bun.Ident("account")).
Column("account.id").
Where("? = ?", bun.Ident("account.username"), username).
- WhereGroup(" AND ", whereEmptyOrNull("account.domain"))
+ Where("? IS NULL", bun.Ident("account.domain"))
exists, err := a.conn.Exists(ctx, q)
if err != nil {
diff --git a/internal/db/bundb/instance.go b/internal/db/bundb/instance.go
index 4fa898639..95f6ad5b8 100644
--- a/internal/db/bundb/instance.go
+++ b/internal/db/bundb/instance.go
@@ -39,8 +39,9 @@ func (i *instanceDB) CountInstanceUsers(ctx context.Context, domain string) (int
Where("? IS NULL", bun.Ident("account.suspended_at"))
if domain == config.GetHost() || domain == config.GetAccountDomain() {
- // if the domain is *this* domain, just count where the domain field is null
- q = q.WhereGroup(" AND ", whereEmptyOrNull("account.domain"))
+ // If the domain is *this* domain, just
+ // count where the domain field is null.
+ q = q.Where("? IS NULL", bun.Ident("account.domain"))
} else {
q = q.Where("? = ?", bun.Ident("account.domain"), domain)
}
diff --git a/internal/db/bundb/media.go b/internal/db/bundb/media.go
index a9b60e3ae..80a4f8bbe 100644
--- a/internal/db/bundb/media.go
+++ b/internal/db/bundb/media.go
@@ -241,7 +241,7 @@ func (m *mediaDB) GetRemoteOlderThan(ctx context.Context, olderThan time.Time, l
Column("media_attachment.id").
Where("? = ?", bun.Ident("media_attachment.cached"), true).
Where("? < ?", bun.Ident("media_attachment.created_at"), olderThan).
- WhereGroup(" AND ", whereNotEmptyAndNotNull("media_attachment.remote_url")).
+ Where("? IS NOT NULL", bun.Ident("media_attachment.remote_url")).
Order("media_attachment.created_at DESC")
if limit != 0 {
@@ -261,8 +261,8 @@ func (m *mediaDB) CountRemoteOlderThan(ctx context.Context, olderThan time.Time)
TableExpr("? AS ?", bun.Ident("media_attachments"), bun.Ident("media_attachment")).
Column("media_attachment.id").
Where("? = ?", bun.Ident("media_attachment.cached"), true).
- Where("? < ?", bun.Ident("media_attachment.created_at"), olderThan).
- WhereGroup(" AND ", whereNotEmptyAndNotNull("media_attachment.remote_url"))
+ Where("? IS NOT NULL", bun.Ident("media_attachment.remote_url")).
+ Where("? < ?", bun.Ident("media_attachment.created_at"), olderThan)
count, err := q.Count(ctx)
if err != nil {
diff --git a/internal/db/bundb/timeline.go b/internal/db/bundb/timeline.go
index d492c9584..0859f3ff3 100644
--- a/internal/db/bundb/timeline.go
+++ b/internal/db/bundb/timeline.go
@@ -164,8 +164,10 @@ func (t *timelineDB) GetPublicTimeline(ctx context.Context, maxID string, sinceI
NewSelect().
TableExpr("? AS ?", bun.Ident("statuses"), bun.Ident("status")).
Column("status.id").
+ // Public only.
Where("? = ?", bun.Ident("status.visibility"), gtsmodel.VisibilityPublic).
- WhereGroup(" AND ", whereEmptyOrNull("status.boost_of_id")).
+ // Ignore boosts.
+ Where("? IS NULL", bun.Ident("status.boost_of_id")).
Order("status.id DESC")
if maxID == "" {
diff --git a/internal/db/bundb/util.go b/internal/db/bundb/util.go
index a656a41c3..06bb289d3 100644
--- a/internal/db/bundb/util.go
+++ b/internal/db/bundb/util.go
@@ -22,34 +22,6 @@ import (
"github.com/uptrace/bun"
)
-// whereEmptyOrNull is a convenience function to return a bun WhereGroup that specifies
-// that the given column should be EITHER an empty string OR null.
-//
-// Use it as follows:
-//
-// q = q.WhereGroup(" AND ", whereEmptyOrNull("whatever_column"))
-func whereEmptyOrNull(column string) func(*bun.SelectQuery) *bun.SelectQuery {
- return func(q *bun.SelectQuery) *bun.SelectQuery {
- return q.
- WhereOr("? IS NULL", bun.Ident(column)).
- WhereOr("? = ''", bun.Ident(column))
- }
-}
-
-// whereNotEmptyAndNotNull is a convenience function to return a bun WhereGroup that specifies
-// that the given column should be NEITHER an empty string NOR null.
-//
-// Use it as follows:
-//
-// q = q.WhereGroup(" AND ", whereNotEmptyAndNotNull("whatever_column"))
-func whereNotEmptyAndNotNull(column string) func(*bun.SelectQuery) *bun.SelectQuery {
- return func(q *bun.SelectQuery) *bun.SelectQuery {
- return q.
- Where("? IS NOT NULL", bun.Ident(column)).
- Where("? != ''", bun.Ident(column))
- }
-}
-
// updateWhere parses []db.Where and adds it to the given update query.
func updateWhere(q *bun.UpdateQuery, where []db.Where) {
for _, w := range where {