-rw-r--r-- | libopie2/opiedb/osqlitedriver.cpp | 19 | ||||
-rw-r--r-- | libopie2/opiepim/backend/ocontactaccessbackend_sql.cpp | 4 |
2 files changed, 14 insertions, 9 deletions
diff --git a/libopie2/opiedb/osqlitedriver.cpp b/libopie2/opiedb/osqlitedriver.cpp index ccac2f8..588fc8f 100644 --- a/libopie2/opiedb/osqlitedriver.cpp +++ b/libopie2/opiedb/osqlitedriver.cpp | |||
@@ -89,5 +89,4 @@ void OSQLiteDriver::setOptions( const QStringList& ) { | |||
89 | int sqliteRlikeCompare(const char *zPattern, const char *zString, sqregex *reg){ | 89 | int sqliteRlikeCompare(const char *zPattern, const char *zString, sqregex *reg){ |
90 | int res; | 90 | int res; |
91 | |||
92 | if (reg->regex_raw == NULL || (strcmp (zPattern, reg->regex_raw) != 0)){ | 91 | if (reg->regex_raw == NULL || (strcmp (zPattern, reg->regex_raw) != 0)){ |
93 | if (reg->regex_raw != NULL) { | 92 | if (reg->regex_raw != NULL) { |
@@ -110,5 +109,5 @@ int sqliteRlikeCompare(const char *zPattern, const char *zString, sqregex *reg){ | |||
110 | 109 | ||
111 | void rlikeFunc(sqlite_func *context, int arg, const char **argv){ | 110 | void rlikeFunc(sqlite_func *context, int arg, const char **argv){ |
112 | if( argv[0]==0 || argv[1]==0 || argv[2]==0){ | 111 | if( argv[0]==0 || argv[1]==0 ){ |
113 | printf("One of arguments Null!!\n"); | 112 | printf("One of arguments Null!!\n"); |
114 | return; | 113 | return; |
@@ -116,5 +115,5 @@ void rlikeFunc(sqlite_func *context, int arg, const char **argv){ | |||
116 | sqlite_set_result_int(context, | 115 | sqlite_set_result_int(context, |
117 | sqliteRlikeCompare((const char*)argv[0], | 116 | sqliteRlikeCompare((const char*)argv[0], |
118 | (const char*)argv[1], (sqregex*)argv[2])); | 117 | (const char*)argv[1], (sqregex *)sqlite_user_data(context) )); |
119 | } | 118 | } |
120 | 119 | ||
@@ -125,5 +124,6 @@ void rlikeFunc(sqlite_func *context, int arg, const char **argv){ | |||
125 | bool OSQLiteDriver::open() { | 124 | bool OSQLiteDriver::open() { |
126 | char *error; | 125 | char *error; |
127 | qDebug("OSQLiteDriver::open: about to open"); | 126 | |
127 | qDebug("OSQLiteDriver::open: about to open"); | ||
128 | m_sqlite = sqlite_open(m_url.local8Bit(), | 128 | m_sqlite = sqlite_open(m_url.local8Bit(), |
129 | 0, | 129 | 0, |
@@ -137,5 +137,9 @@ bool OSQLiteDriver::open() { | |||
137 | return false; | 137 | return false; |
138 | } | 138 | } |
139 | sqlite_create_function(m_sqlite,"rlike",3,rlikeFunc,&sqreg); | 139 | if (sqlite_create_function(m_sqlite,"rlike",2,rlikeFunc,&sqreg) != 0) |
140 | odebug << "Unable to create user defined function!" << oendl; | ||
141 | if (sqlite_function_type(m_sqlite,"rlike",SQLITE_NUMERIC) != 0) | ||
142 | odebug << "Unable to set rlike function result type!" << oendl; | ||
143 | sqreg.regex_raw = NULL; | ||
140 | return true; | 144 | return true; |
141 | } | 145 | } |
@@ -150,5 +154,6 @@ bool OSQLiteDriver::close() { | |||
150 | sqlite_close( m_sqlite ), m_sqlite=0l; | 154 | sqlite_close( m_sqlite ), m_sqlite=0l; |
151 | if (sqreg.regex_raw != NULL){ | 155 | if (sqreg.regex_raw != NULL){ |
152 | free(sqreg.regex_raw); | 156 | odebug << "Freeing regex on close" << oendl; |
157 | free(sqreg.regex_raw); | ||
153 | sqreg.regex_raw=NULL; | 158 | sqreg.regex_raw=NULL; |
154 | regfree(&sqreg.regex_c); | 159 | regfree(&sqreg.regex_c); |
@@ -170,5 +175,5 @@ OSQLResult OSQLiteDriver::query( OSQLQuery* qu) { | |||
170 | /* SQLITE_OK 0 if return code > 0 == failure */ | 175 | /* SQLITE_OK 0 if return code > 0 == failure */ |
171 | if ( sqlite_exec(m_sqlite, qu->query(),&call_back, &query, &err) > 0 ) { | 176 | if ( sqlite_exec(m_sqlite, qu->query(),&call_back, &query, &err) > 0 ) { |
172 | qWarning("OSQLiteDriver::query: Error while executing"); | 177 | qWarning("OSQLiteDriver::query: Error while executing %s",err); |
173 | free(err ); | 178 | free(err ); |
174 | // FixMe Errors | 179 | // FixMe Errors |
diff --git a/libopie2/opiepim/backend/ocontactaccessbackend_sql.cpp b/libopie2/opiepim/backend/ocontactaccessbackend_sql.cpp index bb5c99b..401a3c1 100644 --- a/libopie2/opiepim/backend/ocontactaccessbackend_sql.cpp +++ b/libopie2/opiepim/backend/ocontactaccessbackend_sql.cpp | |||
@@ -602,5 +602,5 @@ QArray<int> OPimContactAccessBackend_SQL::queryByExample ( const OPimContact &qu | |||
602 | QArray<int> OPimContactAccessBackend_SQL::matchRegexp( const QRegExp &r ) const | 602 | QArray<int> OPimContactAccessBackend_SQL::matchRegexp( const QRegExp &r ) const |
603 | { | 603 | { |
604 | #if 1 | 604 | #if 0 |
605 | QArray<int> nix(0); | 605 | QArray<int> nix(0); |
606 | return nix; | 606 | return nix; |
@@ -615,5 +615,5 @@ QArray<int> OPimContactAccessBackend_SQL::matchRegexp( const QRegExp &r ) const | |||
615 | if ( !searchlist.isEmpty() ) | 615 | if ( !searchlist.isEmpty() ) |
616 | searchlist += " OR "; | 616 | searchlist += " OR "; |
617 | searchlist += "\"" + *it + "\" rlike(\"" + r.pattern() + "\") "; | 617 | searchlist += " rlike(\""+ r.pattern() + "\",\"" + *it + "\") "; |
618 | } | 618 | } |
619 | 619 | ||