<feed xmlns='http://www.w3.org/2005/Atom'>
<title>FreshRSS (Customized)/app/Models/EntryDAO.php, branch 0.7.3</title>
<subtitle>Customized version of FreshRSS, a self-hosted RSS feed aggregator</subtitle>
<id>https://git.rdnlsmith.com/fresh-rss-custom/atom?h=0.7.3</id>
<link rel='self' href='https://git.rdnlsmith.com/fresh-rss-custom/atom?h=0.7.3'/>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/'/>
<updated>2014-07-17T09:56:15+00:00</updated>
<entry>
<title>SQL: Bug with order ASC</title>
<updated>2014-07-17T09:56:15+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2014-07-17T09:56:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=3403af30501cc0df75290372bc111430e0f8e70a'/>
<id>urn:sha1:3403af30501cc0df75290372bc111430e0f8e70a</id>
<content type='text'>
https://github.com/marienfressinaud/FreshRSS/issues/538
</content>
</entry>
<entry>
<title>SQL: MySQL speed optimisation</title>
<updated>2014-07-10T13:49:51+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2014-07-10T13:49:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=6c83264f83221dcaa41d58e0b35b9925cde130e4'/>
<id>urn:sha1:6c83264f83221dcaa41d58e0b35b9925cde130e4</id>
<content type='text'>
Would be nice to test with other versions of MySQL too.

Comparison before/after:

mysql&gt; EXPLAIN SELECT e.id, e.guid, e.title, e.author,
UNCOMPRESS(content_bin) AS content, e.link, e.date, e.is_read,
e.is_favorite, e.id_feed, e.tags FROM `freshrss_alex_entry` e INNER JOIN
(SELECT e1.id FROM `freshrss_alex_entry` e1 INNER JOIN
`freshrss_alex_feed` f ON e1.id_feed=f.id WHERE f.priority &gt; 0 AND
(e1.id &gt;= 1381615200000000 OR e1.is_read=0 OR e1.is_favorite=1 OR
(f.keep_history &lt;&gt; 0)) ORDER BY e1.id DESC LIMIT 31) e2 ON e2.id=e.id
ORDER BY e.id DESC;

+----+-------------+------------+--------+-------------------------------------+----------+---------+---------------+------+----------------------------------------------+
| id | select_type | table      | type   | possible_keys
| key      | key_len | ref           | rows | Extra
|

+----+-------------+------------+--------+-------------------------------------+----------+---------+---------------+------+----------------------------------------------+
|  1 | PRIMARY     | &lt;derived2&gt; | ALL    | NULL
| NULL     | NULL    | NULL          |   31 | Using temporary; Using
filesort              |
|  1 | PRIMARY     | e          | eq_ref | PRIMARY
| PRIMARY  | 8       | e2.id         |    1 |
|
|  2 | DERIVED     | f          | range  | PRIMARY,priority,keep_history
| priority | 1       | NULL          |  137 | Using where; Using
temporary; Using filesort |
|  2 | DERIVED     | e1         | ref    |
PRIMARY,id_feed,is_favorite,is_read | id_feed  | 2       | freshrss.f.id
|  452 | Using where                                  |

+----+-------------+------------+--------+-------------------------------------+----------+---------+---------------+------+----------------------------------------------+
4 rows in set (3.50 sec)

mysql&gt; EXPLAIN SELECT e.id, e.guid, e.title, e.author,
UNCOMPRESS(content_bin) AS content, e.link, e.date, e.is_read,
e.is_favorite, e.id_feed, e.tags FROM `freshrss_alex_entry` e INNER JOIN
(SELECT e1.id FROM `freshrss_alex_entry` e1 INNER JOIN
`freshrss_alex_feed` f ON e1.id_feed=f.id WHERE f.priority &gt; 0 AND e1.id
&lt;=9000000000000000 AND (e1.id &gt;= 1381615200000000 OR e1.is_read=0 OR
e1.is_favorite=1 OR (f.keep_history &lt;&gt; 0)) ORDER BY e1.id DESC LIMIT 31)
e2 ON e2.id=e.id ORDER BY e.id DESC;

+----+-------------+------------+--------+-------------------------------------+---------+---------+---------------------+-------+---------------------------------+
| id | select_type | table      | type   | possible_keys
| key     | key_len | ref                 | rows  | Extra
|

