MCPcopy Index your code
hub / github.com/CovenantSQL/CovenantSQL / insertData

Function insertData

test/stable/main.go:45–79  ·  view source on GitHub ↗
(db *sql.DB, tableName string, dataCount int64, pool *grpool.Pool)

Source from the content-addressed store, hash-verified

43}
44
45func insertData(db *sql.DB, tableName string, dataCount int64, pool *grpool.Pool) {
46 var i int64
47 start := time.Now()
48 log.Infof("LOG: %v start time %v\n", tableName, start.String())
49 var errCount int32
50
51 for i = 0; i < dataCount; i++ {
52 var vals [1024]byte
53 rand.Read(vals[:])
54 data := string(vals[:])
55 index := i
56 pool.WaitCount(1)
57 pool.JobQueue <- func() {
58 defer pool.JobDone()
59 _, err := db.Exec(
60 fmt.Sprintf("INSERT INTO `%s` VALUES (?, ?)", tableName),
61 index, data,
62 )
63 if err != nil {
64 log.Errorf("Failed to insert data in database: %v %v\n", index, err)
65 atomic.AddInt32(&errCount, 1)
66 } else {
67 atomic.StoreInt32(&errCount, 0)
68 }
69 }
70 if i%10000 == 0 {
71 log.Infof("%v Inserted: %v %v\n", time.Now().Sub(start), tableName, i)
72 }
73 if errCount > 10000 {
74 log.Errorf("Error count reach max limit\n")
75 break
76 }
77 }
78 log.Infof("LOG: %v end time %v\n", tableName, time.Now().String())
79}
80
81func main() {
82 log.SetLevel(log.InfoLevel)

Callers 1

mainFunction · 0.85

Calls 5

InfofFunction · 0.92
ErrorfFunction · 0.92
ReadMethod · 0.65
ExecMethod · 0.65
StringMethod · 0.45

Tested by

no test coverage detected