public CassandraTableColumn(string columnName, Type dataType, object content, string type) { ColumnName = columnName; DataType = dataType; Content = content; CassandraColumnType = type; switch (dataType.Name) { case "IDictionary`2": DataType = typeof(string); Content = CassandraDataProvider.DictionaryToSeparatedPairs(",", content as IDictionary <string, string>); break; case "IEnumerable`1": DataType = typeof(string); Content = CassandraDataProvider.ListToSeparatedString(",", content as IList <string> != null ? content as IList <string> : content as string[]); break; default: break; } }
public IEnumerable <ITableRow> GetRows(bool init) { string query = string.Format("select {0} from {1} {2} {3} {4};", (UsedIdentifiers != null && UsedIdentifiers.Count > 0) ? CassandraDataProvider.ListToSeparatedString(",", UsedIdentifiers) : "*", TableName, (!string.IsNullOrEmpty(_whereClause)) ? string.Format("where {0}", _whereClause) : string.Empty, (!string.IsNullOrEmpty(_orderClause)) ? string.Format("order by {0}", _orderClause) : string.Empty, (!string.IsNullOrEmpty(_whereClause)) ? "allow filtering" : string.Empty); SimpleStatement statement = new SimpleStatement(query); RowSet rows = new RowSet(); try { rows = _provider.CassandraSession.Execute(statement); } catch (Exception ex) { _provider.Logger.Error(LogCategory.DataProvider, "Cassandra: Error while executing statement:\n{0}\n\nDetails:\n{1}", query, ex.ToString()); throw; } finally { _orderClause = null; _whereClause = null; } foreach (var row in rows) { yield return(new CassandraTableRow(TableName, _provider, row, UsedIdentifiers, _cassandraTableMetadata)); } }