mysql2 0.4.8 → 0.4.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e7d8412fd748f512eea9d6f002debbf391015076
4
- data.tar.gz: 18b36bf7d16fa74d2ab8e70f0755a878855406e2
3
+ metadata.gz: 81b2c704867b20697229ff4dd023e934fff560bb
4
+ data.tar.gz: c528b0bfb4d5ab7f25282c949c41d8d821d7f7e3
5
5
  SHA512:
6
- metadata.gz: 40bf54985020e68f7a4a3eccbe9107c43a01a5c8a070e8551732c431bc30fcdc957c303df16a3d579bade7c8d2e4baaa5672684981767a3e293c556a74f0d591
7
- data.tar.gz: 47068b98030e38c7344498cacbc899434716b21e357a44148638646bc2e13dcfea08191bf1b972b7208f94728f26c0641246c06071d7cb2482f3ff08113a461f
6
+ metadata.gz: 2851f6e453dc7ab3ead0dc08601f38fbe155b426e41a1ea1fea4a3264d134e56203ed7bf2f41ba7bb1ce7d884fc8594481bfe62f94bcdd2c9960b57d68a93f70
7
+ data.tar.gz: c46c2639a067be942a4192157141fc579f360985052561807537b2fda6363f93cf7e864ab379d443f033cfeef0a4326eaa5d9c1a57235ad5efd498196f1373a2
data/README.md CHANGED
@@ -213,21 +213,18 @@ Mysql2::Client.new(
213
213
  )
