Exemplo n.º 1
0
        public static CassandraSlicePredicate SetSchemaForSlicePredicate(CassandraSlicePredicate predicate, CassandraColumnFamilySchema schema, bool forSuperColumn = false)
        {
            CassandraType columnType = forSuperColumn ? schema.SuperColumnNameType : schema.ColumnNameType;

            if (predicate is CassandraRangeSlicePredicate)
            {
                var x      = (CassandraRangeSlicePredicate)predicate;
                var start  = CassandraObject.GetCassandraObjectFromObject(x.Start, columnType);
                var finish = CassandraObject.GetCassandraObjectFromObject(x.Finish, columnType);

                return(new CassandraRangeSlicePredicate(start, finish, x.Reversed, x.Count));
            }
            else if (predicate is CassandraColumnSlicePredicate)
            {
                var x    = (CassandraColumnSlicePredicate)predicate;
                var cols = x.Columns.ToList();

                for (int i = 0; i < cols.Count; i++)
                {
                    cols[i] = CassandraObject.GetCassandraObjectFromObject(cols[i], columnType);
                }

                return(new CassandraColumnSlicePredicate(cols));
            }

            return(null);
        }
Exemplo n.º 2
0
		public static CassandraSlicePredicate SetSchemaForSlicePredicate(CassandraSlicePredicate predicate, CassandraColumnFamilySchema schema, bool forSuperColumn = false)
		{
			CassandraType columnType = forSuperColumn ? schema.SuperColumnNameType : schema.ColumnNameType;

			if (predicate is CassandraRangeSlicePredicate)
			{
				var x = (CassandraRangeSlicePredicate)predicate;
				var start = CassandraObject.GetCassandraObjectFromObject(x.Start, columnType);
				var finish = CassandraObject.GetCassandraObjectFromObject(x.Finish, columnType);

				return new CassandraRangeSlicePredicate(start, finish, x.Reversed, x.Count);
			}
			else if (predicate is CassandraColumnSlicePredicate)
			{
				var x = (CassandraColumnSlicePredicate)predicate;
				var cols = x.Columns.ToList();

				for (int i = 0; i < cols.Count; i++)
					cols[i] = CassandraObject.GetCassandraObjectFromObject(cols[i], columnType);

				return new CassandraColumnSlicePredicate(cols);
			}

			return null;
		}
Exemplo n.º 3
0
        public override IDictionary <CassandraObject, int> Execute()
        {
            var schema = ColumnFamily.GetSchema();

            var parent = new CassandraColumnParent {
                ColumnFamily = ColumnFamily.FamilyName
            };

            if (SuperColumnName != null)
            {
                parent.SuperColumn = SuperColumnName;
            }

            SlicePredicate = Helper.SetSchemaForSlicePredicate(SlicePredicate, schema, SuperColumnName == null);

            var output = Session.GetClient().multiget_count(
                Keys,
                parent,
                SlicePredicate,
                Session.ReadConsistency
                );

            var results = new Dictionary <CassandraObject, int>();

            foreach (var result in output)
            {
                results.Add(result.Key, result.Value);
            }

            return(results);
        }
        private IEnumerable <FluentColumn> GetColumns(BaseCassandraColumnFamily columnFamily)
        {
            var schema = ColumnFamily.GetSchema();
            var list   = new List <FluentColumn>();

            var parent = new CassandraColumnParent {
                ColumnFamily = columnFamily.FamilyName,
                SuperColumn  = SuperColumnName
            };

            SlicePredicate = Helper.SetSchemaForSlicePredicate(SlicePredicate, schema, SuperColumnName == null);

            var output = Session.GetClient().get_slice(
                Key,
                parent,
                SlicePredicate,
                Session.ReadConsistency
                );

            foreach (var result in output)
            {
                var r = Helper.ConvertColumnToFluentColumn(result.Column, schema);
                list.Add(r);
            }

            return(list);
        }
