Exemple #1
0
        public CassandraCqlRowSchema(CqlResult result, string familyName)
        {
#if DEBUG
            _def = result.Schema;
#endif

            var def          = result.Schema;
            var colNameType  = CassandraType.GetCassandraType(def.Default_name_type);
            var colValueType = CassandraType.GetCassandraType(def.Default_value_type);

            FamilyName             = familyName;
            DefaultColumnNameType  = colNameType;
            DefaultColumnValueType = colValueType;
            Columns = new List <CassandraColumnSchema>();

            var colNameTypes = new Dictionary <CassandraObject, CassandraType>();

            foreach (var c in def.Name_types)
            {
                var type = CassandraType.GetCassandraType(c.Value);
                var name = CassandraObject.GetCassandraObjectFromDatabaseByteArray(c.Key, CassandraType.BytesType);

                colNameTypes.Add(name, type);
            }

            // columns returned
            foreach (var c in def.Value_types)
            {
                var type     = CassandraType.GetCassandraType(c.Value);
                var nameType = colNameType;
                var name     = CassandraObject.GetCassandraObjectFromDatabaseByteArray(c.Key, CassandraType.BytesType);

                if (colNameTypes.ContainsKey(name))
                {
                    nameType = colNameTypes[name];
                }

                var colSchema = new CassandraColumnSchema {
                    NameType  = nameType,
                    Name      = name,
                    ValueType = type
                };

                Columns.Add(colSchema);
            }
        }
 private void ResolveMarshallersFromSchema(CqlMetadata cqlMetadata)
 {
     _KeyMarshaller = new Marshal.BytesType();
     _ColumnNameMarshaller = TypeResolver.GetMarshalledTypeForName(cqlMetadata.Default_name_type);
     _ColumnValueMarshaller = TypeResolver.GetMarshalledTypeForName(cqlMetadata.Default_value_type);
 }