[MDEV-6195] sphinxse UPDATEs to rt indexes are incompatible with BINLOG settings Created: 2014-05-01  Updated: 2014-05-22  Due: 2014-05-18  Resolved: 2014-05-22

Status: Closed
Project: MariaDB Server
Component/s: None
Affects Version/s: 5.5.37
Fix Version/s: None

Type: Bug Priority: Minor
Reporter: Daniel Black Assignee: Unassigned
Resolution: Won't Fix Votes: 0
Labels: sphinx
Environment:

debian squeeze


Issue Links:
Relates
relates to MDEV-5259 Can not restore SphinxSE table using ... Closed

 Description   

CREATE TABLE `sphinx_auctions_2` (
  `id` bigint(20) unsigned NOT NULL DEFAULT '0',
  `weight` int(11) NOT NULL,
  `query` varchar(100) NOT NULL,
  `title` varchar(75) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=SPHINX DEFAULT CHARSET=latin1 CONNECTION='sphinxql://192.168.179.103:9312/idx_oa_auctions'

sphinx-2.1.7 configuration /etc/sphinx/sphinxse

index idx_oa_auctions
{
    type = rt
 
    path = /var/lib/sphinxsearch/data/mf_auctions
    morphology    = stem_en, soundex
 
    dict = keywords
 
    # should relate to index size
    # http://sphinxsearch.com/docs/2.1.7/rt-caveats.html
 
    # RAM chunk size limit
    # RT index will keep at most this much data in RAM, then flush to disk
    # optional, default is 32M
    #
    # rt_mem_limit              = 512M
 
    rt_field = title
}

MariaDB [opalauctions_com]> UPDATE sphinx_auctions_2 SET title='bananas' WHERE id=3;                                                                                                                 
ERROR 1661 (HY000): Cannot execute statement: impossible to write to binary log since both row-incapable engines and statement-incapable engines are involved.                                       
MariaDB [opalauctions_com]> SELECT @@binlog_format;
+-----------------+                                                                                                                                                                                  
| @@binlog_format |                                                                                                                                                                                  
+-----------------+                                                                                                                                                                                  
| MIXED           |                                                                                                                                                                                  
+-----------------+                                                                                                                                                                                  
1 row in set (0.00 sec)                                                                                                                                                                              
                                                                                                                                                                                                     
MariaDB [opalauctions_com]> set binlog_format = 'ROW';
Query OK, 0 rows affected (0.00 sec)                                                                                                                                                                 
                                                                                                                                                                                                     
> UPDATE sphinx_auctions_2 SET title='bananas' WHERE id=3;                                                                                                              
ERROR 1661 (HY000): Cannot execute statement: impossible to write to binary log since both row-incapable engines and statement-incapable engines are involved.                                       
> set binlog_format = 'STATEMENT';                                                                                                        
Query OK, 0 rows affected (0.00 sec)                                                                                                                                                                 
                                                                                                                                                                                                     
> UPDATE sphinx_auctions_2 SET title='bananas' WHERE id=3;                                                                                                                 
ERROR 1661 (HY000): Cannot execute statement: impossible to write to binary log since both row-incapable engines and statement-incapable engines are involved.   



 Comments   
Comment by Daniel Black [ 2014-05-01 ]

> set sql_log_bin=0;
Query OK, 0 rows affected (0.00 sec)                                                                                                                                                                 
                                                                                                                                                                                                     
> UPDATE sphinx_auctions_2 SET title='bananas' WHERE id=3;                                                                                                                 
ERROR 1031 (HY000): Table storage engine for 'sphinx_auctions_2' doesn't have this option      

Same results above repeatable with supported REPLACE/INSERT

> set sql_log_bin=1;
Query OK, 0 rows affected (0.00 sec)
 
> REPLACE INTO sphinx_auctions_2 (id,title) VALUES (3,'bananas');
ERROR 1661 (HY000): Cannot execute statement: impossible to write to binary log since both row-incapable engines and statement-incapable engines are involved.

However, it gets worse:

> set sql_log_bin=0;
Query OK, 0 rows affected (0.00 sec)                                                                                                                                                                 
                                                                                                                                                                                                     
> REPLACE INTO sphinx_auctions_2 (id,title) VALUES (3,'bananas');                                                                                                 
ERROR 1156 (08S01): Got packets out of order

Upstream bug referring to lack of documentation and some similar faults: http://sphinxsearch.com/bugs/view.php?id=1952

Comment by Elena Stepanova [ 2014-05-04 ]

Hi Daniel,

This or very similar problem was previously discussed in MDEV-5259, which was eventually closed as fixed in 10.0, and not worth fixing in 5.5.

Do you disagree, do you consider it critical for 5.5?

Comment by Daniel Black [ 2014-05-05 ]

Given the number of other issues with trying to use sphinxse in a update mode I'm agreeing with leaving this for 5.5
http://sphinxsearch.com/bugs/view.php?id=1952 / http://sphinxsearch.com/bugs/view.php?id=1953

Hopefully some work gets done on the engine because its making a lot of assumptions and really only works in sphinx:// mode.

Comment by Elena Stepanova [ 2014-05-22 ]

As discussed above, closing as "Won't fix" (in 5.5).

Generated at Thu Feb 08 07:10:04 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.