public void massivePreparedStatementTest() { string tableName = "table" + Guid.NewGuid().ToString("N"); try { Session.WaitForSchemaAgreement( QueryTools.ExecuteSyncNonQuery(Session, string.Format(@"CREATE TABLE {0}( tweet_id uuid PRIMARY KEY, numb1 double, numb2 int );", tableName)) ); } catch (AlreadyExistsException) { } int numberOfPrepares = 100; var values = new List <object[]>(numberOfPrepares); var prepares = new List <PreparedStatement>(); Parallel.For(0, numberOfPrepares, i => { PreparedStatement prep = QueryTools.PrepareQuery(Session, string.Format("INSERT INTO {0}(tweet_id, numb1, numb2) VALUES ({1}, ?, ?);", tableName, Guid.NewGuid())); lock (prepares) prepares.Add(prep); }); Parallel.ForEach(prepares, prep => { QueryTools.ExecutePreparedQuery(Session, prep, new object[] { (double)Randomm.RandomVal(typeof(double)), (int)Randomm.RandomVal(typeof(int)) }); }); QueryTools.ExecuteSyncQuery(Session, string.Format("SELECT * FROM {0};", tableName), Session.Cluster.Configuration.QueryOptions.GetConsistencyLevel()); }
public void InsertingSingleValuePrepared(Type tp, object value = null) { string cassandraDataTypeName = QueryTools.convertTypeNameToCassandraEquivalent(tp); string tableName = "table" + Guid.NewGuid().ToString("N"); Session.WaitForSchemaAgreement( QueryTools.ExecuteSyncNonQuery(Session, string.Format(@"CREATE TABLE {0}( tweet_id uuid PRIMARY KEY, value {1} );", tableName, cassandraDataTypeName)) ); var toInsert = new List <object[]>(1); object val = Randomm.RandomVal(tp); if (tp == typeof(string)) { val = "'" + val.ToString().Replace("'", "''") + "'"; } var row1 = new object[2] { Guid.NewGuid(), val }; toInsert.Add(row1); PreparedStatement prep = QueryTools.PrepareQuery(Session, string.Format("INSERT INTO {0}(tweet_id, value) VALUES ({1}, ?);", tableName, toInsert[0][0])); if (value == null) { QueryTools.ExecutePreparedQuery(Session, prep, new object[] { toInsert[0][1] }); } else { QueryTools.ExecutePreparedQuery(Session, prep, new object[] { value }); } QueryTools.ExecuteSyncQuery(Session, string.Format("SELECT * FROM {0};", tableName), ConsistencyLevel.One, toInsert); QueryTools.ExecuteSyncNonQuery(Session, string.Format("DROP TABLE {0};", tableName)); }