From e2576b4a0635ab0499ff83205f8c13540076e11e Mon Sep 17 00:00:00 2001 From: tilghman Date: Sun, 25 Nov 2007 17:17:10 +0000 Subject: We previously attempted to use the ESCAPE clause to set the escape delimiter to a backslash. Unfortunately, this does not universally work on all databases, since on databases which natively use the backslash as a delimiter, the backslash itself needs to be delimited, but on other databases that have no delimiter, backslashing the backslash causes an error. So the only solution that I can come up with is to create an option in res_odbc that explicitly specifies whether or not backslash is a native delimiter. If it is, we use it natively; if not, we use the ESCAPE clause to make it one. Reported by: elguero Patch by: tilghman (Closes issue #11364) git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@89559 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/res_odbc.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'include/asterisk') diff --git a/include/asterisk/res_odbc.h b/include/asterisk/res_odbc.h index aa0713472..aba2a24e8 100644 --- a/include/asterisk/res_odbc.h +++ b/include/asterisk/res_odbc.h @@ -85,6 +85,12 @@ void ast_odbc_release_obj(struct odbc_obj *obj); */ int ast_odbc_sanity_check(struct odbc_obj *obj); +/*! \brief Checks if the database natively supports backslash as an escape character. + * \param obj The ODBC object + * \return Returns 1 if an ESCAPE clause is needed to support '\', 0 otherwise + */ +int ast_odbc_backslash_is_escape(struct odbc_obj *obj); + /*! \brief Prepares, executes, and returns the resulting statement handle. * \param obj The ODBC object * \param prepare_cb A function callback, which, when called, should return a statement handle prepared, with any necessary parameters or result columns bound. -- cgit v1.2.3