Skip to content

Commit fca1463

Browse files
committed
chore(engine): Make literals simple types
Signed-off-by: Christian Haudum <christian.haudum@gmail.com>
1 parent 104c457 commit fca1463

32 files changed

+332
-373
lines changed

‎pkg/engine/engine_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ func createRecord(t *testing.T, schema *arrow.Schema, data [][]interface{}) arro
5555
}
5656

5757
func TestConvertArrowRecordsToLokiResult(t *testing.T) {
58-
mdTypeLabel := datatype.ColumnMetadata(types.ColumnTypeLabel, datatype.String)
59-
mdTypeMetadata := datatype.ColumnMetadata(types.ColumnTypeMetadata, datatype.String)
58+
mdTypeLabel := datatype.ColumnMetadata(types.ColumnTypeLabel, datatype.Loki.String)
59+
mdTypeMetadata := datatype.ColumnMetadata(types.ColumnTypeMetadata, datatype.Loki.String)
6060

6161
t.Run("rows without log line, timestamp, or labels are ignored", func(t *testing.T) {
6262
schema := arrow.NewSchema(

‎pkg/engine/executor/dataobjscan.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -468,15 +468,15 @@ func schemaFromColumns(columns []physical.ColumnExpression) (*arrow.Schema, erro
468468
// so we don't always explode out to the full set of columns.
469469
addField(arrow.Field{
470470
Name: columnExpr.Ref.Column,
471-
Type: arrow.BinaryTypes.String,
471+
Type: datatype.Arrow.String,
472472
Nullable: true,
473-
Metadata: datatype.ColumnMetadata(types.ColumnTypeLabel, datatype.String),
473+
Metadata: datatype.ColumnMetadata(types.ColumnTypeLabel, datatype.Loki.String),
474474
})
475475
addField(arrow.Field{
476476
Name: columnExpr.Ref.Column,
477-
Type: arrow.BinaryTypes.String,
477+
Type: datatype.Arrow.String,
478478
Nullable: true,
479-
Metadata: datatype.ColumnMetadata(types.ColumnTypeMetadata, datatype.String),
479+
Metadata: datatype.ColumnMetadata(types.ColumnTypeMetadata, datatype.Loki.String),
480480
})
481481

482482
case types.ColumnTypeParsed, types.ColumnTypeGenerated:
@@ -499,7 +499,7 @@ func arrowTypeFromColumnRef(ref types.ColumnRef) (arrow.DataType, arrow.Metadata
499499
}
500500
}
501501

502-
return arrow.BinaryTypes.String, datatype.ColumnMetadata(ref.Type, datatype.String)
502+
return datatype.Arrow.String, datatype.ColumnMetadata(ref.Type, datatype.Loki.String)
503503
}
504504

505505
// appendToBuilder appends a the provided field from record into the given

‎pkg/engine/executor/dataobjscan_predicate.go

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ func (m *timestampPredicateMapper) verify(expr physical.Expression) error {
175175
if !okRHS {
176176
return fmt.Errorf("invalid RHS for comparison: expected literal timestamp, got %T", binop.Right)
177177
}
178-
if rhsLit.ValueType() != datatype.Timestamp {
178+
if rhsLit.ValueType() != datatype.Loki.Timestamp {
179179
return fmt.Errorf("unsupported literal type for RHS: %s, expected timestamp", rhsLit.ValueType())
180180
}
181181
return nil
@@ -231,11 +231,12 @@ func (m *timestampPredicateMapper) rebound(op types.BinaryOp, rightExpr physical
231231
return fmt.Errorf("internal error: rebound expected LiteralExpr, got %T for: %s", rightExpr, rightExpr.String())
232232
}
233233

234-
if literalExpr.ValueType() != datatype.Timestamp {
234+
if literalExpr.ValueType() != datatype.Loki.Timestamp {
235235
// Also should be caught by verify.
236236
return fmt.Errorf("internal error: unsupported literal type in rebound: %s, expected timestamp", literalExpr.ValueType())
237237
}
238-
val := literalExpr.Literal.(*datatype.TimestampLiteral).Value()
238+
v := literalExpr.Literal.(datatype.TimestampLiteral).Value()
239+
val := time.Unix(0, int64(v)).UTC()
239240

240241
switch op {
241242
case types.BinaryOpEq: // ts == val
@@ -334,10 +335,10 @@ func mapMetadataPredicate(expr physical.Expression) (logs.RowPredicate, error) {
334335
if !ok { // Should not happen
335336
return nil, fmt.Errorf("RHS of EQ metadata predicate failed to cast to LiteralExpr")
336337
}
337-
if rightLiteral.ValueType() != datatype.String {
338+
if rightLiteral.ValueType() != datatype.Loki.String {
338339
return nil, fmt.Errorf("unsupported RHS literal type (%v) for EQ metadata predicate, expected ValueTypeStr", rightLiteral.ValueType())
339340
}
340-
val := rightLiteral.Literal.(*datatype.StringLiteral).Value()
341+
val := rightLiteral.Literal.(datatype.StringLiteral).Value()
341342

342343
return logs.MetadataMatcherRowPredicate{
343344
Key: leftColumn.Ref.Column,
@@ -510,9 +511,9 @@ func rhsValue(e *physical.BinaryExpr) (string, error) {
510511
if !ok { // Should not happen
511512
return "", fmt.Errorf("RHS of %s message predicate failed to cast to LiteralExpr", op)
512513
}
513-
if rightLiteral.ValueType() != datatype.String {
514+
if rightLiteral.ValueType() != datatype.Loki.String {
514515
return "", fmt.Errorf("unsupported RHS literal type (%v) for %s message predicate, expected ValueTypeStr", rightLiteral.ValueType(), op)
515516
}
516517

517-
return rightLiteral.Literal.(*datatype.StringLiteral).Value(), nil
518+
return rightLiteral.Literal.(datatype.StringLiteral).Value(), nil
518519
}

0 commit comments

Comments
 (0)