You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ca...@codespot.com on 2012/01/30 19:18:55 UTC
[cassandra-node] push by gdusbabek@gmail.com - Issue 11: allow
inserting blobs directly.... on 2012-01-30 18:18 GMT
Revision: 8e2e7d4f5823
Author: gdusbabek <gd...@gmail.com>
Date: Mon Jan 30 10:16:45 2012
Log: Issue 11: allow inserting blobs directly.
(http://code.google.com/a/apache-extras.org/p/cassandra-node/issues/detail?id=28)
Patch by Christoph Tavan <ch...@gmail.com>
* buffers get converted to hex strings on the fly.
http://code.google.com/a/apache-extras.org/p/cassandra-node/source/detail?r=8e2e7d4f5823
Modified:
/lib/decoder.js
/lib/driver.js
/test/test_decoder.js
/test/test_driver.js
=======================================
--- /lib/decoder.js Tue Jan 17 09:03:33 2012
+++ /lib/decoder.js Mon Jan 30 10:16:45 2012
@@ -65,24 +65,6 @@
return bytesToBigInt(bytes);
};
-// just what you think.
-function byteToHex(n) {
- if (n < 16) {
- return '0' + n.toString(16);
- } else {
- return n.toString(16);
- }
-}
-
-/** convert a buffer to a hex string suitable for use in cql statements. */
-var bufferToString = module.exports.bufferToString = function(buf) {
- var chars = [];
- for (var i = 0; i < buf.length; i++) {
- chars[i] = byteToHex(buf[i]);
- }
- return chars.join('');
-};
-
// Cassandra datatypes according to
// http://www.datastax.com/docs/1.0/ddl/column_family
// Those commented out are not correctly dealt with yet and will appear as
=======================================
--- /lib/driver.js Mon Jan 23 11:22:55 2012
+++ /lib/driver.js Mon Jan 30 10:16:45 2012
@@ -23,7 +23,6 @@
var util = require('util');
var constants = require('constants');
-var Buffer = require('buffer').Buffer;
var EventEmitter = require('events').EventEmitter;
var thrift = require('thrift');
@@ -59,11 +58,14 @@
/** converts object to a string using toString() method if it exists. */
function stringify(x) {
+ // node buffers should be hex encoded
+ if (x instanceof Buffer) {
+ return x.toString('hex');
+ }
if (x.toString) {
return x.toString();
- } else {
- return x;
- }
+ }
+ return x;
}
/** wraps in quotes */
=======================================
--- /test/test_decoder.js Wed Jan 11 08:05:25 2012
+++ /test/test_decoder.js Mon Jan 30 10:16:45 2012
@@ -252,6 +252,6 @@
buf[3] = 0x99;
buf[4] = 0xcc;
buf[5] = 0xff;
- assert.strictEqual('00336699ccff', bufferToString(buf));
+ assert.strictEqual('00336699ccff', buf.toString('hex'));
test.finish();
};
=======================================
--- /test/test_driver.js Mon Jan 16 08:31:48 2012
+++ /test/test_driver.js Mon Jan 30 10:16:45 2012
@@ -438,14 +438,13 @@
assert.ifError(err);
var key = 'binarytest';
var binaryParams = [util.randomBuffer(), util.randomBuffer(),
util.randomBuffer()];
- var stringParams = binaryParams.map(decoder.bufferToString);
- con.execute('update CfBytes set ?=? where key=?', stringParams,
function(updErr) {
+ con.execute('update CfBytes set ?=? where key=?', binaryParams,
function(updErr) {
if (updErr) {
con.close();
assert.ok(false);
test.finish();
} else {
- con.execute('select ? from CfBytes where key=?', [stringParams[0],
stringParams[2]], function(selErr, rows) {
+ con.execute('select ? from CfBytes where key=?', [binaryParams[0],
binaryParams[2]], function(selErr, rows) {
con.close();
assert.strictEqual(rows.rowCount(), 1);
var row = rows[0];
@@ -457,7 +456,7 @@
});
}
});
- });
+ });
};
exports.testLong = function(test, assert) {