/// <summary> /// Remove all related indexes for object by ID /// ONLY for objects and indexes located in THIS space /// </summary> /// <param name="a"></param> private void remove_all_indexes(string space_name, long id) { VSIndex ref_index = this.get_index(DEFS.PrepareFullIndexName(space_name, DEFS.INDEX_CROSS_REFERENCES)); if (ref_index != null) { byte[] key = VSLib.ConvertLongToByteReverse(id); long[] ref_nodes = ref_index.FindAll(key, false); // Get all avl node ids for obj id ref_index.delete_node(key, -1); // Remove reference record for (int i = 0; i < ref_nodes.Length; i++) { this.get_index(this.GetAllocation(ref_nodes[i]).ReadLong(VSAvlNode.INDEX_POS)).delete_avl_node(ref_nodes[i], id); } } }