@@ -425,6 +425,7 @@ proc getMessagesArbitraryQuery(
425425 hexHashes: seq [string ] = @ [],
426426 maxPageSize = DefaultPageSize ,
427427 ascendingOrder = true ,
428+ requestId: string ,
428429): Future [ArchiveDriverResult [seq [ArchiveRow ]]] {.async .} =
429430 # # This proc allows to handle atypical queries. We don't use prepared statements for those.
430431
@@ -489,7 +490,7 @@ proc getMessagesArbitraryQuery(
489490 proc rowCallback (pqResult: ptr PGresult ) =
490491 rowCallbackImpl (pqResult, rows)
491492
492- (await s.readConnPool.pgQuery (query, args, rowCallback)).isOkOr:
493+ (await s.readConnPool.pgQuery (query, args, rowCallback, requestId )).isOkOr:
493494 return err (" failed to run query: " & $ error)
494495
495496 return ok (rows)
@@ -504,6 +505,7 @@ proc getMessageHashesArbitraryQuery(
504505 hexHashes: seq [string ] = @ [],
505506 maxPageSize = DefaultPageSize ,
506507 ascendingOrder = true ,
508+ requestId: string ,
507509): Future [ArchiveDriverResult [seq [(WakuMessageHash , PubsubTopic , WakuMessage )]]] {.
508510 async
509511.} =
@@ -571,7 +573,7 @@ proc getMessageHashesArbitraryQuery(
571573 proc rowCallback (pqResult: ptr PGresult ) =
572574 hashCallbackImpl (pqResult, rows)
573575
574- (await s.readConnPool.pgQuery (query, args, rowCallback)).isOkOr:
576+ (await s.readConnPool.pgQuery (query, args, rowCallback, requestId )).isOkOr:
575577 return err (" failed to run query: " & $ error)
576578
577579 return ok (rows)
@@ -586,6 +588,7 @@ proc getMessagesPreparedStmt(
586588 hashes: string ,
587589 maxPageSize = DefaultPageSize ,
588590 ascOrder = true ,
591+ requestId: string ,
589592): Future [ArchiveDriverResult [seq [ArchiveRow ]]] {.async .} =
590593 # # This proc aims to run the most typical queries in a more performant way,
591594 # # i.e. by means of prepared statements.
@@ -619,6 +622,7 @@ proc getMessagesPreparedStmt(
619622 ],
620623 @ [int32 (0 ), int32 (0 ), int32 (0 ), int32 (0 ), int32 (0 )],
621624 rowCallback,
625+ requestId,
622626 )
623627 ).isOkOr:
624628 return err (stmtName & " : " & $ error)
@@ -659,6 +663,7 @@ proc getMessagesPreparedStmt(
659663 ],
660664 @ [int32 (0 ), int32 (0 ), int32 (0 ), int32 (0 ), int32 (0 ), int32 (0 ), int32 (0 ), int32 (0 )],
661665 rowCallback,
666+ requestId,
662667 )
663668 ).isOkOr:
664669 return err (stmtName & " : " & $ error)
@@ -675,6 +680,7 @@ proc getMessageHashesPreparedStmt(
675680 hashes: string ,
676681 maxPageSize = DefaultPageSize ,
677682 ascOrder = true ,
683+ requestId: string ,
678684): Future [ArchiveDriverResult [seq [ArchiveRow ]]] {.async .} =
679685 # # This proc aims to run the most typical queries in a more performant way,
680686 # # i.e. by means of prepared statements.
@@ -710,6 +716,7 @@ proc getMessageHashesPreparedStmt(
710716 ],
711717 @ [int32 (0 ), int32 (0 ), int32 (0 ), int32 (0 ), int32 (0 ), int32 (0 )],
712718 rowCallback,
719+ requestId,
713720 )
714721 ).isOkOr:
715722 return err (stmtName & " : " & $ error)
@@ -753,14 +760,15 @@ proc getMessageHashesPreparedStmt(
753760 ],
754761 @ [int32 (0 ), int32 (0 ), int32 (0 ), int32 (0 ), int32 (0 ), int32 (0 ), int32 (0 ), int32 (0 )],
755762 rowCallback,
763+ requestId,
756764 )
757765 ).isOkOr:
758766 return err (stmtName & " : " & $ error)
759767
760768 return ok (rows)
761769
762770proc getMessagesByMessageHashes (
763- s: PostgresDriver , hashes: string , maxPageSize: uint
771+ s: PostgresDriver , hashes: string , maxPageSize: uint , requestId: string
764772): Future [ArchiveDriverResult [seq [ArchiveRow ]]] {.async .} =
765773 # # Retrieves information only filtering by a given messageHashes list.
766774 # # This proc levarages on the messages_lookup table to have better query performance
@@ -797,7 +805,11 @@ proc getMessagesByMessageHashes(
797805 proc rowCallback (pqResult: ptr PGresult ) =
798806 rowCallbackImpl (pqResult, rows)
799807
800- (await s.readConnPool.pgQuery (query = query, rowCallback = rowCallback)).isOkOr:
808+ (
809+ await s.readConnPool.pgQuery (
810+ query = query, rowCallback = rowCallback, requestId = requestId
811+ )
812+ ).isOkOr:
801813 return err (" failed to run query: " & $ error)
802814
803815 debug " end of getMessagesByMessageHashes"
@@ -814,6 +826,7 @@ method getMessages*(
814826 hashes = newSeq [WakuMessageHash ](0 ),
815827 maxPageSize = DefaultPageSize ,
816828 ascendingOrder = true ,
829+ requestId = " " ,
817830): Future [ArchiveDriverResult [seq [ArchiveRow ]]] {.async .} =
818831 debug " beginning of getMessages"
819832
@@ -825,8 +838,9 @@ method getMessages*(
825838
826839 if cursor.isNone () and pubsubTopic.isNone () and contentTopics.len == 0 and
827840 startTime.isNone () and endTime.isNone () and hexHashes.len > 0 :
828- return
829- await s.getMessagesByMessageHashes (" '" & hexHashes.join (" ','" ) & " '" , maxPageSize)
841+ return await s.getMessagesByMessageHashes (
842+ " '" & hexHashes.join (" ','" ) & " '" , maxPageSize, requestId
843+ )
830844
831845 if contentTopics.len > 0 and hexHashes.len > 0 and pubsubTopic.isSome () and
832846 startTime.isSome () and endTime.isSome ():
@@ -841,6 +855,7 @@ method getMessages*(
841855 hexHashes.join (" ," ),
842856 maxPageSize,
843857 ascendingOrder,
858+ requestId,
844859 )
845860 else :
846861 return await s.getMessageHashesPreparedStmt (
@@ -852,18 +867,19 @@ method getMessages*(
852867 hexHashes.join (" ," ),
853868 maxPageSize,
854869 ascendingOrder,
870+ requestId,
855871 )
856872 else :
857873 if includeData:
858874 # # We will run atypical query. In this case we don't use prepared statemets
859875 return await s.getMessagesArbitraryQuery (
860876 contentTopics, pubsubTopic, cursor, startTime, endTime, hexHashes, maxPageSize,
861- ascendingOrder,
877+ ascendingOrder, requestId,
862878 )
863879 else :
864880 return await s.getMessageHashesArbitraryQuery (
865881 contentTopics, pubsubTopic, cursor, startTime, endTime, hexHashes, maxPageSize,
866- ascendingOrder,
882+ ascendingOrder, requestId,
867883 )
868884
869885proc getStr (
0 commit comments