@@ -156,14 +156,10 @@ impl BigTableClientImpl {
156156 }
157157
158158 /// Read a given row from the row key.
159- async fn read_row (
160- & self ,
161- row_key : & str ,
162- timestamp_filter : Option < u64 > ,
163- ) -> Result < Option < row:: Row > , error:: BigTableError > {
159+ async fn read_row ( & self , row_key : & str ) -> Result < Option < row:: Row > , error:: BigTableError > {
164160 debug ! ( "🉑 Row key: {}" , row_key) ;
165161 let req = self . read_row_request ( row_key) ;
166- let mut rows = self . read_rows ( req, timestamp_filter , None ) . await ?;
162+ let mut rows = self . read_rows ( req, None ) . await ?;
167163 Ok ( rows. remove ( row_key) )
168164 }
169165
@@ -227,15 +223,14 @@ impl BigTableClientImpl {
227223 async fn read_rows (
228224 & self ,
229225 req : ReadRowsRequest ,
230- sortkey_filter : Option < u64 > ,
231226 limit : Option < usize > ,
232227 ) -> Result < BTreeMap < RowKey , row:: Row > , error:: BigTableError > {
233228 let bigtable = self . pool . get ( ) . await ?;
234229 let resp = bigtable
235230 . conn
236231 . read_rows ( & req)
237232 . map_err ( error:: BigTableError :: Read ) ?;
238- merge:: RowMerger :: process_chunks ( resp, sortkey_filter , limit) . await
233+ merge:: RowMerger :: process_chunks ( resp, limit) . await
239234 }
240235
241236 /// write a given row.
@@ -684,7 +679,7 @@ impl DbClient for BigTableClientImpl {
684679 ..Default :: default ( )
685680 } ;
686681
687- if let Some ( mut record) = self . read_row ( & row_key, None ) . await ? {
682+ if let Some ( mut record) = self . read_row ( & row_key) . await ? {
688683 trace ! ( "🉑 Found a record for that user" ) ;
689684 if let Some ( mut cells) = record. take_cells ( "connected_at" ) {
690685 if let Some ( cell) = cells. pop ( ) {
@@ -854,7 +849,7 @@ impl DbClient for BigTableClientImpl {
854849 filter. set_chain ( filter_chain) ;
855850 req. set_filter ( filter) ;
856851
857- let mut rows = self . read_rows ( req, None , None ) . await ?;
852+ let mut rows = self . read_rows ( req, None ) . await ?;
858853 let mut result = HashSet :: new ( ) ;
859854 if let Some ( record) = rows. remove ( & row_key) {
860855 for mut cells in record. cells . into_values ( ) {
@@ -1100,7 +1095,7 @@ impl DbClient for BigTableClientImpl {
11001095 req.set_rows_limit(limit as i64);
11011096 }
11021097 // */
1103- let rows = self . read_rows ( req, None , Some ( limit) ) . await ?;
1098+ let rows = self . read_rows ( req, Some ( limit) ) . await ?;
11041099 debug ! (
11051100 "🉑 Fetch Topic Messages. Found {} row(s) of {}" ,
11061101 rows. len( ) ,
@@ -1124,7 +1119,9 @@ impl DbClient for BigTableClientImpl {
11241119 let mut row_range = data:: RowRange :: default ( ) ;
11251120
11261121 let start_key = if let Some ( ts) = timestamp {
1127- format ! ( "{}#02:{}" , uaid. simple( ) , ts)
1122+ // Fetch everything after the last message with timestamp: the "z"
1123+ // moves past the last message's channel_id's 1st hex digit
1124+ format ! ( "{}#02:{}z" , uaid. simple( ) , ts)
11281125 } else {
11291126 format ! ( "{}#02:" , uaid. simple( ) )
11301127 } ;
@@ -1159,7 +1156,7 @@ impl DbClient for BigTableClientImpl {
11591156 req.set_rows_limit(limit as i64);
11601157 }
11611158 // */
1162- let rows = self . read_rows ( req, timestamp , Some ( limit) ) . await ?;
1159+ let rows = self . read_rows ( req, Some ( limit) ) . await ?;
11631160 debug ! (
11641161 "🉑 Fetch Timestamp Messages ({:?}) Found {} row(s) of {}" ,
11651162 timestamp,
@@ -1491,7 +1488,7 @@ mod tests {
14911488 } ] ,
14921489 ) ;
14931490 client. write_row ( row) . await . unwrap ( ) ;
1494- let Some ( row) = client. read_row ( & row_key, None ) . await . unwrap ( ) else {
1491+ let Some ( row) = client. read_row ( & row_key) . await . unwrap ( ) else {
14951492 panic ! ( "Expected row" ) ;
14961493 } ;
14971494 assert_eq ! ( row. cells. len( ) , 1 ) ;
0 commit comments