begin()
click to toggle source
def self.begin
'BEGIN'
end
collation()
click to toggle source
def self.collation
'SHOW COLLATION'
end
commit()
click to toggle source
def self.commit
'COMMIT'
end
connection(address = '127.0.0.1', port = 9312)
click to toggle source
def self.connection(address = '127.0.0.1', port = 9312)
require 'mysql2'
address = '127.0.0.1' if address == 'localhost'
Mysql2::Client.new(
:host => address,
:port => port
)
end
create_function(name, type, file)
click to toggle source
def self.create_function(name, type, file)
type = type.to_s.upcase
"CREATE FUNCTION #{name} RETURNS #{type} SONAME #{quote file}"
end
describe(index)
click to toggle source
def self.describe(index)
"DESCRIBE #{index}"
end
drop_function(name)
click to toggle source
def self.drop_function(name)
"DROP FUNCTION #{name}"
end
escape(string)
click to toggle source
def self.escape(string)
string.gsub(/[\(\)\|\-!@~\/"\/\^\$\]/) { |match| "\\#{match}" }
end
quote(string)
click to toggle source
def self.quote(string)
"'#{sql_escape string}'"
end
rollback()
click to toggle source
def self.rollback
'ROLLBACK'
end
set(variable, values, global = true)
click to toggle source
def self.set(variable, values, global = true)
values = "(#{values.join(', ')})" if values.is_a?(Array)
"SET#{ ' GLOBAL' if global } #{variable} = #{values}"
end
snippets(data, index, query, options = nil)
click to toggle source
def self.snippets(data, index, query, options = nil)
data, index, query = quote(data), quote(index), quote(query)
options = ', ' + options.keys.collect { |key|
value = translate_value options[key]
value = quote value if value.is_a?(String)
"#{value} AS #{key}"
}.join(', ') unless options.nil?
"CALL SNIPPETS(#{data}, #{index}, #{query}#{options})"
end
sql_escape(string)
click to toggle source
def self.sql_escape(string)
return Mysql2::Client.escape(string) if defined?(Mysql2)
string.gsub(/['"\]/) { |character| "\\#{character}" }
end
status()
click to toggle source
def self.status
'SHOW STATUS'
end
tables()
click to toggle source
def self.tables
'SHOW TABLES'
end
translate_value(value)
click to toggle source
def self.translate_value(value)
case value
when TrueClass
1
when FalseClass
0
else
value
end
end
update(index, id, values = {})
click to toggle source
def self.update(index, id, values = {})
values = values.keys.collect { |key|
"#{key} = #{translate_value values[key]}"
}.join(', ')
"UPDATE #{index} SET #{values} WHERE id = #{id}"
end
variables()
click to toggle source
def self.variables
'SHOW VARIABLES'
end
warnings()
click to toggle source
def self.warnings
'SHOW WARNINGS'
end