Class: MysqlPR

Inherits:
Object
  • Object
show all
Defined in:
lib/mysql-pr.rb,
lib/mysql-pr/error.rb,
lib/mysql-pr/packet.rb,
lib/mysql-pr/charset.rb,
lib/mysql-pr/protocol.rb,
lib/mysql-pr/constants.rb

Overview

Copyright © 2003-2008 TOMITA Masahiro [email protected]

Defined Under Namespace

Classes: Charset, ClientError, Error, Field, Packet, Protocol, ProtocolError, RawRecord, Result, ResultBase, ServerError, Stmt, StmtRawRecord, Time

Constant Summary collapse

VERSION =

Version number of this library

20910
MYSQL_UNIX_PORT =

UNIX domain socket filename

"/tmp/mysql.sock"
MYSQL_TCP_PORT =

TCP socket port number

3306
COM_SLEEP =

Command

0
COM_QUIT =
1
COM_INIT_DB =
2
COM_QUERY =
3
COM_FIELD_LIST =
4
COM_CREATE_DB =
5
COM_DROP_DB =
6
COM_REFRESH =
7
COM_SHUTDOWN =
8
COM_STATISTICS =
9
COM_PROCESS_INFO =
10
COM_CONNECT =
11
COM_PROCESS_KILL =
12
COM_DEBUG =
13
COM_PING =
14
COM_TIME =
15
COM_DELAYED_INSERT =
16
COM_CHANGE_USER =
17
COM_BINLOG_DUMP =
18
COM_TABLE_DUMP =
19
COM_CONNECT_OUT =
20
COM_REGISTER_SLAVE =
21
COM_STMT_PREPARE =
22
COM_STMT_EXECUTE =
23
COM_STMT_SEND_LONG_DATA =
24
COM_STMT_CLOSE =
25
COM_STMT_RESET =
26
COM_SET_OPTION =
27
COM_STMT_FETCH =
28
CLIENT_LONG_PASSWORD =

Client flag

1
CLIENT_FOUND_ROWS =

new more secure passwords

1 << 1
CLIENT_LONG_FLAG =

Found instead of affected rows

1 << 2
CLIENT_CONNECT_WITH_DB =

Get all column flags

1 << 3
CLIENT_NO_SCHEMA =

One can specify db on connect

1 << 4
CLIENT_COMPRESS =

Don’t allow database.table.column

1 << 5
CLIENT_ODBC =

Can use compression protocol

1 << 6
CLIENT_LOCAL_FILES =

Odbc client

1 << 7
CLIENT_IGNORE_SPACE =

Can use LOAD DATA LOCAL

1 << 8
CLIENT_PROTOCOL_41 =

