Hi.

When not logged (anonymous) or logged with a no superuser the fulltext operator "contains none of these words" is not working.

This issue might be related only with postgresql database and maybe it is related with patch #7 of the issue #2127001.

The bug is a true mistery!!! Honestly speaking I can't find an explanation for the PHP behavior.

Below a small part of the file service.inc where the bug is at.

The echo commands were used to debug only and they dont exist in the file!

----

if ($skip_count || $results['result count']) {

echo "first echo
";
echo $db_query;
echo "
";

if ($query->getOption('search_api_facets')) {
$results['search_api_facets'] = $this->getFacets($query, clone $db_query);
}

echo "second echo
";
echo $db_query;
echo "
";

---

CASE1
--------

Ok, with both "echo blocks" I get the following result.
The sql is correct and I get my search completed!

first echo
SELECT DISTINCT t.item_id AS item_id, :score AS score FROM {search_api_db_idx_acervo} t LEFT OUTER JOIN {search_api_db_idx_acervo_search_api_access_node} t_2 ON t.item_id = t_2.item_id WHERE (t.item_id NOT IN (SELECT t.item_id AS item_id FROM (SELECT t.item_id AS item_id FROM {search_api_db_idx_acervo_title} t WHERE (word = :db_condition_placeholder_0) UNION ALL SELECT t.item_id AS item_id FROM {search_api_db_idx_acervo_field_acv_ref_cus} t WHERE (word = :db_condition_placeholder_1) UNION ALL SELECT t.item_id AS item_id FROM {search_api_db_idx_acervo_field_acv_autor_name} t WHERE (word = :db_condition_placeholder_2) UNION ALL SELECT t.item_id AS item_id FROM {search_api_db_idx_acervo_field_acv_tipo_name} t WHERE (word = :db_condition_placeholder_3) UNION ALL SELECT t.item_id AS item_id FROM {search_api_db_idx_acervo_field_acv_local_name} t WHERE (word = :db_condition_placeholder_4) UNION ALL SELECT t.item_id AS item_id FROM {search_api_db_idx_acervo_field_acv_editora_name} t WHERE (word = :db_condition_placeholder_5) UNION ALL SELECT t.item_id AS item_id FROM {search_api_db_idx_acervo_field_acv_obs_value} t WHERE (word = :db_condition_placeholder_6) UNION ALL SELECT t.item_id AS item_id FROM {search_api_db_idx_acervo_field_acv_origem_name} t WHERE (word = :db_condition_placeholder_7) UNION ALL SELECT t.item_id AS item_id FROM {search_api_db_idx_acervo_field_acv_assunto_name} t WHERE (word = :db_condition_placeholder_8) UNION ALL SELECT t.item_id AS item_id FROM {search_api_db_idx_acervo_field_acv_disponibilidade_name} t WHERE (word = :db_condition_placeholder_9) UNION ALL SELECT t.item_id AS item_id FROM {search_api_db_idx_acervo_field_acv_reproducao_name} t WHERE (word = :db_condition_placeholder_10) ) t)) AND( (t.status = :db_condition_placeholder_11) AND( (t_2.value = :db_condition_placeholder_12) OR (t_2.value = :db_condition_placeholder_13) OR (t_2.value = :db_condition_placeholder_14) OR (t_2.value = :db_condition_placeholder_15) ))
second echo
SELECT DISTINCT t.item_id AS item_id, :score AS score FROM {search_api_db_idx_acervo} t LEFT OUTER JOIN {search_api_db_idx_acervo_search_api_access_node} t_2 ON t.item_id = t_2.item_id WHERE (t.item_id NOT IN (SELECT t.item_id AS item_id FROM (SELECT t.item_id AS item_id FROM {search_api_db_idx_acervo_title} t WHERE (word = :db_condition_placeholder_0) UNION ALL SELECT t.item_id AS item_id FROM {search_api_db_idx_acervo_field_acv_ref_cus} t WHERE (word = :db_condition_placeholder_1) UNION ALL SELECT t.item_id AS item_id FROM {search_api_db_idx_acervo_field_acv_autor_name} t WHERE (word = :db_condition_placeholder_2) UNION ALL SELECT t.item_id AS item_id FROM {search_api_db_idx_acervo_field_acv_tipo_name} t WHERE (word = :db_condition_placeholder_3) UNION ALL SELECT t.item_id AS item_id FROM {search_api_db_idx_acervo_field_acv_local_name} t WHERE (word = :db_condition_placeholder_4) UNION ALL SELECT t.item_id AS item_id FROM {search_api_db_idx_acervo_field_acv_editora_name} t WHERE (word = :db_condition_placeholder_5) UNION ALL SELECT t.item_id AS item_id FROM {search_api_db_idx_acervo_field_acv_obs_value} t WHERE (word = :db_condition_placeholder_6) UNION ALL SELECT t.item_id AS item_id FROM {search_api_db_idx_acervo_field_acv_origem_name} t WHERE (word = :db_condition_placeholder_7) UNION ALL SELECT t.item_id AS item_id FROM {search_api_db_idx_acervo_field_acv_assunto_name} t WHERE (word = :db_condition_placeholder_8) UNION ALL SELECT t.item_id AS item_id FROM {search_api_db_idx_acervo_field_acv_disponibilidade_name} t WHERE (word = :db_condition_placeholder_9) UNION ALL SELECT t.item_id AS item_id FROM {search_api_db_idx_acervo_field_acv_reproducao_name} t WHERE (word = :db_condition_placeholder_10) ) t)) AND( (t.status = :db_condition_placeholder_11) AND( (t_2.value = :db_condition_placeholder_12) OR (t_2.value = :db_condition_placeholder_13) OR (t_2.value = :db_condition_placeholder_14) OR (t_2.value = :db_condition_placeholder_15) ))

CASE2
--------

Ok, if I comment all the three commands from the first echo block and keep only the second echo block I get the following result.
The sql is incorrect and it is using the term defined for the fulltext filter to compare with the field "status" resulting SQLSTATE[22P02].

second echo
SELECT DISTINCT t.item_id AS item_id, :score AS score FROM {search_api_db_idx_acervo} t LEFT OUTER JOIN {search_api_db_idx_acervo_search_api_access_node} t_2 ON t.item_id = t_2.item_id WHERE (t.item_id NOT IN (SELECT t.item_id AS item_id FROM (SELECT t.item_id AS item_id FROM {search_api_db_idx_acervo_title} t WHERE (word = :db_condition_placeholder_0) UNION ALL SELECT t.item_id AS item_id FROM {search_api_db_idx_acervo_field_acv_ref_cus} t WHERE (word = :db_condition_placeholder_1) UNION ALL SELECT t.item_id AS item_id FROM {search_api_db_idx_acervo_field_acv_autor_name} t WHERE (word = :db_condition_placeholder_2) UNION ALL SELECT t.item_id AS item_id FROM {search_api_db_idx_acervo_field_acv_tipo_name} t WHERE (word = :db_condition_placeholder_3) UNION ALL SELECT t.item_id AS item_id FROM {search_api_db_idx_acervo_field_acv_local_name} t WHERE (word = :db_condition_placeholder_4) UNION ALL SELECT t.item_id AS item_id FROM {search_api_db_idx_acervo_field_acv_editora_name} t WHERE (word = :db_condition_placeholder_5) UNION ALL SELECT t.item_id AS item_id FROM {search_api_db_idx_acervo_field_acv_obs_value} t WHERE (word = :db_condition_placeholder_6) UNION ALL SELECT t.item_id AS item_id FROM {search_api_db_idx_acervo_field_acv_origem_name} t WHERE (word = :db_condition_placeholder_7) UNION ALL SELECT t.item_id AS item_id FROM {search_api_db_idx_acervo_field_acv_assunto_name} t WHERE (word = :db_condition_placeholder_8) UNION ALL SELECT t.item_id AS item_id FROM {search_api_db_idx_acervo_field_acv_disponibilidade_name} t WHERE (word = :db_condition_placeholder_9) UNION ALL SELECT t.item_id AS item_id FROM {search_api_db_idx_acervo_field_acv_reproducao_name} t WHERE (word = :db_condition_placeholder_10) ) t)) AND( (t.status = :db_condition_placeholder_0) AND( (t_2.value = :db_condition_placeholder_1) OR (t_2.value = :db_condition_placeholder_2) OR (t_2.value = :db_condition_placeholder_3) OR (t_2.value = :db_condition_placeholder_4) ))

Conclusion
--------------

Honestly speaking I can't have a clear conclusion.
I can not explain why there is a bug in the code below
...
if ($skip_count || $results['result count']) {
if ($query->getOption('search_api_facets')) {
$results['search_api_facets'] = $this->getFacets($query, clone $db_query);
}
...

that stop to happen when I do:
...
if ($skip_count || $results['result count']) {
echo $db_query;
if ($query->getOption('search_api_facets')) {
$results['search_api_facets'] = $this->getFacets($query, clone $db_query);
}
...

In another words: why an "echo" in the variable would avoid the bug to happen?

I believe there is something wrong in:
....
if ($query->getOption('search_api_facets')) {
$results['search_api_facets'] = $this->getFacets($query, clone $db_query);
....

But I can't imagine what could be happening.

Regards,
Gilsberty

P.S.: the devel module gave me the same results...
1- using "dpq($db_query);" before the point where the bug is happening will fix it!
2 -using "dpq($db_query);" after the same point will not fix it!

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

gilsbert’s picture

Issue summary: View changes
gilsbert’s picture

Issue summary: View changes
drunken monkey’s picture

Title: SQLSTATE[22P02] for no superuser when using fulltext operator "contains none of these words" » Complex cloned query dependent on __toString() call
Project: Search API Database Search » Drupal core
Version: 7.x-1.x-dev » 9.x-dev
Component: Code » postgresql db driver

Thanks a lot for debugging so thoroughly, this is a huge help!
However, I can't really say I understand the problem either. I know that outputting the query like this triggers it to be compiled internally (see SelectQuery::__toString()). Otherwise, it would only get compiled when executed. It seems that this earlier compiling fixes some bug that otherwise occurs later on. It's probably related to being cloned when computing the facets. (To test, could you maybe comment the $this->getFacets(…) line and see if the query is correct then?)
My theory would be that the __clone() implementation is not completely correct and some changes to the cloned query are in fact reflected back to the original one. By compiling the query before cloning it, this is somehow prevented (through internal caching of the arguments, or whatever).

In any case, this is almost definitely a core bug of some sorts. Outputting the query shouldn't have any effect, a cloned query should also not interact with the original, and since we are definitely not setting the fulltext key as a status filter, there seems to be a bug there as well.
First off, are you using the latest version of Drupal core (dev would be ideal)? There were bugs like this before (see, e.g., #1792380: DatabaseCondition not cloning SelectQuery value object (documentation followup)) but I thought those were all fixed.

In case this is really a problem in the latest version, I'm moving this to the core issue queue now. Maybe someone can help there. (The problem might be DBMS-specific, I guess (mostly since no-one else has complained so far), so I'm using "postgresql db driver" as the component instead of "database system". If it is a general bug, feel free to move it. Also, instead of closing please move back to the "Search API Database Search" project if the issue is incorrect and there is no bug.)

drunken monkey’s picture

Version: 9.x-dev » 7.x-dev

Oops, wrong version.

gilsbert’s picture

Hi Drunken.

I made the test you asked and with the line "$results['search_api_facets'] = $this->getFacets($query, clone $db_query);" commented the issue is gone. We found the exact line with the issue!

I'm using the version 7.24. If there is a patch I can try it out but right now I can't use the dev version of the drupal core.

If I understood what you explained I believe you have found a good explanation. The clone operation might have a bug restricted to postgresql database. The bug is avoided when the query is compiled just like what happened using the echo over the variable.
Ouch... what a crazy thing!

I did other test:
...
$db_query2 = $db_query;
$results['search_api_facets'] = $this->getFacets($query, clone $db_query2);
...

Same behavior. No matter which variable is passed the clone is changing its content.
By the way in the last test both variables ($db_query and $db_query2) were changed. If this was already expected please forgive my ignorance.

What do you tnink about raising the priority of this issue to major?

Regards,
Gilsberty

drunken monkey’s picture

Drupal 7.24 is good enough, I'd say, it would just have been a problem if it was 7.10 or something similarly old. A quick git diff furthermore shows that there are no (non-comment) changes to the database system at all in dev compared to 7.24, so we can be fairly sure that the problem will be in both dev and 7.24.

By the way in the last test both variables ($db_query and $db_query2) were changed. If this was already expected please forgive my ignorance.

I wouldn't call it ignorance, but yes, it was expected. This is because in PHP 5, objects are always handled by reference. That's why we have to explicitly clone it when passing it into the getFacets() method.
Normally, the clone operation should be implemented (using the __clone() magic method) in a way that also clones all objects that are referenced by the cloned object, so that the two copies are really independent. (See the PHP manual.) This doesn't seem to be the case here, which leads to the problem.

What do you tnink about raising the priority of this issue to major?

I'm always a bit hesitant to do that. I'd say, let's just wait for any Postgres or DB maintainer to read this and let them decide. (If this doesn't happen for a few days, we can still raise the priority.)

gilsbert’s picture

Priority: Normal » Major

Hi drunken!

After a deserved vacation I'm back.

This issue is getting more importance... I believe there is a second related issue: https://drupal.org/node/1349080 that depends on this one.

Thats why I'm raising the priority.

What else can we do to get a few attention?

Regards,
Gilsberty

gilsbert’s picture

Hi.

The issue https://drupal.org/node/1349080 is almost fixed so it is not related with this one.

I updated Drupal core to 7.26 and the reported issue with complex queries is not fixed yet.

Maybe we can contact someone able to help us... I'm not very confident that this post hit them.

Regards,
Gilsberty

drunken monkey’s picture

Maybe we can contact someone able to help us... I'm not very confident that this post hit them.

I know, it's (nearly) always the same thing when reporting Drupal core bugs, especially for niche functionality (which most bugs are, of course, so long after 7.0). It's frustrating.
The best thing you could do is probably to go into the #drupal IRC channel and ask around there, whether anyone has encountered the problem, has some idea or would look at it for you.
If that fails, however, you're probably left to either fix it yourself or pay someone to do it – and even then it might need a fair amount of IRC campaigning to get the patch reviewed and committed.

In any case, good luck! Sorry I can't be of more help to you here.

gilsbert’s picture

Okie dokie.

I'm trying contact by IRC.
If I get answers I will update this post.

Regards,
Gilsberty

Crell’s picture

Assigned: Unassigned » Damien Tournoud

Pinging one of the Postgres maintainers...

Damien Tournoud’s picture

Component: postgresql db driver » database system
Assigned: Damien Tournoud » Unassigned

This cannot be PostgreSQL specific. Nobody has complained about it on MySQL because the engine silently cast column types (so a comparison between status that is a number and the parameter that is a string would not trigger an error).

gilsbert’s picture

Hi.

I agree with Damien but I can't confirm it because I dont have a mysql database to use with Drupal.

Drunken or someone else: may you please check it and confirm if this issue is happening over mysql too?

Regards,
Gilsberty

Damien Tournoud’s picture

There are at least two (partially related issues here):

  • SelectQuery::__clone doesn't clone the sub-query tables at all
  • SelectQuery::__clone doesn't call Query::__clone, so as a consequence its "placeholder generator id" doesn't get reset

Also, none of the other query types actually implement __clone, even if all of them have at least a WHERE condition that should be cloned. Of course, nobody bumped into this yet because cloning those is way less useful.

jhodgdon’s picture

Another issue reported recently that is possibly a duplicate of this issue:
#2233605: Search query getting confused about which values go with which conditions
I marked the other as "related" because I wasn't sure if it was a duplicate or not? There is a clone happening in that query as well.

drunken monkey’s picture

Status: Active » Needs review
FileSize
923 bytes

To hopefully move this forward finally: the attached patch works for me, fixing, e.g., #2299385: Search results not shown in view using several terms and facet filter .

St_B’s picture

Your patch works !

gilsbert’s picture

Hi.

I tested drupal core 7.31 without the patch and the issue is gone.

Do we need the patch for 7.31 or is it already applied?

Regards,
Gilsberty

St_B’s picture

Hi, I have tested only with 7.28. We are going to update the core, I'll tell you the result.

St_B’s picture

For me it is not solved without the patch after updating the core to 7.31

gilsbert’s picture

Ok, I will retest as soon as possible.

drunken monkey’s picture

@ gilsbert: It's definitely not been applied, and I wouldn't know a reason why it should now be fixed. Please re-test!
Also, if the problem is fixed with this patch, could someone set it to "Reviewed & tested by the community"?

St_B’s picture

Status: Needs review » Reviewed & tested by the community
gilsbert’s picture

Hi Drunken.

I'm sorry for taking so long to give you an answer.
Crazy days: new home, new job.... thanks God I still have the same wife! ;-)

I repeated the tests.
I confirm that the issue is gone since Drupal 7.31 but I have new information.
I did not save the old versions of search_api and search_api_db.
So what made this issue vanish for me?
I believe the new versions of search_api and/or search_api_db are making different sql statements and this new scenario is not triggering the specific situation.

I can confirm search_api 7.x-1.13 and search_api_db 7.x-1.4 dont trigger the issue.

I got this conclusion because the sql statements are slightly different from the old versions.

If you can point me a link with search_api_db version that triggers this situation I will retest.

Regards,
Gilsberty

St_B’s picture

Hi,
Here we also use search API 7.X-1.13 et Database search 7.x-1.4 and have this issue. We also use Biblio search API (which allows to search in special fields created by Biblio module), but I don't think this is the problem because we had the same problem on another drupal without Biblio module.
Regards
Stéphanie

gilsbert’s picture

Hi, good morning!

May it be related with PHP version? We are using 5.4.20 here.

Is it possible to pass a module (features) that will allow me to test the exact situation you have?

I'm deeply interested on investigate and help to fix this issue once for all.

Regards,
Gilsberty

drunken monkey’s picture

@ gilsbert: You can find old releases of modules under "View all Releases" on the project page.
For Search API
For Search API DB

It's of course possible that some change there could lead to that issue not being triggered in your setup anymore.

Status: Reviewed & tested by the community » Needs work

The last submitted patch, 16: 2142107-16--fix_select_query_clone.patch, failed testing.

Status: Needs work » Needs review
David_Rothstein’s picture

Status: Needs review » Reviewed & tested by the community

Looks like a testbot fluke.

Status: Reviewed & tested by the community » Needs work

The last submitted patch, 16: 2142107-16--fix_select_query_clone.patch, failed testing.

Status: Needs work » Needs review
David_Rothstein’s picture

Status: Needs review » Reviewed & tested by the community

Testbot fluke.

Status: Reviewed & tested by the community » Needs work

The last submitted patch, 16: 2142107-16--fix_select_query_clone.patch, failed testing.

Status: Needs work » Needs review
David_Rothstein’s picture

Status: Needs review » Reviewed & tested by the community

Testbot fluke.

Status: Reviewed & tested by the community » Needs work

The last submitted patch, 16: 2142107-16--fix_select_query_clone.patch, failed testing.

David_Rothstein’s picture

Version: 7.x-dev » 8.0.x-dev
Issue tags: +Needs backport to D7

Took a look at this, and actually, doesn't this need to go into Drupal 8 first?

The code in this method for Drupal 8 is the exact same as the code in Drupal 7, so I would assume the same bug exists there.

Version: 8.0.x-dev » 8.1.x-dev

Drupal 8.0.6 was released on April 6 and is the final bugfix release for the Drupal 8.0.x series. Drupal 8.0.x will not receive any further development aside from security fixes. Drupal 8.1.0-rc1 is now available and sites should prepare to update to 8.1.0.

Bug reports should be targeted against the 8.1.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.2.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Kristi Wachter’s picture

Just another report that the patch in #16 fixed the issue for me on a site running Drupal 7.43 with Search API 7.x-1.18 and Facet API 7.x-1.5.

This is a very hard-to-troubleshoot bug, and it would be great if we could get the fix committed to both Drupal 7 and Drupal 8 soon.

Thanks!

flocondetoile’s picture

And another report that patch #16 fixed the issue with Search API 7.x-1.18 and Facet API 7.x-1.5 too. Thanks.

Version: 8.1.x-dev » 8.2.x-dev

Drupal 8.1.9 was released on September 7 and is the final bugfix release for the Drupal 8.1.x series. Drupal 8.1.x will not receive any further development aside from security fixes. Drupal 8.2.0-rc1 is now available and sites should prepare to upgrade to 8.2.0.

Bug reports should be targeted against the 8.2.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.3.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

agerard’s picture

And another report - patch #16 fixed the issue with Search API 7.x-1.20 and Facet API 7.x-1.5. Thanks much!

drunken monkey’s picture

Version: 8.2.x-dev » 8.3.x-dev
Status: Needs work » Needs review
FileSize
939 bytes

Here is the same patch for Drupal 8 (8.2 and 8.3 should both work).

daffie’s picture

Status: Needs review » Needs work
Issue tags: +Needs tests

This needs test(s) to make sure that the problem is fixed and will stay fixed.

Version: 8.3.x-dev » 8.4.x-dev

Drupal 8.3.0-alpha1 will be released the week of January 30, 2017, which means new developments and disruptive changes should now be targeted against the 8.4.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.4.x-dev » 8.5.x-dev

Drupal 8.4.0-alpha1 will be released the week of July 31, 2017, which means new developments and disruptive changes should now be targeted against the 8.5.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

candelas’s picture

Thanks @drunken monkey :)
Patch in #16 works perfect. I was getting nuts with this :)

Version: 8.5.x-dev » 8.6.x-dev

Drupal 8.5.0-alpha1 will be released the week of January 17, 2018, which means new developments and disruptive changes should now be targeted against the 8.6.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

brickhauser’s picture

@ drunken monkey, your patch works great! You're a lifesaver #16

drunken monkey’s picture

Version: 8.6.x-dev » 8.7.x-dev

Drupal 8.6.0-alpha1 will be released the week of July 16, 2018, which means new developments and disruptive changes should now be targeted against the 8.7.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

giorgio79’s picture

I am happy to confirm that #16 solved #2842853: Strange behaviour of tokenized fields for me! Thank you @drunken-monkey. You are the best, and still going strong in Drupal :)

wla_g’s picture

Status: Needs review » Reviewed & tested by the community
Issue tags: +DrupalEurope2018
Without patch:
php ./core/scripts/run-tests.sh --class "Drupal\KernelTests\Core\Database\SelectCloneTest"

Drupal test run
---------------

Tests to be run:
  - Drupal\KernelTests\Core\Database\SelectCloneTest

Test run started:
  Friday, September 14, 2018 - 06:36

Test summary
------------

Drupal\KernelTests\Core\Database\SelectCloneTest               0 passes   1 fails                            

Test run duration: 32 sec

With patch applied:
php ./core/scripts/run-tests.sh --class "Drupal\KernelTests\Core\Database\SelectCloneTest"

Drupal test run
---------------

Tests to be run:
  - Drupal\KernelTests\Core\Database\SelectCloneTest

Test run started:
  Friday, September 14, 2018 - 06:41

Test summary
------------

Drupal\KernelTests\Core\Database\SelectCloneTest               2 passes                                      

Test run duration: 32 sec
TwoD’s picture

To add some context, @wla_g was my mentee today and worked on testing/reviewing this as he's got personal experience battling this bug for years on his D7 sites. He knew the fix works very well in production and it looks like a clean solution. To ensure it still applies cleanly and the D8 tests are correct we ran them again locally and verified the same fix is needed there.

Thanks to @wla_g for making me confident in mentoring my first sprint!

mondrake’s picture

Status: Reviewed & tested by the community » Needs work
+++ b/core/tests/Drupal/KernelTests/Core/Database/SelectCloneTest.php
@@ -34,4 +38,31 @@ public function testSelectConditionSubQueryCloning() {
+    $sub_query = \Drupal::database()->select('test', 't');

we can use $this->connection->select('test', 't'); here now.

EDIT - also a couple of lines below.

drunken monkey’s picture

A dubious reason to hold up a bug fix that’s been needed for five years, but alright.
Please just review again and set back to RTBC!

mondrake’s picture

Back to RTBC.

mondrake’s picture

Status: Needs review » Reviewed & tested by the community

  • catch committed 74ba0f6 on 8.7.x
    Issue #2142107 by drunken monkey, gilsbert, David_Rothstein, mondrake,...

  • catch committed 5b8e64c on 8.6.x
    Issue #2142107 by drunken monkey, gilsbert, David_Rothstein, mondrake,...
catch’s picture

Version: 8.7.x-dev » 8.6.x-dev
Status: Reviewed & tested by the community » Fixed

Fixed these on commit:

  1. +++ b/core/tests/Drupal/KernelTests/Core/Database/SelectCloneTest.php
    @@ -34,4 +38,31 @@ public function testSelectConditionSubQueryCloning() {
    +   * Test that nested SELECT queries are cloned properly.
    

    This should be 'Tests that...'.

  2. +++ b/core/tests/Drupal/KernelTests/Core/Database/SelectCloneTest.php
    @@ -34,4 +38,31 @@ public function testSelectConditionSubQueryCloning() {
    +    // Make sure the cloned query has not been modified
    

    Missing a period on the end.

Committed/pushed to 8.7.x and cherry-picked to 8.6.x. Thanks!

7.x issue here: #3000191: Complex cloned query dependent on __toString() call.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.

emanaton’s picture

Version: 8.6.x-dev » 7.x-dev
FileSize
923 bytes

Here's a re-roll of patch #16 for drupal 7.80.

I'm having the same issue, and this patch fixes it. My current applicable module versions are:

* search_api: 7.x-1.28
* search_api_db: 7.x-1.8
* facetapi: 7.x-1.6

quietone credited regilero.

quietone’s picture