add a special startwith op for use with transformed values (cannot do it another...
authorMike Rylander <mrylander@gmail.com>
Wed, 11 May 2011 16:30:08 +0000 (12:30 -0400)
committerMike Rylander <mrylander@gmail.com>
Wed, 11 May 2011 16:30:08 +0000 (12:30 -0400)
Open-ILS/src/c-apps/oils_sql.c

index 3f8157d..1705b22 100644 (file)
@@ -2765,16 +2765,24 @@ static char* searchFieldTransformPredicate( const ClassInfo* class_info, osrfHas
                right_parens = ")";
        }
 
+       const char* right_percent = "";
+       const char* real_op       = op;
+
+       if( !strcasecmp( op, "startwith") ) {
+               real_op = "like";
+               right_percent = "|| '%'";
+
        growing_buffer* sql_buf = buffer_init( 32 );
 
        buffer_fadd(
                sql_buf,
-               "%s%s %s %s %s %s%s",
+               "%s%s %s %s %s%s %s%s",
                left_parens,
                field_transform,
-               op,
+               real_op,
                left_parens,
                value,
+               right_percent,
                right_parens,
                right_parens
        );