Ignore spaces before ‘(’

1 << 9
CLIENT_INTERACTIVE =

New 4.1 protocol

1 << 10
CLIENT_SSL =

This is an interactive client

1 << 11
CLIENT_IGNORE_SIGPIPE =

Switch to SSL after handshake

1 << 12
CLIENT_TRANSACTIONS =

IGNORE sigpipes

1 << 13
CLIENT_RESERVED =

Client knows about transactions

1 << 14
CLIENT_SECURE_CONNECTION =

Old flag for 4.1 protocol

1 << 15
CLIENT_MULTI_STATEMENTS =

New 4.1 authentication

1 << 16
CLIENT_MULTI_RESULTS =

Enable/disable multi-stmt support

1 << 17
OPT_CONNECT_TIMEOUT =

Connection Option

0
OPT_COMPRESS =
1
OPT_NAMED_PIPE =
2
INIT_COMMAND =
3
READ_DEFAULT_FILE =
4
READ_DEFAULT_GROUP =
5
SET_CHARSET_DIR =
6
SET_CHARSET_NAME =
7
OPT_LOCAL_INFILE =
8
OPT_PROTOCOL =
9
SHARED_MEMORY_BASE_NAME =
10
OPT_READ_TIMEOUT =
11
OPT_WRITE_TIMEOUT =
12
OPT_USE_RESULT =
13
OPT_USE_REMOTE_CONNECTION =
14
OPT_USE_EMBEDDED_CONNECTION =
15
OPT_GUESS_CONNECTION =
16
SET_CLIENT_IP =
17
SECURE_AUTH =
18
REPORT_DATA_TRUNCATION =
19
OPT_RECONNECT =
20
OPT_SSL_VERIFY_SERVER_CERT =
21
OPTION_MULTI_STATEMENTS_ON =

Server Option

0
OPTION_MULTI_STATEMENTS_OFF =
1
SERVER_STATUS_IN_TRANS =

Server Status

1
SERVER_STATUS_AUTOCOMMIT =
1 << 1
SERVER_MORE_RESULTS_EXISTS =
1 << 3
SERVER_QUERY_NO_GOOD_INDEX_USED =
1 << 4
SERVER_QUERY_NO_INDEX_USED =
1 << 5
SERVER_STATUS_CURSOR_EXISTS =
1 << 6
SERVER_STATUS_LAST_ROW_SENT =
1 << 7
SERVER_STATUS_DB_DROPPED =
1 << 8
SERVER_STATUS_NO_BACKSLASH_ESCAPES =
1 << 9
REFRESH_GRANT =

Refresh parameter

1
REFRESH_LOG =
1 << 1
REFRESH_TABLES =
1 << 2
REFRESH_HOSTS =
1 << 3
REFRESH_STATUS =
1 << 4
REFRESH_THREADS =
1 << 5
REFRESH_SLAVE =
1 << 6
REFRESH_MASTER =
1 << 7
REFRESH_READ_LOCK =
1 << 14
REFRESH_FAST =
1 << 15

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeMysqlPR

Returns a new instance of MysqlPR.



80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/mysql-pr.rb', line 80

def initialize
  @fields = nil
  @protocol = nil
  @charset = nil
  @connect_timeout = nil
  @read_timeout = nil
  @write_timeout = nil
  @init_command = nil
  @sqlstate = "00000"
  @query_with_result = true
  @host_info = nil
  @last_error = nil
  @result_exist = false
  @local_infile = nil
end

Instance Attribute Details

#charsetMysqlPR::Charset

Returns character set of MySQL connection.

Returns:



24
25
26
# File 'lib/mysql-pr.rb', line 24

def charset
  @charset
end

#protocolObject (readonly)



26
27
28
# File 'lib/mysql-pr.rb', line 26

def protocol
  @protocol
end

#query_with_resultBoolean

Returns if true, #query return Result.

Returns:



29
30
31
# File 'lib/mysql-pr.rb', line 29

def query_with_result
  @query_with_result
end

Class Method Details

.client_infoString

Returns client version. This value is dummy for MySQL/Ruby compatibility.

Returns:

  • (String)

    client version. This value is dummy for MySQL/Ruby compatibility.



68
69
70
# File 'lib/mysql-pr.rb', line 68

def client_info
  "5.0.0"
end

.client_versionInteger

Returns client version. This value is dummy for MySQL/Ruby compatibility.

Returns:

  • (Integer)

    client version. This value is dummy for MySQL/Ruby compatibility.



74
75
76
# File 'lib/mysql-pr.rb', line 74

def client_version
  50000
end

.escape_string(str) ⇒ String

Escape special character in string.

Parameters:

  • str (String)

Returns:

  • (String)


54
55
56
57
58
59
60
61
62
63
64
# File 'lib/mysql-pr.rb', line 54

def escape_string(str)
  str.gsub(/[\0\n\r\\\'\"\x1a]/) do |s|
    case s
    when "\0" then "\\0"
    when "\n" then "\\n"
    when "\r" then "\\r"
    when "\x1a" then "\\Z"
    else "\\#{s}"
    end
  end
end

.get_client_infoString

Returns client version. This value is dummy for MySQL/Ruby compatibility.

Returns:

  • (String)

    client version. This value is dummy for MySQL/Ruby compatibility.



71
72
73
# File 'lib/mysql-pr.rb', line 71

def client_info
  "5.0.0"
end

.get_client_versionInteger

Returns client version. This value is dummy for MySQL/Ruby compatibility.

Returns:

  • (Integer)

    client version. This value is dummy for MySQL/Ruby compatibility.



77
78
79
# File 'lib/mysql-pr.rb', line 77

def client_version
  50000
end

.initMysql

Make Mysql object without connecting.

Returns:

  • (Mysql)


34
35
36
37
38
# File 'lib/mysql-pr.rb', line 34

def init
  my = self.allocate
  my.instance_eval{initialize}
  my
end

.new(*args) ⇒ Mysql Also known as: real_connect, connect

Make Mysql object and connect to mysqld.

Parameters:

  • args

    same as arguments for #connect.

Returns:

  • (Mysql)


43
44
45
46
# File 'lib/mysql-pr.rb', line 43

def new(*args)
  my = self.init
  my.connect(*args)
end

.quoteString

Escape special character in string.

Parameters:

  • str (String)

Returns:

  • (String)


65
66
67
68
69
70
71
72
73
74
75
# File 'lib/mysql-pr.rb', line 65

def escape_string(str)
  str.gsub(/[\0\n\r\\\'\"\x1a]/) do |s|
    case s
    when "\0" then "\\0"
    when "\n" then "\\n"
    when "\r" then "\\r"
    when "\x1a" then "\\Z"
    else "\\#{s}"
    end
  end
end

Instance Method Details

#affected_rowsInteger

Returns number of affected records by insert/update/delete.

Returns:

  • (Integer)

    number of affected records by insert/update/delete.



277
278
279
# File 'lib/mysql-pr.rb', line 277

def affected_rows
  @protocol ? @protocol.affected_rows : 0
end

#autocommit(flag) ⇒ Mysql

Set autocommit mode

Parameters:

  • flag (Boolean)

Returns:

  • (Mysql)

    self



505
506
507
508
# File 'lib/mysql-pr.rb', line 505

def autocommit(flag)
  query "set autocommit=#{flag ? 1 : 0}"
  self
end

#character_set_nameString

Returns charset name.

Returns:

  • (String)

    charset name



221
222
223
# File 'lib/mysql-pr.rb', line 221

def character_set_name
  @charset.name
end

#client_infoString Also known as: get_client_info

Returns client version.

Returns:

  • (String)

    client version



197
198
199
# File 'lib/mysql-pr.rb', line 197

def client_info
  self.class.client_info
end

#client_versionInteger Also known as: get_client_version

Returns client version.

Returns:

  • (Integer)

    client version



203
204
205
# File 'lib/mysql-pr.rb', line 203

def client_version
  self.class.client_version
end

#closeMysql

Disconnect from mysql.

Returns:

  • (Mysql)

    self



121
122
123
124
125
126
127
# File 'lib/mysql-pr.rb', line 121

def close
  if @protocol
    @protocol.quit_command
    @protocol = nil
  end
  return self
end

#close!Mysql

Disconnect from mysql without QUIT packet.

Returns:

  • (Mysql)

    self



131
132
133
134
135
136
137
# File 'lib/mysql-pr.rb', line 131

def close!
  if @protocol
    @protocol.close
    @protocol = nil
  end
  return self
end

#commitMysql

Commit transaction

Returns:

  • (Mysql)

    self



490
491
492
493
# File 'lib/mysql-pr.rb', line 490

def commit
  query 'commit'
  self
end

#connect(host = nil, user = nil, passwd = nil, db = nil, port = nil, socket = nil, flag = 0) ⇒ Object Also known as: real_connect

Connect to mysqld.

Parameters:

  • host (String / nil) (defaults to: nil)

    hostname mysqld running

  • user (String / nil) (defaults to: nil)

    username to connect to mysqld

  • passwd (String / nil) (defaults to: nil)

    password to connect to mysqld

  • db (String / nil) (defaults to: nil)

    initial database name

  • port (Integer / nil) (defaults to: nil)

    port number (used if host is not ‘localhost’ or nil)

  • socket (String / nil) (defaults to: nil)

    socket file name (used if host is ‘localhost’ or nil)

  • flag (Integer / nil) (defaults to: 0)

    connection flag. MysqlPR::CLIENT_* ORed

Returns:

  • self



105
106
107
108
109
110
111
112
113
114
115
116
# File 'lib/mysql-pr.rb', line 105

def connect(host=nil, user=nil, passwd=nil, db=nil, port=nil, socket=nil, flag=0)
  if flag & CLIENT_COMPRESS != 0
    warn 'unsupported flag: CLIENT_COMPRESS'
    flag &= ~CLIENT_COMPRESS
  end
  @protocol = Protocol.new host, port, socket, @connect_timeout, @read_timeout, @write_timeout
  @protocol.authenticate user, passwd, db, (@local_infile ? CLIENT_LOCAL_FILES : 0) | flag, @charset
  @charset ||= @protocol.charset
  @host_info = (host.nil? || host == "localhost") ? 'Localhost via UNIX socket' : "#{host} via TCP/IP"
  query @init_command if @init_command
  return self
end

#errnoInteger

Returns last error number.

Returns:

  • (Integer)

    last error number



226
227
228
# File 'lib/mysql-pr.rb', line 226

def errno
  @last_error ? @last_error.errno : 0
end

#errorString

Returns last error message.

Returns:

  • (String)

    last error message



231
232
233
# File 'lib/mysql-pr.rb', line 231

def error
  @last_error && @last_error.error
end

#escape_string(str) ⇒ Object Also known as: quote

Escape special character in MySQL.

In Ruby 1.8, this is not safe for multibyte charset such as ‘SJIS’. You should use place-holder in prepared-statement. return [String]

Parameters:

  • str (String)


188
189
190
191
192
193
# File 'lib/mysql-pr.rb', line 188

def escape_string(str)
  if not defined? Encoding and @charset.unsafe
    raise ClientError, 'Mysql#escape_string is called for unsafe multibyte charset'
  end
  self.class.escape_string str
end

#field_countInteger

Returns number of columns for last query.

Returns:

  • (Integer)

    number of columns for last query



241
242
243
# File 'lib/mysql-pr.rb', line 241

def field_count
  @fields.size
end

#host_infoString Also known as: get_host_info

Returns connection type.

Returns:

  • (String)

    connection type



246
247
248
# File 'lib/mysql-pr.rb', line 246

def host_info
  @host_info
end

#infoString

Returns information for last query.

Returns:

  • (String)

    information for last query



272
273
274
# File 'lib/mysql-pr.rb', line 272

def info
  @protocol && @protocol.message
end

#insert_idInteger

Returns latest auto_increment value.

Returns:

  • (Integer)

    latest auto_increment value



282
283
284
# File 'lib/mysql-pr.rb', line 282

def insert_id
  @protocol ? @protocol.insert_id : 0
end

#kill(pid) ⇒ Mysql

Kill query.

Parameters:

  • pid (Integer)

    thread id

Returns:

  • (Mysql)

    self



294
295
296
297
298
# File 'lib/mysql-pr.rb', line 294

def kill(pid)
  check_connection
  @protocol.kill_command pid
  self
end

#list_dbs(db = nil) ⇒ Array<String>

database list.

Parameters:

  • db (String) (defaults to: nil)

    database name that may contain wild card.

Returns:

  • (Array<String>)

    database list



303
304
305
306
# File 'lib/mysql-pr.rb', line 303

def list_dbs(db=nil)
  db &&= db.gsub(/[\\\']/){"\\#{$&}"}
  query(db ? "show databases like '#{db}'" : "show databases").map(&:first)
end

#list_fields(table, field = nil) ⇒ MysqlPR::Result

Returns MysqlPR::Result object that is empty. Use fetch_fields to get list of fields.

Parameters:

  • table (String)

    table name.

  • field (String) (defaults to: nil)

    field name that may contain wild card.

Returns:



417
418
419
420
421
422
423
424
425
426
427
# File 'lib/mysql-pr.rb', line 417

def list_fields(table, field=nil)
  check_connection
  begin
    fields = @protocol.field_list_command table, field
    return Result.new fields
  rescue ServerError => e
    @last_error = e
    @sqlstate = e.sqlstate
    raise
  end
end

#list_processesMysqlPR::Result

Returns containing process list.

Returns:



430
431
432
433
434
435
# File 'lib/mysql-pr.rb', line 430

def list_processes
  check_connection
  @fields = @protocol.process_info_command
  @result_exist = true
  store_result
end

#list_tables(table = nil) ⇒ Array<String>

Note:

for Ruby 1.8: This is not multi-byte safe. Don’t use for multi-byte charset such as cp932.

Returns list of table name.

Parameters:

  • table (String) (defaults to: nil)

    database name that may contain wild card.

Returns:

  • (Array<String>)

    list of table name.



440
441
442
443
# File 'lib/mysql-pr.rb', line 440

def list_tables(table=nil)
  q = table ? "show tables like '#{quote table}'" : "show tables"
  query(q).map(&:first)
end

#more_resultsBoolean Also known as: more_results?

Returns true if multiple queries are specified and unexecuted queries exists.

Returns:

  • (Boolean)

    true if multiple queries are specified and unexecuted queries exists.



377
378
379
# File 'lib/mysql-pr.rb', line 377

def more_results
  @protocol.server_status & SERVER_MORE_RESULTS_EXISTS != 0
end

#next_resultBoolean

execute next query if multiple queries are specified.

Returns:

  • (Boolean)

    true if next query exists.



384
385
386
387
388
389
390
391
392
393
394
# File 'lib/mysql-pr.rb', line 384

def next_result
  return false unless more_results
  check_connection
  @fields = nil
  nfields = @protocol.get_result
  if nfields
    @fields = @protocol.retr_fields nfields
    @result_exist = true
  end
  return true
end

#options(opt, value = nil) ⇒ Mysql

Set option for connection.

Available options:

MysqlPR::INIT_COMMAND, MysqlPR::OPT_CONNECT_TIMEOUT, MysqlPR::OPT_READ_TIMEOUT,
MysqlPR::OPT_WRITE_TIMEOUT, MysqlPR::SET_CHARSET_NAME

Parameters:

  • opt (Integer)

    option

  • value (Integer) (defaults to: nil)

    option value that is depend on opt

Returns:

  • (Mysql)

    self



147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
# File 'lib/mysql-pr.rb', line 147

def options(opt, value=nil)
  case opt
  when MysqlPR::INIT_COMMAND
    @init_command = value.to_s
#    when MysqlPR::OPT_COMPRESS
  when MysqlPR::OPT_CONNECT_TIMEOUT
    @connect_timeout = value
#    when MysqlPR::GUESS_CONNECTION
  when MysqlPR::OPT_LOCAL_INFILE
    @local_infile = value
#    when MysqlPR::OPT_NAMED_PIPE
#    when MysqlPR::OPT_PROTOCOL
  when MysqlPR::OPT_READ_TIMEOUT
    @read_timeout = value.to_i
#    when MysqlPR::OPT_RECONNECT
#    when MysqlPR::SET_CLIENT_IP
#    when MysqlPR::OPT_SSL_VERIFY_SERVER_CERT
#    when MysqlPR::OPT_USE_EMBEDDED_CONNECTION
#    when MysqlPR::OPT_USE_REMOTE_CONNECTION
  when MysqlPR::OPT_WRITE_TIMEOUT
    @write_timeout = value.to_i
#    when MysqlPR::READ_DEFAULT_FILE
#    when MysqlPR::READ_DEFAULT_GROUP
#    when MysqlPR::REPORT_DATA_TRUNCATION
#    when MysqlPR::SECURE_AUTH
#    when MysqlPR::SET_CHARSET_DIR
  when MysqlPR::SET_CHARSET_NAME
    @charset = Charset.by_name value.to_s
#    when MysqlPR::SHARED_MEMORY_BASE_NAME
  else
    warn "option not implemented: #{opt}"
  end
  self
end

#pingMysql

Check whether the connection is available.

Returns:

  • (Mysql)

    self



447
448
449
450
451
# File 'lib/mysql-pr.rb', line 447

def ping
  check_connection
  @protocol.ping_command
  self
end

#prepare(str) ⇒ MysqlPR::Stmt

Parse prepared-statement.

Parameters:

  • str (String)

    query string

Returns:



399
400
401
402
403
# File 'lib/mysql-pr.rb', line 399

def prepare(str)
  st = Stmt.new @protocol, @charset
  st.prepare str
  st
end

#proto_infoInteger Also known as: get_proto_info

Returns protocol version.

Returns:

  • (Integer)

    protocol version



252
253
254
# File 'lib/mysql-pr.rb', line 252

def proto_info
  MysqlPR::Protocol::VERSION
end

#query(str) {|MysqlPR::Result| ... } ⇒ MysqlPR::Result, ... Also known as: real_query

Execute query string.

Examples:

my.query("select 1,NULL,'abc'").fetch  # => [1, nil, "abc"]

Parameters:

  • str (String)

    Query.

Yields:

Returns:



316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
# File 'lib/mysql-pr.rb', line 316

def query(str, &block)
  check_connection
  @fields = nil
  begin
    nfields = @protocol.query_command str
    if nfields
      @fields = @protocol.retr_fields nfields
      @result_exist = true
    end
    if block
      while true
        block.call store_result if @fields
        break unless next_result
      end
      return self
    end
    if @query_with_result
      return @fields ? store_result : nil
    else
      return self
    end
  rescue ServerError => e
    @last_error = e
    @sqlstate = e.sqlstate
    raise
  end
end

#refresh(op) ⇒ Mysql

Flush tables or caches.

Parameters:

  • op (Integer)

    operation. Use MysqlPR::REFRESH_* value.

Returns:

  • (Mysql)

    self



456
457
458
459
460
# File 'lib/mysql-pr.rb', line 456

def refresh(op)
  check_connection
  @protocol.refresh_command op
  self
end

#reloadMysql

Reload grant tables.

Returns:

  • (Mysql)

    self



464
465
466
# File 'lib/mysql-pr.rb', line 464

def reload
  refresh MysqlPR::REFRESH_GRANT
end

#rollbackMysql

Rollback transaction

Returns:

  • (Mysql)

    self



497
498
499
500
# File 'lib/mysql-pr.rb', line 497

def rollback
  query 'rollback'
  self
end

#select_db(db) ⇒ Mysql

Select default database

Returns:

  • (Mysql)

    self



470
471
472
473
# File 'lib/mysql-pr.rb', line 470

def select_db(db)
  query "use #{db}"
  self
end

#server_infoString Also known as: get_server_info

Returns server version.

Returns:

  • (String)

    server version



258
259
260
261
# File 'lib/mysql-pr.rb', line 258

def server_info
  check_connection
  @protocol.server_info
end

#server_versionInteger Also known as: get_server_version

Returns server version.

Returns:

  • (Integer)

    server version



265
266
267
268
# File 'lib/mysql-pr.rb', line 265

def server_version
  check_connection
  @protocol.server_version
end

#set_server_option(opt) ⇒ Mysql

Set server option.

Parameters:

Returns:

  • (Mysql)

    self



370
371
372
373
374
# File 'lib/mysql-pr.rb', line 370

def set_server_option(opt)
  check_connection
  @protocol.set_option_command opt
  self
end

#shutdown(level = 0) ⇒ Mysql

shutdown server.

Returns:

  • (Mysql)

    self



477
478
479
480
481
# File 'lib/mysql-pr.rb', line 477

def shutdown(level=0)
  check_connection
  @protocol.shutdown_command level
  self
end

#sqlstateString

Returns sqlstate for last error.

Returns:

  • (String)

    sqlstate for last error



236
237
238
# File 'lib/mysql-pr.rb', line 236

def sqlstate
  @last_error ? @last_error.sqlstate : "00000"
end

#statString

Returns statistics message.

Returns:

  • (String)

    statistics message



484
485
486
# File 'lib/mysql-pr.rb', line 484

def stat
  @protocol ? @protocol.statistics_command : 'MySQL server has gone away'
end

#stmt_initMysqlPR::Stmt

Make empty prepared-statement object.

Returns:



408
409
410
# File 'lib/mysql-pr.rb', line 408

def stmt_init
  Stmt.new @protocol, @charset
end

#store_resultMysqlPR::Result

Get all data for last query if query_with_result is false.

Returns:

Raises:



347
348
349
350
351
352
353
# File 'lib/mysql-pr.rb', line 347

def store_result
  check_connection
  raise ClientError, 'invalid usage' unless @result_exist
  res = Result.new @fields, @protocol
  @result_exist = false
  res
end

#thread_idInteger

Returns Thread ID.

Returns:

  • (Integer)

    Thread ID



356
357
358
359
# File 'lib/mysql-pr.rb', line 356

def thread_id
  check_connection
  @protocol.thread_id
end

#use_resultMysqlPR::Result

Use result of query. The result data is retrieved when you use MysqlPR::Result#fetch.

Returns:



363
364
365
# File 'lib/mysql-pr.rb', line 363

def use_result
  store_result
end

#warning_countInteger

Returns number of warnings for previous query.

Returns:

  • (Integer)

    number of warnings for previous query



287
288
289
# File 'lib/mysql-pr.rb', line 287

def warning_count
  @protocol ? @protocol.warning_count : 0
end