@@ -3486,7 +3486,7 @@ int msOracleSpatialLayerTranslateFilter(layerObj *layer, expressionObj *filter,
3486
3486
3487
3487
int nodeCount = 0 ;
3488
3488
3489
- int function = 0 , version = 0 , dwithin = 0 , regexp_like = 0 , case_ins = 0 ;
3489
+ int function = 0 , version = 0 , dwithin = 0 , regexp_like = 0 , case_ins = 0 , ieq = 0 ;
3490
3490
char * table_name ;
3491
3491
char * geom_column_name = NULL , * unique = NULL , * srid = NULL , * indexfield = NULL ;
3492
3492
char * snippet = NULL ;
@@ -3615,7 +3615,14 @@ int msOracleSpatialLayerTranslateFilter(layerObj *layer, expressionObj *filter,
3615
3615
sprintf (snippet , strtmpl , node -> tokenval .strval ); // TODO: escape strval
3616
3616
snippet = msReplaceSubstring (snippet ,"'" ,"''" );
3617
3617
native_string = msStringConcatenate (native_string , "'" );
3618
+ if (ieq == MS_TRUE ) {
3619
+ native_string = msStringConcatenate (native_string , "^" );
3620
+ }
3618
3621
native_string = msStringConcatenate (native_string , snippet );
3622
+ if (ieq == MS_TRUE ) {
3623
+ native_string = msStringConcatenate (native_string , "$" );
3624
+ ieq = MS_FALSE ;
3625
+ }
3619
3626
native_string = msStringConcatenate (native_string , "'" );
3620
3627
msFree (snippet );
3621
3628
break ;
@@ -3732,6 +3739,7 @@ int msOracleSpatialLayerTranslateFilter(layerObj *layer, expressionObj *filter,
3732
3739
msDebug ("got a IEQ comparison\n" );
3733
3740
regexp_like = MS_TRUE ;
3734
3741
case_ins = MS_TRUE ;
3742
+ ieq = MS_TRUE ;
3735
3743
native_string = msStringConcatenate (native_string , ", " );
3736
3744
break ;
3737
3745
case MS_TOKEN_COMPARISON_RE :
0 commit comments