ResponseError: 4 oder 0 Byte int @ erwart

Ich versuche es mit dem Cassandra-Knotentreiber und stecke beim Einfügen eines Datensatzes fest. Es sieht so aus, als ob der Cassandra-Treiber keine Gleitkommawerte einfügen kann.

Problem: When passing int value for insertion in db, api gives following error:
    Debug: hapi, internal, implementation, error 
        ResponseError: Expected 4 or 0 byte int (8)
        at FrameReader.readError (/home/gaurav/Gaurav-Drive/code/nodejsWorkspace/cassandraTest/node_modules/cassandra-driver/lib/readers.js:291:13)
        at Parser.parseError (/home/gaurav/Gaurav-Drive/code/nodejsWorkspace/cassandraTest/node_modules/cassandra-driver/lib/streams.js:185:45)
        at Parser.parseBody (/home/gaurav/Gaurav-Drive/code/nodejsWorkspace/cassandraTest/node_modules/cassandra-driver/lib/streams.js:167:19)
        at Parser._transform (/home/gaurav/Gaurav-Drive/code/nodejsWorkspace/cassandraTest/node_modules/cassandra-driver/lib/streams.js:101:10)
        at Parser.Transform._read (_stream_transform.js:179:10)
        at Parser.Transform._write (_stream_transform.js:167:12)
        at doWrite (_stream_writable.js:225:10)
        at writeOrBuffer (_stream_writable.js:215:5)
        at Parser.Writable.write (_stream_writable.js:182:11)
        at write (_stream_readable.js:601:24)

Ich versuche, folgende Abfrage aus dem Code auszuführen:

INSERT INTO ragchews.user
(uid ,iid ,jid ,jpass ,rateCount ,numOfratedUser ,hndl ,interests ,locX ,locY ,city )
VALUES
('uid_1',{'iid1'},'jid_1','pass_1',25, 10, {'NEX1231'}, {'MUSIC'}, 21.321, 43.235, 'delhi');

parameter übergeben anexecute() ist

var params = [uid, iid, jid, jpass, rateCount, numOfratedUser, hndl, interest, locx, locy, city];

w

var locx = 32.09;
var locy = 54.90;

und Aufruf zum Ausführen sieht so aus:

var addUserQuery = 'INSERT INTO ragchews.user (uid ,iid ,jid ,jpass ,rateCount ,numOfratedUser ,hndl ,interests ,locX ,locY ,city) VALUES (?,?,?,?,?,?,?,?,?,?,?);';
var addUser = function(user, cb){
    console.log(user);
    client.execute(addUserQuery, user, function(err, result){
        if(err){
            throw err;
        }
        cb(result);
    });
};

CREATE TABLE ragchews.user( 
    uid varchar,    
    iid set<varchar>,   
    jid varchar,    
    jpass varchar,  
    rateCount int,  
    numOfratedUser int, 
    hndl set<varchar>,  
    interests set<varchar>, 
    locX float, 
    locY float, 
    city varchar,   
    favorite map<varchar, varchar>, 
    PRIMARY KEY(uid)
);

P.S Einige Beobachtungen beim Versuch, das Problem zu verstehen:

Seit es scheint, ist das Problem mit float, also habe ich den Typ float (von locX, locY) in int geändert und den Code erneut ausgeführt. Gleicher Fehler bleibt bestehen. Daher ist es kein spezielles Problem, den CQL-Typ "float" zu verwenden.Next, ich versuchte, alle Int aus der INSERT-Abfrage zu entfernen und versuchte, nur nicht-numerische Werte einzufügen. Bei diesem Versuch wurde der Wert erfolgreich in db eingegeben. Daher sieht es jetzt so aus,this problem may be associated with numeric types.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage