Index: Modules/_sqlite/connection.c =================================================================== --- Modules/_sqlite/connection.c (revision 46958) +++ Modules/_sqlite/connection.c (working copy) @@ -34,6 +34,16 @@ static int connection_set_isolation_level(Connection* self, PyObject* isolation_level); + +void _sqlite3_result_error(sqlite3_context* ctx, const char* errmsg, int len) +{ +#if SQLITE_VERSION_NUMBER >= 3003003 + sqlite3_result_error(ctx, errmsg, len); +#else + /* sqlite3_result_null(ctx); */ +#endif +} + int connection_init(Connection* self, PyObject* args, PyObject* kwargs) { static char *kwlist[] = {"database", "timeout", "detect_types", "isolation_level", "check_same_thread", "factory", "cached_statements", NULL, NULL}; @@ -526,7 +536,7 @@ } else { PyErr_Clear(); } - sqlite3_result_error(context, "user-defined function raised exception", -1); + _sqlite3_result_error(context, "user-defined function raised exception", -1); } PyGILState_Release(threadstate); @@ -558,7 +568,7 @@ } else { PyErr_Clear(); } - sqlite3_result_error(context, "user-defined aggregate's '__init__' method raised error", -1); + _sqlite3_result_error(context, "user-defined aggregate's '__init__' method raised error", -1); goto error; } } @@ -582,7 +592,7 @@ } else { PyErr_Clear(); } - sqlite3_result_error(context, "user-defined aggregate's 'step' method raised error", -1); + _sqlite3_result_error(context, "user-defined aggregate's 'step' method raised error", -1); } error: @@ -619,7 +629,7 @@ } else { PyErr_Clear(); } - sqlite3_result_error(context, "user-defined aggregate's 'finalize' method raised error", -1); + _sqlite3_result_error(context, "user-defined aggregate's 'finalize' method raised error", -1); } else { _set_result(context, function_result); }