14 new revisions:

Revision: 540c9eef63fd
Author:   Christoph Tavan <[email protected]>
Date:     Mon Jan  9 03:12:55 2012
Log:      Apply and cleanup patch from issue 11 for improved marshelling
http://code.google.com/a/apache-extras.org/p/cassandra-node/source/detail?r=540c9eef63fd

Revision: 7bf16ed0a880
Author:   Christoph Tavan <[email protected]>
Date:     Mon Jan  9 03:12:55 2012
Log:      Apply and cleanup patch from issue 11 for improved marshelling
http://code.google.com/a/apache-extras.org/p/cassandra-node/source/detail?r=7bf16ed0a880

Revision: 48e13848c2f6
Author:   Christoph Tavan <[email protected]>
Date:     Tue Jan 10 08:26:32 2012
Log: Merge branch 'marshelling' of github.com:ctavan/node-cassandra-client ...
http://code.google.com/a/apache-extras.org/p/cassandra-node/source/detail?r=48e13848c2f6

Revision: ef5ffe67216e
Author:   Christoph Tavan <[email protected]>
Date:     Tue Jan 10 08:33:54 2012
Log:      Add Int32Type to decoder
http://code.google.com/a/apache-extras.org/p/cassandra-node/source/detail?r=ef5ffe67216e

Revision: d470ea4982bd
Author:   Christoph Tavan <[email protected]>
Date:     Tue Jan 10 08:46:51 2012
Log:      Complete the list of available datatypes
http://code.google.com/a/apache-extras.org/p/cassandra-node/source/detail?r=d470ea4982bd

Revision: 447cf8bff0b1
Author:   Christoph Tavan <[email protected]>
Date:     Tue Jan 10 08:59:51 2012
Log:      Handle date/timestamp type correctly
http://code.google.com/a/apache-extras.org/p/cassandra-node/source/detail?r=447cf8bff0b1

Revision: 89dbbe58375f
Author:   Christoph Tavan <[email protected]>
Date:     Tue Jan 10 09:12:50 2012
Log: Handle date/timestamp type correctly (still ugly type conversions...)
http://code.google.com/a/apache-extras.org/p/cassandra-node/source/detail?r=89dbbe58375f

Revision: 8d0a5e4fdea5
Author:   Christoph Tavan <[email protected]>
Date:     Tue Jan 10 09:59:53 2012
Log:      Also detect and handle UUIDType
http://code.google.com/a/apache-extras.org/p/cassandra-node/source/detail?r=8d0a5e4fdea5

Revision: ee486c982a03
Author:   Christoph Tavan <[email protected]>
Date:     Tue Jan 10 10:22:31 2012
Log: Write the decoder converters more elegantly and add support for Lexica...
http://code.google.com/a/apache-extras.org/p/cassandra-node/source/detail?r=ee486c982a03

Revision: 1d82cdfc0f59
Author:   Christoph Tavan <[email protected]>
Date:     Tue Jan 10 10:23:42 2012
Log:      Remove unnecessary else statement
http://code.google.com/a/apache-extras.org/p/cassandra-node/source/detail?r=1d82cdfc0f59

Revision: a01d417c5dbc
Author:   Christoph Tavan <[email protected]>
Date:     Tue Jan 10 10:46:55 2012
Log:      Pass arguments explicitly to fallback converters
http://code.google.com/a/apache-extras.org/p/cassandra-node/source/detail?r=a01d417c5dbc

Revision: 4dd16e77972d
Author:   Christoph Tavan <[email protected]>
Date:     Tue Jan 10 11:15:10 2012
Log:      Fix BigInterger converters
http://code.google.com/a/apache-extras.org/p/cassandra-node/source/detail?r=4dd16e77972d

Revision: 96e1e1caff10
Author:   gdusbabek <[email protected]>
Date:     Tue Jan 10 14:22:57 2012
Log:      add Christoph to contributors.
http://code.google.com/a/apache-extras.org/p/cassandra-node/source/detail?r=96e1e1caff10