+----+-------------+------------+--------+-------------------------------------+---------+---------+---------------------+-------+---------------------------------+
|  1 | PRIMARY     | &lt;derived2&gt; | ALL    | NULL
| NULL    | NULL    | NULL                |    31 | Using temporary;
Using filesort |
|  1 | PRIMARY     | e          | eq_ref | PRIMARY
| PRIMARY | 8       | e2.id               |     1 |
|
|  2 | DERIVED     | e1         | range  |
PRIMARY,id_feed,is_favorite,is_read | PRIMARY | 8       | NULL
| 70084 | Using where                     |
|  2 | DERIVED     | f          | eq_ref | PRIMARY,priority,keep_history
| PRIMARY | 2       | freshrss.e1.id_feed |     1 | Using where
|

+----+-------------+------------+--------+-------------------------------------+---------+---------+---------------------+-------+---------------------------------+
4 rows in set (0.01 sec)
</content>
</entry>
<entry>
<title>SQL: removed superfluous transactions to avoid some dead locks</title>
<updated>2014-07-08T12:14:02+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2014-07-08T12:14:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=0f842c1aea74792d9b6f7e41e374c5aa0ec745fb'/>
<id>urn:sha1:0f842c1aea74792d9b6f7e41e374c5aa0ec745fb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>SQL: improved performance for adding new articles</title>
<updated>2014-07-07T16:25:48+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2014-07-07T16:25:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=439a0e2991231db51232646736a4bf78cfb2bffd'/>
<id>urn:sha1:439a0e2991231db51232646736a4bf78cfb2bffd</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add support for SQLite</title>
<updated>2014-07-04T23:52:41+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2014-07-04T23:52:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=805c91da98c2f582e279f3c853fba9e43f572419'/>
<id>urn:sha1:805c91da98c2f582e279f3c853fba9e43f572419</id>
<content type='text'>
https://github.com/marienfressinaud/FreshRSS/issues/100
Warning: MySQL has been changed too, so bugs may have been introduced
</content>
</entry>
<entry>
<title>Preparation for SQLite</title>
<updated>2014-07-03T19:26:30+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2014-07-03T19:26:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=d6f414108667f32fe2b480adeb7ec9c218db2f4a'/>
<id>urn:sha1:d6f414108667f32fe2b480adeb7ec9c218db2f4a</id>
<content type='text'>
https://github.com/marienfressinaud/FreshRSS/issues/100
</content>
</entry>
<entry>
<title>Search order of filters</title>
<updated>2014-06-01T13:23:30+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2014-06-01T13:23:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=d1b31b1a61e30e7b20afa644bdf5f641653b4569'/>
<id>urn:sha1:d1b31b1a61e30e7b20afa644bdf5f641653b4569</id>
<content type='text'>
For now, process them in the same order as specified by the user
Specifying for instance `date:` first will be much faster than
specifying a free text word first.
https://github.com/marienfressinaud/FreshRSS/issues/511
</content>
</entry>
<entry>
<title>New search system, including date: and pubdate: and combination</title>
<updated>2014-06-01T12:40:38+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2014-06-01T12:40:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=ecac55d3d36dbb0af1c8b5d190972adebee42434'/>
<id>urn:sha1:ecac55d3d36dbb0af1c8b5d190972adebee42434</id>
<content type='text'>
Now also accepts combination of #tag and intitle: and inurl: and author:
and the new date: and pubdate:
https://github.com/marienfressinaud/FreshRSS/issues/511
Each search prefix stop at the first space (we should add a possibility
to have quotes for multiple words)
So if you want two words in title, write "intitle:word1 intitle:word2"

Examples of dates:
date:2014
date:2014-02/2014-04 or date:201402/201404
date:P1W for the last week
</content>
</entry>
<entry>
<title>Minor syntax changes for: New toggle buttons to filter articles</title>
<updated>2014-04-15T10:16:31+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2014-04-15T10:16:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=f25783ef5de2c4b7f9746eb7ad92fb0b018738b1'/>
<id>urn:sha1:f25783ef5de2c4b7f9746eb7ad92fb0b018738b1</id>
<content type='text'>
See
http://programmers.stackexchange.com/questions/23852/bitwise-or-vs-adding-flags
https://github.com/marienfressinaud/FreshRSS/pull/486
https://github.com/marienfressinaud/FreshRSS/issues/376
</content>
</entry>
<entry>
<title>Move state constants from Configuration to Entry</title>
<updated>2014-04-13T12:16:43+00:00</updated>
<author>
<name>Alexis Degrugillier</name>
<email>github@ainw.org</email>
</author>
<published>2014-04-13T12:16:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=3a736e902c5af7f215bbf91dc54be00bf82f8df3'/>
<id>urn:sha1:3a736e902c5af7f215bbf91dc54be00bf82f8df3</id>
<content type='text'>
</content>
</entry>
</feed>
