diff --git a/README.md b/README.md
index 9ebfd83..2d4a686 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
MariaDB node.js connector is a [mysql](https://www.npmjs.com/package/mysql) compatible driver, used to connect applications developed in Java to MariaDB and MySQL databases. MariaDB Connector/J is LGPL licensed.
-Tracker link https://jira.mariadb.org/projects/CONJS/issues/
+Extended documentation of API : [Complete documentation](/documentation/readme.md)
## Status
[](https://travis-ci.org/rusher/mariadb-connector-nodejs)
@@ -24,7 +24,6 @@ Tracker link https://j
-
explain why good perfs (avoiding string concatenation, buffer are send are binary, not hexa string, ...)
@@ -47,3 +46,6 @@ For a Getting started guide, API docs, recipes, etc. see the
## Contributing
To get started with a development installation and learn more about contributing, please follow the instructions at our
[Developers Guide.](/documentation/developers-guide.md)
+
+Tracker link https://jira.mariadb.org/projects/CONJS/issues/
+
diff --git a/benchmarks/benchmarkOne.js b/benchmarks/benchmarkOne.js
index af77de6..3f367ad 100644
--- a/benchmarks/benchmarkOne.js
+++ b/benchmarks/benchmarkOne.js
@@ -9,10 +9,10 @@ var run = function() {
bench = new Bench(run);
var launchBenchs = function(path) {
- var test = 'bench_select_one_user.js';
+ var test = 'bench_select_param.js';
var m = require(path + '/' + test);
bench.initFcts.push(m.initFct);
- bench.add(m.title, m.displaySql, m.benchFct, m.onComplet);
+ bench.add(m.title, m.displaySql, m.benchFct, m.onComplete);
};
fs.access('./benchs', function(err) {
diff --git a/benchmarks/benchmarks.js b/benchmarks/benchmarks.js
index 1bb14d2..981c1a7 100644
--- a/benchmarks/benchmarks.js
+++ b/benchmarks/benchmarks.js
@@ -1,14 +1,14 @@
-var fs = require('fs');
-var Bench = require('./common_benchmarks');
-var bench;
+const fs = require('fs');
+const Bench = require('./common_benchmarks');
+let bench;
-var run = function() {
+const run = function() {
bench.suite.run();
};
bench = new Bench(run);
-var launchBenchs = function(path) {
+const launchBenchs = function(path) {
fs.readdir(path, function(err, list) {
if (err) {
console.error(err);
@@ -16,8 +16,8 @@ var launchBenchs = function(path) {
}
//launch all benchmarks
- for (var i = 0; i < list.length; i++) {
- var m = require('./benchs/' + list[i]);
+ for (let i = 0; i < list.length; i++) {
+ const m = require('./benchs/' + list[i]);
bench.initFcts.push(m.initFct);
bench.add(m.title, m.displaySql, m.benchFct, m.onComplete);
}
diff --git a/benchmarks/benchs/bench_basic_insert.js b/benchmarks/benchs/bench_basic_insert.js
index b3b3fa9..092a24f 100644
--- a/benchmarks/benchs/bench_basic_insert.js
+++ b/benchmarks/benchs/bench_basic_insert.js
@@ -1,4 +1,4 @@
-var assert = require('assert');
+const assert = require('assert');
module.exports.title = 'simple insert';
module.exports.displaySql = 'INSERT INTO testn.perfTest(test) VALUES (?) (into BLACKHOLE ENGINE) ';
diff --git a/benchmarks/benchs/bench_insert.js b/benchmarks/benchs/bench_insert.js
index b2519d0..036d784 100644
--- a/benchmarks/benchs/bench_insert.js
+++ b/benchmarks/benchs/bench_insert.js
@@ -1,22 +1,22 @@
-var assert = require('assert');
+const assert = require('assert');
-var basechars = '123456789abcdefghijklmnop\\Z';
-var chars = basechars.split('');
+const basechars = '123456789abcdefghijklmnop\\Z';
+const chars = basechars.split('');
chars.push('😎');
chars.push('🌶');
chars.push('🎤');
chars.push('🥂');
function randomString(length) {
- var result = '';
- for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))];
+ let result = '';
+ for (let i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))];
return result;
}
-var sqlTable = 'CREATE TABLE testn.perfTestText (id MEDIUMINT NOT NULL AUTO_INCREMENT,t0 text';
-var sqlParam = '';
-var sqlCol = 't0';
-for (var i = 1; i < 10; i++) {
+let sqlTable = 'CREATE TABLE testn.perfTestText (id MEDIUMINT NOT NULL AUTO_INCREMENT,t0 text';
+let sqlParam = '';
+let sqlCol = 't0';
+for (let i = 1; i < 10; i++) {
sqlParam += ',?';
sqlCol += ',t' + i;
sqlTable += ',t' + i + ' text';
@@ -29,8 +29,8 @@ module.exports.displaySql =
'INSERT INTO testn.perfTestText VALUES (<100 ?>) (into BLACKHOLE ENGINE)';
module.exports.benchFct = function(conn, deferred) {
- var params = [];
- for (var i = 0; i < 10; i++) {
+ const params = [];
+ for (let i = 0; i < 10; i++) {
params.push(randomString(10));
}
diff --git a/benchmarks/benchs/bench_select_collation.js b/benchmarks/benchs/bench_select_collation.js
index 8848741..12627cf 100644
--- a/benchmarks/benchs/bench_select_collation.js
+++ b/benchmarks/benchs/bench_select_collation.js
@@ -1,4 +1,4 @@
-var assert = require('assert');
+const assert = require('assert');
module.exports.title = 'select multiple collation';
module.exports.displaySql = 'select * from information_schema.COLLATIONS';
diff --git a/benchmarks/benchs/bench_select_one_user.js b/benchmarks/benchs/bench_select_one_user.js
index b057c79..2a35f84 100644
--- a/benchmarks/benchs/bench_select_one_user.js
+++ b/benchmarks/benchs/bench_select_one_user.js
@@ -1,4 +1,4 @@
-var assert = require('assert');
+const assert = require('assert');
module.exports.title = 'select one mysql.user';
module.exports.displaySql =
diff --git a/benchmarks/benchs/bench_select_param.js b/benchmarks/benchs/bench_select_param.js
index 92933ef..56677c7 100644
--- a/benchmarks/benchs/bench_select_param.js
+++ b/benchmarks/benchs/bench_select_param.js
@@ -1,10 +1,10 @@
-var assert = require('assert');
+const assert = require('assert');
module.exports.title = 'select ?';
module.exports.displaySql = 'select ?';
module.exports.benchFct = function(conn, deferred) {
- var rand = Math.floor(Math.random() * 50000000);
+ const rand = Math.floor(Math.random() * 50000000);
conn.query('select ? as t', [rand], function(err, rows) {
assert.ifError(err);
assert.equal(rand, rows[0].t);
diff --git a/benchmarks/common_benchmarks.js b/benchmarks/common_benchmarks.js
index f72f3c0..bad411f 100644
--- a/benchmarks/common_benchmarks.js
+++ b/benchmarks/common_benchmarks.js
@@ -1,11 +1,11 @@
-var Benchmark = require('benchmark');
-var conf = require('../test/conf');
+const Benchmark = require('benchmark');
+const conf = require('../test/conf');
-var colors = require('colors');
-var mariadb = require('../index.js');
-var mysql = require('mysql');
-var mysql2 = require('mysql2');
-var mariasqlC;
+const colors = require('colors');
+const mariadb = require('../index.js');
+const mysql = require('mysql');
+const mysql2 = require('mysql2');
+let mariasqlC;
try {
mariasqlC = require('mariasql');
} catch (err) {
@@ -13,10 +13,10 @@ try {
}
function Bench(callback) {
- var dbReady = 0;
+ let dbReady = 0;
this.reportData = {};
- var ready = function(name) {
+ const ready = function(name) {
console.log('driver for ' + name + ' connected');
dbReady++;
if (dbReady === (mariasqlC ? 4 : 3)) {
@@ -25,8 +25,12 @@ function Bench(callback) {
}
};
- var config = conf.baseConfig;
+ const config = conf.baseConfig;
config.charsetNumber=224;
+ if (process.platform !== 'win32') {
+ config.socketPath= '\\\\.\\pipe\\MySQL';
+ }
+
this.CONN = {};
this.CONN['MYSQL'] = { drv: mysql.createConnection(config), desc: 'mysql' };
@@ -52,7 +56,7 @@ function Bench(callback) {
});
if (mariasqlC) {
- var configC = Object.assign({}, common.config);
+ const configC = Object.assign({}, config);
configC.charset = undefined;
this.CONN['MARIASQLC'] = {
@@ -68,11 +72,11 @@ function Bench(callback) {
this.queue = true;
this.async = true;
this.minSamples = 200;
- var bench = this;
+ const bench = this;
this.suite = new Benchmark.Suite('foo', {
// called when the suite starts running
onStart: function() {
- for (var i = 0; i < bench.initFcts.length; i++) {
+ for (let i = 0; i < bench.initFcts.length; i++) {
if (bench.initFcts[i]) {
bench.initFcts[i].call(this, bench.CONN.MYSQL.drv);
}
@@ -85,11 +89,11 @@ function Bench(callback) {
mysql2.clearParserCache();
console.log(event.target.toString());
- var drvType = event.target.options.drvType;
- var benchTitle =
+ const drvType = event.target.options.drvType;
+ const benchTitle =
event.target.options.benchTitle + ' ( sql: ' + event.target.options.displaySql + ' )';
- var iteration = 1 / event.target.times.period;
- var variation = event.target.stats.rme;
+ const iteration = 1 / event.target.times.period;
+ const variation = event.target.stats.rme;
if (!bench.reportData[benchTitle]) {
bench.reportData[benchTitle] = [];
@@ -137,14 +141,14 @@ Bench.prototype.displayReport = function() {
.gray
);
- var keys = Object.keys(this.reportData);
- for (var i = 0; i < keys.length; i++) {
- var base = 0;
- var best = 0;
- var data = this.reportData[keys[i]];
+ const keys = Object.keys(this.reportData);
+ for (let i = 0; i < keys.length; i++) {
+ let base = 0;
+ let best = 0;
+ let data = this.reportData[keys[i]];
- for (var j = 0; j < data.length; j++) {
- var o = data[j];
+ for (let j = 0; j < data.length; j++) {
+ let o = data[j];
if (o.drvType === (mariasqlC ? 'mariasqlC' : 'mysql')) {
base = o.iteration;
}
@@ -155,11 +159,11 @@ Bench.prototype.displayReport = function() {
console.log('');
console.log('bench : ' + keys[i]);
- for (var j = 0; j < data.length; j++) {
- var o = data[j];
- var val = 100 * (o.iteration - base) / base;
- var perc = simpleFormat.format(val);
- var tt =
+ for (let j = 0; j < data.length; j++) {
+ let o = data[j];
+ const val = 100 * (o.iteration - base) / base;
+ const perc = simpleFormat.format(val);
+ const tt =
' ' +
this.fill(o.drvType, 10) +
' : ' +
@@ -196,7 +200,7 @@ Bench.prototype.fill = function(val, length, right) {
};
Bench.prototype.add = function(title, displaySql, fct, onComplete, conn) {
- var self = this;
+ const self = this;
if (conn) {
this.suite.add({
@@ -221,7 +225,7 @@ Bench.prototype.add = function(title, displaySql, fct, onComplete, conn) {
fn: function(deferred) {
fct.call(self, self.CONN.MYSQL.drv, deferred);
},
- onComplete: function() {
+ onComplete: () => {
if (onComplete) onComplete.call(self, self.CONN.MYSQL.drv);
},
async: this.async,
@@ -238,7 +242,7 @@ Bench.prototype.add = function(title, displaySql, fct, onComplete, conn) {
fn: function(deferred) {
fct.call(self, self.CONN.MYSQL.drv, deferred);
},
- onComplete: function(defer) {
+ onComplete: () => {
if (onComplete) onComplete.call(self, self.CONN.MYSQL2.drv);
},
async: this.async,
@@ -255,7 +259,7 @@ Bench.prototype.add = function(title, displaySql, fct, onComplete, conn) {
fn: function(deferred) {
fct.call(self, self.CONN.MYSQL2.drv, deferred);
},
- onComplete: function(defer) {
+ onComplete: () => {
if (onComplete) onComplete.call(self, self.CONN.MARIADB.drv);
},
async: this.async,
@@ -272,7 +276,7 @@ Bench.prototype.add = function(title, displaySql, fct, onComplete, conn) {
fn: function(deferred) {
fct.call(self, self.CONN.MARIADB.drv, deferred);
},
- onComplete: function(defer) {
+ onComplete: () => {
if (onComplete) onComplete.call(self, self.CONN.MARIADB.drv);
},
async: this.async,
@@ -290,7 +294,7 @@ Bench.prototype.add = function(title, displaySql, fct, onComplete, conn) {
fn: function(deferred) {
fct.call(self, self.CONN.MARIASQLC.drv, deferred);
},
- onComplete: function(defer) {
+ onComplete: () => {
if (onComplete) onComplete.call(self, self.CONN.MARIASQLC.drv);
},
async: this.async,
diff --git a/documentation/readme.md b/documentation/readme.md
index c8ba81d..9dbcbf5 100644
--- a/documentation/readme.md
+++ b/documentation/readme.md
@@ -32,6 +32,31 @@ Not implemented :
escape function are not implemented, since it can lead to injection.
statistic method is public in mysql, but not documented.
+
+### Initiate a connection
+
+For faster connections to localhost, either the Unix socket file to use (default /tmp/mysql.sock),
+or, on Windows where the server has been started with the --enable-named-pipe option, the name (case-insensitive) of the named pipe to use (default MySQL).
+
+
+This is done by setting the option 'socketPath' (host and port option are then ignored).
+This permit to avoid TCP-IP layer.
+
+If not on localhost, then hostname must be set, port is optional with default 3306.
+
+```javascript
+var mariadb = require('mariadb-connector');
+
+//localhost on windows
+var conn1 = mariadb.createConnection({socketPath: '\\\\.\\pipe\\MySQL'});
+
+//localhost on unix
+var conn2 = mariadb.createConnection({socketPath: '/tmp/mysql.sock'});
+
+//not localhost
+var conn3 = mariadb.createConnection({host: 'mydb.com', port:9999});
+```
+
## Query
`connection.query(sql[, values][,callback])`
diff --git a/package.json b/package.json
index 278a7f9..364167b 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
- "name": "nodejs-mariadb",
+ "name": "mariadb-connector",
"version": "0.0.1",
- "description": "fast mysql/mariadb driver.",
+ "description": "fast mariadb/mysql driver.",
"main": "index.js",
"directories": {
"src": "src",