@@ -710,10 +710,10 @@ type internal DuckDbProvider(resolutionPath, contextSchemaPath, owner:string, re
710710 | Length -> sprintf " LENGTH(%s )" column
711711 | IndexOf( SqlConstant search) -> sprintf " POSITION(%s IN %s )" ( fieldParam search) column
712712 | IndexOf( SqlCol( al2, col2)) -> sprintf " POSITION(%s IN %s )" ( fieldNotation al2 col2) column
713- // | IndexOfStart(SqlConstant search,(SqlConstant startPos)) -> sprintf "LOCATE (%s,%s, %s)" (fieldParam search) column (fieldParam startPos)
714- // | IndexOfStart(SqlConstant search,SqlCol(al2, col2)) -> sprintf "LOCATE (%s,%s, %s)" (fieldParam search) column (fieldNotation al2 col2)
715- // | IndexOfStart(SqlCol(al2, col2),(SqlConstant startPos)) -> sprintf "LOCATE (%s,%s, %s)" (fieldNotation al2 col2) column (fieldParam startPos)
716- // | IndexOfStart(SqlCol(al2, col2),SqlCol(al3, col3)) -> sprintf "LOCATE (%s,%s, %s)" (fieldNotation al2 col2) column (fieldNotation al3 col3)
713+ | IndexOfStart( SqlConstant search,( SqlConstant startPos)) -> sprintf " CASE WHEN POSITION (%s IN SUBSTRING( %s , %s )) > 0 THEN POSITION( %s IN SUBSTRING( %s , %s )) + %s - 1 ELSE 0 END " ( fieldParam search) column ( fieldParam startPos ) ( fieldParam search ) column ( fieldParam startPos ) ( fieldParam startPos)
714+ | IndexOfStart( SqlConstant search, SqlCol( al2, col2)) -> sprintf " CASE WHEN POSITION (%s IN SUBSTRING( %s , %s )) > 0 THEN POSITION( %s IN SUBSTRING( %s , %s )) + %s - 1 ELSE 0 END " ( fieldParam search) column ( fieldNotation al2 col2 ) ( fieldParam search ) column ( fieldNotation al2 col2 ) ( fieldNotation al2 col2)
715+ | IndexOfStart( SqlCol( al2, col2),( SqlConstant startPos)) -> sprintf " CASE WHEN POSITION (%s IN SUBSTRING( %s , %s )) > 0 THEN POSITION( %s IN SUBSTRING( %s , %s )) + %s - 1 ELSE 0 END " ( fieldNotation al2 col2) column ( fieldParam startPos ) ( fieldNotation al2 col2 ) column ( fieldParam startPos ) ( fieldParam startPos)
716+ | IndexOfStart( SqlCol( al2, col2), SqlCol( al3, col3)) -> sprintf " CASE WHEN POSITION (%s IN SUBSTRING( %s , %s )) > 0 THEN POSITION( %s IN SUBSTRING( %s , %s )) + %s - 1 ELSE 0 END " ( fieldNotation al2 col2) column ( fieldNotation al3 col3 ) ( fieldNotation al2 col2 ) column ( fieldNotation al3 col3 ) ( fieldNotation al3 col3)
717717 | CastVarchar -> sprintf " CAST(%s AS CHAR)" column
718718 | CastInt -> sprintf " CAST(%s AS INT)" column
719719 // Date functions
0 commit comments