summaryrefslogtreecommitdiffstats
path: root/php-sqlite3.patch
blob: cdb7d845496facac58a27ecfa599b87995279e10 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
From 666cb6c80226467be262c088a26246c48cdef7e5 Mon Sep 17 00:00:00 2001
From: Remi Collet <remi@php.net>
Date: Wed, 2 Aug 2017 14:01:56 +0200
Subject: [PATCH] fix build with old system libsqlite (sqlite3_errstr may be
 missing)

---
 ext/sqlite3/config0.m4 | 5 ++++-
 ext/sqlite3/sqlite3.c  | 4 ++++
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/ext/sqlite3/config0.m4 b/ext/sqlite3/config0.m4
index 3aa4492..ba760e1 100644
--- a/ext/sqlite3/config0.m4
+++ b/ext/sqlite3/config0.m4
@@ -53,6 +53,9 @@ if test $PHP_SQLITE3 != "no"; then
     PHP_CHECK_LIBRARY(sqlite3,sqlite3_column_table_name,[
       AC_DEFINE(SQLITE_ENABLE_COLUMN_METADATA, 1, [have sqlite3 with column metadata enabled])
     ])
+    PHP_CHECK_LIBRARY(sqlite3,sqlite3_errstr,[
+      AC_DEFINE(HAVE_SQLITE3_ERRSTR, 1, [have sqlite3_errstr function])
+    ])
 
     PHP_CHECK_LIBRARY(sqlite3,sqlite3_load_extension,
     [],
@@ -75,7 +78,7 @@ if test $PHP_SQLITE3 != "no"; then
       debug_flags="-DSQLITE_DEBUG=1"
     fi
 
-    other_flags="-DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_FTS4=1 -DSQLITE_ENABLE_FTS5=1 -DSQLITE_CORE=1 -DSQLITE_ENABLE_COLUMN_METADATA=1"
+    other_flags="-DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_FTS4=1 -DSQLITE_ENABLE_FTS5=1 -DSQLITE_CORE=1 -DSQLITE_ENABLE_COLUMN_METADATA=1 -DHAVE_SQLITE3_ERRSTR=1"
 
 	dnl As long as intl is not shared we can have ICU support
     if test "$PHP_INTL" = "yes" && test "$PHP_INTL_SHARED" != "yes"; then
diff --git a/ext/sqlite3/sqlite3.c b/ext/sqlite3/sqlite3.c
index dcbc03c..a22f455 100644
--- a/ext/sqlite3/sqlite3.c
+++ b/ext/sqlite3/sqlite3.c
@@ -148,7 +148,11 @@ PHP_METHOD(sqlite3, open)
 #endif
 	if (rc != SQLITE_OK) {
 		zend_throw_exception_ex(zend_ce_exception, 0, "Unable to open database: %s",
+#ifdef HAVE_SQLITE3_ERRSTR
 				db_obj->db ? sqlite3_errmsg(db_obj->db) : sqlite3_errstr(rc));
+#else
+				db_obj->db ? sqlite3_errmsg(db_obj->db) : "");
+#endif
 		if (fullpath != filename) {
 			efree(fullpath);
 		}
-- 
2.1.4