Revision: 608373a73168
Author:   Gary Dusbabek <[email protected]>
Date:     Tue Jan 10 14:35:19 2012
Log:      update CHANGES re marshalling
http://code.google.com/a/apache-extras.org/p/cassandra-node/source/detail?r=608373a73168

==============================================================================
Revision: 540c9eef63fd
Author:   Christoph Tavan <[email protected]>
Date:     Mon Jan  9 03:12:55 2012
Log:      Apply and cleanup patch from issue 11 for improved marshelling

http://code.google.com/a/apache-extras.org/p/cassandra-node/source/detail?r=540c9eef63fd

Modified:
 /lib/decoder.js
 /lib/driver.js

=======================================
--- /lib/decoder.js     Mon Jan  9 11:56:16 2012
+++ /lib/decoder.js     Mon Jan  9 03:12:55 2012
@@ -123,8 +123,12 @@
     } else {
       return bytesToNum(bytes);
     }
- } else if (className == AbstractTypes.AsciiType || className == AbstractTypes.UTF8Type) {
-    return bytes; // already as a string!
+  } else if (className == AbstractTypes.AsciiType){
+    // decoding buffer to ascii
+    return bytes.toString('ascii');
+  } else if (className == AbstractTypes.UTF8Type) {
+    // decoding buffer to utf8
+    return bytes.toString('utf8');
   } else if (className == AbstractTypes.BytesType) {
     return bytes;
   } else if (className == AbstractTypes.IntegerType) {
@@ -134,6 +138,7 @@
       return bytesToNum(bytes);
     }
   } else if (className == AbstractTypes.TimeUUIDType) {
+    // A uuid object. Use .toString() to stringify
     return UUID.fromBytes(bytes);
   } else {
     return bytes;
=======================================
--- /lib/driver.js      Mon Jan  9 10:46:41 2012
+++ /lib/driver.js      Mon Jan  9 03:12:55 2012
@@ -157,7 +157,8 @@

   var count = 0;
   for (var i = 0; i < row.columns.length; i++) {
-    if (row.columns[i].value) {
+    if (row.columns[i].value && row.columns[i].name != 'KEY') {
+ // avoid 'KEY' in column[name:value] as it is neat. Also it breaks specificValidators.
       var decodedName = decoder.decode(row.columns[i].name, 'comparator');
var decodedValue = decoder.decode(row.columns[i].value, 'validator', row.columns[i].name);
       this.cols[count] = {

==============================================================================
Revision: 7bf16ed0a880
Author:   Christoph Tavan <[email protected]>
Date:     Mon Jan  9 03:12:55 2012
Log:      Apply and cleanup patch from issue 11 for improved marshelling

http://code.google.com/a/apache-extras.org/p/cassandra-node/source/detail?r=7bf16ed0a880

Modified:
 /lib/decoder.js
 /lib/driver.js

=======================================
--- /lib/decoder.js     Fri Nov 11 07:49:04 2011
+++ /lib/decoder.js     Mon Jan  9 03:12:55 2012
@@ -124,8 +124,12 @@
     } else {
       return bytesToNum(bytes);
     }
- } else if (className == AbstractTypes.AsciiType || className == AbstractTypes.UTF8Type) {
-    return bytes; // already as a string!
+  } else if (className == AbstractTypes.AsciiType){
+    // decoding buffer to ascii
+    return bytes.toString('ascii');
+  } else if (className == AbstractTypes.UTF8Type) {
+    // decoding buffer to utf8
+    return bytes.toString('utf8');
   } else if (className == AbstractTypes.BytesType) {
     return bytes;
   } else if (className == AbstractTypes.IntegerType) {
@@ -135,6 +139,7 @@
       return bytesToNum(bytes);
     }
   } else if (className == AbstractTypes.TimeUUIDType) {
+    // A uuid object. Use .toString() to stringify
     return UUID.fromBytes(bytes);
   } else {
     return bytes;
=======================================
--- /lib/driver.js      Sun Dec 25 16:31:45 2011
+++ /lib/driver.js      Mon Jan  9 03:12:55 2012
@@ -157,7 +157,8 @@

   var count = 0;
   for (var i = 0; i < row.columns.length; i++) {
-    if (row.columns[i].value) {
+    if (row.columns[i].value && row.columns[i].name != 'KEY') {
+ // avoid 'KEY' in column[name:value] as it is neat. Also it breaks specificValidators.
       var decodedName = decoder.decode(row.columns[i].name, 'comparator');
var decodedValue = decoder.decode(row.columns[i].value, 'validator', row.columns[i].name);
       this.cols[count] = {

==============================================================================
Revision: 48e13848c2f6
Author:   Christoph Tavan <[email protected]>
Date:     Tue Jan 10 08:26:32 2012
Log: Merge branch 'marshelling' of github.com:ctavan/node-cassandra-client into marshelling

http://code.google.com/a/apache-extras.org/p/cassandra-node/source/detail?r=48e13848c2f6



==============================================================================
Revision: ef5ffe67216e
Author:   Christoph Tavan <[email protected]>
Date:     Tue Jan 10 08:33:54 2012
Log:      Add Int32Type to decoder

http://code.google.com/a/apache-extras.org/p/cassandra-node/source/detail?r=ef5ffe67216e

Modified:
 /lib/decoder.js

=======================================
--- /lib/decoder.js     Mon Jan  9 03:12:55 2012
+++ /lib/decoder.js     Tue Jan 10 08:33:54 2012
@@ -72,6 +72,7 @@
   AsciiType:    'org.apache.cassandra.db.marshal.AsciiType',
   UTF8Type:     'org.apache.cassandra.db.marshal.UTF8Type',
   IntegerType:  'org.apache.cassandra.db.marshal.IntegerType',
+  Int32Type:    'org.apache.cassandra.db.marshal.Int32Type',
   TimeUUIDType: 'org.apache.cassandra.db.marshal.TimeUUIDType',
   CounterColumnType: 'org.apache.cassandra.db.marshal.CounterColumnType'
 };
@@ -131,6 +132,8 @@
     return bytes.toString('utf8');
   } else if (className == AbstractTypes.BytesType) {
     return bytes;
+  } else if (className == AbstractTypes.Int32Type) {
+    return bytesToNum(bytes);
   } else if (className == AbstractTypes.IntegerType) {
     if (this.options.use_bigints) {
       return bytesToBigInt(bytes);

==============================================================================
Revision: d470ea4982bd
Author:   Christoph Tavan <[email protected]>
Date:     Tue Jan 10 08:46:51 2012
Log:      Complete the list of available datatypes

http://code.google.com/a/apache-extras.org/p/cassandra-node/source/detail?r=d470ea4982bd

Modified:
 /lib/decoder.js

=======================================
--- /lib/decoder.js     Tue Jan 10 08:33:54 2012
+++ /lib/decoder.js     Tue Jan 10 08:46:51 2012
@@ -65,16 +65,28 @@

 };

-// These are the cassandra types I'm currently dealing with.
+// 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
+// Buffer's in resultsets.
 var AbstractTypes = {
-  LongType:     'org.apache.cassandra.db.marshal.LongType',
-  BytesType:    'org.apache.cassandra.db.marshal.BytesType',
-  AsciiType:    'org.apache.cassandra.db.marshal.AsciiType',
-  UTF8Type:     'org.apache.cassandra.db.marshal.UTF8Type',
-  IntegerType:  'org.apache.cassandra.db.marshal.IntegerType',
-  Int32Type:    'org.apache.cassandra.db.marshal.Int32Type',
+  BytesType: 'org.apache.cassandra.db.marshal.BytesType',
+  AsciiType: 'org.apache.cassandra.db.marshal.AsciiType',
+  UTF8Type: 'org.apache.cassandra.db.marshal.UTF8Type',
+  IntegerType: 'org.apache.cassandra.db.marshal.IntegerType',
+  LongType: 'org.apache.cassandra.db.marshal.LongType',
+  Int32Type: 'org.apache.cassandra.db.marshal.Int32Type',
+  //UUIDType: 'org.apache.cassandra.db.marshal.UUIDType',
+  //LexicalUUIDType: 'org.apache.cassandra.db.marshal.LexicalUUIDType',
   TimeUUIDType: 'org.apache.cassandra.db.marshal.TimeUUIDType',
-  CounterColumnType: 'org.apache.cassandra.db.marshal.CounterColumnType'
+  //DateType: 'org.apache.cassandra.db.marshal.DateType',
+  //BooleanType: 'org.apache.cassandra.db.marshal.BooleanType',
+  //FloatType: 'org.apache.cassandra.db.marshal.FloatType',
+  //DoubleType: 'org.apache.cassandra.db.marshal.DoubleType',
+  //DecimalType: 'org.apache.cassandra.db.marshal.DecimalType',
+  CounterColumnType: 'org.apache.cassandra.db.marshal.CounterColumnType',
+  //CompositeType: 'org.apache.cassandra.db.marshal.CompositeType',
+ //DynamicCompositeType: 'org.apache.cassandra.db.marshal.DynamicCompositeType',
 };

 /**

==============================================================================
Revision: 447cf8bff0b1
Author:   Christoph Tavan <[email protected]>
Date:     Tue Jan 10 08:59:51 2012
Log:      Handle date/timestamp type correctly

http://code.google.com/a/apache-extras.org/p/cassandra-node/source/detail?r=447cf8bff0b1

Modified:
 /lib/decoder.js

=======================================
--- /lib/decoder.js     Tue Jan 10 08:46:51 2012
+++ /lib/decoder.js     Tue Jan 10 08:59:51 2012
@@ -79,7 +79,7 @@
   //UUIDType: 'org.apache.cassandra.db.marshal.UUIDType',
   //LexicalUUIDType: 'org.apache.cassandra.db.marshal.LexicalUUIDType',
   TimeUUIDType: 'org.apache.cassandra.db.marshal.TimeUUIDType',
-  //DateType: 'org.apache.cassandra.db.marshal.DateType',
+  DateType: 'org.apache.cassandra.db.marshal.DateType',
   //BooleanType: 'org.apache.cassandra.db.marshal.BooleanType',
   //FloatType: 'org.apache.cassandra.db.marshal.FloatType',
   //DoubleType: 'org.apache.cassandra.db.marshal.DoubleType',
@@ -144,6 +144,8 @@
     return bytes.toString('utf8');
   } else if (className == AbstractTypes.BytesType) {
     return bytes;
+  } else if (className == AbstractTypes.DateType) {
+    return new Date(parseInt(bytes.toString('hex'), 16));
   } else if (className == AbstractTypes.Int32Type) {
     return bytesToNum(bytes);
   } else if (className == AbstractTypes.IntegerType) {

==============================================================================
Revision: 89dbbe58375f
Author:   Christoph Tavan <[email protected]>
Date:     Tue Jan 10 09:12:50 2012
Log: Handle date/timestamp type correctly (still ugly type conversions...)

http://code.google.com/a/apache-extras.org/p/cassandra-node/source/detail?r=89dbbe58375f

Modified:
 /lib/decoder.js

=======================================
--- /lib/decoder.js     Tue Jan 10 08:59:51 2012
+++ /lib/decoder.js     Tue Jan 10 09:12:50 2012
@@ -145,7 +145,7 @@
   } else if (className == AbstractTypes.BytesType) {
     return bytes;
   } else if (className == AbstractTypes.DateType) {
-    return new Date(parseInt(bytes.toString('hex'), 16));
+    return new Date(+bytesToBigInt(bytes).toString());
   } else if (className == AbstractTypes.Int32Type) {
     return bytesToNum(bytes);
   } else if (className == AbstractTypes.IntegerType) {

==============================================================================
Revision: 8d0a5e4fdea5
Author:   Christoph Tavan <[email protected]>
Date:     Tue Jan 10 09:59:53 2012
Log:      Also detect and handle UUIDType

http://code.google.com/a/apache-extras.org/p/cassandra-node/source/detail?r=8d0a5e4fdea5

Modified:
 /lib/decoder.js

=======================================
--- /lib/decoder.js     Tue Jan 10 09:12:50 2012
+++ /lib/decoder.js     Tue Jan 10 09:59:53 2012
@@ -76,7 +76,7 @@
   IntegerType: 'org.apache.cassandra.db.marshal.IntegerType',
   LongType: 'org.apache.cassandra.db.marshal.LongType',
   Int32Type: 'org.apache.cassandra.db.marshal.Int32Type',
-  //UUIDType: 'org.apache.cassandra.db.marshal.UUIDType',
+  UUIDType: 'org.apache.cassandra.db.marshal.UUIDType',
   //LexicalUUIDType: 'org.apache.cassandra.db.marshal.LexicalUUIDType',
   TimeUUIDType: 'org.apache.cassandra.db.marshal.TimeUUIDType',
   DateType: 'org.apache.cassandra.db.marshal.DateType',
@@ -154,7 +154,7 @@
     } else {
       return bytesToNum(bytes);
     }
-  } else if (className == AbstractTypes.TimeUUIDType) {
+ } else if (className == AbstractTypes.UUIDType || className == AbstractTypes.TimeUUIDType) {
     // A uuid object. Use .toString() to stringify
     return UUID.fromBytes(bytes);
   } else {

==============================================================================
Revision: ee486c982a03
Author:   Christoph Tavan <[email protected]>
Date:     Tue Jan 10 10:22:31 2012
Log: Write the decoder converters more elegantly and add support for LexicalUUIDType as well

http://code.google.com/a/apache-extras.org/p/cassandra-node/source/detail?r=ee486c982a03

Modified:
 /lib/decoder.js

=======================================
--- /lib/decoder.js     Tue Jan 10 09:59:53 2012
+++ /lib/decoder.js     Tue Jan 10 10:22:31 2012
@@ -77,7 +77,7 @@
   LongType: 'org.apache.cassandra.db.marshal.LongType',
   Int32Type: 'org.apache.cassandra.db.marshal.Int32Type',
   UUIDType: 'org.apache.cassandra.db.marshal.UUIDType',
-  //LexicalUUIDType: 'org.apache.cassandra.db.marshal.LexicalUUIDType',
+  LexicalUUIDType: 'org.apache.cassandra.db.marshal.LexicalUUIDType',
   TimeUUIDType: 'org.apache.cassandra.db.marshal.TimeUUIDType',
   DateType: 'org.apache.cassandra.db.marshal.DateType',
   //BooleanType: 'org.apache.cassandra.db.marshal.BooleanType',
@@ -89,6 +89,51 @@
//DynamicCompositeType: 'org.apache.cassandra.db.marshal.DynamicCompositeType',
 };

+// These functions convert the raw bytes that cassandra gives us to meaningful
+// JS datat ypes.
+var converters = {
+  'org.apache.cassandra.db.marshal.BytesType': function(bytes) {
+    return bytes;
+  },
+  'org.apache.cassandra.db.marshal.AsciiType': function(bytes) {
+    return bytes.toString('ascii');
+  },
+  'org.apache.cassandra.db.marshal.UTF8Type': function(bytes) {
+    return bytes.toString('utf8');
+  },
+  'org.apache.cassandra.db.marshal.DateType': function(bytes) {
+    return new Date(+bytesToBigInt(bytes).toString());
+  },
+  'org.apache.cassandra.db.marshal.Int32Type': function(bytes) {
+    return bytesToNum(bytes);
+  },
+  'org.apache.cassandra.db.marshal.IntegerType': function(bytes, options) {
+    if (options.use_bigints) {
+      return bytesToBigInt(bytes);
+    }
+    return bytesToNum(bytes);
+  },
+  'org.apache.cassandra.db.marshal.LongType': function(bytes, options) {
+    if (options.use_bigints) {
+      return bytesToBigLong(bytes);
+    }
+    bytesToNum(bytes);
+  },
+ 'org.apache.cassandra.db.marshal.CounterColumnType': function(bytes, options) { + return this['org.apache.cassandra.db.marshal.LongType'].apply(this, arguments);
+  },
+  'org.apache.cassandra.db.marshal.UUIDType': function(bytes) {
+    // A uuid object. Use .toString() to stringify
+    return UUID.fromBytes(bytes);
+  },
+  'org.apache.cassandra.db.marshal.TimeUUIDType': function(bytes) {
+ return this['org.apache.cassandra.db.marshal.UUIDType'].apply(this, arguments);
+  },
+  'org.apache.cassandra.db.marshal.LexicalUUIDType': function(bytes) {
+ return this['org.apache.cassandra.db.marshal.UUIDType'].apply(this, arguments);
+  }
+};
+
 /**
* validators are a hash currently created in the Connection constructor. keys in the hash are: key, comparator, * defaultValidator, specificValidator. They all map to a value in AbstractTypes, except specificValidator which
@@ -129,36 +174,8 @@
     className = AbstractTypes.BytesType;
   }

-  // perform the conversion.
- if (className == AbstractTypes.LongType || className == AbstractTypes.CounterColumnType) {
-    if (this.options.use_bigints) {
-      return bytesToBigLong(bytes);
-    } else {
-      return bytesToNum(bytes);
-    }
-  } else if (className == AbstractTypes.AsciiType){
-    // decoding buffer to ascii
-    return bytes.toString('ascii');
-  } else if (className == AbstractTypes.UTF8Type) {
-    // decoding buffer to utf8
-    return bytes.toString('utf8');
-  } else if (className == AbstractTypes.BytesType) {
-    return bytes;
-  } else if (className == AbstractTypes.DateType) {
-    return new Date(+bytesToBigInt(bytes).toString());
-  } else if (className == AbstractTypes.Int32Type) {
-    return bytesToNum(bytes);
-  } else if (className == AbstractTypes.IntegerType) {
-    if (this.options.use_bigints) {
-      return bytesToBigInt(bytes);
-    } else {
-      return bytesToNum(bytes);
-    }
- } else if (className == AbstractTypes.UUIDType || className == AbstractTypes.TimeUUIDType) {
-    // A uuid object. Use .toString() to stringify
-    return UUID.fromBytes(bytes);
-  } else {
-    return bytes;
-  }
-
+  if (!(className in converters)) {
+    return converters[className](bytes, this.options);
+  }
+  return bytes;
 };

==============================================================================
Revision: 1d82cdfc0f59
Author:   Christoph Tavan <[email protected]>
Date:     Tue Jan 10 10:23:42 2012
Log:      Remove unnecessary else statement

http://code.google.com/a/apache-extras.org/p/cassandra-node/source/detail?r=1d82cdfc0f59

Modified:
 /lib/decoder.js

=======================================
--- /lib/decoder.js     Tue Jan 10 10:22:31 2012
+++ /lib/decoder.js     Tue Jan 10 10:23:42 2012
@@ -59,10 +59,8 @@
// zero is a tricky bastard. new BigInteger([0]) != new BigInteger('0'). wtf?
   if (bytes.length === 1 && bytes[0] === 0) {
     return new BigInteger('0');
-  } else {
-    return bytesToBigInt(bytes);
-  }
-
+  }
+  return bytesToBigInt(bytes);
 };

 // Cassandra datatypes according to

==============================================================================
Revision: a01d417c5dbc
Author:   Christoph Tavan <[email protected]>
Date:     Tue Jan 10 10:46:55 2012
Log:      Pass arguments explicitly to fallback converters

http://code.google.com/a/apache-extras.org/p/cassandra-node/source/detail?r=a01d417c5dbc

Modified:
 /lib/decoder.js

=======================================
--- /lib/decoder.js     Tue Jan 10 10:23:42 2012
+++ /lib/decoder.js     Tue Jan 10 10:46:55 2012
@@ -118,17 +118,17 @@
     bytesToNum(bytes);
   },
'org.apache.cassandra.db.marshal.CounterColumnType': function(bytes, options) { - return this['org.apache.cassandra.db.marshal.LongType'].apply(this, arguments); + return converters['org.apache.cassandra.db.marshal.LongType'](bytes, options);
   },
   'org.apache.cassandra.db.marshal.UUIDType': function(bytes) {
     // A uuid object. Use .toString() to stringify
     return UUID.fromBytes(bytes);
   },
   'org.apache.cassandra.db.marshal.TimeUUIDType': function(bytes) {
- return this['org.apache.cassandra.db.marshal.UUIDType'].apply(this, arguments);
+    return converters['org.apache.cassandra.db.marshal.UUIDType'](bytes);
   },
   'org.apache.cassandra.db.marshal.LexicalUUIDType': function(bytes) {
- return this['org.apache.cassandra.db.marshal.UUIDType'].apply(this, arguments);
+    return converters['org.apache.cassandra.db.marshal.UUIDType'](bytes);
   }
 };


==============================================================================
Revision: 4dd16e77972d
Author:   Christoph Tavan <[email protected]>
Date:     Tue Jan 10 11:15:10 2012
Log:      Fix BigInterger converters

http://code.google.com/a/apache-extras.org/p/cassandra-node/source/detail?r=4dd16e77972d

Modified:
 /lib/decoder.js

=======================================
--- /lib/decoder.js     Tue Jan 10 10:46:55 2012
+++ /lib/decoder.js     Tue Jan 10 11:15:10 2012
@@ -105,20 +105,20 @@
   'org.apache.cassandra.db.marshal.Int32Type': function(bytes) {
     return bytesToNum(bytes);
   },
-  'org.apache.cassandra.db.marshal.IntegerType': function(bytes, options) {
-    if (options.use_bigints) {
+ 'org.apache.cassandra.db.marshal.IntegerType': function(bytes, useBigints) {
+    if (useBigints) {
       return bytesToBigInt(bytes);
     }
     return bytesToNum(bytes);
   },
-  'org.apache.cassandra.db.marshal.LongType': function(bytes, options) {
-    if (options.use_bigints) {
+  'org.apache.cassandra.db.marshal.LongType': function(bytes, useBigints) {
+    if (useBigints) {
       return bytesToBigLong(bytes);
     }
-    bytesToNum(bytes);
+    return bytesToNum(bytes);
   },
- 'org.apache.cassandra.db.marshal.CounterColumnType': function(bytes, options) { - return converters['org.apache.cassandra.db.marshal.LongType'](bytes, options); + 'org.apache.cassandra.db.marshal.CounterColumnType': function(bytes, useBigints) { + return converters['org.apache.cassandra.db.marshal.LongType'](bytes, useBigints);
   },
   'org.apache.cassandra.db.marshal.UUIDType': function(bytes) {
     // A uuid object. Use .toString() to stringify
@@ -172,8 +172,8 @@
     className = AbstractTypes.BytesType;
   }

-  if (!(className in converters)) {
-    return converters[className](bytes, this.options);
+  if (className in converters) {
+    return converters[className](bytes, this.options.use_bigints);
   }
   return bytes;
 };

==============================================================================
Revision: 96e1e1caff10
Author:   gdusbabek <[email protected]>
Date:     Tue Jan 10 14:22:57 2012
Log:      add Christoph to contributors.

http://code.google.com/a/apache-extras.org/p/cassandra-node/source/detail?r=96e1e1caff10

Modified:
 /package.json

=======================================
--- /package.json       Mon Jan  9 13:59:12 2012
+++ /package.json       Tue Jan 10 14:22:57 2012
@@ -4,7 +4,8 @@
     "Eric Evans <[email protected]>",
     "Gary Dusbabek <[email protected]>",
     "Tomaž Muraus <[email protected]>",
-    "Patrick Negri <[email protected]>"
+    "Patrick Negri <[email protected]>",
+    "Christoph Tavan <[email protected]>"
   ],
   "name": "cassandra-client",
   "description": "Node.js CQL driver for Apache Cassandra",

==============================================================================
Revision: 608373a73168
Author:   Gary Dusbabek <[email protected]>
Date:     Tue Jan 10 14:35:19 2012
Log:      update CHANGES re marshalling

http://code.google.com/a/apache-extras.org/p/cassandra-node/source/detail?r=608373a73168

Modified:
 /CHANGES

=======================================
--- /CHANGES    Mon Jan  9 13:59:12 2012
+++ /CHANGES    Tue Jan 10 14:35:19 2012
@@ -1,3 +1,5 @@
+- Add more cassandra types to the decoder [Christoph Tavan]
+
 Changes with cassandra-client 0.6.2:

 - Fix scope leaks.

Reply via email to