From 0122d47eb7b080ff65822f2aaf2e353e23716dec Mon Sep 17 00:00:00 2001 From: Ken Payne Date: Wed, 26 Oct 2022 15:51:30 +0100 Subject: [PATCH] fix: push _MAX_RECORDS_LIMIT down into SQL (#1111) --- singer_sdk/streams/sql.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/singer_sdk/streams/sql.py b/singer_sdk/streams/sql.py index b1acb2663..a2a9a9bf8 100644 --- a/singer_sdk/streams/sql.py +++ b/singer_sdk/streams/sql.py @@ -181,6 +181,7 @@ def get_records(self, context: dict | None) -> Iterable[dict[str, Any]]: column_names=selected_column_names, ) query = table.select() + if self.replication_key: replication_key_col = table.columns[self.replication_key] query = query.order_by(replication_key_col) @@ -193,6 +194,9 @@ def get_records(self, context: dict | None) -> Iterable[dict[str, Any]]: ) ) + if self._MAX_RECORDS_LIMIT is not None: + query = query.limit(self._MAX_RECORDS_LIMIT) + for record in self.connector.connection.execute(query): yield dict(record)