Exemplo n.º 5
0
        private IEnumerable <FluentSuperColumn> GetColumns(BaseCassandraColumnFamily columnFamily)
        {
            var schema = ColumnFamily.GetSchema();

            var parent = new CassandraColumnParent {
                ColumnFamily = columnFamily.FamilyName
            };

            SlicePredicate = Helper.SetSchemaForSlicePredicate(SlicePredicate, schema);

            var output = Session.GetClient().get_slice(
                Key,
                parent,
                SlicePredicate,
                Session.ReadConsistency
                );

            foreach (var result in output)
            {
                var r = Helper.ConvertSuperColumnToFluentSuperColumn(result.Super_column, schema);
                columnFamily.Context.Attach(r);
                r.MutationTracker.Clear();

                yield return(r);
            }
        }
		public Dictionary<byte[], int> multiget_count(List<CassandraObject> keys, CassandraColumnParent column_parent, CassandraSlicePredicate predicate, Apache.Cassandra.ConsistencyLevel consistency_level)
		{
			return _client.multiget_count(
				Helper.ToByteArrayList(keys),
				Helper.CreateColumnParent(column_parent),
				Helper.CreateSlicePredicate(predicate),
				consistency_level);
		}
		public List<Apache.Cassandra.KeySlice> get_indexed_slices(CassandraColumnParent column_parent, CassandraIndexClause index_clause, CassandraSlicePredicate column_predicate, Apache.Cassandra.ConsistencyLevel consistency_level)
		{
			return _client.get_indexed_slices(
				Helper.CreateColumnParent(column_parent),
				Helper.CreateIndexClause(index_clause),
				Helper.CreateSlicePredicate(column_predicate),
				consistency_level);
		}
		public List<Apache.Cassandra.KeySlice> get_range_slices(CassandraColumnParent column_parent, CassandraSlicePredicate predicate, CassandraKeyRange range, Apache.Cassandra.ConsistencyLevel consistency_level)
		{
			return _client.get_range_slices(
				Helper.CreateColumnParent(column_parent),
				Helper.CreateSlicePredicate(predicate),
				Helper.CreateKeyRange(range),
				consistency_level);
		}
		public int get_count(CassandraObject key, CassandraColumnParent column_parent, CassandraSlicePredicate predicate, Apache.Cassandra.ConsistencyLevel consistency_level)
		{
			return _client.get_count(
				key.TryToBigEndian(),
				Helper.CreateColumnParent(column_parent),
				Helper.CreateSlicePredicate(predicate),
				consistency_level);
		}
Exemplo n.º 10
0
        private static object BuildOperation <TResult>(CassandraQuerySetup setup, CassandraSlicePredicate predicate, IDictionary <string, object> calls)
        {
            if (calls.ContainsKey("CountColumnsByKey"))
            {
                return(new MultiGetColumnCount(setup.Keys, setup.SuperColumnName, predicate));
            }

            if (calls.ContainsKey("CountColumns"))
            {
                return(new ColumnCount(setup.Keys.First(), setup.SuperColumnName, predicate));
            }

            var forSuperColumn = typeof(TResult) == typeof(FluentSuperColumnFamily);

            if (!forSuperColumn && setup.SuperColumnName != null)
            {
                throw new CassandraException("'ForSuperColumn' can only be used on a super column family.");
            }

            if (forSuperColumn)
            {
                if (setup.IndexClause != null)
                {
                    var indexClause = new CassandraIndexClause(setup.StartKey, setup.ColumnCount, setup.IndexClause);
                    return(new GetSuperColumnFamilyIndexedSlices(indexClause, predicate));
                }
                else if (setup.Keys.Count() > 0)
                {
                    return(new MultiGetSuperColumnFamilySlice(setup.Keys, setup.SuperColumnName, predicate));
                }
                else
                {
                    var keyRange = new CassandraKeyRange(setup.StartKey, setup.EndKey, setup.StartToken, setup.EndToken, setup.KeyCount);
                    return(new GetSuperColumnFamilyRangeSlices(keyRange, setup.SuperColumnName, predicate));
                }
            }
            else
            {
                if (setup.IndexClause != null)
                {
                    var indexClause = new CassandraIndexClause(setup.StartKey, setup.KeyCount, setup.IndexClause);
                    return(new GetColumnFamilyIndexedSlices(indexClause, predicate));
                }
                else if (setup.Keys.Count() > 0)
                {
                    return(new MultiGetColumnFamilySlice(setup.Keys, predicate));
                }
                else
                {
                    var keyRange = new CassandraKeyRange(setup.StartKey, setup.EndKey, setup.StartToken, setup.EndToken, setup.KeyCount);
                    return(new GetColumnFamilyRangeSlices(keyRange, predicate));
                }
            }
        }
