text: var common     = require('../../common');
  var connection = common.createConnection();
  var assert     = require('assert');
  
  var table = 'load_data_test';
  connection.query([
    'CREATE TEMPORARY TABLE `' + table + '` (',
    '`id` int(11) unsigned NOT NULL AUTO_INCREMENT,',
    '`title` varchar(255),',
    'PRIMARY KEY (`id`)',
    ') ENGINE=InnoDB DEFAULT CHARSET=utf8'
  ].join('\n'));
  
  var path = './test/fixtures/data.csv';
  var sql =
    'LOAD DATA LOCAL INFILE ? INTO TABLE ' + table + ' ' +
    'FIELDS TERMINATED BY ? (id, title)';
  
  var ok;
  connection.query(sql, [path, ','], function(err, _ok) {
    if (err) throw err;
    ok = _ok;
  });
  
  var rows;
  connection.query('SELECT * FROM ' + table, function(err, _rows) {
    if (err) throw err;
    rows = _rows;
  });
  
  // Try to load a file that does not exist to see if we handle this properly
  var loadErr;
  var loadResult;
  var badPath = '/does_not_exist.csv';
  
  connection.query(sql, [badPath, ','], function(err, result) {
    loadErr    = err;
    loadResult = result;
  });
  
  // test path mapping
  var Stream = require('readable-stream').PassThrough;
  var myStream = new Stream();
  
  var createMyStream = function(path) { return myStream; };
  var streamResult;
  connection.query({
      sql: sql,
      values: [badPath, ','],
      infileStreamFactory: createMyStream
    }, function(err, result) {
      if (err) throw err;
      streamResult = result;
    }
  );
  myStream.write('11,Hello World\n');
  myStream.write('21,One ');
  myStream.write('more row\n');
  myStream.end();
  
  connection.end();
  
  process.on('exit', function() {
    assert.equal(ok.affectedRows, 4);
    assert.equal(rows.length, 4);
    assert.equal(rows[0].id, 1);
    assert.equal(rows[0].title, 'Hello World');
  
    assert.equal(loadErr.code, 'ENOENT');
    assert.equal(loadResult.affectedRows, 0);
  
    assert.equal(streamResult.affectedRows, 2);
  });
  