(e entry)
| 1219 | } |
| 1220 | |
| 1221 | func mapSpanAttr(e entry) traceql.Static { |
| 1222 | switch e.Key { |
| 1223 | case columnPathSpanID, |
| 1224 | columnPathSpanParentID, |
| 1225 | columnPathSpanNestedSetLeft, |
| 1226 | columnPathSpanNestedSetRight, |
| 1227 | columnPathSpanStartTime: |
| 1228 | case columnPathSpanDuration: |
| 1229 | return traceql.NewStaticDuration(time.Duration(e.Value.Int64())) |
| 1230 | case ColumnPathSpanName: |
| 1231 | return traceql.NewStaticString(unsafeToString(e.Value.ByteArray())) |
| 1232 | case columnPathSpanStatusCode: |
| 1233 | // Map OTLP status code back to TraceQL enum. |
| 1234 | // For other values, use the raw integer. |
| 1235 | var status traceql.Status |
| 1236 | switch e.Value.Uint64() { |
| 1237 | case uint64(v1.Status_STATUS_CODE_UNSET): |
| 1238 | status = traceql.StatusUnset |
| 1239 | case uint64(v1.Status_STATUS_CODE_OK): |
| 1240 | status = traceql.StatusOk |
| 1241 | case uint64(v1.Status_STATUS_CODE_ERROR): |
| 1242 | status = traceql.StatusError |
| 1243 | default: |
| 1244 | status = traceql.Status(e.Value.Uint64()) |
| 1245 | } |
| 1246 | return traceql.NewStaticStatus(status) |
| 1247 | case columnPathSpanStatusMessage: |
| 1248 | return traceql.NewStaticString(unsafeToString(e.Value.ByteArray())) |
| 1249 | case columnPathSpanKind: |
| 1250 | var kind traceql.Kind |
| 1251 | switch e.Value.Uint64() { |
| 1252 | case uint64(v1.Span_SPAN_KIND_UNSPECIFIED): |
| 1253 | kind = traceql.KindUnspecified |
| 1254 | case uint64(v1.Span_SPAN_KIND_INTERNAL): |
| 1255 | kind = traceql.KindInternal |
| 1256 | case uint64(v1.Span_SPAN_KIND_SERVER): |
| 1257 | kind = traceql.KindServer |
| 1258 | case uint64(v1.Span_SPAN_KIND_CLIENT): |
| 1259 | kind = traceql.KindClient |
| 1260 | case uint64(v1.Span_SPAN_KIND_PRODUCER): |
| 1261 | kind = traceql.KindProducer |
| 1262 | case uint64(v1.Span_SPAN_KIND_CONSUMER): |
| 1263 | kind = traceql.KindConsumer |
| 1264 | default: |
| 1265 | kind = traceql.Kind(e.Value.Uint64()) |
| 1266 | } |
| 1267 | return traceql.NewStaticKind(kind) |
| 1268 | default: |
| 1269 | // This exists for span-level dedicated columns like http.status_code |
| 1270 | switch e.Value.Kind() { |
| 1271 | case parquet.Boolean: |
| 1272 | return traceql.NewStaticBool(e.Value.Boolean()) |
| 1273 | case parquet.Int32, parquet.Int64: |
| 1274 | return traceql.NewStaticInt(int(e.Value.Int64())) |
| 1275 | case parquet.Float: |
| 1276 | return traceql.NewStaticFloat(e.Value.Double()) |
| 1277 | case parquet.ByteArray, parquet.FixedLenByteArray: |
| 1278 | return traceql.NewStaticString(unsafeToString(e.Value.ByteArray())) |
nothing calls this directly
no test coverage detected