From f5ed25f755ae3607595de270f0a07d4bb85dab72 Mon Sep 17 00:00:00 2001 From: chrislu Date: Mon, 1 Sep 2025 22:17:17 -0700 Subject: [PATCH] fix decoding data --- weed/query/engine/engine.go | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/weed/query/engine/engine.go b/weed/query/engine/engine.go index 852cffc46..ab2aeb0f6 100644 --- a/weed/query/engine/engine.go +++ b/weed/query/engine/engine.go @@ -1881,14 +1881,16 @@ func (e *SQLEngine) eachLogEntryInFile(filerClient filer_pb.FilerClient, filePat // convertLogEntryToRecordValue helper method (reuse existing logic) func (e *SQLEngine) convertLogEntryToRecordValue(logEntry *filer_pb.LogEntry) (*schema_pb.RecordValue, string, error) { - // Parse the log entry data as JSON - var jsonData map[string]interface{} - if err := json.Unmarshal(logEntry.Data, &jsonData); err != nil { - return nil, "", fmt.Errorf("failed to parse log entry JSON: %v", err) + // Parse the log entry data as Protocol Buffer (not JSON!) + recordValue := &schema_pb.RecordValue{} + if err := proto.Unmarshal(logEntry.Data, recordValue); err != nil { + return nil, "", fmt.Errorf("failed to unmarshal log entry protobuf: %v", err) } - // Create record value with system and user fields - recordValue := &schema_pb.RecordValue{Fields: make(map[string]*schema_pb.Value)} + // Ensure Fields map exists + if recordValue.Fields == nil { + recordValue.Fields = make(map[string]*schema_pb.Value) + } // Add system columns recordValue.Fields[SW_COLUMN_NAME_TS] = &schema_pb.Value{