]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-sql/config.c
ITS#8329 Add the id_query config item.
[openldap] / servers / slapd / back-sql / config.c
index 3d19a3b2f323ee4d8ffda35d0ba50edfe51396d8..92f2af378e796b5dc4eb4360edb91b9fc71cde34 100644 (file)
@@ -1,7 +1,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1999-2013 The OpenLDAP Foundation.
+ * Copyright 1999-2015 The OpenLDAP Foundation.
  * Portions Copyright 1999 Dmitry Kovalev.
  * Portions Copyright 2002 Pierangelo Masarati.
  * Portions Copyright 2004 Mark Adamson.
@@ -210,9 +210,14 @@ static ConfigTable sqlcfg[] = {
                        "DESC 'Quoting char of the aliasing keyword' "
                        "SYNTAX OMsDirectoryString SINGLE-VALUE )", NULL, NULL },
        { "autocommit", "yes|no", 2, 2, 0,
-               ARG_ON_OFF|ARG_MAGIC|SQL_AUTOCOMMIT, (void *)sql_cf_gen,
+               ARG_ON_OFF|ARG_MAGIC|BSQL_AUTOCOMMIT, (void *)sql_cf_gen,
                "( OLcfgDbAt:6.45 NAME 'olcSqlAutocommit' "
                        "SYNTAX OMsBoolean SINGLE-VALUE )", NULL, NULL },
+       { "id_query", "SQL expression", 2, 0, 0, ARG_STRING|ARG_QUOTE|ARG_OFFSET,
+               (void *)offsetof(struct backsql_info, sql_id_query),
+               "( OLcfgDbAt:6.46 NAME 'olcSqlIdQuery' "
+               "DESC 'Custom ID query' "
+                       "SYNTAX OMsDirectoryString SINGLE-VALUE )", NULL, NULL },
        { NULL, NULL, 0, 0, 0, ARG_IGNORED,
                NULL, NULL, NULL, NULL }
 };
@@ -425,19 +430,19 @@ sql_cf_gen( ConfigArgs *c )
                if ( c->value_int )
                        bi->sql_flags |= BSQLF_FETCH_ALL_ATTRS;
                else
-                       bi->sql_flags &= BSQLF_FETCH_ALL_ATTRS;
+                       bi->sql_flags &= ~BSQLF_FETCH_ALL_ATTRS;
                break;
        case BSQL_CHECK_SCHEMA:
                if ( c->value_int )
                        bi->sql_flags |= BSQLF_CHECK_SCHEMA;
                else
-                       bi->sql_flags &= BSQLF_CHECK_SCHEMA;
+                       bi->sql_flags &= ~BSQLF_CHECK_SCHEMA;
                break;
        case BSQL_AUTOCOMMIT:
                if ( c->value_int )
                        bi->sql_flags |= BSQLF_AUTOCOMMIT_ON;
                else
-                       bi->sql_flags &= BSQLF_AUTOCOMMIT_ON;
+                       bi->sql_flags &= ~BSQLF_AUTOCOMMIT_ON;
                break;
        case BSQL_BASE_OBJECT:
                if ( c->be->be_nsuffix == NULL ) {