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));
            }
        }