Methods shared by Database instances that connect to MySQL, currently supported by the native and JDBC adapters.
MySQL’s cast rules are restrictive in that you can’t just cast to any possible database type.
# File lib/sequel/adapters/shared/mysql.rb, line 29 def cast_type_literal(type) CAST_TYPES[type] || super end
MySQL uses the :mysql database type
# File lib/sequel/adapters/shared/mysql.rb, line 34 def database_type :mysql end
Use SHOW INDEX FROM to get the index information for the table.
# File lib/sequel/adapters/shared/mysql.rb, line 39 def indexes(table, opts={}) indexes = {} remove_indexes = [] m = output_identifier_meth im = input_identifier_meth metadata_dataset.with_sql("SHOW INDEX FROM ?", SQL::Identifier.new(im.call(table))).each do |r| name = r[:Key_name] next if name == PRIMARY name = m.call(name) remove_indexes << name if r[:Sub_part] i = indexes[name] ||= {:columns=>[], :unique=>r[:Non_unique] != 1} i[:columns] << m.call(r[:Column_name]) end indexes.reject{|k,v| remove_indexes.include?(k)} end
Get version of MySQL server, used for determined capabilities.
# File lib/sequel/adapters/shared/mysql.rb, line 56 def server_version m = /(\d+)\.(\d+)\.(\d+)/.match(get(SQL::Function.new(:version))) @server_version ||= (m[1].to_i * 10000) + (m[2].to_i * 100) + m[3].to_i end
MySQL supports savepoints
# File lib/sequel/adapters/shared/mysql.rb, line 71 def supports_savepoints? true end
Return an array of symbols specifying table names in the current database.
Options:
:server - Set the server to use
# File lib/sequel/adapters/shared/mysql.rb, line 65 def tables(opts={}) m = output_identifier_meth metadata_dataset.with_sql('SHOW TABLES').server(opts[:server]).map{|r| m.call(r.values.first)} end
Generated with the Darkfish Rdoc Generator 2.