perf(go): skip empty parsed raw payloads

This commit is contained in:
lingniu
2026-07-03 08:51:30 +08:00
parent d4c164480f
commit c916120ea2
2 changed files with 29 additions and 1 deletions

View File

@@ -126,6 +126,27 @@ func TestWriterChunksOversizedParsedJSON(t *testing.T) {
}
}
func TestWriterLeavesParsedJSONEmptyWhenNoParsedPayload(t *testing.T) {
exec := &recordingExec{}
writer := NewWriter(exec)
env := sampleEnvelope()
env.Parsed = nil
env.ParseStatus = envelope.ParseBadFrame
env.ParseError = "invalid frame checksum"
if err := writer.AppendRawFrame(context.Background(), env); err != nil {
t.Fatalf("AppendRawFrame() error = %v", err)
}
rawInsert := findSQL(exec.calls, "INSERT INTO raw_")
if strings.Contains(rawInsert, "'{}'") || strings.Contains(rawInsert, "'null'") {
t.Fatalf("raw insert should not store empty parsed_json payload: %s", rawInsert)
}
if !strings.Contains(rawInsert, "'invalid frame checksum'") {
t.Fatalf("raw insert should keep parse error: %s", rawInsert)
}
}
func TestWriterSkipsSparseDerivedRows(t *testing.T) {
exec := &recordingExec{}
writer := NewWriter(exec)