Exemplo n.º 11
0
		public static SlicePredicate CreateSlicePredicate(CassandraSlicePredicate predicate)
		{
			if (predicate is CassandraRangeSlicePredicate)
			{
				var x = (CassandraRangeSlicePredicate)predicate;
				return new SlicePredicate {
					Slice_range = new SliceRange {
						Start = x.Start.TryToBigEndian() ?? new byte[0],
						Finish = x.Finish.TryToBigEndian() ?? new byte[0],
						Reversed = x.Reversed,
						Count = x.Count
					}
				};
			}
			else if (predicate is CassandraColumnSlicePredicate)
			{
				var x = (CassandraColumnSlicePredicate)predicate;
				return new SlicePredicate {
					Column_names = x.Columns.Select(o => o.TryToBigEndian()).ToList()
				};
			}

			return null;
		}
Exemplo n.º 12
0
        public static SlicePredicate CreateSlicePredicate(CassandraSlicePredicate predicate)
        {
            if (predicate is CassandraRangeSlicePredicate)
            {
                var x = (CassandraRangeSlicePredicate)predicate;
                return(new SlicePredicate {
                    Slice_range = new SliceRange {
                        Start = x.Start.TryToBigEndian() ?? new byte[0],
                        Finish = x.Finish.TryToBigEndian() ?? new byte[0],
                        Reversed = x.Reversed,
                        Count = x.Count
                    }
                });
            }
            else if (predicate is CassandraColumnSlicePredicate)
            {
                var x = (CassandraColumnSlicePredicate)predicate;
                return(new SlicePredicate {
                    Column_names = x.Columns.Select(o => o.TryToBigEndian()).ToList()
                });
            }

            return(null);
        }
 public MultiGetColumnFamilySlice(IEnumerable <BytesType> keys, CassandraSlicePredicate columnSlicePredicate)
 {
     Keys           = keys.ToList();
     SlicePredicate = columnSlicePredicate;
 }
Exemplo n.º 14
0
 public ColumnCount(CassandraObject key, CassandraSlicePredicate columnSlicePredicate)
 {
     Key            = key;
     SlicePredicate = columnSlicePredicate;
 }
Exemplo n.º 15
0
 public List <Apache.Cassandra.KeySlice> get_indexed_slices(CassandraColumnParent column_parent, CassandraIndexClause index_clause, CassandraSlicePredicate column_predicate, Apache.Cassandra.ConsistencyLevel consistency_level)
 {
     return(_client.get_indexed_slices(
                Helper.CreateColumnParent(column_parent),
                Helper.CreateIndexClause(index_clause),
                Helper.CreateSlicePredicate(column_predicate),
                consistency_level));
 }
 public GetColumnFamilySlice(CassandraObject key, CassandraSlicePredicate columnSlicePredicate)
 {
     Key            = key;
     SlicePredicate = columnSlicePredicate;
 }
Exemplo n.º 17
0
 public GetSuperColumnSlice(BytesType key, CassandraType superColumnName, CassandraSlicePredicate columnSlicePredicate)
 {
     Key             = key;
     SuperColumnName = superColumnName;
     SlicePredicate  = columnSlicePredicate;
 }
Exemplo n.º 18
0
 public List <Apache.Cassandra.KeySlice> get_range_slices(CassandraColumnParent column_parent, CassandraSlicePredicate predicate, CassandraKeyRange range, Apache.Cassandra.ConsistencyLevel consistency_level)
 {
     return(_client.get_range_slices(
                Helper.CreateColumnParent(column_parent),
                Helper.CreateSlicePredicate(predicate),
                Helper.CreateKeyRange(range),
                consistency_level));
 }
