J. King
119d42907e
More feed update refactoring
...
Still very much incomplete: in its present form it would yield many false duplicates
2017-04-15 22:07:22 -04:00
J. King
a67fe30408
Fix whitespace
...
Also fixed my editor so tabs won't happen again!
2017-04-06 21:41:21 -04:00
J. King
b02abec250
Added test for recursive binding
...
Also fixed a bug uncovered by the test
2017-04-06 21:24:26 -04:00
J. King
929d763981
Simplify the creation of arbitrary UPDATEs
...
The type parameters of Db\Driver::prepare() and the parameters of Db\Statement::run() can now be arrays, which will be iterated over recursively to bind scalar values to the SQL statement.
This simplifies the construction of arbitrary UPDATE statements (the WHERE clause no longer needs to be taken into account) and should make it clearer what is happening in these cases.
It should also simplify the creation of IN() clauses down the road if they become necessary.
2017-04-06 11:02:47 -04:00
J. King
458eaac5c6
Tests for listing folders
...
- Fixed checking for existence of parent before listing
- Changed Result->getAll() to return an empty array rather than null for an empty result set
2017-03-31 17:42:28 -04:00
J. King
f902346b6c
Eliminated passing of RuntimeData instances
...
- RuntimeData has now been replaced by a single static Data class
- The Data class has a load() method which fills the same role as the constructor of RuntimeData
- The static Lang class is now an instantiable class and is a member of Data
- All tests have been adjusted and pass
- The Exception tests no longer require convoluted workarounds: a simple mock for Data::$l suffices; Lang tests also use a mock to prevent loops now instead of using a workaround
2017-03-28 18:50:00 -04:00
Dustin Wilson
7236020b8b
Changed "NewsSync" to "Arsse"
2017-03-27 23:12:12 -05:00
J. King
b821d728e4
Add rest dependency; fix SQLite function def
2017-03-13 23:22:20 -04:00
J. King
6413d3a489
Re-order SQLite3 driver initialization
...
Should handle error reporting better
2017-03-13 19:13:06 -04:00
Dustin Wilson
bb8af5a62c
Added Custom Functions into Db/SQLite3/Driver
...
• Created Db/SQLite3/CustomFunctions to house the dateFormat custom
function and potentially others in the future.
• Fixed a typo in Db/SQLite3/Driver
2017-03-13 13:33:31 -05:00
J. King
18c8076a0f
Database update tests
2017-03-09 21:39:42 -05:00
J. King
689c1c77d0
Test for advisory locking
2017-03-09 17:14:26 -05:00
J. King
f0663e99c3
Add tests for transactions and savepoints
...
Existing code had subtle bugs; using increment and decrement operators actually makes things easier to understand (for once)
2017-03-09 16:36:33 -05:00
J. King
485400df2b
Rename Result->get() to Result->getRow
...
It should be slightly clearer what it does
2017-03-09 15:01:18 -05:00
J. King
bdf3182305
Add result->lastId method; cleanup
...
- Result->lastId() added as MySQL and PostgreSQL have equivalent functionality
- Adjusted tests accordingly
- Cleaned up Database class to make use of this and getAll()
2017-03-09 14:48:42 -05:00
J. King
a3e2da1d36
Flesh out most database exceptions
...
- Fixes #46
- Some exception messages are tentative pending testing
2017-03-08 12:29:22 -05:00
J. King
7c1df71acd
Make db throw specific exceptions
...
Needs testing and fleshing out; not all exception codes and messages have been defined
2017-03-08 09:55:16 -05:00
J. King
755c976aa4
Remove extraneous files
2017-03-08 08:21:48 -05:00
J. King
fa247b34f6
Reduce the number of database exception types
2017-03-08 08:19:42 -05:00
J. King
7687109132
Reorganize Db namespace; alter User ns to match
2017-03-07 18:01:13 -05:00
J. King
37dad63dee
Impelemented Result->getAll()
...
- Fixes #45
- Renamed getSingle to getValue to avoid possible confusion
- Added test to ensure getValue() always returns the first datum of each row rather than going column-to-column
2017-03-06 16:34:38 -05:00
J. King
1dab15c20e
Fix SQLite3 driver name
2017-03-04 20:03:41 -05:00
J. King
eeb1818bb5
Still more database changes
...
- Restructured tests
- Localized driver name for SQLite driver (fixes #37 )
- Ensured that binding type definitions are required
2017-03-03 13:20:26 -05:00
J. King
2b7a236147
More database fixes
...
Now able to add feeds to the database
2017-03-02 22:43:59 -05:00
J. King
007e3747ef
Various database fixes
...
Authentication appears to be broken with a real database
2017-03-02 20:47:00 -05:00
J. King
0c410fcf50
More binding tests and related changes
...
- Introduced abstract Statement class to hold common methods
- Common methods currently consist of a date formatter and type caster
- Moved binding tests to a trait for reuse with future drivers
2017-03-02 18:42:19 -05:00
J. King
1529fc367a
Partial proper tests for parameter bindings
...
Null and (>0) integer tested so far
Many related changes to accomodate the necessary type juggling (required for databases other than SQLite).
2017-03-02 14:19:16 -05:00
J. King
337b2cf90c
Remove last vestiges of PDO accomodation
2017-03-02 09:04:04 -05:00
J. King
f19f683e38
Make it possible to redefine Statement type binds
2017-03-01 23:12:42 -05:00
J. King
b4d178c33f
Remove most PDO stuff
...
PDO will not be supported: the feature-set is less than any of the common native APIs, so why bother?
2017-03-01 22:47:51 -05:00
J. King
176247894d
Tests for Db\ResultSQLite3
2017-03-01 19:00:14 -05:00
Dustin Wilson
e5d825d360
Started integration of PicoFeed
...
• Integrated PicoFeed into Database->subscriptionAdd
• Added exception handling for feeds
• Added static method for formatting SQL dates into Db/Common
2017-02-19 16:02:03 -06:00
Dustin Wilson
c5fac33398
Converted all hard tabs to soft tabs
2017-02-16 14:29:42 -06:00
J. King
c8274eca74
Moved base exception code to abstract class
...
This allows differentiating specific and general exceptions in tests; a library-wide trap would have to trap AbstractException
2017-02-11 14:56:02 -05:00
J. King
c213b5928d
move code out of vendor tree into lib
2017-02-11 14:48:48 -05:00