Class: Fluent::RedshiftOutput::RedshiftConnection
- Inherits:
-
Object
- Object
- Fluent::RedshiftOutput::RedshiftConnection
- Defined in:
- lib/fluent/plugin/out_redshift.rb
Constant Summary collapse
- REDSHIFT_CONNECT_TIMEOUT =
10sec
10.0
Instance Attribute Summary collapse
-
#db_conf ⇒ Object
readonly
Returns the value of attribute db_conf.
Instance Method Summary collapse
- #close ⇒ Object
- #connect_start ⇒ Object
- #exec(sql, &block) ⇒ Object
- #fetch_table_columns(table_name, schema_name) ⇒ Object
-
#initialize(db_conf) ⇒ RedshiftConnection
constructor
A new instance of RedshiftConnection.
Constructor Details
#initialize(db_conf) ⇒ RedshiftConnection
Returns a new instance of RedshiftConnection.
376 377 378 379 |
# File 'lib/fluent/plugin/out_redshift.rb', line 376 def initialize(db_conf) @db_conf = db_conf @connection = nil end |
Instance Attribute Details
#db_conf ⇒ Object (readonly)
Returns the value of attribute db_conf.
381 382 383 |
# File 'lib/fluent/plugin/out_redshift.rb', line 381 def db_conf @db_conf end |
Instance Method Details
#close ⇒ Object
409 410 411 412 |
# File 'lib/fluent/plugin/out_redshift.rb', line 409 def close @connection.close rescue nil if @connection @connection = nil end |
#connect_start ⇒ Object
405 406 407 |
# File 'lib/fluent/plugin/out_redshift.rb', line 405 def connect_start @connection = create_redshift_connection end |
#exec(sql, &block) ⇒ Object
391 392 393 394 395 396 397 398 399 400 401 402 403 |
# File 'lib/fluent/plugin/out_redshift.rb', line 391 def exec(sql, &block) conn = @connection conn = create_redshift_connection if conn.nil? if block conn.exec(sql) {|result| block.call(result)} else conn.exec(sql) end rescue PG::Error => e raise RedshiftError.new(e) ensure conn.close if conn && @connection.nil? end |
#fetch_table_columns(table_name, schema_name) ⇒ Object
383 384 385 386 387 388 389 |
# File 'lib/fluent/plugin/out_redshift.rb', line 383 def fetch_table_columns(table_name, schema_name) columns = nil exec(fetch_columns_sql(table_name, schema_name)) do |result| columns = result.collect{|row| row['column_name']} end columns end |