1
1
Fork 0
mirror of https://code.mensbeam.com/MensBeam/Arsse.git synced 2024-12-22 21:22:40 +00:00
Commit graph

393 commits

Author SHA1 Message Date
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
c4a41255b0 Experimental native MySQL driver
No testing has been performed yet, but changes are extensive enough to
warrant a commit. Of particular note:

- SQL states are enumerated in a separate trait to reduce duplication
- PDOStatement is now an abstract class to avoid duplication of
engine-specific error handling
- Error handling has been cleaned up somewhat
2019-01-10 19:01:32 -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
J. King
527ecee393 Code coverage fixes 2018-11-29 13:56:15 -05:00
J. King
4a1c23ba45 Munge PostgreSQL queries instead of adding explicit casts
PDO does not adequately inform PostgreSQL of a parameter's type, so type
casts are required. Rather than adding these to each query manually, the
queries are instead processed to add type hints automatically.

Unfortunately the queries are processed rather naively; question-mark
characters in string constants, identifiers, regex patterns, or geometry
operators will break things spectacularly.
2018-11-29 13:45:37 -05:00
J. King
e68fcc0afa Manipulate only those sequences in the current PostgreSQL schema 2018-11-28 17:16:03 -05:00
J. King
4a2efd9987 Correct the state of PostgreSQL serial sequence during tests 2018-11-28 16:24:12 -05:00
J. King
dd4f22e04e Avoid use of reserved SQL word "user" 2018-11-28 14:21:36 -05:00