Class Sequel::Mysql2::Database
In: lib/sequel/adapters/mysql2.rb
Parent: Sequel::Database

Database class for MySQL databases used with Sequel.

Methods

Included Modules

Sequel::MySQL::DatabaseMethods Sequel::MySQL::PreparedStatements::DatabaseMethods

Attributes

convert_tinyint_to_bool  [RW]  Whether to convert tinyint columns to bool for this database

Public Instance methods

Connect to the database. In addition to the usual database options, the following options have effect:

:auto_is_null :Set to true to use MySQL default behavior of having a filter for an autoincrement column equals NULL to return the last inserted row.
:charset :Same as :encoding (:encoding takes precendence)
:encoding :Set all the related character sets for this connection (connection, client, database, server, and results).

The options hash is also passed to mysql2, and can include mysql2 options such as :local_infile.

[Source]

    # File lib/sequel/adapters/mysql2.rb, line 29
29:       def connect(server)
30:         opts = server_opts(server)
31:         opts[:host] ||= 'localhost'
32:         opts[:username] ||= opts.delete(:user)
33:         opts[:flags] ||= 0
34:         opts[:flags] |= ::Mysql2::Client::FOUND_ROWS if ::Mysql2::Client.const_defined?(:FOUND_ROWS)
35:         opts[:encoding] ||= opts[:charset]
36:         conn = ::Mysql2::Client.new(opts)
37:         conn.query_options.merge!(:symbolize_keys=>true, :cache_rows=>false)
38: 
39:         sqls = mysql_connection_setting_sqls
40: 
41:         # Set encoding a slightly different way after connecting,
42:         # in case the READ_DEFAULT_GROUP overrode the provided encoding.
43:         # Doesn't work across implicit reconnects, but Sequel doesn't turn on
44:         # that feature.
45:         if encoding = opts[:encoding]
46:           sqls.unshift("SET NAMES #{conn.escape(encoding.to_s)}")
47:         end
48: 
49:         sqls.each{|sql| log_yield(sql){conn.query(sql)}}
50: 
51:         add_prepared_statements_cache(conn)
52:         conn
53:       end

Return the number of matched rows when executing a delete/update statement.

[Source]

    # File lib/sequel/adapters/mysql2.rb, line 56
56:       def execute_dui(sql, opts=OPTS)
57:         execute(sql, opts){|c| return c.affected_rows}
58:       end

Return the last inserted id when executing an insert statement.

[Source]

    # File lib/sequel/adapters/mysql2.rb, line 61
61:       def execute_insert(sql, opts=OPTS)
62:         execute(sql, opts){|c| return c.last_id}
63:       end

Return the version of the MySQL server to which we are connecting.

[Source]

    # File lib/sequel/adapters/mysql2.rb, line 66
66:       def server_version(server=nil)
67:         @server_version ||= (synchronize(server){|conn| conn.server_info[:id]} || super)
68:       end

[Validate]