Hi, I use sqlite backend for my wiki and get this error when using this extension. Here's the error message.
[a6aca714a657d084c9540dca] /index.php/Special:ReplaceText Wikimedia\Rdbms\DBQueryError from line 1699 of /var/www/html/includes/libs/rdbms/database/Database.php: A database query error has occurred. Did you forget to run your application's database schema updater after upgrading? Error 1: no such function: SUBSTRING Function: ReplaceTextSearch::doSearchQuery Query: SELECT page_id,page_namespace,page_title,old_text FROM page,revision,text,slots,content WHERE (old_text LIKE '%[[Category: Apartment]]%' ESCAPE '`' ) AND page_namespace IN (0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,106,107,710,711,828,829,2300,2301,2302,2303) AND (rev_id = page_latest) AND (rev_id = slot_revision_id) AND (slot_content_id = content_id) AND (CAST(SUBSTRING(content_address, 4) AS INTEGER) = old_id) ORDER BY page_namespace, page_title LIMIT 250 Backtrace: #0 /var/www/html/includes/libs/rdbms/database/Database.php(1683): Wikimedia\Rdbms\Database->getQueryException(string, integer, string, string) #1 /var/www/html/includes/libs/rdbms/database/Database.php(1658): Wikimedia\Rdbms\Database->getQueryExceptionAndLog(string, integer, string, string) #2 /var/www/html/includes/libs/rdbms/database/Database.php(1227): Wikimedia\Rdbms\Database->reportQueryError(string, integer, string, string, boolean) #3 /var/www/html/includes/libs/rdbms/database/Database.php(1907): Wikimedia\Rdbms\Database->query(string, string, integer) #4 /var/www/html/includes/libs/rdbms/database/DBConnRef.php(68): Wikimedia\Rdbms\Database->select(array, array, array, string, array) #5 /var/www/html/includes/libs/rdbms/database/DBConnRef.php(313): Wikimedia\Rdbms\DBConnRef->__call(string, array) #6 /var/www/html/extensions/ReplaceText/src/ReplaceTextSearch.php(64): Wikimedia\Rdbms\DBConnRef->select(array, array, array, string, array) #7 /var/www/html/extensions/ReplaceText/src/SpecialReplaceText.php(303): ReplaceTextSearch::doSearchQuery(string, array, string, string, boolean) #8 /var/www/html/extensions/ReplaceText/src/SpecialReplaceText.php(172): SpecialReplaceText->getTitlesForEditingWithContext() #9 /var/www/html/extensions/ReplaceText/src/SpecialReplaceText.php(73): SpecialReplaceText->doSpecialReplaceText() #10 /var/www/html/includes/specialpage/SpecialPage.php(600): SpecialReplaceText->execute(NULL) #11 /var/www/html/includes/specialpage/SpecialPageFactory.php(635): SpecialPage->run(NULL) #12 /var/www/html/includes/MediaWiki.php(307): MediaWiki\SpecialPage\SpecialPageFactory->executePath(Title, RequestContext) #13 /var/www/html/includes/MediaWiki.php(940): MediaWiki->performRequest() #14 /var/www/html/includes/MediaWiki.php(543): MediaWiki->main() #15 /var/www/html/index.php(53): MediaWiki->run() #16 /var/www/html/index.php(46): wfIndexMain() #17 {main}
The reason is that "SUBSTRING" is not an available function in SQLite. Fortunately, I was able to fix it by replacing the line:
'CAST(SUBSTRING(content_address, 4) AS INTEGER) = old_id'
into
'CAST(SUBSTR(content_address, 4) AS INTEGER) = old_id'
in src/ReplaceTextSearch.php
file.
It worked for me, but I hope this bug can be fixed on the upstream. Good day!