Module: Vertica
- Defined in:
- lib/vertica.rb,
lib/vertica/column.rb,
lib/vertica/messages/message.rb,
lib/vertica/messages/frontend_messages/bind.rb,
lib/vertica/messages/frontend_messages/sync.rb,
lib/vertica/messages/frontend_messages/close.rb,
lib/vertica/messages/frontend_messages/flush.rb,
lib/vertica/messages/frontend_messages/parse.rb,
lib/vertica/messages/frontend_messages/query.rb,
lib/vertica/messages/backend_messages/no_data.rb,
lib/vertica/messages/backend_messages/unknown.rb,
lib/vertica/messages/backend_messages/data_row.rb,
lib/vertica/messages/frontend_messages/execute.rb,
lib/vertica/messages/frontend_messages/startup.rb,
lib/vertica/messages/frontend_messages/describe.rb,
lib/vertica/messages/frontend_messages/password.rb,
lib/vertica/messages/frontend_messages/copy_data.rb,
lib/vertica/messages/frontend_messages/copy_done.rb,
lib/vertica/messages/frontend_messages/copy_fail.rb,
lib/vertica/messages/frontend_messages/terminate.rb,
lib/vertica/messages/frontend_messages/ssl_request.rb,
lib/vertica/messages/backend_messages/bind_complete.rb,
lib/vertica/messages/backend_messages/authentication.rb,
lib/vertica/messages/backend_messages/close_complete.rb,
lib/vertica/messages/backend_messages/error_response.rb,
lib/vertica/messages/backend_messages/parse_complete.rb,
lib/vertica/messages/backend_messages/notice_response.rb,
lib/vertica/messages/backend_messages/ready_for_query.rb,
lib/vertica/messages/backend_messages/row_description.rb,
lib/vertica/messages/frontend_messages/cancel_request.rb,
lib/vertica/messages/backend_messages/backend_key_data.rb,
lib/vertica/messages/backend_messages/command_complete.rb,
lib/vertica/messages/backend_messages/copy_in_response.rb,
lib/vertica/messages/backend_messages/parameter_status.rb,
lib/vertica/messages/backend_messages/portal_suspended.rb,
lib/vertica/messages/backend_messages/empty_query_response.rb,
lib/vertica/messages/backend_messages/parameter_description.rb
Overview
Main module for this library. It contains the Vertica.connect method to return a Connection instance, and methods to quote values (Vertica.quote) and identifiers (Vertica.quote_identifier) to safely include those in SQL strings to prevent SQL injection.
Defined Under Namespace
Modules: Messages Classes: Column, Connection, Error, Query, Result
Constant Summary collapse
- VERSION =
The version number of this library.
File.read(File.join(File.dirname(__FILE__), *%w[.. VERSION])).strip
- PROTOCOL_VERSION =
The protocol version (3.0.0) implemented in this library.
3 << 16
Class Method Summary collapse
-
.connect(options) ⇒ Vertica::Connection
Opens a new connection to a Vertica database.
-
.quote(value) ⇒ String
Properly quotes a value for safe usage in SQL queries.
-
.quote_identifier(identifier) ⇒ String
Quotes an identifier for safe use within SQL queries, using double quotes.
Class Method Details
.connect(options) ⇒ Vertica::Connection
Opens a new connection to a Vertica database.
19 20 21 |
# File 'lib/vertica.rb', line 19 def self.connect() Vertica::Connection.new() end |
.quote(value) ⇒ String
Properly quotes a value for safe usage in SQL queries.
This method has quoting rules for common types. Any other object will be converted to a string using :to_s
and then quoted as a string.
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/vertica.rb', line 30 def self.quote(value) case value when nil then 'NULL' when false then 'FALSE' when true then 'TRUE' when DateTime then value.strftime("'%Y-%m-%d %H:%M:%S'::timestamp") when Time then value.strftime("'%Y-%m-%d %H:%M:%S'::timestamp") when Date then value.strftime("'%Y-%m-%d'::date") when String then "'#{value.gsub(/'/, "''")}'" when BigDecimal then value.to_s('F') when Numeric then value.to_s when Array then value.map { |v| self.quote(v) }.join(', ') else self.quote(value.to_s) end end |
.quote_identifier(identifier) ⇒ String
Quotes an identifier for safe use within SQL queries, using double quotes.
49 50 51 |
# File 'lib/vertica.rb', line 49 def self.quote_identifier(identifier) "\"#{identifier.to_s.gsub(/"/, '""')}\"" end |