Skip to content

Commit f23cd75

Browse files
fix: 存在しないテーブルでのSlice out of bounds エラーを修正
1 parent 8beaa28 commit f23cd75

2 files changed

Lines changed: 9 additions & 28 deletions

File tree

file/file_manager.go

Lines changed: 2 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -22,35 +22,9 @@ func NewFileManager(dbDirectory string, blockSize int32) (*FileManager, error) {
2222
return nil, err
2323
}
2424
isNew = true
25-
} else {
26-
// ディレクトリは存在するが、空かどうか(またはtempファイルのみ)をチェック
27-
files, err := os.ReadDir(dbDirectory)
28-
if err != nil {
29-
return nil, err
30-
}
31-
32-
hasNonTempFiles := false
33-
for _, file := range files {
34-
if file.IsDir() {
35-
continue
36-
}
37-
// これがtempファイルかどうかをチェック
38-
name := file.Name()
39-
if len(name) >= 4 && name[:4] == "temp" {
40-
continue // tempファイルをスキップ
41-
}
42-
// temp以外のファイルが見つかった場合、これは既存のデータベース
43-
hasNonTempFiles = true
44-
break
45-
}
46-
47-
// temp以外のファイルが見つからない場合、新しいデータベースとして扱う
48-
if !hasNonTempFiles {
49-
isNew = true
50-
}
5125
}
5226

53-
// 残っている一時ファイルを削除
27+
// remove any leftover temporally files
5428
files, err := os.ReadDir(dbDirectory)
5529
if err != nil {
5630
return nil, err
@@ -59,7 +33,7 @@ func NewFileManager(dbDirectory string, blockSize int32) (*FileManager, error) {
5933
if file.IsDir() {
6034
continue
6135
}
62-
// tempで始まる
36+
// starts with temp
6337
if name := file.Name(); len(name) >= 4 && name[:4] == "temp" {
6438
err := os.Remove(dbDirectory + "/" + name)
6539
if err != nil {

metadata/table_manager.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package metadata
22

33
import (
4+
"fmt"
5+
46
"github.com/team-gonyo/gonyo-db/record"
57
"github.com/team-gonyo/gonyo-db/scan"
68
"github.com/team-gonyo/gonyo-db/tx"
@@ -170,6 +172,11 @@ func (tm *TableManager) GetLayout(tblname string, tx *tx.Transaction) (*record.L
170172
}
171173
}
172174

175+
// テーブルが見つからない場合はエラーを返す
176+
if size == -1 {
177+
return nil, fmt.Errorf("table '%s' not found", tblname)
178+
}
179+
173180
sch := record.NewSchema()
174181
offsets := make(map[string]int32)
175182

0 commit comments

Comments
 (0)