|  | @@ -64,7 +64,7 @@ func NewDecimal128(h, l uint64) Decimal128 {
 | 
	
		
			
				|  |  |  // bool 表示 unique
 | 
	
		
			
				|  |  |  func ResolveIndexName(cursor *Cursor) (map[string]bool, error) {
 | 
	
		
			
				|  |  |  	var idxList A
 | 
	
		
			
				|  |  | -	if err := UnmarshalCursor(cursor, &idxList); err != nil {
 | 
	
		
			
				|  |  | +	if err := CursorDecodeAll(cursor, &idxList); err != nil {
 | 
	
		
			
				|  |  |  		return nil, err
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -93,7 +93,7 @@ func ResolveIndexName(cursor *Cursor) (map[string]bool, error) {
 | 
	
		
			
				|  |  |  	return idxMap, nil
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -func UnmarshalCursor(cursor *Cursor, v interface{}) error {
 | 
	
		
			
				|  |  | +func CursorDecodeAll(cursor *Cursor, v interface{}) error {
 | 
	
		
			
				|  |  |  	ctx, cancel := context.WithTimeout(context.Background(), DefaultTimout)
 | 
	
		
			
				|  |  |  	defer func() {
 | 
	
		
			
				|  |  |  		_ = cursor.Close(ctx)
 | 
	
	
		
			
				|  | @@ -101,3 +101,18 @@ func UnmarshalCursor(cursor *Cursor, v interface{}) error {
 | 
	
		
			
				|  |  |  	}()
 | 
	
		
			
				|  |  |  	return cursor.All(ctx, v)
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +func CursorDecode(cursor *Cursor, v interface{}) error {
 | 
	
		
			
				|  |  | +	ctx, cancel := context.WithTimeout(context.Background(), DefaultTimout)
 | 
	
		
			
				|  |  | +	defer func() {
 | 
	
		
			
				|  |  | +		_ = cursor.Close(ctx)
 | 
	
		
			
				|  |  | +		cancel()
 | 
	
		
			
				|  |  | +	}()
 | 
	
		
			
				|  |  | +	var err error
 | 
	
		
			
				|  |  | +	for cursor.Next(ctx) {
 | 
	
		
			
				|  |  | +		if err = cursor.Decode(v); err == nil {
 | 
	
		
			
				|  |  | +			return nil
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	return err
 | 
	
		
			
				|  |  | +}
 |