11import { feedEntries } from '~/db/schema'
2- import { eq , and , sql , inArray , gte , lte } from 'drizzle-orm'
2+ import { eq , and , sql , inArray , gte , lte , arrayOverlaps } from 'drizzle-orm'
33import { getAuthenticatedUser } from './auth.server-helpers'
44import { getEffectiveCapabilities } from './capabilities.server'
55import type { EntryType , ReleaseLevel } from '~/db/schema'
@@ -110,12 +110,10 @@ export function buildFeedQueryConditions(
110110 filters . libraries &&
111111 filters . libraries . length > 0
112112 ) {
113- conditions . push (
114- sql `${ feedEntries . libraryIds } && ARRAY[${ sql . join (
115- filters . libraries . map ( ( l ) => sql `${ l } ` ) ,
116- sql `, ` ,
117- ) } ]::text[]`,
118- )
113+ conditions . push ( arrayOverlaps ( feedEntries . libraryIds , filters . libraries ) )
114+ // conditions.push(
115+ // sql`${feedEntries.libraryIds} && ${filters.libraries}::text[]`,
116+ // )
119117 }
120118
121119 // Partner filter (array overlap) - use parameterized array
@@ -124,22 +122,12 @@ export function buildFeedQueryConditions(
124122 filters . partners &&
125123 filters . partners . length > 0
126124 ) {
127- conditions . push (
128- sql `${ feedEntries . partnerIds } && ARRAY[${ sql . join (
129- filters . partners . map ( ( p ) => sql `${ p } ` ) ,
130- sql `, ` ,
131- ) } ]::text[]`,
132- )
125+ conditions . push ( arrayOverlaps ( feedEntries . partnerIds , filters . partners ) )
133126 }
134127
135128 // Tag filter (array overlap) - use parameterized array
136129 if ( excludeFacet !== 'tags' && filters . tags && filters . tags . length > 0 ) {
137- conditions . push (
138- sql `${ feedEntries . tags } && ARRAY[${ sql . join (
139- filters . tags . map ( ( t ) => sql `${ t } ` ) ,
140- sql `, ` ,
141- ) } ]::text[]`,
142- )
130+ conditions . push ( arrayOverlaps ( feedEntries . tags , filters . tags ) )
143131 }
144132
145133 // Featured filter
0 commit comments