require_relative './odbc' module Carto class Connector # MySQL provider using this driver: http://dev.mysql.com/doc/connector-odbc/en/ # # For complete list of parameters, see: # https://dev.mysql.com/doc/connector-odbc/en/connector-odbc-configuration-connection-parameters.html # class MySqlProvider < OdbcProvider private def fixed_connection_attributes { Driver: 'MySQL', option: 0, # see https://dev.mysql.com/doc/connector-odbc/en/connector-odbc-configuration-connection-parameters.html#codbc-dsn-option-flags prefetch: 0, no_ssps: 0, can_handle_exp_pwd: 0 } end def required_connection_attributes { username: :uid, password: :pwd, server: :server } end def optional_connection_attributes { port: { port: 3306 }, database: { database: nil } } end def non_connection_parameters # database acts like schema name in MySQL super.reverse_merge(schema: @connection[:database]) end end end end # DSL: # parameter :username, :required, :primary, default: nil, attribute: :uid