# HG changeset patch # User Goffi # Date 1633013705 -7200 # Node ID b52ebc45b8e3eb1b9889214985d33b4248f90d49 # Parent 0b5233981671a2d1b53ab7f3e14c9e7bb562c076 psql: fix RSM requests handling: the sub-query to get row number to filter on for `before` and `after` was missing some filters and thus incorrect. This has been fixed by re-using `_appendSourcesAndFilters`. rel: 399 diff -r 0b5233981671 -r b52ebc45b8e3 sat_pubsub/pgsql_storage.py --- a/sat_pubsub/pgsql_storage.py Mon Aug 02 21:58:17 2021 +0200 +++ b/sat_pubsub/pgsql_storage.py Thu Sep 30 16:55:05 2021 +0200 @@ -1182,9 +1182,14 @@ query[1] += f",row_number() OVER ({query_order}) as row_number" query.append(f"{query_order}) as x") query.append( - f"WHERE row_number<(SELECT row_number FROM (SELECT row_number() OVER ({query_order}) as row_number,item FROM items WHERE node_id=%s) as row_num_sub WHERE item=%s)" + "WHERE row_number<(SELECT row_number FROM (SELECT row_number() " + f"OVER ({query_order}) as row_number,item" ) - args.extend((self.nodeDbId, rsm.before)) + self._appendSourcesAndFilters( + query, args, authorized_groups, unrestricted, ext_data + ) + query.append(") as row_num_sub WHERE item=%s)") + args.append(rsm.before) # we need to reverse order in a first query to get the right # items query.insert(0,"SELECT * from (") @@ -1204,9 +1209,14 @@ query[1] += f",row_number() OVER ({query_order}) as row_number" query.append(f"{query_order}) as x") query.append( - f"WHERE row_number>(SELECT row_number FROM (SELECT row_number() OVER ({query_order}) as row_number,item FROM items WHERE node_id=%s) as row_num_sub WHERE item=%s)" + "WHERE row_number>(SELECT row_number FROM (SELECT row_number() " + f"OVER ({query_order}) as row_number,item" ) - args.extend((self.nodeDbId, rsm.after)) + self._appendSourcesAndFilters( + query, args, authorized_groups, unrestricted, ext_data + ) + query.append(") as row_num_sub WHERE item=%s)") + args.append(rsm.after) else: rsm = False