]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/tools/centipede.c
include portable.h
[openldap] / servers / slapd / tools / centipede.c
index 9919232b7aa31fd9b5fcc039e5125d8ba13ea7ef..5de9388b5631589e66804367e6c2f03aa1969f00 100644 (file)
@@ -1,5 +1,7 @@
 /* centipede.c - generate and install indexing information (view w/tabstop=4) */
 
+#include "portable.h"
+
 #include <stdio.h>
 #include <string.h>
 #include <ctype.h>
@@ -556,6 +558,11 @@ diff_centroids(
        int             amax, acur, dmax, dcur;
        char    **vals;
 
+#ifdef LDBM_USE_DB2
+       DBC     *ocursorp;
+       DBC     *ncursorp;
+#endif /* LDBM_USE_DB2 */
+
        if ( verbose ) {
                printf( "Generating mods for differential %s centroid...", attr );
                fflush( stdout );
@@ -600,8 +607,14 @@ diff_centroids(
 
        olast.dptr = NULL;
        nlast.dptr = NULL;
+#ifdef LDBM_USE_DB2
+       for ( okey = ldbm_firstkey( oldbm, &ocursorp ),
+                       nkey = ldbm_firstkey( nldbm, &ncursorp );
+             okey.dptr != NULL && nkey.dptr != NULL; )
+#else
        for ( okey = ldbm_firstkey( oldbm ), nkey = ldbm_firstkey( nldbm );
              okey.dptr != NULL && nkey.dptr != NULL; )
+#endif
        {
                rc = strcmp( okey.dptr, nkey.dptr );
 
@@ -616,8 +629,13 @@ diff_centroids(
                        }
                        nlast = nkey;
 
+#ifdef LDBM_USE_DB2
+                       okey = ldbm_nextkey( oldbm, olast, ocursorp );
+                       nkey = ldbm_nextkey( nldbm, nlast, ncursorp );
+#else
                        okey = ldbm_nextkey( oldbm, olast );
                        nkey = ldbm_nextkey( nldbm, nlast );
+#endif
                } else if ( rc > 0 ) {
                        /* new value is not in old centroid - add it */
                        if ( charray_add_dup( &avals, &acur, &amax, nkey.dptr ) == NULL ) {
@@ -629,7 +647,12 @@ diff_centroids(
                                ldbm_datum_free( nldbm, nlast );
                        }
                        nlast = nkey;
+
+#ifdef LDBM_USE_DB2
+                       nkey = ldbm_nextkey( nldbm, nlast, ncursorp );
+#else
                        nkey = ldbm_nextkey( nldbm, nlast );
+#endif
                } else {
                        /* old value is not in new centroid - delete it */
                        if ( charray_add_dup( &dvals, &dcur, &dmax, okey.dptr ) == NULL ) {
@@ -641,7 +664,12 @@ diff_centroids(
                                ldbm_datum_free( oldbm, olast );
                        }
                        olast = okey;
+
+#ifdef LDBM_USE_DB2
+                       okey = ldbm_nextkey( oldbm, olast, ocursorp );
+#else
                        okey = ldbm_nextkey( oldbm, olast );
+#endif
                }
        }
 
@@ -651,7 +679,11 @@ diff_centroids(
                        return( NULL );
                }
 
+#ifdef LDBM_USE_DB2
+               okey = ldbm_nextkey( oldbm, olast, ocursorp );
+#else
                okey = ldbm_nextkey( oldbm, olast );
+#endif
                if ( olast.dptr != NULL ) {
                        ldbm_datum_free( oldbm, olast );
                }
@@ -666,7 +698,11 @@ diff_centroids(
                        return( NULL );
                }
 
+#ifdef LDBM_USE_DB2
+               nkey = ldbm_nextkey( nldbm, nlast, ncursorp );
+#else
                nkey = ldbm_nextkey( nldbm, nlast );
+#endif
                if ( nlast.dptr != NULL ) {
                        ldbm_datum_free( nldbm, nlast );
                }
@@ -687,8 +723,14 @@ diff_centroids(
 
        /* generate list of values to add */
        lastkey.dptr = NULL;
+#ifdef LDBM_USE_DB2
+       for ( key = ldbm_firstkey( nldbm, &ncursorp ); key.dptr != NULL;
+         key = ldbm_nextkey( nldbm, lastkey, ncursorp ) )
+#else
        for ( key = ldbm_firstkey( nldbm ); key.dptr != NULL;
-         key = ldbm_nextkey( nldbm, lastkey ) ) {
+         key = ldbm_nextkey( nldbm, lastkey ) )
+#endif
+       {
                /* see if it's in the old one */
                data = ldbm_fetch( oldbm, key );
 
@@ -712,8 +754,14 @@ diff_centroids(
 
        /* generate list of values to delete */
        lastkey.dptr = NULL;
+#ifdef LDBM_USE_DB2
+       for ( key = ldbm_firstkey( oldbm, &ocursorp ); key.dptr != NULL;
+         key = ldbm_nextkey( oldbm, lastkey, ocursorp ) )
+#else
        for ( key = ldbm_firstkey( oldbm ); key.dptr != NULL;
-         key = ldbm_nextkey( oldbm, lastkey ) ) {
+         key = ldbm_nextkey( oldbm, lastkey ) )
+#endif
+       {
                /* see if it's in the new one */
                data = ldbm_fetch( nldbm, key );
 
@@ -773,6 +821,10 @@ full_centroid(
        char    **vals;
        int             vcur, vmax;
 
+#ifdef LDBM_USE_DB2
+       DBC *cursorp;
+#endif
+
        if ( verbose ) {
                printf( "Generating mods for full %s centroid...", attr );
                fflush( stdout );
@@ -800,8 +852,14 @@ full_centroid(
        lastkey.dptr = NULL;
        vals = NULL;
        vcur = vmax = 0;
+#ifdef LDBM_USE_DB2
+       for ( key = ldbm_firstkey( ldbm, &cursorp ); key.dptr != NULL;
+         key = ldbm_nextkey( ldbm, lastkey, cursorp ) )
+#else
        for ( key = ldbm_firstkey( ldbm ); key.dptr != NULL;
-         key = ldbm_nextkey( ldbm, lastkey ) ) {
+         key = ldbm_nextkey( ldbm, lastkey ) )
+#endif
+       {
                if ( charray_add_dup( &vals, &vcur, &vmax, key.dptr ) == NULL ) {
                        ldap_mods_free( mods, 1 );
                        return( NULL );