* 1. id_query.patch applied (with changes)
* 2. shortcut.patch applied (reworked)
* 3. create_hint.patch applied
- * 4. count_query.patch rejected (conflicts with other features)
+ * 4. count_query.patch applied (reworked)
* 5. returncodes.patch applied (with sanity checks)
* 6. connpool.patch under evaluation
- * 7. modoc.patch under evaluation
- * 8. miscfixes.patch applied (reworked; FIXME: other
- * operations may need to load the
- * entire entry for ACL purposes)
+ * 7. modoc.patch under evaluation (requires
+ * manageDSAit and "manage"
+ * access privileges)
+ * 8. miscfixes.patch applied (reworked; other
+ * operations need to load the
+ * entire entry for ACL purposes;
+ * see ITS#3480, now fixed)
*
* original description:
*/
#undef BACKSQL_TRACE
+/*
+ * define if using MS SQL and workaround needed (see sql-wrap.c)
+ */
+#undef BACKSQL_MSSQL_WORKAROUND
+
+/*
+ * define to enable values counting for attributes
+ */
+#define BACKSQL_COUNTQUERY
+
+/*
+ * define to enable prettification/validation of values
+ */
+#define BACKSQL_PRETTY_VALIDATE
+
/*
* define to enable varchars as unique keys in user tables
*
* in quotes. This is especially true for those that do not
* allow keywords used as aliases.
*/
-/* #define BACKSQL_ALIASING_QUOTE '"' */
-/* #define BACKSQL_ALIASING_QUOTE '\'' */
+#define BACKSQL_ALIASING_QUOTE ""
+/* #define BACKSQL_ALIASING_QUOTE "\"" */
+/* #define BACKSQL_ALIASING_QUOTE "'" */
/*
* API
/* for optimization purposes attribute load query
* is preconstructed from parts on schemamap load time */
char *bam_query;
+#ifdef BACKSQL_COUNTQUERY
+ char *bam_countquery;
+#endif /* BACKSQL_COUNTQUERY */
/* following flags are bitmasks (first bit used for add_proc,
* second - for delete_proc) */
/* order of parameters for procedures above;
#define BB_NULL { BER_BVNULL, 0 }
+/* the function must collect the entry associated to nbase */
+#define BACKSQL_ISF_GET_ID 0x1U
+#define BACKSQL_ISF_GET_ENTRY ( 0x2U | BACKSQL_ISF_GET_ID )
+#define BACKSQL_ISF_MATCHED 0x4U
+#define BACKSQL_IS_GET_ID(f) \
+ ( ( (f) & BACKSQL_ISF_GET_ID ) == BACKSQL_ISF_GET_ID )
+#define BACKSQL_IS_GET_ENTRY(f) \
+ ( ( (f) & BACKSQL_ISF_GET_ENTRY ) == BACKSQL_ISF_GET_ENTRY )
+#define BACKSQL_IS_MATCHED(f) \
+ ( ( (f) & BACKSQL_ISF_MATCHED ) == BACKSQL_ISF_MATCHED )
typedef struct backsql_srch_info {
Operation *bsi_op;
SlapReply *bsi_rs;
**bsi_id_listtail,
*bsi_c_eid;
int bsi_n_candidates;
- int bsi_abandon;
int bsi_status;
backsql_oc_map_rec *bsi_oc;
*sql_at_query;
char *sql_insentry_stmt,
*sql_delentry_stmt,
- *sql_delobjclasses_stmt,
- *sql_delreferrals_stmt;
+ *sql_renentry_stmt,
+ *sql_delobjclasses_stmt;
char *sql_id_query;
char *sql_has_children_query;