Skip to content

Commit df9b154

Browse files
committed
Also expose #send_query && #get_result to the connection
1 parent 78bb3e6 commit df9b154

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

lib/active_record/connection_adapters/mysqlplus_adapter.rb

+18
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,24 @@ def socket
3232
@connection.socket
3333
end
3434

35+
# Send a query in an async non-blocking manner
36+
#
37+
def send_query( sql, name = nil, skip_logging = false )
38+
if skip_logging
39+
@connection.send_query( sql )
40+
else
41+
log("(Socket #{socket.to_s}, Thread #{Thread.current.object_id.to_s}) #{sql}",name) do
42+
@connection.send_query( sql )
43+
end
44+
end
45+
end
46+
47+
# Retrieve a #send_query result set
48+
#
49+
def get_result
50+
@connection.get_result
51+
end
52+
3553
def execute(sql, name = nil, skip_logging = false) #:nodoc:
3654
if skip_logging
3755
@connection.c_async_query( sql )

test/mysqlplus_adapter_test.rb

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
require "#{File.dirname(__FILE__)}/helper"
2+
3+
Mysqlplus::Test.prepare!
4+
5+
class MysqlPlusAdapterTest < ActiveSupport::TestCase
6+
7+
test "should be able to execute queries in an async manner" do
8+
MysqlUser.connection.send_query( "SELECT * FROM mysql.user WHERE User = 'root'" )
9+
assert_instance_of Mysql::Result, MysqlUser.connection.get_result
10+
end
11+
12+
end

0 commit comments

Comments
 (0)