Skip to content
This repository was archived by the owner on Nov 7, 2025. It is now read-only.

Commit ebc9bdc

Browse files
committed
Array handling
1 parent 9ba3a4f commit ebc9bdc

File tree

2 files changed

+23
-4
lines changed

2 files changed

+23
-4
lines changed

platform/backend_connectors/hydrolix_backend_connector.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ func (p *HydrolixBackendConnector) makeRequest(ctx context.Context, method strin
115115
}
116116

117117
// TODO hardcoded for now
118-
const token = "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICIybDZyTk1YV2hYQTA5M2tkRHA5ZFctaEMzM2NkOEtWUFhJdURZLWlLeUFjIn0.eyJleHAiOjE3NTMxNzUyNDAsImlhdCI6MTc1MzA4ODg0MCwianRpIjoiNWZkYmIyMzktMDk5ZS00M2VmLWFhMzctY2JiMDUxZDRkNDAyIiwiaXNzIjoiaHR0cHM6Ly9sb2NhbGhvc3Qva2V5Y2xvYWsvcmVhbG1zL2h5ZHJvbGl4LXVzZXJzIiwiYXVkIjpbImNvbmZpZy1hcGkiLCJhY2NvdW50Il0sInN1YiI6ImRiMWM1YTJiLTdhYjMtNGNmZi04NGU4LTQ3Yzc0YjRlZjAyMSIsInR5cCI6IkJlYXJlciIsImF6cCI6ImNvbmZpZy1hcGkiLCJzZXNzaW9uX3N0YXRlIjoiNDdmZDE2YjAtZjhkYi00NWI4LWIwNzUtOGYyNTRhNGUxNTFkIiwiYWNyIjoiMSIsImFsbG93ZWQtb3JpZ2lucyI6WyJodHRwOi8vbG9jYWxob3N0Il0sInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJkZWZhdWx0LXJvbGVzLWh5ZHJvbGl4LXVzZXJzIiwib2ZmbGluZV9hY2Nlc3MiLCJ1bWFfYXV0aG9yaXphdGlvbiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoib3BlbmlkIGNvbmZpZy1hcGktc2VydmljZSBlbWFpbCBwcm9maWxlIiwic2lkIjoiNDdmZDE2YjAtZjhkYi00NWI4LWIwNzUtOGYyNTRhNGUxNTFkIiwiZW1haWxfdmVyaWZpZWQiOnRydWUsInByZWZlcnJlZF91c2VybmFtZSI6Im1lQGh5ZHJvbGl4LmlvIiwiZW1haWwiOiJtZUBoeWRyb2xpeC5pbyJ9.A-61oZS599AQd5HrECfNjVPXdKF2iVZmRGvmZuPiKh3JctL6F00V5InptaH4xZCHqOrda2gLTz5UL4hSx5Fdvk9yrpba5UFdmGhFpkW1jDaHDvOKK_UMGip3wGkAwp0EwEvfqcGhL0Iw96bTUOOlx6LAsSoKvOuLsL5ljBkDIi8vJadVfc01IuQu1AlwlDHpNn1EJbEFQi8cocDTYuG2U8FilFvhHLA77CFysimHxzq0n48vPpxCwtNpzQ9pbbX3ZPsxPoHFojXxvTf0yNWnUR76W3Zw2HlJrlRbiiRqQ4afkTWoxzIb6VAEImemKKtSLS4Ym3X9wuFp_fVLSokj-Q"
118+
const token = "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICIybDZyTk1YV2hYQTA5M2tkRHA5ZFctaEMzM2NkOEtWUFhJdURZLWlLeUFjIn0.eyJleHAiOjE3NTMyNjE3NjksImlhdCI6MTc1MzE3NTM2OSwianRpIjoiMzY2MTY2OGMtOGVjMi00YzkxLTg4ZTItOWQ1YmU3YTdiNGNkIiwiaXNzIjoiaHR0cHM6Ly9sb2NhbGhvc3Qva2V5Y2xvYWsvcmVhbG1zL2h5ZHJvbGl4LXVzZXJzIiwiYXVkIjpbImNvbmZpZy1hcGkiLCJhY2NvdW50Il0sInN1YiI6ImRiMWM1YTJiLTdhYjMtNGNmZi04NGU4LTQ3Yzc0YjRlZjAyMSIsInR5cCI6IkJlYXJlciIsImF6cCI6ImNvbmZpZy1hcGkiLCJzZXNzaW9uX3N0YXRlIjoiYzFjZmE2ZjktOWRhMS00ZDEzLThhYTItZmE3MjMzNWEzZjQxIiwiYWNyIjoiMSIsImFsbG93ZWQtb3JpZ2lucyI6WyJodHRwOi8vbG9jYWxob3N0Il0sInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJkZWZhdWx0LXJvbGVzLWh5ZHJvbGl4LXVzZXJzIiwib2ZmbGluZV9hY2Nlc3MiLCJ1bWFfYXV0aG9yaXphdGlvbiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoib3BlbmlkIGNvbmZpZy1hcGktc2VydmljZSBlbWFpbCBwcm9maWxlIiwic2lkIjoiYzFjZmE2ZjktOWRhMS00ZDEzLThhYTItZmE3MjMzNWEzZjQxIiwiZW1haWxfdmVyaWZpZWQiOnRydWUsInByZWZlcnJlZF91c2VybmFtZSI6Im1lQGh5ZHJvbGl4LmlvIiwiZW1haWwiOiJtZUBoeWRyb2xpeC5pbyJ9.bSfYTJjJGE3S3IGG32qLwgBZrSZSAIImd4hyoN2KqjPARPhwYCqiW3luSlPc4YL-OHH0YW3YYPM1RyxYQn4CW0DvK9pwYE3qLu7Zt6uVd8Kb88KIHxrXN6mQrIP9-cuYUwyVNVbbGfEYi1aYWSWDJsX9IsmRyIh-aLVHzNXKF7f8I_ek6BdvVDFanoqXVytosWruH7avqJ2kswP99PHHOPJD_SpBhvO014p0-trLM5rWTR3YG6823EEpCSXZ8T4nPZXynXcC8cxTvg_1qVusG4_uBTnqw4LL2HlnYkYM1NPQShkcJvhN3-aygXdsiGgqlsljIpa6cuFkTpANeDbriw"
119119
const hdxHost = "3.20.203.177:8888"
120120
const orgID = "d9ce0431-f26f-44e3-b0ef-abc1653d04eb"
121121
const projectID = "27506b30-0c78-41fa-a059-048d687f1164"
@@ -149,6 +149,7 @@ func (p *HydrolixBackendConnector) ingestFun(ctx context.Context, ingest []map[s
149149
emitRequest:
150150
respJson, err := p.makeRequest(ctx, "POST", url, ingestJson, token, tableName)
151151
if err != nil {
152+
logger.DebugWithCtx(ctx).Msgf("Error ingesting table %s: %v", tableName, err)
152153
var resp HydrolixResponse
153154
if err := json.Unmarshal(respJson, &resp); err != nil {
154155
if strings.Contains(resp.Message, "no table") {

platform/ingest/hydrolixlowerer.go

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,16 @@ func CastToType(value any, typeName string) (any, error) {
251251
case string:
252252
return strconv.ParseBool(v)
253253
}
254-
254+
case "int64":
255+
if v, ok := value.(int64); ok {
256+
return v, nil
257+
}
258+
switch v := value.(type) {
259+
case float64:
260+
return int64(v), nil
261+
case string:
262+
return strconv.Atoi(v)
263+
}
255264
default:
256265
return nil, fmt.Errorf("unsupported target type: %s", typeName)
257266
}
@@ -417,8 +426,17 @@ func (l *HydrolixLowerer) LowerToDDL(
417426

418427
case ArrayType:
419428
elemType := typeInfo.Elements[0].Name
420-
value = []interface{}{defaultForType(elemType)} // array with one sample element
421-
429+
value = []any{}
430+
if events[colName] != nil {
431+
for _, elem := range events[colName].([]any) {
432+
castedElem, err := CastToType(elem, elemType)
433+
if err != nil {
434+
logger.ErrorWithCtx(context.Background()).Msgf("Error casting element %v to type %s: %v", elem, elemType, err)
435+
continue
436+
}
437+
value = append(value.([]interface{}), castedElem)
438+
}
439+
}
422440
case MapType:
423441
keyType := typeInfo.Elements[0].Name
424442
valType := typeInfo.Elements[1].Name

0 commit comments

Comments
 (0)