예제 #1
0
 public string ToQueryPlan()
 {
     var writer = new StringWriter();
     writer.Write(IsUnique ? "unique " : "non-unique ");
     writer.Write("hash={");
     IndexedPropDesc.ToQueryPlan(writer, HashIndexedProps);
     writer.Write("} btree={");
     IndexedPropDesc.ToQueryPlan(writer, RangeIndexedProps);
     writer.Write("} advanced={");
     writer.Write(AdvancedIndexDesc == null ? "" : AdvancedIndexDesc.ToQueryPlan());
     writer.Write("}");
     return writer.ToString();
 }
예제 #2
0
 public CodegenExpression Make(
     CodegenMethodScope parent,
     CodegenClassScope classScope)
 {
     var method = parent.MakeChild(typeof(IndexMultiKey), GetType(), classScope);
     var hashes = IndexedPropDesc.MakeArray(HashIndexedProps);
     var ranges = IndexedPropDesc.MakeArray(RangeIndexedProps);
     var advanced = AdvancedIndexDesc == null
         ? ConstantNull()
         : AdvancedIndexDesc.CodegenMake(parent, classScope);
     method.Block.MethodReturn(NewInstance<IndexMultiKey>(Constant(IsUnique), hashes, ranges, advanced));
     return LocalMethod(method);
 }