1
1
Fork 0
mirror of https://code.mensbeam.com/MensBeam/Arsse.git synced 2024-12-23 17:12:41 +00:00
Commit graph

133 commits

Author SHA1 Message Date
J. King
6000d80b7b Work around various SQLite-related problems
- WAL mode was not getting set properly
- Queries using the PDO driver could fail because PDO sucks
2019-03-04 11:08:56 -05:00
J. King
5efef2c2d0 Console command to refresh all feeds once; fixes #147 2019-03-02 14:59:44 -05:00
J. King
44366f48bf Remove arbitrary search term limits; fixes #150 2019-03-02 13:53:43 -05:00
J. King
21fdd66d37 Work around limit to SQL parameter placeholders for IN() clauses
Improves #150

LIKE-based matches also need to be similarly conservative
2019-03-01 22:36:25 -05:00
J. King
6857e8ec1b Merge branch 'search' 2019-03-01 12:26:08 -05:00
J. King
837f3c6dd6 Simplify SQL type handling
This is done in anticipation of dealing with SQL types in
places other than statements
2019-03-01 12:17:33 -05:00
J. King
3b8461b1ca Add searching to TTRSS handler 2019-02-28 16:22:04 -05:00
J. King
85307bc90a Add parser for TTRSS search strings 2019-02-28 15:31:33 -05:00
J. King
95de375e0b Handle folder and label exclusion
Consequently the way label data are retrieved was completely overhauled
2019-02-27 10:48:11 -05:00
J. King
677e33e518 Add text search exclusions 2019-02-26 11:39:19 -05:00
J. King
0dc82f64d5 Allow ranges in exclusion contexts 2019-02-26 11:11:42 -05:00
J. King
18d52ea402 Make exclusion contexts return their parent on change 2019-02-25 23:37:14 -05:00
J. King
b950ac066f Restrict options in not-context and hopefully make it easier to use 2019-02-25 22:41:12 -05:00
J. King
14c02d56ac Implement new context options other than not().
Context handling has also been re-organized to simplify later
implementation of the not() option
2019-02-25 16:26:38 -05:00
J. King
f4a74eec5d Add all the other context options allowed by the TTRSS search syntax 2019-02-25 10:46:43 -05:00
J. King
2df7c25b66 Add ability to search note text 2019-02-23 20:14:52 -05:00
J. King
bc3182a961 Basic substring searching 2019-02-22 18:50:39 -05:00
J. King
ace94e3ef8 Fix context, and context tests 2019-02-22 12:34:06 -05:00
J. King
500851f161 Style fixes 2019-01-23 16:34:54 -05:00
J. King
8ea1df920a Unify SQL timeouts
- Exec and lock timeouts now apply to MySQL
- Lock timeout now applies to PostgreSQL
- SQLite now uses a generic lock timeout setting which applies to all
2019-01-23 16:31:54 -05:00
J. King
5335d331f7 Fix configuration exporting 2019-01-21 09:55:25 -05:00
J. King
5cd84c4ab4 Validate configuration parameters on import, and other changes
- Each parameter is checked for type and normalized
- Interval strings are converted to DateInterval objects
- Timeouts can be specified as interval strings
- Most intervals can be null to signify infinity
- Driver classes are checked that they implement the correct interface
- Short driver names may be used, and are used by default
- Helpful errors messages are printed in case of erroneous configuration

