Add transactional vise db ability #11
							
								
								
									
										18
									
								
								debug/db.go
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								debug/db.go
									
									
									
									
									
								
							| @ -32,17 +32,10 @@ func (k KeyInfo) String() string { | |||||||
| 
 | 
 | ||||||
| func ToKeyInfo(k []byte, sessionId string) (KeyInfo, error) { | func ToKeyInfo(k []byte, sessionId string) (KeyInfo, error) { | ||||||
| 	o := KeyInfo{} | 	o := KeyInfo{} | ||||||
| 	//b := []byte(sessionId)
 |  | ||||||
| 
 |  | ||||||
| //	if len(k) <= len(b) {
 |  | ||||||
| //		return o, fmt.Errorf("storage key missing")
 |  | ||||||
| //	}
 |  | ||||||
| 	 | 	 | ||||||
| 	o.SessionId = sessionId | 	o.SessionId = sessionId | ||||||
| 	o.Typ = uint8(k[0]) | 	o.Typ = uint8(k[0]) | ||||||
| 	k = k[1:] | 	k = k[1:] | ||||||
| 	//o.SessionId = string(k[:len(b)])
 |  | ||||||
| 	//k = k[len(b):]
 |  | ||||||
| 
 | 
 | ||||||
| 	if o.Typ == visedb.DATATYPE_USERDATA { | 	if o.Typ == visedb.DATATYPE_USERDATA { | ||||||
| 		if len(k) == 0 { | 		if len(k) == 0 { | ||||||
| @ -64,17 +57,6 @@ func ToKeyInfo(k []byte, sessionId string) (KeyInfo, error) { | |||||||
| 	return o, nil | 	return o, nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func FromKey(k []byte) (KeyInfo, error) { |  | ||||||
| 	o := KeyInfo{} |  | ||||||
| 
 |  | ||||||
| 	if len(k) < 3 { |  | ||||||
| 		return o, fmt.Errorf("insufficient key length: %d", len(k)) |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	sessionIdBytes := k[1:len(k)-2] |  | ||||||
| 	return ToKeyInfo(k, string(sessionIdBytes)) |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| func subTypToString(v storedb.DataTyp) string { | func subTypToString(v storedb.DataTyp) string { | ||||||
| 	return dbTypStr[v + visedb.DATATYPE_USERDATA + 1] | 	return dbTypStr[v + visedb.DATATYPE_USERDATA + 1] | ||||||
| } | } | ||||||
|  | |||||||
| @ -10,7 +10,6 @@ import ( | |||||||
| func TestDebugDbSubKeyInfo(t *testing.T) { | func TestDebugDbSubKeyInfo(t *testing.T) { | ||||||
| 	s := "foo" | 	s := "foo" | ||||||
| 	b := []byte{0x20} | 	b := []byte{0x20} | ||||||
| 	b = append(b, []byte(s)...) |  | ||||||
| 	b = append(b, []byte{0x00, 0x02}...) | 	b = append(b, []byte{0x00, 0x02}...) | ||||||
| 	r, err := ToKeyInfo(b, s) | 	r, err := ToKeyInfo(b, s) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| @ -56,7 +55,6 @@ func TestDebugDbKeyInfo(t *testing.T) { | |||||||
| func TestDebugDbKeyInfoRestore(t *testing.T) { | func TestDebugDbKeyInfoRestore(t *testing.T) { | ||||||
| 	s := "bar" | 	s := "bar" | ||||||
| 	b := []byte{visedb.DATATYPE_USERDATA} | 	b := []byte{visedb.DATATYPE_USERDATA} | ||||||
| 	b = append(b, []byte(s)...) |  | ||||||
| 	k := storedb.ToBytes(storedb.DATA_ACTIVE_SYM) | 	k := storedb.ToBytes(storedb.DATA_ACTIVE_SYM) | ||||||
| 	b = append(b, k...) | 	b = append(b, k...) | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -20,12 +20,12 @@ var ( | |||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| func formatItem(k []byte, v []byte, sessionId string) (string, error) { | func formatItem(k []byte, v []byte, sessionId string) (string, error) { | ||||||
| 	//o, err := debug.FromKey(k)
 |  | ||||||
| 	o, err := debug.ToKeyInfo(k, sessionId) | 	o, err := debug.ToKeyInfo(k, sessionId) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return "", err | 		return "", err | ||||||
| 	} | 	} | ||||||
| 	s := fmt.Sprintf("%vValue: %v\n\n", o, string(v)) | 	s := fmt.Sprintf("%v\t%v\n", o.Label, string(v)) | ||||||
|  | 
 | ||||||
| 	return s, nil | 	return s, nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -37,6 +37,7 @@ func main() { | |||||||
| 	var database string | 	var database string | ||||||
| 	var engineDebug bool | 	var engineDebug bool | ||||||
| 	var err error | 	var err error | ||||||
|  | 	var first bool | ||||||
| 
 | 
 | ||||||
| 	flag.StringVar(&sessionId, "session-id", "075xx2123", "session id") | 	flag.StringVar(&sessionId, "session-id", "075xx2123", "session id") | ||||||
| 	flag.StringVar(&connStr, "c", "", "connection string") | 	flag.StringVar(&connStr, "c", "", "connection string") | ||||||
| @ -80,6 +81,10 @@ func main() { | |||||||
| 		if k == nil { | 		if k == nil { | ||||||
| 			break | 			break | ||||||
| 		} | 		} | ||||||
|  | 		if !first { | ||||||
|  | 			fmt.Printf("Session ID: %s\n---\n", sessionId) | ||||||
|  | 			first = true | ||||||
|  | 		} | ||||||
| 		r, err := formatItem(append([]byte{db.DATATYPE_USERDATA}, k...), v, sessionId) | 		r, err := formatItem(append([]byte{db.DATATYPE_USERDATA}, k...), v, sessionId) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			fmt.Fprintf(os.Stderr, "format db item error: %v\n", err) | 			fmt.Fprintf(os.Stderr, "format db item error: %v\n", err) | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user