Class: LogStash::PluginMixins::Jdbc::ExplicitPagingModeStatementHandler
- Inherits:
-
NormalStatementHandler
- Object
- StatementHandler
- NormalStatementHandler
- LogStash::PluginMixins::Jdbc::ExplicitPagingModeStatementHandler
- Defined in:
- lib/logstash/plugin_mixins/jdbc/statement_handler.rb
Instance Attribute Summary
Attributes inherited from StatementHandler
#parameters, #statement, #statement_logger
Instance Method Summary collapse
-
#perform_query(db, sql_last_value, jdbc_paging_enabled, jdbc_page_size) {|row| ... } ⇒ Object
Performs the query, respecting our pagination settings, yielding once per row of data.
Methods inherited from StatementHandler
#build_query, build_statement_handler, #initialize, #post_init
Constructor Details
This class inherits a constructor from LogStash::PluginMixins::Jdbc::StatementHandler
Instance Method Details
#perform_query(db, sql_last_value, jdbc_paging_enabled, jdbc_page_size) {|row| ... } ⇒ Object
Performs the query, respecting our pagination settings, yielding once per row of data
87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/logstash/plugin_mixins/jdbc/statement_handler.rb', line 87 def perform_query(db, sql_last_value, jdbc_paging_enabled, jdbc_page_size) query = build_query(db, sql_last_value) offset = 0 loop do rows_in_page = 0 query.with_sql(query.sql, offset: offset, size: jdbc_page_size).each do |row| yield row rows_in_page += 1 end break unless rows_in_page == jdbc_page_size offset += jdbc_page_size end end |