Exemplo n.º 19
0
 public ColumnCount(BytesType key, CassandraSlicePredicate columnSlicePredicate)
 {
     Key            = key;
     SlicePredicate = columnSlicePredicate;
 }
 public MultiGetSuperColumnFamilySlice(IEnumerable <CassandraObject> keys, CassandraObject superColumnName, CassandraSlicePredicate columnSlicePredicate)
 {
     Keys            = keys.ToList();
     SuperColumnName = superColumnName;
     SlicePredicate  = columnSlicePredicate;
 }
 public GetSuperColumnRangeSlices(CassandraKeyRange keyRange, CassandraType superColumnName, CassandraSlicePredicate columnSlicePredicate)
 {
     KeyRange        = keyRange;
     SuperColumnName = superColumnName;
     SlicePredicate  = columnSlicePredicate;
 }
Exemplo n.º 22
0
 public MultiGetColumnCount(IEnumerable <CassandraObject> keys, CassandraSlicePredicate columnSlicePredicate)
 {
     Keys           = keys.ToList();
     SlicePredicate = columnSlicePredicate;
 }
Exemplo n.º 23
0
 public MultiGetSuperColumnSlice(IEnumerable <BytesType> keys, CassandraType superColumnName, CassandraSlicePredicate columnSlicePredicate)
 {
     Keys            = keys.ToList();
     SuperColumnName = superColumnName;
     SlicePredicate  = columnSlicePredicate;
 }
 public GetColumnFamilyRangeSlices(CassandraKeyRange keyRange, CassandraSlicePredicate columnSlicePredicate)
 {
     KeyRange       = keyRange;
     SlicePredicate = columnSlicePredicate;
 }
 public GetSuperColumnIndexedSlices(CassandraIndexClause indexClause, CassandraType superColumnName, CassandraSlicePredicate columnSlicePredicate)
 {
     IndexClause     = indexClause;
     SuperColumnName = superColumnName;
     SlicePredicate  = columnSlicePredicate;
 }
 public GetSuperColumnSlice(CassandraObject key, CassandraObject superColumnName, CassandraSlicePredicate columnSlicePredicate)
 {
     Key             = key;
     SuperColumnName = superColumnName;
     SlicePredicate  = columnSlicePredicate;
 }
Exemplo n.º 27
0
 public int get_count(CassandraObject key, CassandraColumnParent column_parent, CassandraSlicePredicate predicate, Apache.Cassandra.ConsistencyLevel consistency_level)
 {
     return(_client.get_count(
                key.TryToBigEndian(),
                Helper.CreateColumnParent(column_parent),
                Helper.CreateSlicePredicate(predicate),
                consistency_level));
 }
Exemplo n.º 28
0
 public GetColumnFamilySlice(BytesType key, CassandraSlicePredicate columnSlicePredicate)
 {
     Key            = key;
     SlicePredicate = columnSlicePredicate;
 }
Exemplo n.º 29
0
 public Dictionary <byte[], int> multiget_count(List <CassandraObject> keys, CassandraColumnParent column_parent, CassandraSlicePredicate predicate, Apache.Cassandra.ConsistencyLevel consistency_level)
 {
     return(_client.multiget_count(
                Helper.ToByteArrayList(keys),
                Helper.CreateColumnParent(column_parent),
                Helper.CreateSlicePredicate(predicate),
                consistency_level));
 }
Exemplo n.º 30
0
 public GetSuperColumnFamilyRangeSlices(CassandraKeyRange keyRange, CassandraObject superColumnName, CassandraSlicePredicate columnSlicePredicate)
 {
     KeyRange        = keyRange;
     SuperColumnName = superColumnName;
     SlicePredicate  = columnSlicePredicate;
 }
 public GetColumnFamilyIndexedSlices(CassandraIndexClause indexClause, CassandraSlicePredicate columnSlicePredicate)
 {
     IndexClause    = indexClause;
     SlicePredicate = columnSlicePredicate;
 }