From 5b653178b67f81ef731ef49743d8fc5c7cbc71b2 Mon Sep 17 00:00:00 2001 From: Vivek Patel Date: Mon, 19 Dec 2022 17:57:13 +0530 Subject: [PATCH] Add INSTR ql ref for all drivers --- server/pkg/dal/runner_gval.go | 6 ++++++ server/store/adapters/rdbms/drivers/postgres/ql.go | 11 +++++++++++ 2 files changed, 17 insertions(+) diff --git a/server/pkg/dal/runner_gval.go b/server/pkg/dal/runner_gval.go index 683dff7de..ffef813e6 100644 --- a/server/pkg/dal/runner_gval.go +++ b/server/pkg/dal/runner_gval.go @@ -149,6 +149,12 @@ var ( }, OutType: &TypeText{}, }, + "instr": { + Handler: func(args ...string) string { + return fmt.Sprintf("instr(%s, %s)", args[0], args[1]) + }, + OutType: &TypeNumber{}, + }, // @todo implement; the commented versions are not good enough // "like": { diff --git a/server/store/adapters/rdbms/drivers/postgres/ql.go b/server/store/adapters/rdbms/drivers/postgres/ql.go index b27ee14fd..9f2abd6e7 100644 --- a/server/store/adapters/rdbms/drivers/postgres/ql.go +++ b/server/store/adapters/rdbms/drivers/postgres/ql.go @@ -21,6 +21,17 @@ var ( return exp.NewSQLFunctionExpression("CONCAT", aa...) }, }, + "instr": { + Handler: func(args ...exp.Expression) exp.Expression { + // need to force text type on all arguments + aa := make([]any, len(args)) + for a := range args { + aa[a] = exp.NewCastExpression(exp.NewLiteralExpression("?", args[a]), "TEXT") + } + + return exp.NewSQLFunctionExpression("INSTR", args[0], args[1]) + }, + }, // filtering "now": {