@@ -121,16 +121,16 @@ export abstract class BaseDatabaseAdapter implements EventDatabase {
121121 )
122122 . select (
123123 'ge.date' ,
124- db . raw ( 'COUNT(*) as total_users' ) ,
124+ db . raw ( 'CAST( COUNT(*) as INTEGER ) as total_users' ) ,
125125 db . raw (
126- `SUM(CASE WHEN fs.first_seen >= ${ this . getFormatedDate (
126+ `CAST( SUM(CASE WHEN fs.first_seen >= ${ this . getFormatedDate (
127127 'ge.date' ,
128- ) } THEN 1 ELSE 0 END) as new_users`,
128+ ) } THEN 1 ELSE 0 END) as INTEGER) as new_users`,
129129 ) ,
130130 db . raw (
131- `SUM(CASE WHEN fs.first_seen < ${ this . getFormatedDate (
131+ `CAST( SUM(CASE WHEN fs.first_seen < ${ this . getFormatedDate (
132132 'ge.date' ,
133- ) } THEN 1 ELSE 0 END) as returning_users`,
133+ ) } THEN 1 ELSE 0 END) as INTEGER) as returning_users`,
134134 ) ,
135135 )
136136 . groupBy ( 'ge.date' )
@@ -144,7 +144,7 @@ export abstract class BaseDatabaseAdapter implements EventDatabase {
144144 const { start_date, end_date } = this . filters ! ;
145145 const db = this . db ;
146146 const query = db ( 'events' )
147- . select ( db . raw ( 'COUNT(*) as logged_in_users' ) )
147+ . select ( db . raw ( 'CAST( COUNT(*) as INTEGER ) as logged_in_users' ) )
148148 . from (
149149 db ( 'events' )
150150 . select ( 'user_ref' )
@@ -167,7 +167,7 @@ export abstract class BaseDatabaseAdapter implements EventDatabase {
167167 const query = db ( 'events' )
168168 . select (
169169 db . raw ( `context->>'entityRef' AS entityref` ) ,
170- db . raw ( 'COUNT(*) AS count' ) ,
170+ db . raw ( 'CAST( COUNT(*) as INTEGER ) AS count' ) ,
171171 db . raw ( this . getLastUsedDate ( ) ) ,
172172 )
173173 . where ( {
@@ -190,7 +190,7 @@ export abstract class BaseDatabaseAdapter implements EventDatabase {
190190 const query = db ( 'events' )
191191 . select (
192192 db . raw ( this . getDynamicDateGrouping ( ) ) ,
193- db . raw ( 'COUNT(*) AS count' ) ,
193+ db . raw ( 'CAST( COUNT(*) as INTEGER ) AS count' ) ,
194194 )
195195 . whereBetween ( 'created_at' , [ start_date , end_date ] )
196196 . andWhere ( 'action' , 'search' )
@@ -208,15 +208,18 @@ export abstract class BaseDatabaseAdapter implements EventDatabase {
208208 const query = db ( 'events' )
209209 . select (
210210 db . raw ( `context->>'routeRef' AS entityref` ) ,
211- db . raw ( 'COUNT(*) AS count' ) ,
211+ db . raw ( 'CAST( COUNT(*) as INTEGER ) AS count' ) ,
212212 db . raw ( this . getLastUsedDate ( ) ) ,
213+ db . raw ( `COALESCE(attributes->>'kind', '') AS kind` ) ,
214+ db . raw ( `COALESCE(attributes->>'name', '') AS name` ) ,
215+ db . raw ( `COALESCE(attributes->>'namespace', '') AS namespace` ) ,
213216 )
214217 . where ( {
215218 action : 'navigate' ,
216219 plugin_id : 'techdocs' ,
217220 } )
218221 . whereBetween ( 'created_at' , [ start_date , end_date ] )
219- . groupByRaw ( ' entityref' )
222+ . groupByRaw ( ` entityref, name, kind, namespace` )
220223 . limit ( Number ( limit ) || 3 ) ;
221224
222225 return query . then ( data => this . getResponseData ( data , 'last_used' ) ) ;
@@ -233,7 +236,7 @@ export abstract class BaseDatabaseAdapter implements EventDatabase {
233236 db . raw ( `attributes->>'name' AS name` ) ,
234237 db . raw ( `attributes->>'namespace' AS namespace` ) ,
235238 db . raw ( this . getLastUsedDate ( ) ) ,
236- db . raw ( 'COUNT(*) AS count' ) ,
239+ db . raw ( 'CAST( COUNT(*) as INTEGER ) AS count' ) ,
237240 )
238241 . whereBetween ( 'created_at' , [ start_date , end_date ] )
239242 . andWhere ( db . raw ( `attributes->>'kind' IS NOT NULL` ) )
@@ -260,7 +263,7 @@ export abstract class BaseDatabaseAdapter implements EventDatabase {
260263 const trend_data_columns = [
261264 'plugin_id' ,
262265 db . raw ( this . getDynamicDateGrouping ( ) ) ,
263- db . raw ( 'COUNT(*) AS count' ) ,
266+ db . raw ( 'CAST( COUNT(*) as INTEGER ) AS count' ) ,
264267 ] ;
265268
266269 return this . selectFromEvents ( qb , trend_data_columns , dateRange ) . groupBy (
@@ -273,7 +276,7 @@ export abstract class BaseDatabaseAdapter implements EventDatabase {
273276 const getPluginCountsQuery = ( qb : Knex . QueryBuilder ) => {
274277 const plugin_counts_columns = [
275278 'plugin_id' ,
276- db . raw ( 'COUNT(*) AS visit_count' ) ,
279+ db . raw ( 'CAST( COUNT(*) as INTEGER ) AS visit_count' ) ,
277280 ] ;
278281 return this . selectFromEvents (
279282 qb ,
0 commit comments