214
214
  ```
215
215
 
216
- ### Connecting to localhost
217
-
218
- The underlying MySQL client library has a special interpretation of the "localhost" default connection host name:
219
-
220
- 1. Attempt to connect via local socket (as specified in your distribution's my.cnf or `default_file` config file).
221
- 2. But if the socket is not available, look up "localhost" to find an IP address...
222
- * The file "/etc/hosts" is generally the source of truth for "localhost", and can override its value.
223
- * Systems with IPv4 use "127.0.0.1"
224
- * Systems with IPv6 use "::1"
225
- * Systems with both IPv4 and IPv6 can be configured to prefer one or the other.
226
- 3. If an address is found for "localhost", connect to it over TCP/IP.
227
-
228
- You can be explicit about using either a local socket or a TCP/IP connection,
229
- and whether to use IPv4 or IPv6, by specifying a value other than "localhost"
230
- for the `host` or `socket` connection options.
216
+ ### Connecting to MySQL on localhost and elsewhere
217
+
218
+ The underlying MySQL client library uses the `:host` parameter to determine the
219
+ type of connection to make, with special interpretation you should be aware of:
220
+
221
+ * An empty value or `"localhost"` will attempt a local connection:
222
+ * On Unix, connect to the default local socket path. (To set a custom socket
223
+ path, use the `:socket` parameter).
224
+ * On Windows, connect using a shared-memory connection, if enabled, or TCP.
225
+ * A value of `"."` on Windows specifies a named-pipe connection.
226
+ * An IPv4 or IPv6 address will result in a TCP connection.
227
+ * Any other value will be looked up as a hostname for a TCP connection.
231
228
 
232
229
  ### SSL options
233
230
 
@@ -903,7 +903,7 @@ static VALUE _mysql_client_options(VALUE self, int opt, VALUE value) {
903
903
  retval = charval;
904
904
  break;
905
905
 
906
- #ifdef MYSQL_ENABLE_CLEARTEXT_PLUGIN
906
+ #ifdef HAVE_CONST_MYSQL_ENABLE_CLEARTEXT_PLUGIN
907
907
  case MYSQL_ENABLE_CLEARTEXT_PLUGIN:
908
908
  boolval = (value == Qfalse ? 0 : 1);
909
909
  retval = &boolval;
@@ -1328,7 +1328,7 @@ static VALUE set_init_command(VALUE self, VALUE value) {
1328
1328
  }
1329
1329
 
1330
1330
  static VALUE set_enable_cleartext_plugin(VALUE self, VALUE value) {
1331
- #ifdef MYSQL_ENABLE_CLEARTEXT_PLUGIN
1331
+ #ifdef HAVE_CONST_MYSQL_ENABLE_CLEARTEXT_PLUGIN
1332
1332
  return _mysql_client_options(self, MYSQL_ENABLE_CLEARTEXT_PLUGIN, value);
1333
1333
  #else
1334
1334
  rb_raise(cMysql2Error, "enable-cleartext-plugin is not available, you may need a newer MySQL client library");
@@ -114,6 +114,7 @@ mysql_h = [prefix, 'mysql.h'].compact.join('/')
114
114
  add_ssl_defines(mysql_h)
115
115
  have_struct_member('MYSQL', 'net.vio', mysql_h)
116
116
  have_struct_member('MYSQL', 'net.pvio', mysql_h)
117
+ have_const('MYSQL_ENABLE_CLEARTEXT_PLUGIN', mysql_h)
117
118
 
118
119
  # This is our wishlist. We use whichever flags work on the host.
119
120
  # -Wall and -Wextra are included by default.
@@ -343,6 +343,16 @@ static VALUE execute(int argc, VALUE *argv, VALUE self) {
343
343
  #endif
344
344
  set_buffer_for_string(&bind_buffers[i], &length_buffers[i], params_enc[i]);
345
345
  break;
346
+ case T_TRUE:
347
+ bind_buffers[i].buffer_type = MYSQL_TYPE_TINY;
348
+ bind_buffers[i].buffer = xmalloc(sizeof(signed char));
349
+ *(signed char*)(bind_buffers[i].buffer) = 1;
350
+ break;
351
+ case T_FALSE:
352
+ bind_buffers[i].buffer_type = MYSQL_TYPE_TINY;
353
+ bind_buffers[i].buffer = xmalloc(sizeof(signed char));
354
+ *(signed char*)(bind_buffers[i].buffer) = 0;
355
+ break;
346
356
  default:
347
357
  // TODO: what Ruby type should support MYSQL_TYPE_TIME
348
358
  if (CLASS_OF(argv[i]) == rb_cTime || CLASS_OF(argv[i]) == cDateTime) {
@@ -1,3 +1,3 @@
1
1
  module Mysql2
2
- VERSION = "0.4.8"
2
+ VERSION = "0.4.9"
3
3
  end
@@ -1026,6 +1026,11 @@ RSpec.describe Mysql2::Client do
1026
1026
  expect(@client.ping).to eql(false)
1027
1027
  end
1028
1028
 
1029
+ it "should be able to connect using plaintext password" do
1030
+ client = new_client(:enable_cleartext_plugin => true)
1031
+ client.query('SELECT 1')
1032
+ end
1033
+
1029
1034
  unless RUBY_VERSION =~ /1.8/
1030
1035
  it "should respond to #encoding" do
1031
1036
  expect(@client).to respond_to(:encoding)
@@ -61,6 +61,12 @@ RSpec.describe Mysql2::Statement do
61
61
  expect(rows).to eq([{ "1" => 1 }])
62
62
  end
63
63
 
64
+ it "should handle booleans" do
65
+ stmt = @client.prepare('SELECT ? AS `true`, ? AS `false`')
66
+ result = stmt.execute(true, false)
67
+ expect(result.to_a).to eq(['true' => 1, 'false' => 0])
68
+ end
69
+
64
70
  it "should handle bignum but in int64_t" do
65
71
  stmt = @client.prepare('SELECT ? AS max, ? AS min')
66
72
  int64_max = (1 << 63) - 1
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mysql2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.8
4
+ version: 0.4.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Lopez
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-07-10 00:00:00.000000000 Z
12
+ date: 2017-08-11 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description:
15
15
  email: