1
0
Fork 0
mirror of https://github.com/anyproto/anytype-heart.git synced 2025-06-08 05:47:07 +09:00

GO-5246 Fix perf tests (#2216)

This commit is contained in:
Mikhail 2025-03-10 15:49:31 +01:00 committed by GitHub
parent 9c4b2581d8
commit 7fff29993e
Signed by: github
GPG key ID: B5690EEEBB952194

View file

@ -305,48 +305,81 @@ func getFileSizes() map[string]uint64 {
func getTableSizes(mw *core.Middleware) (tables map[string]uint64) {
tables = make(map[string]uint64)
cfg := mw.GetApp().MustComponent(config.CName).(*config.Config)
db, err := sql.Open("sqlite3", cfg.GetNewSpaceStorePath())
sqliteDBs, err := findSQLiteFiles(cfg.GetNewSpaceStorePath())
if err != nil {
fmt.Println("Error opening database:", err)
return
log.Fatalf("sqlite find error: %v", err)
}
for _, dbPath := range sqliteDBs {
err := processDatabase(dbPath, tables)
if err != nil {
fmt.Printf("error handling database %s: %v", dbPath, err)
}
}
fmt.Println("Tables:")
for table, count := range tables {
fmt.Printf("%s: %d\n", table, count)
}
return
}
func processDatabase(dbPath string, tables map[string]uint64) error {
db, err := sql.Open("sqlite3", dbPath)
if err != nil {
return fmt.Errorf("dp open error: %w", err)
}
defer db.Close()
err = db.Ping()
if err != nil {
fmt.Println("Error pinging database:", err)
return
return fmt.Errorf("error ping db: %w", err)
}
rows, err := db.Query("SELECT name FROM sqlite_master WHERE type='table';")
if err != nil {
fmt.Println("Error querying database:", err)
return fmt.Errorf("sql query error: %w", err)
}
defer rows.Close()
fmt.Println("Tables:")
for rows.Next() {
var tableName string
err := rows.Scan(&tableName)
if err != nil {
fmt.Println("Error scanning row:", err)
if err := rows.Scan(&tableName); err != nil {
fmt.Printf("table reading err: %v", err)
continue
}
var count int
var count uint64
err = db.QueryRow(fmt.Sprintf("SELECT COUNT(*) FROM %s;", tableName)).Scan(&count)
if err != nil {
fmt.Println("Error querying row:", err)
fmt.Printf("table query err in %s: %v", tableName, err)
continue
}
tables[fmt.Sprintf("t_%s", tableName)] = uint64(count)
key := fmt.Sprintf("t_%s", tableName)
tables[key] += count
fmt.Printf("%s: %d\n", tableName, count)
fmt.Printf("DB %s -> %s: %d records\n", dbPath, tableName, count)
}
if err := rows.Err(); err != nil {
fmt.Println("Error iterating over rows:", err)
return fmt.Errorf("row traverse error: %w", err)
}
return
return nil
}
func findSQLiteFiles(root string) ([]string, error) {
var dbFiles []string
err := filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
if !info.IsDir() && filepath.Ext(path) == ".db" {
dbFiles = append(dbFiles, path)
}
return nil
})
return dbFiles, err
}
func init() {