Exporting is currently broken; this will be fixed in an upcoming commit
2019-01-20 22:40:49 -05:00
J. King
b0643de21c Add handling of DateInterval objects to ValueInfo 2019-01-17 16:29:42 -05:00
J. King
4670dfc849 Handle connection errors 2019-01-15 10:51:55 -05:00
J. King
e92bda5373 Various changes:
- Fix handling of binary data and long strings
- Simplify handling of socket connections
- Fix coverage
2019-01-15 08:58:11 -05:00
J. King
f3b0c791f8 Fix remaining tests 2019-01-14 09:51:00 -05:00
J. King
5d61ab0a57 Fixes for MySQL native interface
Three test failures remain, but these are minor and will be resolved
soon. Handling of binary data is also broken, but given that this works
fine with the PDO driver, there is presumably some correct method.
2019-01-13 23:17:19 -05:00
J. King
e501fbdc87 Remove the DatabaseInformation class in tests and use traits instead 2019-01-12 12:43:06 -05:00
J. King
81acba90dc Use strict equality when comparing strings 2019-01-11 10:38:06 -05:00
J. King
206cca35a9 Test tweaks 2018-12-21 17:51:49 -05:00
J. King
f0d30c2eee Make munging of queries a generic feature 2018-12-21 12:35:10 -05:00
J. King
24df564045 Mostly successful MySQL database function tests
Two failures remain, at least one requiring query munging.
2018-12-21 10:14:26 -05:00
J. King
4ef36643a4 Proof-of-concept PDO MySQL driver
- Configuration options were added
- Non-transactional locking was added to the savepoint handlers
- Tests were adjusted for MySQL's reserved words
2018-12-20 18:06:28 -05:00
J. King
29e7c1f154 Fix coverage 2018-12-13 19:56:07 -05:00
J. King
2bebdd44cf Implementation of native PostgreSQL interface
Changes to the Database class were required to avoid outputting booleans
2018-12-13 19:47:51 -05:00
J. King
b52dadf345 Make existing PostgreSQL tests explicitly PDO tests 2018-12-12 12:42:40 -05:00
J. King
28f803dd28 Handle PostgreSQL connection errors 2018-12-12 11:15:07 -05:00
J. King
73729a6be8 Simplify database cleanup between tests 2018-12-10 13:17:04 -05:00
J. King
8dbf237626 Group PostgreSQL tests as slow 2018-12-10 12:39:09 -05:00
J. King
913cf71620 Fix incorrect annotations 2018-12-07 20:36:20 -05:00
J. King
f6966659a9 Use smarter coverage executer; properly suppress stderr during CLI tests 2018-12-07 20:25:48 -05:00
J. King
0513b606c2 Merge master 2018-12-07 19:21:44 -05:00
J. King
089f666de6 Fix PDO insert ID errors in PHP 7.1 2018-12-06 17:46:00 -05:00
J. King
cf896121b2 Style fixes 2018-12-05 17:28:11 -05:00
J. King
f2245861e3 Restore complete Database coverage
Also suppress PostgreSQL database function tests from normal coverage,
and add a "coverage:full" task to run them if needed.
2018-12-05 17:07:47 -05:00
J. King
51755a2ce6 Retire article field groups 2018-12-05 16:55:14 -05:00
J. King
0129965bbd Cover some missed code 2018-12-05 12:54:19 -05:00
J. King
22941f5ad1 Fix session tests
PostgreSQL now passes all tests. Connection and permission errors still
need to be accounted
for before the implementation is complete.
2018-12-05 12:07:45 -05:00
J. King
258be1d54e Fix most PostgreSQL test failures
Reasons for failures included an unhandled error code, erroneous sorting
assumptions, and a broken computation of the next insert ID in tests

Five failures remain.
2018-12-05 09:05:43 -05:00
J. King
8fc31cfc40 Rewrite various queries to work in PostgreSQL
This involved changes to the driver interface as well as the database
schemata. The most significantly altered queries were for article
selection and marking, which relied upon unusual features of SQLite.
Overall query efficiency should not be adversely affected (it may have
even imprved) in the common case, while very rare cases (not presently
triggered by any REST handlers) require more queries.

One notable benefit of these changes is that functions which query
articles can now have complete control over which columns are returned.
This has not, however, been implemented yet: symbolic column groups are
still used for now.

Note that PostgreSQL still fails many tests, but the test suite runs to
completion. Note also that one line of the Database class is not
covered; later changes will eventually make it easier to cover the line
in question.
2018-12-04 20:41:21 -05:00