Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
plugin
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
link33
plugin
Commits
cbcc2979
Commit
cbcc2979
authored
Jan 01, 2019
by
vipwzw
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
merge from chain33
parent
8a67a5cf
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
75 additions
and
40 deletions
+75
-40
count_test.go
vendor/github.com/33cn/chain33/common/db/table/count_test.go
+1
-1
join_test.go
vendor/github.com/33cn/chain33/common/db/table/join_test.go
+4
-4
table_test.go
vendor/github.com/33cn/chain33/common/db/table/table_test.go
+5
-28
util.go
vendor/github.com/33cn/chain33/system/dapp/util.go
+9
-1
util_test.go
vendor/github.com/33cn/chain33/system/dapp/util_test.go
+54
-4
db.proto
vendor/github.com/33cn/chain33/types/proto/db.proto
+2
-2
No files found.
vendor/github.com/33cn/chain33/common/db/table/count_test.go
View file @
cbcc2979
...
@@ -23,7 +23,7 @@ func TestCount(t *testing.T) {
...
@@ -23,7 +23,7 @@ func TestCount(t *testing.T) {
assert
.
Equal
(
t
,
i
,
int64
(
1
))
assert
.
Equal
(
t
,
i
,
int64
(
1
))
kvs
,
err
:=
count
.
Save
()
kvs
,
err
:=
count
.
Save
()
assert
.
Nil
(
t
,
err
)
assert
.
Nil
(
t
,
err
)
setKV
(
ldb
,
kvs
)
util
.
SaveKVList
(
ldb
,
kvs
)
count
=
NewCount
(
"prefix"
,
"name#hello"
,
kvdb
)
count
=
NewCount
(
"prefix"
,
"name#hello"
,
kvdb
)
i
,
err
=
count
.
Get
()
i
,
err
=
count
.
Get
()
...
...
vendor/github.com/33cn/chain33/common/db/table/join_test.go
View file @
cbcc2979
...
@@ -33,7 +33,7 @@ func TestJoin(t *testing.T) {
...
@@ -33,7 +33,7 @@ func TestJoin(t *testing.T) {
kvs
,
err
:=
tablejoin
.
Save
()
kvs
,
err
:=
tablejoin
.
Save
()
assert
.
Nil
(
t
,
err
)
assert
.
Nil
(
t
,
err
)
assert
.
Equal
(
t
,
7
,
len
(
kvs
))
assert
.
Equal
(
t
,
7
,
len
(
kvs
))
setKV
(
ldb
,
kvs
)
util
.
SaveKVList
(
ldb
,
kvs
)
//query table
//query table
//每个表的查询,用 tablejoin.MustGetTable("gameaddr")
//每个表的查询,用 tablejoin.MustGetTable("gameaddr")
//join query 用 tablejoin.Query
//join query 用 tablejoin.Query
...
@@ -54,7 +54,7 @@ func TestJoin(t *testing.T) {
...
@@ -54,7 +54,7 @@ func TestJoin(t *testing.T) {
kvs
,
err
=
tablejoin
.
Save
()
kvs
,
err
=
tablejoin
.
Save
()
assert
.
Nil
(
t
,
err
)
assert
.
Nil
(
t
,
err
)
assert
.
Equal
(
t
,
7
,
len
(
kvs
))
assert
.
Equal
(
t
,
7
,
len
(
kvs
))
setKV
(
ldb
,
kvs
)
util
.
SaveKVList
(
ldb
,
kvs
)
rows
,
err
=
tablejoin
.
ListIndex
(
"addr#status"
,
JoinKey
([]
byte
(
"addr1"
),
[]
byte
(
"2"
)),
nil
,
0
,
0
)
rows
,
err
=
tablejoin
.
ListIndex
(
"addr#status"
,
JoinKey
([]
byte
(
"addr1"
),
[]
byte
(
"2"
)),
nil
,
0
,
0
)
assert
.
Nil
(
t
,
err
)
assert
.
Nil
(
t
,
err
)
assert
.
Equal
(
t
,
1
,
len
(
rows
))
assert
.
Equal
(
t
,
1
,
len
(
rows
))
...
@@ -78,7 +78,7 @@ func TestJoin(t *testing.T) {
...
@@ -78,7 +78,7 @@ func TestJoin(t *testing.T) {
kvs
,
err
=
tablejoin
.
Save
()
kvs
,
err
=
tablejoin
.
Save
()
assert
.
Nil
(
t
,
err
)
assert
.
Nil
(
t
,
err
)
assert
.
Equal
(
t
,
5
,
len
(
kvs
))
assert
.
Equal
(
t
,
5
,
len
(
kvs
))
setKV
(
ldb
,
kvs
)
util
.
SaveKVList
(
ldb
,
kvs
)
//改回到全部是1的情况
//改回到全部是1的情况
rightdata
=
&
protodata
.
Game
{
GameID
:
"gameid1"
,
Status
:
1
}
rightdata
=
&
protodata
.
Game
{
GameID
:
"gameid1"
,
Status
:
1
}
...
@@ -88,7 +88,7 @@ func TestJoin(t *testing.T) {
...
@@ -88,7 +88,7 @@ func TestJoin(t *testing.T) {
kvs
,
err
=
tablejoin
.
Save
()
kvs
,
err
=
tablejoin
.
Save
()
assert
.
Nil
(
t
,
err
)
assert
.
Nil
(
t
,
err
)
assert
.
Equal
(
t
,
10
,
len
(
kvs
))
assert
.
Equal
(
t
,
10
,
len
(
kvs
))
setKV
(
ldb
,
kvs
)
util
.
SaveKVList
(
ldb
,
kvs
)
rows
,
err
=
tablejoin
.
ListIndex
(
"addr#status"
,
JoinKey
([]
byte
(
"addr1"
),
[]
byte
(
"1"
)),
nil
,
0
,
0
)
rows
,
err
=
tablejoin
.
ListIndex
(
"addr#status"
,
JoinKey
([]
byte
(
"addr1"
),
[]
byte
(
"1"
)),
nil
,
0
,
0
)
assert
.
Nil
(
t
,
err
)
assert
.
Nil
(
t
,
err
)
assert
.
Equal
(
t
,
1
,
len
(
rows
))
assert
.
Equal
(
t
,
1
,
len
(
rows
))
...
...
vendor/github.com/33cn/chain33/common/db/table/table_test.go
View file @
cbcc2979
...
@@ -8,7 +8,6 @@ import (
...
@@ -8,7 +8,6 @@ import (
"fmt"
"fmt"
"testing"
"testing"
"github.com/33cn/chain33/common"
"github.com/33cn/chain33/common/db"
"github.com/33cn/chain33/common/db"
"github.com/33cn/chain33/types"
"github.com/33cn/chain33/types"
"github.com/33cn/chain33/util"
"github.com/33cn/chain33/util"
...
@@ -49,7 +48,7 @@ func TestTransactinList(t *testing.T) {
...
@@ -49,7 +48,7 @@ func TestTransactinList(t *testing.T) {
assert
.
Nil
(
t
,
err
)
assert
.
Nil
(
t
,
err
)
assert
.
Equal
(
t
,
len
(
kvs
),
12
)
assert
.
Equal
(
t
,
len
(
kvs
),
12
)
//save to database
//save to database
setKV
(
ldb
,
kvs
)
util
.
SaveKVList
(
ldb
,
kvs
)
//测试查询
//测试查询
query
:=
table
.
GetQuery
(
kvdb
)
query
:=
table
.
GetQuery
(
kvdb
)
...
@@ -187,7 +186,7 @@ func TestTransactinListAuto(t *testing.T) {
...
@@ -187,7 +186,7 @@ func TestTransactinListAuto(t *testing.T) {
assert
.
Nil
(
t
,
err
)
assert
.
Nil
(
t
,
err
)
assert
.
Equal
(
t
,
len
(
kvs
),
13
)
assert
.
Equal
(
t
,
len
(
kvs
),
13
)
//save to database
//save to database
setKV
(
ldb
,
kvs
)
util
.
SaveKVList
(
ldb
,
kvs
)
//测试查询
//测试查询
query
:=
table
.
GetQuery
(
kvdb
)
query
:=
table
.
GetQuery
(
kvdb
)
...
@@ -255,28 +254,6 @@ func mergeDup(kvs []*types.KeyValue) (kvset []*types.KeyValue) {
...
@@ -255,28 +254,6 @@ func mergeDup(kvs []*types.KeyValue) (kvset []*types.KeyValue) {
return
kvset
return
kvset
}
}
func
setKV
(
kvdb
db
.
DB
,
kvs
[]
*
types
.
KeyValue
)
{
//printKV(kvs)
batch
:=
kvdb
.
NewBatch
(
true
)
for
i
:=
0
;
i
<
len
(
kvs
);
i
++
{
if
kvs
[
i
]
.
Value
==
nil
{
batch
.
Delete
(
kvs
[
i
]
.
Key
)
continue
}
batch
.
Set
(
kvs
[
i
]
.
Key
,
kvs
[
i
]
.
Value
)
}
err
:=
batch
.
Write
()
if
err
!=
nil
{
panic
(
err
)
}
}
func
printKV
(
kvs
[]
*
types
.
KeyValue
)
{
for
i
:=
0
;
i
<
len
(
kvs
);
i
++
{
fmt
.
Printf
(
"KV %d %s(%s)
\n
"
,
i
,
string
(
kvs
[
i
]
.
Key
),
common
.
ToHex
(
kvs
[
i
]
.
Value
))
}
}
func
TestRow
(
t
*
testing
.
T
)
{
func
TestRow
(
t
*
testing
.
T
)
{
rowmeta
:=
NewTransactionRow
()
rowmeta
:=
NewTransactionRow
()
row
:=
rowmeta
.
CreateRow
()
row
:=
rowmeta
.
CreateRow
()
...
@@ -325,7 +302,7 @@ func TestDel(t *testing.T) {
...
@@ -325,7 +302,7 @@ func TestDel(t *testing.T) {
assert
.
Nil
(
t
,
err
)
assert
.
Nil
(
t
,
err
)
assert
.
Equal
(
t
,
len
(
kvs
),
6
)
assert
.
Equal
(
t
,
len
(
kvs
),
6
)
//save to database
//save to database
setKV
(
ldb
,
kvs
)
util
.
SaveKVList
(
ldb
,
kvs
)
//printKV(kvs)
//printKV(kvs)
query
:=
table
.
GetQuery
(
kvdb
)
query
:=
table
.
GetQuery
(
kvdb
)
rows
,
err
:=
query
.
ListIndex
(
"From"
,
[]
byte
(
addr1
[
0
:
10
]),
nil
,
0
,
0
)
rows
,
err
:=
query
.
ListIndex
(
"From"
,
[]
byte
(
addr1
[
0
:
10
]),
nil
,
0
,
0
)
...
@@ -367,7 +344,7 @@ func TestUpdate(t *testing.T) {
...
@@ -367,7 +344,7 @@ func TestUpdate(t *testing.T) {
assert
.
Nil
(
t
,
err
)
assert
.
Nil
(
t
,
err
)
assert
.
Equal
(
t
,
len
(
kvs
),
3
)
assert
.
Equal
(
t
,
len
(
kvs
),
3
)
//save to database
//save to database
setKV
(
ldb
,
kvs
)
util
.
SaveKVList
(
ldb
,
kvs
)
query
:=
table
.
GetQuery
(
kvdb
)
query
:=
table
.
GetQuery
(
kvdb
)
rows
,
err
:=
query
.
ListIndex
(
"From"
,
[]
byte
(
tx1
.
From
()),
nil
,
0
,
0
)
rows
,
err
:=
query
.
ListIndex
(
"From"
,
[]
byte
(
tx1
.
From
()),
nil
,
0
,
0
)
assert
.
Nil
(
t
,
err
)
assert
.
Nil
(
t
,
err
)
...
@@ -403,7 +380,7 @@ func TestReplace(t *testing.T) {
...
@@ -403,7 +380,7 @@ func TestReplace(t *testing.T) {
assert
.
Nil
(
t
,
err
)
assert
.
Nil
(
t
,
err
)
assert
.
Equal
(
t
,
3
,
len
(
kvs
))
assert
.
Equal
(
t
,
3
,
len
(
kvs
))
//save to database
//save to database
setKV
(
ldb
,
kvs
)
util
.
SaveKVList
(
ldb
,
kvs
)
query
:=
table
.
GetQuery
(
kvdb
)
query
:=
table
.
GetQuery
(
kvdb
)
_
,
err
=
query
.
ListIndex
(
"From"
,
[]
byte
(
addr1
[
0
:
10
]),
nil
,
0
,
0
)
_
,
err
=
query
.
ListIndex
(
"From"
,
[]
byte
(
addr1
[
0
:
10
]),
nil
,
0
,
0
)
assert
.
Equal
(
t
,
err
,
types
.
ErrNotFound
)
assert
.
Equal
(
t
,
err
,
types
.
ErrNotFound
)
...
...
vendor/github.com/33cn/chain33/system/dapp/util.go
View file @
cbcc2979
...
@@ -159,7 +159,15 @@ func (c *KVCreator) GetRollbackKVList() ([]*types.KeyValue, error) {
...
@@ -159,7 +159,15 @@ func (c *KVCreator) GetRollbackKVList() ([]*types.KeyValue, error) {
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
return
c
.
parseRollback
(
&
rollbacklog
)
kvs
,
err
:=
c
.
parseRollback
(
&
rollbacklog
)
if
err
!=
nil
{
return
nil
,
err
}
//reverse kvs
for
left
,
right
:=
0
,
len
(
kvs
)
-
1
;
left
<
right
;
left
,
right
=
left
+
1
,
right
-
1
{
kvs
[
left
],
kvs
[
right
]
=
kvs
[
right
],
kvs
[
left
]
}
return
kvs
,
nil
}
}
//rollbackLog rollback log
//rollbackLog rollback log
...
...
vendor/github.com/33cn/chain33/system/dapp/util_test.go
View file @
cbcc2979
...
@@ -11,14 +11,64 @@ import (
...
@@ -11,14 +11,64 @@ import (
func
TestKVCreator
(
t
*
testing
.
T
)
{
func
TestKVCreator
(
t
*
testing
.
T
)
{
dir
,
ldb
,
kvdb
:=
util
.
CreateTestDB
()
dir
,
ldb
,
kvdb
:=
util
.
CreateTestDB
()
defer
util
.
CloseTestDB
(
dir
,
ldb
)
defer
util
.
CloseTestDB
(
dir
,
ldb
)
creator
:=
NewKVCreator
(
kvdb
)
creator
:=
NewKVCreator
(
kvdb
,
[]
byte
(
"prefix-"
),
nil
)
creator
.
AddKV
([]
byte
(
"a"
),
[]
byte
(
"b"
))
creator
.
AddKV
Only
([]
byte
(
"a"
),
[]
byte
(
"b"
))
_
,
err
:=
kvdb
.
Get
([]
byte
(
"a"
))
_
,
err
:=
kvdb
.
Get
([]
byte
(
"
prefix-
a"
))
assert
.
Equal
(
t
,
err
,
types
.
ErrNotFound
)
assert
.
Equal
(
t
,
err
,
types
.
ErrNotFound
)
creator
.
Add
([]
byte
(
"a"
),
[]
byte
(
"b"
))
creator
.
Add
([]
byte
(
"a"
),
[]
byte
(
"b"
))
value
,
err
:=
kvdb
.
Get
([]
byte
(
"a"
))
value
,
err
:=
kvdb
.
Get
([]
byte
(
"
prefix-
a"
))
assert
.
Equal
(
t
,
err
,
nil
)
assert
.
Equal
(
t
,
err
,
nil
)
assert
.
Equal
(
t
,
value
,
[]
byte
(
"b"
))
assert
.
Equal
(
t
,
value
,
[]
byte
(
"b"
))
creator
=
NewKVCreator
(
kvdb
,
[]
byte
(
"prefix-"
),
[]
byte
(
"rollback"
))
creator
.
Add
([]
byte
(
"a"
),
[]
byte
(
"b"
))
creator
.
Add
([]
byte
(
"a1"
),
[]
byte
(
"b1"
))
creator
.
AddNoPrefix
([]
byte
(
"np"
),
[]
byte
(
"np-value"
))
creator
.
AddList
([]
*
types
.
KeyValue
{
{
Key
:
[]
byte
(
"l1"
),
Value
:
[]
byte
(
"vl1"
)},
{
Key
:
[]
byte
(
"l2"
),
Value
:
[]
byte
(
"vl2"
)},
})
creator
.
Add
([]
byte
(
"c1"
),
nil
)
creator
.
Add
([]
byte
(
"l2"
),
nil
)
creator
.
AddRollbackKV
()
assert
.
Equal
(
t
,
7
,
len
(
creator
.
KVList
()))
util
.
SaveKVList
(
ldb
,
creator
.
KVList
())
kvs
,
err
:=
creator
.
GetRollbackKVList
()
assert
.
Nil
(
t
,
err
)
assert
.
Equal
(
t
,
6
,
len
(
kvs
))
assert
.
Equal
(
t
,
[]
byte
(
"b"
),
kvs
[
5
]
.
Value
)
assert
.
Equal
(
t
,
[]
byte
(
nil
),
kvs
[
4
]
.
Value
)
assert
.
Equal
(
t
,
[]
byte
(
nil
),
kvs
[
3
]
.
Value
)
assert
.
Equal
(
t
,
[]
byte
(
nil
),
kvs
[
2
]
.
Value
)
assert
.
Equal
(
t
,
[]
byte
(
nil
),
kvs
[
1
]
.
Value
)
assert
.
Equal
(
t
,
[]
byte
(
"vl2"
),
kvs
[
0
]
.
Value
)
//current: a = b
//set data:
//a -> b (a -> b)
//a1 -> b1 (a1 -> nil)
//l1 -> vl1 (l1 -> nil)
//l2 -> vl2 (l2->nil)
//c1 -> nil (ignore)
//l2 -> nil (l2 -> vl2)
//rollback 的过程实际上是 set 的逆过程,就像时间倒流一样
//save rollback kvs
_
,
err
=
creator
.
Get
([]
byte
(
"np"
))
assert
.
Equal
(
t
,
types
.
ErrNotFound
,
err
)
v
,
_
:=
creator
.
GetNoPrefix
([]
byte
(
"np"
))
assert
.
Equal
(
t
,
[]
byte
(
"np-value"
),
v
)
util
.
SaveKVList
(
ldb
,
kvs
)
v
,
_
=
kvdb
.
Get
([]
byte
(
"prefix-a"
))
assert
.
Equal
(
t
,
[]
byte
(
"b"
),
v
)
v
,
_
=
creator
.
Get
([]
byte
(
"a"
))
assert
.
Equal
(
t
,
[]
byte
(
"b"
),
v
)
_
,
err
=
creator
.
Get
([]
byte
(
"a1"
))
assert
.
Equal
(
t
,
types
.
ErrNotFound
,
err
)
_
,
err
=
creator
.
Get
([]
byte
(
"l1"
))
assert
.
Equal
(
t
,
types
.
ErrNotFound
,
err
)
_
,
err
=
creator
.
Get
([]
byte
(
"l2"
))
assert
.
Equal
(
t
,
types
.
ErrNotFound
,
err
)
_
,
err
=
creator
.
Get
([]
byte
(
"c1"
))
assert
.
Equal
(
t
,
types
.
ErrNotFound
,
err
)
}
}
func
TestHeightIndexStr
(
t
*
testing
.
T
)
{
func
TestHeightIndexStr
(
t
*
testing
.
T
)
{
...
...
vendor/github.com/33cn/chain33/types/proto/db.proto
View file @
cbcc2979
...
@@ -108,4 +108,4 @@ message PruneData {
...
@@ -108,4 +108,4 @@ message PruneData {
//用于存储db Pool数据的Value
//用于存储db Pool数据的Value
message
StoreValuePool
{
message
StoreValuePool
{
repeated
bytes
values
=
1
;
repeated
bytes
values
=
1
;
}
}
\ No newline at end of file
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment