From: Kurt Zeilenga Date: Sat, 4 Nov 2000 22:33:33 +0000 (+0000) Subject: Import latest from devel X-Git-Tag: OPENLDAP_REL_ENG_2_0_7~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=96804ac3ecc74a02df204f14f701cbc90646ff42;p=thirdparty%2Fopenldap.git Import latest from devel --- diff --git a/servers/slapd/back-sql/search.c b/servers/slapd/back-sql/search.c index 82db1e1cf8..9cd5332589 100644 --- a/servers/slapd/back-sql/search.c +++ b/servers/slapd/back-sql/search.c @@ -132,7 +132,7 @@ int backsql_process_sub_filter(backsql_srch_info *bsi,Filter *f) { if (bsi->bi->upper_func) { - bsi->flt_where=backsql_strcat(bsi->flt_where,&bsi->fwhere_len,toupper(f->f_sub_initial->bv_val),NULL); + bsi->flt_where=backsql_strcat(bsi->flt_where,&bsi->fwhere_len,ldap_pvt_str2upper(f->f_sub_initial->bv_val),NULL); } else bsi->flt_where=backsql_strcat(bsi->flt_where,&bsi->fwhere_len,f->f_sub_initial->bv_val,NULL); @@ -146,7 +146,7 @@ int backsql_process_sub_filter(backsql_srch_info *bsi,Filter *f) //Debug(LDAP_DEBUG_TRACE,"==>backsql_process_sub_filter(): sub_any='%s'\n",f->f_sub_any[i]->bv_val,0,0); if (bsi->bi->upper_func) { - bsi->flt_where=backsql_strcat(bsi->flt_where,&bsi->fwhere_len,toupper(f->f_sub_any[i]->bv_val),"%",NULL); + bsi->flt_where=backsql_strcat(bsi->flt_where,&bsi->fwhere_len,ldap_pvt_str2upper(f->f_sub_any[i]->bv_val),"%",NULL); } else bsi->flt_where=backsql_strcat(bsi->flt_where,&bsi->fwhere_len,f->f_sub_any[i]->bv_val,"%",NULL); @@ -155,7 +155,7 @@ int backsql_process_sub_filter(backsql_srch_info *bsi,Filter *f) if (f->f_sub_final!=NULL) if (bsi->bi->upper_func) { - bsi->flt_where=backsql_strcat(bsi->flt_where,&bsi->fwhere_len,toupper(f->f_sub_final->bv_val),NULL); + bsi->flt_where=backsql_strcat(bsi->flt_where,&bsi->fwhere_len,ldap_pvt_str2upper(f->f_sub_final->bv_val),NULL); } else bsi->flt_where=backsql_strcat(bsi->flt_where,&bsi->fwhere_len,f->f_sub_final->bv_val,NULL); @@ -240,7 +240,7 @@ int backsql_process_filter(backsql_srch_info *bsi,Filter *f) if (bsi->bi->upper_func) bsi->flt_where=backsql_strcat(bsi->flt_where,&bsi->fwhere_len,"(", bsi->bi->upper_func,"(",at->sel_expr,")='", - toupper(f->f_av_value->bv_val),"')",NULL); + ldap_pvt_str2upper(f->f_av_value->bv_val),"')",NULL); else bsi->flt_where=backsql_strcat(bsi->flt_where,&bsi->fwhere_len,"(",at->sel_expr,"='", f->f_av_value->bv_val,"')",NULL); @@ -284,7 +284,7 @@ char* backsql_srch_query(backsql_srch_info *bsi) bsi->sel_len=bsi->from_len=bsi->jwhere_len=bsi->fwhere_len=0; bsi->sel=backsql_strcat(bsi->sel,&bsi->sel_len, - "SELECT ldap_entries.id,",bsi->oc->keytbl,".",bsi->oc->keycol, + "SELECT DISTINCT ldap_entries.id,",bsi->oc->keytbl,".",bsi->oc->keycol, ", '",bsi->oc->name,"' AS objectClass", ", ldap_entries.dn AS dn", NULL); diff --git a/servers/slapd/back-sql/sql-wrap.c b/servers/slapd/back-sql/sql-wrap.c index c1c1876bb3..8a969f214c 100644 --- a/servers/slapd/back-sql/sql-wrap.c +++ b/servers/slapd/back-sql/sql-wrap.c @@ -65,9 +65,7 @@ RETCODE backsql_Prepare(SQLHDBC dbh,SQLHSTMT *sth,char* query,int timeout) //Debug(LDAP_DEBUG_TRACE,"==>_SQLPrepare()\n", 0,0,0); SQLGetInfo(dbh,SQL_DRIVER_NAME,drv_name,30,&len); //Debug(LDAP_DEBUG_TRACE,"_SQLPrepare(): driver name='%s'\n", drv_name,0,0); - for (i=0;i<30 && drv_name[i];i++) - drv_name[i]=toupper(drv_name[i]); - if (!strncmp(drv_name,"SQLSRV32.DLL",30)) + if (!strncmp(ldap_pvt_str2upper(drv_name),"SQLSRV32.DLL",30)) { //stupid default result set in MS SQL Server does not support multiple active statements //on the same connection -- so we are trying to make it not to use default result set...