private void ReadAllPosts() { using (var db = new CassandraContext(keyspace: KeyspaceName, server: Server)) { String kluc = ""; String red = ""; foreach (var row in db.ExecuteQuery("SELECT * FROM razgovor"))//dolzina='" + tbDolzina.Text + "'")) { if (kluc == "") { kluc = row.Columns[1].ToString(); } if (kluc == row.Columns[1].ToString()) { red += row.Columns[2].ColumnValue + ":" + row.Columns[3].ColumnValue + "; "; } else { listBox1.Items.Add(red); kluc = row.Columns[1].ToString(); red = row.Columns[2].ColumnValue + " " + row.Columns[3].ColumnValue + "; "; } } listBox1.Items.Add(red); foreach (var row2 in db.ExecuteQuery("SELECT * FROM poraka WHERE naslov='test 2 naslov'")) { listBox1.Items.Add(row2.Columns[0].ColumnValue + "; " + row2.Columns[1].ColumnValue); } } }
private static void BigDecimalTest() { using (var db = new CassandraContext(keyspace: KeyspaceName, server: Server)) { // arrange db.ExecuteNonQuery("CREATE TABLE OfferReservation2 (KEY text PRIMARY KEY) WITH comparator = text AND default_validation = decimal"); db.ExecuteNonQuery("INSERT INTO OfferReservation2 (KEY, 'MyColumn') VALUES ('Key0', 1000000000000000000)"); db.ExecuteNonQuery("INSERT INTO OfferReservation2 (KEY, 'MyColumn') VALUES ('Key1', 0.25)"); db.ExecuteNonQuery("INSERT INTO OfferReservation2 (KEY, 'MyColumn') VALUES ('Key2', 2000000000000.1234)"); db.ExecuteNonQuery("INSERT INTO OfferReservation2 (KEY, 'MyColumn') VALUES ('Key3', -0.25)"); db.ExecuteNonQuery("INSERT INTO OfferReservation2 (KEY, 'MyColumn') VALUES ('Key4', -0.25122333)"); var actual = db.ExecuteQuery("SELECT * FROM OfferReservation2"); var results = actual.ToList(); var firstValue = (decimal)results.First(x => x.Key == "Key0")["MyColumn"]; var secondValue = (decimal)results.First(x => x.Key == "Key1")["MyColumn"]; var thirdValue = (decimal)results.First(x => x.Key == "Key2")["MyColumn"]; var fourthValue = (decimal)results.First(x => x.Key == "Key3")["MyColumn"]; var fifthValue = (decimal)results.First(x => x.Key == "Key4")["MyColumn"]; ConsoleHeader("Returned data from Big Decimal Test"); ConsoleHeader(firstValue.ToString()); ConsoleHeader(secondValue.ToString()); ConsoleHeader(thirdValue.ToString()); ConsoleHeader(fourthValue.ToString()); ConsoleHeader(fifthValue.ToString()); } }
private void FillCombo(String pSQL, ComboBox Control, String DisplayMember) { DataTable dt = new DataTable(); dt.TableName = DisplayMember; dt.Columns.Add(DisplayMember); try { using (var db = new CassandraContext(keyspace: KeyspaceName, server: Server)) { foreach (var row in db.ExecuteQuery(pSQL)) { DataRow dr = dt.NewRow(); dr[0] = row.Columns[0].ColumnValue; dt.Rows.Add(dr); } } } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); } DataSet MyDS = new DataSet(); MyDS.Tables.Add(dt); Control.DataSource = MyDS.Tables[0].DefaultView; Control.DisplayMember = DisplayMember; }
private static void CreateColumnFamilyWithTimestampOperator() { using (var db = new CassandraContext(keyspace: KeyspaceName, server: Server)) { db.ExecuteNonQuery("CREATE TABLE TestCF2 (KEY text PRIMARY KEY) WITH comparator=timestamp AND default_validation=text;"); DateTimeOffset UnixStart = new DateTimeOffset(1970, 1, 1, 0, 0, 0, TimeSpan.Zero); DateTimeOffset TimeNow = DateTimeOffset.UtcNow; var columnName2 = Convert.ToInt64(Math.Floor((TimeNow - UnixStart).TotalMilliseconds)); var columnName1 = columnName2 + 5000; db.ExecuteNonQuery(string.Format("INSERT INTO TestCF2 (KEY, {0}, {1}) VALUES ('Key1', 'Value1', 'Value2')", columnName1, columnName2)); List<ICqlRow> rows = db.ExecuteQuery("SELECT * FROM TestCF2 WHERE KEY = 'Key1'").ToList(); DateTime value1 = rows[0].Columns[1].ColumnName.GetValue<DateTime>(); DateTime value2 = rows[0].Columns[2].ColumnName.GetValue<DateTime>(); ConsoleHeader("Returned data from db for timestamp comparator"); ConsoleHeader(value1.ToString()); ConsoleHeader(value2.ToString()); } }
public static CassandraJob GetJob(CassandraContext db, int hide_time_sec) { loop: dynamic job = null; for (int i = 0; i < 1000; i++) { var jobs = db.ExecuteQuery(SelectCQL_Main(1000)).ToArray(); var mx = jobs.Length < 1000 ? jobs.Length - 1 : 1000; if (mx == -1) { break; } job = jobs[rnd.Value.Next(mx)]; if (job["hidden_till"] < ToUnixTime(DateTimeOffset.UtcNow)) { break; } } if (job != null) { var myID = Guid.NewGuid(); var ret = new CassandraJob(job, myID); db.ExecuteNonQuery(HideRowCQL_Trans(ret.GetID(), ret.GetAckID())); var cnt = db.ExecuteQuery(SelectCQL_Trans(ret.GetID(), 1000)).ToArray(); var counter = cnt.First()["count"]; if (counter > 1) { db.ExecuteNonQuery(DeleteRowCQL_Trans(ret.GetID())); goto loop; } if (counter == 0) { goto loop; } db.ExecuteNonQuery(HideRowCQL_Main2(ret.GetID(), hide_time_sec, ret.GetLogic(), ret.GetCommand())); return(ret); } else { return(null); } }
private static void TombstoneTest() { using (var db = new CassandraContext(keyspace: KeyspaceName, server: Server)) { db.ExecuteNonQuery("CREATE TABLE OfferReservation (KEY int PRIMARY KEY) WITH comparator = text AND default_validation = float"); db.ExecuteNonQuery("INSERT INTO OfferReservation (KEY, '25:100') VALUES (5, 0.25)"); db.ExecuteNonQuery("INSERT INTO OfferReservation (KEY, '25:101') VALUES (5, 0.25)"); db.ExecuteNonQuery("DELETE '25:100' FROM OfferReservation WHERE KEY = 5"); List <ICqlRow> rows = db.ExecuteQuery("SELECT '25:100' FROM OfferReservation WHERE KEY = 5").ToList(); } }
public void With_Compression() { // arrange var insertQuery = @"INSERT INTO Users (Id, Name, Email, Age) VALUES (23, '" + new String('X', 200) + "', '*****@*****.**', 43)"; // act _db.ExecuteNonQuery(insertQuery); var actual = _db.ExecuteQuery("SELECT * FROM Users"); // assert Assert.Equal(6, actual.Count()); }
public void TestReadingCql3List() { //arrange var insertQuery = @"INSERT INTO Cql3List (Id, TagList) VALUES(1, ['item1','item2']);"; //act _db.ExecuteNonQuery(insertQuery); var results = _db.ExecuteQuery("SELECT * FROM Cql3List").ToList(); //assert Assert.Equal(1, results.Count()); Assert.Equal(2, results.First().Columns.Count); var row = (FluentCqlRow)results.First(); var id = row.GetColumn("id").ColumnValue.GetValue <int>(); var taglist = row.GetColumn("taglist").ColumnValue.GetValue <List <string> >(); Assert.Equal(1, id); Assert.Equal(2, taglist.Count); Assert.Equal("item1", taglist[0]); Assert.Equal("item2", taglist[1]); }
private void Common(CompatibilityCassandraDatabaseSetup setup) { _db = setup.DB; // arrange var insertQuery = @"INSERT INTO users (Id, Name, Email, Age) VALUES (23, '" + new String('X', 200) + "', '*****@*****.**', 43)"; // act _db.ExecuteNonQuery(insertQuery); var actual = _db.ExecuteQuery("SELECT * FROM users"); // assert Assert.Equal(6, actual.Count()); }
public void TestOverwritingOfUsersOnPrimaryKeys() { // arrange var insertQuery = @"INSERT INTO users (Id, Name, Email, Age) VALUES (23, '" + new String('X', 200) + "', '*****@*****.**', 43)"; var insertQuery2 = @"INSERT INTO users (Id, Name, Email, Age) VALUES (23, '" + new String('Y', 200) + "', '*****@*****.**', 53)"; // act _db.ExecuteNonQuery(insertQuery); _db.ExecuteNonQuery(insertQuery2); var actual = _db.ExecuteQuery("SELECT * FROM users"); // assert Assert.Equal(6, actual.Count()); }
public void Test_Cql3() { var connBuilder = _db.ConnectionBuilder; connBuilder = new ConnectionBuilder(connBuilder.Keyspace, connBuilder.Servers[0], cqlVersion: CqlVersion.Cql3); var db = new CassandraContext(connBuilder); // arrange db.TryExecuteNonQuery("DROP TABLE Timeline_Issue36"); db.ExecuteNonQuery(@" CREATE TABLE Timeline_Issue36 ( user_id varchar, tweet_id int, author text, body varchar, PRIMARY KEY (user_id, tweet_id));" ); db.ExecuteNonQuery(@" BEGIN BATCH INSERT INTO Timeline_Issue36 (user_id, tweet_id, author, body) VALUES ('nberardi', 1, 'nberardi', 'test 1234') INSERT INTO Timeline_Issue36 (user_id, tweet_id, author, body) VALUES ('nberardi', 2, 'nberardi', 'test 4567') INSERT INTO Timeline_Issue36 (user_id, tweet_id, author, body) VALUES ('nberardi', 3, 'nberardi', 'test 8910') INSERT INTO Timeline_Issue36 (user_id, tweet_id, author, body) VALUES ('jdoe', 1, 'nberardi', 'test 1111') INSERT INTO Timeline_Issue36 (user_id, tweet_id, author, body) VALUES ('akim', 1, 'nberardi', 'test 2222') INSERT INTO Timeline_Issue36 (user_id, tweet_id, author, body) VALUES ('jboes', 1, 'nberardi', 'test 3333') INSERT INTO Timeline_Issue36 (user_id, tweet_id, author, body) VALUES ('jboes', 2, 'nberardi', 'test 4444') APPLY BATCH; "); // act var actual = db.ExecuteQuery("SELECT * FROM Timeline_Issue36"); // assert var results = actual.ToList(); Assert.Equal(7, results.Count); var row = results.FirstOrDefault(); Assert.Equal(4, row.Columns.Count); }
public void Test() { // arrange _db.ExecuteNonQuery("CREATE TABLE OfferReservation (KEY text PRIMARY KEY) WITH comparator = text AND default_validation = decimal"); _db.ExecuteNonQuery("INSERT INTO OfferReservation (KEY, 'MyColumn') VALUES ('Key0', 1000000000000000000)"); _db.ExecuteNonQuery("INSERT INTO OfferReservation (KEY, 'MyColumn') VALUES ('Key1', 0.25)"); _db.ExecuteNonQuery("INSERT INTO OfferReservation (KEY, 'MyColumn') VALUES ('Key2', 2000000000000.1234)"); _db.ExecuteNonQuery("INSERT INTO OfferReservation (KEY, 'MyColumn') VALUES ('Key3', -0.25)"); // act var actual = _db.ExecuteQuery("SELECT * FROM OfferReservation"); // assert var results = actual.ToList(); Assert.Equal(1000000000000000000M, (decimal)results.First(x => x.Key == "Key0")["MyColumn"]); Assert.Equal(.25M, (decimal)results.First(x => x.Key == "Key1")["MyColumn"]); Assert.Equal(2000000000000.1234M, (decimal)results.First(x => x.Key == "Key2")["MyColumn"]); Assert.Equal(-.25M, (decimal)results.First(x => x.Key == "Key3")["MyColumn"]); }
private static void CreateColumnFamilyWithUUIDOperator() { using (var db = new CassandraContext(keyspace: KeyspaceName, server: Server)) { db.ExecuteNonQuery("CREATE TABLE TestCF (KEY text PRIMARY KEY) WITH comparator=uuid AND default_validation=text;"); Guid columnName1 = GuidGenerator.GenerateTimeBasedGuid(DateTime.Now); Guid columnName2 = GuidGenerator.GenerateTimeBasedGuid(DateTime.Now); db.ExecuteNonQuery(string.Format("INSERT INTO TestCF (KEY, {0}, {1}) VALUES ('Key1', 'Value1', 'Value2')", columnName1, columnName2)); List <ICqlRow> rows = db.ExecuteQuery("SELECT * FROM TestCF WHERE KEY = 'Key1'").ToList(); Guid value = rows[0].Columns[1].ColumnName.GetValue <Guid>(); ConsoleHeader("Returned data from db"); ConsoleHeader(value.ToString()); } }
public void Init() { _context = new CassandraContext(keyspace: DummiesKeySpace, host: "localhost"); if (!_context.KeyspaceExists(DummiesKeySpace)) { var keyspace = new CassandraKeyspace(new CassandraKeyspaceSchema { Name = DummiesKeySpace, }, _context); keyspace.TryCreateSelf(); _context.ExecuteQuery( @" CREATE COLUMNFAMILY Dummies ( KEY ascii PRIMARY KEY, Blob blob );"); _context.SaveChanges(); } _dummies = _context.GetColumnFamily("Dummies"); }
private static void ReadAllPosts() { using (var db = new CassandraContext(keyspace: KeyspaceName, server: Server)) { var key = "first-blog-post"; var tagsFamily = db.GetColumnFamily("Tags"); // get the post back from the database ConsoleHeader("getting 'first-blog-post'"); // query using CQL var posts = db.ExecuteQuery("SELECT * FROM Posts LIMIT 25"); // query using API dynamic tags = tagsFamily.Get(key).FirstOrDefault(); // show details ConsoleHeader("showing post"); foreach (dynamic post in posts) { Console.WriteLine( String.Format("=={0} by {1}==\n{2}", post.Title, post.Author, post.Body )); } // show tags ConsoleHeader("showing tags"); foreach (var tag in tags) { Console.WriteLine(String.Format("{0}:{1}", tag.ColumnName, tag.ColumnValue)); } } }
private static void CreateColumnFamilyWithTimestampOperator() { using (var db = new CassandraContext(keyspace: KeyspaceName, server: Server)) { db.ExecuteNonQuery("CREATE TABLE TestCF2 (KEY text PRIMARY KEY) WITH comparator=timestamp AND default_validation=text;"); DateTimeOffset UnixStart = new DateTimeOffset(1970, 1, 1, 0, 0, 0, TimeSpan.Zero); DateTimeOffset TimeNow = DateTimeOffset.UtcNow; var columnName2 = Convert.ToInt64(Math.Floor((TimeNow - UnixStart).TotalMilliseconds)); var columnName1 = columnName2 + 5000; db.ExecuteNonQuery(string.Format("INSERT INTO TestCF2 (KEY, {0}, {1}) VALUES ('Key1', 'Value1', 'Value2')", columnName1, columnName2)); List <ICqlRow> rows = db.ExecuteQuery("SELECT * FROM TestCF2 WHERE KEY = 'Key1'").ToList(); DateTime value1 = rows[0].Columns[1].ColumnName.GetValue <DateTime>(); DateTime value2 = rows[0].Columns[2].ColumnName.GetValue <DateTime>(); ConsoleHeader("Returned data from db for timestamp comparator"); ConsoleHeader(value1.ToString()); ConsoleHeader(value2.ToString()); } }
public void Test_Cql2() { var connBuilder = _db.ConnectionBuilder; connBuilder = new ConnectionBuilder(connBuilder.Keyspace, connBuilder.Servers[0], cqlVersion: CqlVersion.Cql2); var db = new CassandraContext(connBuilder); // arrange db.TryExecuteNonQuery("DROP COLUMNFAMILY Users_Issue36"); db.ExecuteNonQuery(@" CREATE COLUMNFAMILY Users_Issue36 ( UserName text PRIMARY KEY, LastLogin timestamp);" ); db.ExecuteNonQuery(@" BEGIN BATCH INSERT INTO Users_Issue36 (UserName, LastLogin) VALUES ('nberardi', '2012-6-6T04:30:00') INSERT INTO Users_Issue36 (UserName, LastLogin) VALUES ('jdoe', '2012-10-31T00:30:02') INSERT INTO Users_Issue36 (UserName, LastLogin) VALUES ('akim', '2003-6-6T05:35:23') INSERT INTO Users_Issue36 (UserName, LastLogin) VALUES ('jboes', '2001-1-1T13:02:10') APPLY BATCH; "); // act var actual = db.ExecuteQuery("SELECT * FROM Users_Issue36"); // assert var results = actual.ToList(); Assert.Equal(4, results.Count); var row = results.FirstOrDefault(); Assert.Equal(2, row.Columns.Count); }
private static void TombstoneTest() { using (var db = new CassandraContext(keyspace: KeyspaceName, server: Server)) { db.ExecuteNonQuery("CREATE TABLE OfferReservation (KEY int PRIMARY KEY) WITH comparator = text AND default_validation = float"); db.ExecuteNonQuery("INSERT INTO OfferReservation (KEY, '25:100') VALUES (5, 0.25)"); db.ExecuteNonQuery("INSERT INTO OfferReservation (KEY, '25:101') VALUES (5, 0.25)"); db.ExecuteNonQuery("DELETE '25:100' FROM OfferReservation WHERE KEY = 5"); List<ICqlRow> rows = db.ExecuteQuery("SELECT '25:100' FROM OfferReservation WHERE KEY = 5").ToList(); } }
private void ExecuteSearch() { PleaseWait frmPW = new PleaseWait(); frmPW.Show(); Application.DoEvents(); MyDs.Tables.Clear(); outlookGrid1.Rows.Clear(); DataTable dt = new DataTable(); lblNoRows.Text = ""; lblSumAmount.Text = ""; lblSumAmountVat.Text = ""; dt.TableName = "Phonebook"; dt.Columns.Add("First Name"); dt.Columns.Add("Last Name"); dt.Columns.Add("Phone number"); dt.Columns.Add("Phone type"); String CQL = "SELECT name, surname, number, phone_type FROM phonebook"; String WherePart = FillWherePart(); CQL += WherePart; using (var db = new CassandraContext(keyspace: KeyspaceName, server: Server)) { foreach (var row2 in db.ExecuteQuery(CQL)) { DataRow dr = dt.NewRow(); dr[0] = row2.Columns[0].ColumnValue; dr[1] = row2.Columns[1].ColumnValue; dr[2] = row2.Columns[2].ColumnValue; dr[3] = row2.Columns[3].ColumnValue; dt.Rows.Add(dr); } } MyDs.Tables.Add(dt); if (MyDs.Tables[0].Rows.Count > 0) { outlookGrid1.BindData(MyDs, MyDs.Tables[0].TableName); outlookGrid1.AllowUserToResizeColumns = true; outlookGrid1.Columns[0].Width = 200; outlookGrid1.Columns[1].Width = 200; outlookGrid1.Columns[2].Width = 120; outlookGrid1.Columns[3].Width = 120; //Decimal amount = 0; //Decimal amount_vat = 0; //for (int i = 0; i < MyDs.Tables[0].Rows.Count; i++) //{ // amount += Convert.ToDecimal(MyDs.Tables[0].Rows[i][5].ToString()); // amount_vat += Convert.ToDecimal(MyDs.Tables[0].Rows[i][6].ToString()); //} //lblNoRows.Text = "Number of rows: " + MyDs.Tables[0].Rows.Count; //lblSumAmount.Text = "Sum of Amount: " + amount.ToString(); //lblSumAmountVat.Text = "Sum of Amount with VAT: " + amount_vat.ToString(); } frmPW.Close(); }
public static CassandraJob GetJob(CassandraContext db, int hide_time_sec) { loop: dynamic job = null; for (int i = 0; i < 1000; i++) { var jobs = db.ExecuteQuery(SelectCQL_Main(1000)).ToArray(); var mx = jobs.Length < 1000 ? jobs.Length - 1 : 1000; if (mx == -1) break; job = jobs[rnd.Value.Next(mx)]; if (job["hidden_till"] < ToUnixTime(DateTimeOffset.UtcNow)) break; } if (job != null) { var myID = Guid.NewGuid(); var ret = new CassandraJob(job, myID); db.ExecuteNonQuery(HideRowCQL_Trans(ret.GetID(), ret.GetAckID())); var cnt = db.ExecuteQuery(SelectCQL_Trans(ret.GetID(), 1000)).ToArray(); var counter = cnt.First()["count"]; if (counter > 1) { db.ExecuteNonQuery(DeleteRowCQL_Trans(ret.GetID())); goto loop; } if (counter == 0) goto loop; db.ExecuteNonQuery(HideRowCQL_Main2(ret.GetID(), hide_time_sec,ret.GetLogic(),ret.GetCommand())); return ret; } else return null; }
public static void Test() { int TestTimeInMinutes = 10; int ThreadCount = 50; int ThreadCount2 = 10; int TimeOut_Sec = 5; bool usePooling = true; object alive_monitor = new object(); bool alive_condition = true; List <Thread> threads = new List <Thread>(); int thrStarted_cnt = 0; object thrStarted_monitor = new object(); //initialize CassandraContext main_db = new CassandraContext(new ConnectionBuilder(keyspace: KeyspaceName, server: Server, cqlVersion: CqlVersion.Cql3, pooling: usePooling)); { if (main_db.KeyspaceExists(KeyspaceName)) { main_db.DropKeyspace(KeyspaceName); } var keyspace = new CassandraKeyspace(new CassandraKeyspaceSchema { Name = KeyspaceName, }, main_db); keyspace.TryCreateSelf(); CreateTablesIfNotExists(main_db); } for (int tI = 0; tI < ThreadCount; tI++) { int thrNo = tI; var thr = new Thread(() => { Console.Write("(*" + thrNo + ")"); try { CassandraContext db = new CassandraContext(new ConnectionBuilder(keyspace: KeyspaceName, server: Server, cqlVersion: CqlVersion.Cql3, pooling: usePooling)); lock (thrStarted_monitor) { thrStarted_cnt++; Monitor.PulseAll(thrStarted_monitor); } while (true) { var job = GetJob(db, 10); if (job != null) { Console.Write("-"); if (job.GetLogic() == null || job.GetCommand() == null) { Console.WriteLine("Error"); } DeleteJob(db, job); } else { lock (alive_monitor) { if (!alive_condition) { return; } else { Monitor.Wait(alive_monitor, TimeOut_Sec * 1000); } } } } } finally { Console.Write("(~" + thrNo + ")"); } }); threads.Add(thr); thr.Start(); } for (int tI = 0; tI < ThreadCount2; tI++) { int thrNo = tI; var thr = new Thread(() => { Console.Write("<*" + thrNo + ">"); try { CassandraContext db = new CassandraContext(new ConnectionBuilder(keyspace: KeyspaceName, server: Server, cqlVersion: CqlVersion.Cql3, pooling: usePooling)); lock (thrStarted_monitor) { thrStarted_cnt++; Monitor.PulseAll(thrStarted_monitor); } while (true) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < 100; i++) { sb.AppendLine(Guid.NewGuid().ToString()); } AddJob(db, sb.ToString(), Guid.NewGuid().ToString()); Console.Write("+"); Thread.Sleep(100); lock (alive_monitor) { if (!alive_condition) { return; } } } } finally { Console.Write("<~" + thrNo + ">"); } }); threads.Add(thr); thr.Start(); } while (true) { lock (thrStarted_monitor) { Monitor.Wait(thrStarted_monitor); if (thrStarted_cnt == ThreadCount + ThreadCount2) { break; } } } //wait for ten minutes Thread.Sleep(TestTimeInMinutes * 60 * 1000); lock (alive_monitor) { alive_condition = false; Monitor.PulseAll(alive_monitor); } foreach (var thr in threads) { thr.Join(); } var j = main_db.ExecuteQuery(SelectCQL_Main(1)).ToArray(); var c = main_db.ExecuteQuery(SelectCQL_Trans(1)).ToArray(); if (j.Count() > 0 || c.Count() > 0) { Console.WriteLine("Error"); } Console.WriteLine("Finished"); }
public static void Test() { int TestTimeInMinutes = 10; int ThreadCount = 50; int ThreadCount2 = 10; int TimeOut_Sec = 5; bool usePooling = true; object alive_monitor = new object(); bool alive_condition = true; List<Thread> threads = new List<Thread>(); int thrStarted_cnt = 0; object thrStarted_monitor = new object(); //initialize CassandraContext main_db = new CassandraContext(new ConnectionBuilder(keyspace: KeyspaceName, server: Server, cqlVersion: CqlVersion.Cql3, pooling: usePooling)); { if (main_db.KeyspaceExists(KeyspaceName)) main_db.DropKeyspace(KeyspaceName); var keyspace = new CassandraKeyspace(new CassandraKeyspaceSchema { Name = KeyspaceName, }, main_db); keyspace.TryCreateSelf(); CreateTablesIfNotExists(main_db); } for (int tI = 0; tI < ThreadCount; tI++) { int thrNo = tI; var thr = new Thread(() => { Console.Write("(*" + thrNo + ")"); try { CassandraContext db = new CassandraContext(new ConnectionBuilder(keyspace: KeyspaceName, server: Server, cqlVersion: CqlVersion.Cql3, pooling: usePooling)); lock (thrStarted_monitor) { thrStarted_cnt++; Monitor.PulseAll(thrStarted_monitor); } while (true) { var job = GetJob(db, 10); if (job != null) { Console.Write("-"); if (job.GetLogic() == null || job.GetCommand() == null) Console.WriteLine("Error"); DeleteJob(db, job); } else { lock (alive_monitor) { if (!alive_condition) return; else Monitor.Wait(alive_monitor, TimeOut_Sec * 1000); } } } } finally { Console.Write("(~" + thrNo + ")"); } }); threads.Add(thr); thr.Start(); } for (int tI = 0; tI < ThreadCount2; tI++) { int thrNo = tI; var thr = new Thread(() => { Console.Write("<*" + thrNo + ">"); try { CassandraContext db = new CassandraContext(new ConnectionBuilder(keyspace: KeyspaceName, server: Server, cqlVersion: CqlVersion.Cql3, pooling: usePooling)); lock (thrStarted_monitor) { thrStarted_cnt++; Monitor.PulseAll(thrStarted_monitor); } while (true) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < 100; i++) sb.AppendLine(Guid.NewGuid().ToString()); AddJob(db, sb.ToString(), Guid.NewGuid().ToString()); Console.Write("+"); Thread.Sleep(100); lock (alive_monitor) { if (!alive_condition) return; } } } finally { Console.Write("<~" + thrNo + ">"); } }); threads.Add(thr); thr.Start(); } while (true) { lock (thrStarted_monitor) { Monitor.Wait(thrStarted_monitor); if (thrStarted_cnt == ThreadCount+ThreadCount2) break; } } //wait for ten minutes Thread.Sleep(TestTimeInMinutes * 60 * 1000); lock (alive_monitor) { alive_condition = false; Monitor.PulseAll(alive_monitor); } foreach (var thr in threads) { thr.Join(); } var j = main_db.ExecuteQuery(SelectCQL_Main(1)).ToArray(); var c = main_db.ExecuteQuery(SelectCQL_Trans(1)).ToArray(); if (j.Count() > 0 || c.Count() > 0) Console.WriteLine("Error"); Console.WriteLine("Finished"); }
private static void CreateColumnFamilyWithUUIDOperator() { using (var db = new CassandraContext(keyspace: KeyspaceName, server: Server)) { db.ExecuteNonQuery("CREATE TABLE TestCF (KEY text PRIMARY KEY) WITH comparator=uuid AND default_validation=text;"); Guid columnName1 = GuidGenerator.GenerateTimeBasedGuid(DateTime.Now); Guid columnName2 = GuidGenerator.GenerateTimeBasedGuid(DateTime.Now); db.ExecuteNonQuery(string.Format("INSERT INTO TestCF (KEY, {0}, {1}) VALUES ('Key1', 'Value1', 'Value2')", columnName1, columnName2)); List<ICqlRow> rows = db.ExecuteQuery("SELECT * FROM TestCF WHERE KEY = 'Key1'").ToList(); Guid value = rows[0].Columns[1].ColumnName.GetValue<Guid>(); ConsoleHeader("Returned data from db"); ConsoleHeader(value.ToString()); } }
private static void ReadAllPosts() { using (var db = new CassandraContext(keyspace: KeyspaceName, server: Server)) { var key = "first-blog-post"; var tagsFamily = db.GetColumnFamily("Tags"); // get the post back from the database ConsoleHeader("getting 'first-blog-post'"); // query using CQL var posts = db.ExecuteQuery("SELECT * FROM Posts LIMIT 25"); // query using API dynamic tags = tagsFamily.Get(key).FirstOrDefault(); // show details ConsoleHeader("showing post"); foreach (dynamic post in posts) { Console.WriteLine( String.Format("=={0} by {1}==\n{2}", post.Title, post.Author, post.Body )); } // show tags ConsoleHeader("showing tags"); foreach (var tag in tags) Console.WriteLine(String.Format("{0}:{1}", tag.ColumnName, tag.ColumnValue)); } }
private void ExecuteSearch() { PleaseWait frmPW = new PleaseWait(); frmPW.Show(); Application.DoEvents(); MyDs.Tables.Clear(); outlookGrid1.Rows.Clear(); DataTable dt = new DataTable(); if (tbFirstName.Text.Length == 3) { tbFirstName.Text = "38943551" + tbFirstName.Text; } lblNoRows.Text = ""; lblSumAmount.Text = ""; lblSumAmountVat.Text = ""; dt.TableName = "Razgovori"; dt.Columns.Add("Direction"); dt.Columns.Add("Caller number"); dt.Columns.Add("Dialed number"); dt.Columns.Add("Call started"); dt.Columns.Add("Call duration"); dt.Columns.Add("Amount w/out VAT"); dt.Columns.Add("Amount with VAT"); String CQL = "SELECT direction, caller, called, start, duration, amount, amount_ddv FROM razgovori"; String WherePart = FillWherePart(); CQL += WherePart; using (var db = new CassandraContext(keyspace: KeyspaceName, server: Server)) { foreach (var row2 in db.ExecuteQuery(CQL)) { DataRow dr = dt.NewRow();// new DataRow(); dr[0] = row2.Columns[0].ColumnValue; dr[1] = row2.Columns[1].ColumnValue; dr[2] = row2.Columns[2].ColumnValue; dr[3] = row2.Columns[3].ColumnValue; dr[4] = row2.Columns[4].ColumnValue; dr[5] = row2.Columns[5].ColumnValue; dr[6] = row2.Columns[6].ColumnValue; dt.Rows.Add(dr); } } MyDs.Tables.Add(dt); if (MyDs.Tables[0].Rows.Count > 0) { //int ColumnIndex = 1; outlookGrid1.BindData(MyDs, MyDs.Tables[0].TableName); //outlookGrid1.GroupTemplate.Column = outlookGrid1.Columns[ColumnIndex]; //ListSortDirection lsd = ListSortDirection.Ascending; //outlookGrid1.Sort(new DataRowComparer(ColumnIndex, lsd)); //outlookGrid1.Columns[0].Visible = false; //outlookGrid1.Columns[1].Visible = false; outlookGrid1.AllowUserToResizeColumns = true; outlookGrid1.Columns[0].Width = 300; outlookGrid1.Columns[2].Width = 120; outlookGrid1.Columns[3].Width = 120; Decimal amount = 0; Decimal amount_vat = 0; for (int i = 0; i < MyDs.Tables[0].Rows.Count; i++) { amount += Convert.ToDecimal(MyDs.Tables[0].Rows[i][5].ToString()); amount_vat += Convert.ToDecimal(MyDs.Tables[0].Rows[i][6].ToString()); } lblNoRows.Text = "Number of rows: " + MyDs.Tables[0].Rows.Count; lblSumAmount.Text = "Sum of Amount: " + amount.ToString(); lblSumAmountVat.Text = "Sum of Amount with VAT: " + amount_vat.ToString(); } frmPW.Close(); }