Commit Graph

425 Commits

Author SHA1 Message Date
Guy Sartorelli
44b170098e
NEW Add ORM abstraction for "WITH" clauses (#10943) 2023-10-02 15:25:14 +13:00
github-actions
11c0198b9d Merge branch '5.1' into 5 2023-09-30 14:24:05 +00:00
github-actions
cf78a9d785 Merge branch '5.0' into 5.1 2023-09-30 14:24:03 +00:00
github-actions
3d60e1e77e Merge branch '4' into 5.0 2023-09-30 14:24:00 +00:00
Guy Sartorelli
7d5c62ed5f
NEW Add rightJoin method to DataList (#10961) 2023-09-27 15:24:32 +13:00
Guy Sartorelli
55e42683f8
FIX Match multi-line JOIN statements (#10960) 2023-09-26 10:30:55 +13:00
Guy Sartorelli
7bb72eb7c5
FIX Ensure all fixed fields are added 2023-09-25 15:35:34 +13:00
Guy Sartorelli
76da701b6b
NEW Add sql UNION abstraction 2023-09-25 12:33:30 +13:00
Guy Sartorelli
fac3356739
ENH Enable allowing collisions for field statements (#10957) 2023-09-25 12:32:40 +13:00
Guy Sartorelli
bbc0295f86
NEW Add abstraction for sql RIGHT JOIN (#10954) 2023-09-25 12:32:26 +13:00
Guy Sartorelli
b28749db44
ENH Allow selecting multiple (or no) tables (#10953) 2023-09-25 12:32:19 +13:00
github-actions
24db72a5f5 Merge branch '5.0' into 5.1 2023-09-16 14:23:45 +00:00
github-actions
ff4a091d93 Merge branch '4' into 5.0 2023-09-16 14:23:44 +00:00
Guy Sartorelli
58696e3ed5
FIX Set tableName on DBField before calling addToQuery (#10946) 2023-09-14 11:01:36 +12:00
github-actions
0b89d32f8c Merge branch '5.0' into 5.1 2023-09-09 14:23:42 +00:00
github-actions
b01afbe99b Merge branch '4' into 5.0 2023-09-09 14:23:41 +00:00
Guy Sartorelli
7ea25bf9e1
FIX Call addToQuery on all DBFields (#10936) 2023-09-05 15:06:53 +12:00
Guy Sartorelli
374771d4d7
FIX Correctly implement backwards compatible null comparisons (#10935) 2023-08-31 12:26:40 +12:00
Guy Sartorelli
b4463d9050
NEW Enable ArrayList and EagerLoadedList to use search filters (#10925) 2023-08-29 15:40:19 +12:00
Steve Boyd
c17138b6f5 Merge branch '5.0' into 5 2023-08-28 18:26:22 +12:00
github-actions
69549f2a23 Merge branch '4' into 5.0 2023-08-26 14:23:32 +00:00
Guy Sartorelli
2e92b89b54
Merge pull request #10923 from kinglozzer/10821-mmtl-changetracking
FIX: Stop ManyManyThroughList join records incorrectly showing as changed (fixes #10821)
2023-08-24 09:05:38 +12:00
Loz Calver
1fd495449b FIX: Stop ManyManyThroughList join records incorrectly showing as changed (fixes #10821) 2023-08-23 16:43:56 +01:00
Steve Boyd
00cade0d38 Merge branch '5.0' into 5 2023-08-22 15:32:50 +12:00
Steve Boyd
ee0468e5b7 Merge branch '4.13' into 5.0 2023-08-22 15:32:38 +12:00
Guy Sartorelli
c7cd26299a
Fix ArrayList canFilterBy to work with ArrayData (#10915) 2023-08-15 11:31:20 +12:00
Thomas Portelange
637859a1f4
Update tests/php/ORM/DBCompositeTest.php
Co-authored-by: Guy Sartorelli <36352093+GuySartorelli@users.noreply.github.com>
2023-08-14 09:26:33 +02:00
Thomas Portelange
0d4231abb8
comment test for ss4 2023-08-11 13:24:01 +02:00
Thomas
d621d00eea
DBComposite::writeToManipulation() is never called 2023-08-11 09:56:37 +12:00
github-actions
613dc1620c Merge branch '5.0' into 5 2023-08-09 23:47:19 +00:00
Guy Sartorelli
15e4cbeb7a
Merge branch '4' into 5.0 2023-08-10 11:46:33 +12:00
Guy Sartorelli
fd2b76d38b
Merge pull request #10904 from creative-commoners/pulls/5/more-placeholders
ENH Do not use placeholders by default for foreignIDFilter()
2023-08-09 11:58:26 +12:00
Steve Boyd
358cbc9ee5 ENH Do not use placeholders by default for foreignIDFilter() 2023-08-09 10:46:08 +12:00
Guy Sartorelli
e29be44373
MNT Don't change auto-increment for non mysql database in test (#10906) 2023-08-08 14:43:25 +12:00
Guy Sartorelli
3628cec1f3
FIX Empty relations don't have extra DB calls with eager-loading (#10886) 2023-08-04 12:02:42 +12:00
Guy Sartorelli
ae49e134a9
NEW Use custom list for eagerloaded relations (#10869) 2023-08-03 15:33:13 +12:00
Guy Sartorelli
9e5411e905
Merge pull request #10885 from creative-commoners/pulls/4.13/search-in-non-existing-fields
FIX Image in summaryfields breaks search
2023-08-03 15:11:49 +12:00
Sabina Talipova
d24095aba8 FIX Image in summaryfields breaks search 2023-08-03 14:48:55 +12:00
Guy Sartorelli
158d51a0a5
Merge pull request #10861 from creative-commoners/pulls/5/no-placeholders
ENH Do not use placeholders for int ID filters
2023-07-25 14:54:07 +12:00
Steve Boyd
672396880d ENH Do not use placeholders for int ID filters 2023-07-25 14:31:39 +12:00
github-actions
4d8d5c04a5 Merge branch '5.0' into 5 2023-07-20 21:38:32 +00:00
github-actions
d8b69c36d9 Merge branch '4' into 5.0 2023-07-20 21:38:31 +00:00
Guy Sartorelli
642321db61
FIX Trigger eagerloading for first() and last() (#10875) 2023-07-20 16:37:03 +12:00
Steve Boyd
7daa3fdb08 FIX Short-array syntax for Enum 2023-07-20 16:06:01 +12:00
Guy Sartorelli
ed4c34b9d9
MNT Re-implement static test data for main eagerloading test 2023-07-17 12:03:11 +12:00
Guy Sartorelli
acad946b74
MNT Add missing tests for eagerloaded DataList interactions
Add tests for:
- filtered, limited, and sorted DataLists with eagerloaded relations
- iterating through the list multiple times
- eagerLoad method can be called anywhere in a query chain
- eager loaded relation lists can be correctly empty without throwing
  exceptions
- repeating relations to be eagerloaded in various permutations doesn't
  cause issues
- eagerloading doesn't negatively impact chunkedFetch functionality

squash
2023-07-17 12:03:11 +12:00
Guy Sartorelli
d0ca9cfdde
FIX many_many extraFields and join records weren't in eagerloading 2023-07-17 12:03:11 +12:00
Guy Sartorelli
9bed2a3d98
MNT Refactor eagerloading tests into their own class 2023-07-17 12:03:09 +12:00
Steve Boyd
771844335b Merge branch '5.0' into 5 2023-07-17 11:52:07 +12:00
Steve Boyd
3aa6d590a1 MNT Fix unit test 2023-07-11 10:25:16 +12:00
Guy Sartorelli
82e96068d2
Merge branch '5.0' into 5 2023-07-10 14:30:07 +12:00
Guy Sartorelli
5854ce6190
Merge branch '4.13' into 5.0 2023-07-10 14:29:03 +12:00
Dylan Wagstaff
8c3ba81052
FIX PHP 8.1 support in MySQLiConnector::query errors (#10570)
* FIX PHP 8.1 support in MySQLiConnector::query errors

The default error reporting mode in PHP 8.1 has changed from using
errors reported on the connection handle to throwing
mysqli_sql_exception. query() makes no allowance for this, and
functions up the call stack expect to catch
Silverstripe\ORM\Connect\DatabaseException instead - resulting in the
MySQLi exception going all the way up to halt the system.

We can use a try, catch, and finally to retain backwards compatibility,
no matter which setting (e.g. PHP version default) someone has enabled.

* Move MySQLConnector test skip call into setUp()

As review feedback; marking the test as skipped in a private function
obfuscated where the call was happening and made it harder to skimread
the tests. Moving this into a setUp function makes it obvious the check
is run before each test case, and skipped if necessary.
2023-07-07 15:56:31 +12:00
Guy Sartorelli
612f7e734f
FIX Allow repeated iterations of predicated query result (#10857) 2023-07-05 16:25:58 +12:00
Maxime Rainville
110c9135e0
MNT Tweak the Eagerload test to not worry about sort order (#10848)
* MNT Tweak the Eagerload test to not worry about sort order
* MNT Use array keys for EagerLoad test DataProvider
2023-07-03 16:32:03 +12:00
Guy Sartorelli
0c40cc9b3d
Merge branch '5.0' into 5 2023-06-22 11:19:59 +12:00
Guy Sartorelli
fb7d2256f1
Merge branch '4.13' into 5.0 2023-06-22 11:18:46 +12:00
Sabina Talipova
ad9df97626 FIX LastPage method returns true if TotalPages equals 0 2023-06-22 10:50:41 +12:00
Steve Boyd
246735101a NEW ORM eager loading 2023-06-07 14:59:02 +12:00
Steve Boyd
696fe79dd6 FIX Use OR conjuctive in filterAny aggregate queries 2023-05-17 11:55:56 +12:00
Guy Sartorelli
2c874a1e94
ENH Exclude a list of models for checking and repairs (#10746) 2023-04-04 14:22:00 +12:00
Steve Boyd
9f250cf772 MNT Remove references to PDO 2023-03-16 10:59:34 +13:00
Guy Sartorelli
e3a94b9d10
FIX Ensure getters and setters are respected (#10708) 2023-03-01 15:19:07 +13:00
Steve Boyd
0075bf6e49 NEW Access dynamic data inside ViewableData 2023-02-22 09:40:27 +13:00
Maxime Rainville
8c396eb1f6 MNT Remove bad PHPDoc comments on test 2023-02-17 18:53:42 +13:00
Maxime Rainville
7bc4c9dbc3 MNT Tweak some test to account for slightly different sorting logic in PostgreSQL 2023-02-17 18:47:20 +13:00
Maxime Rainville
fc6c45df57 MNT Add test to SQLSelect for Zero limit 2023-01-27 10:00:56 +13:00
Maxime Rainville
5090f49ecc MNT Add more test coverage to DataList::limit() 2023-01-27 10:00:56 +13:00
Maxime Rainville
d1e0e1e305 ENH Make limit method return no results when zero is provided 2023-01-27 10:00:41 +13:00
Maxime Rainville
944722f34f API Removed #[\ReturnTypeWillChange] annotations 2023-01-26 18:10:05 +13:00
Steve Boyd
77301408d8 MNT Remove legacy upgrader config 2023-01-20 17:05:41 +13:00
Guy Sartorelli
b784e243de
Merge pull request #10538 from xini/feature-5-trailing-slash-config-and-redirect
SS5: add trailing slash config and redirect
2023-01-20 15:24:45 +13:00
Florian Thoma
fbcf7dc3e7
API Normalise trailing slashes for all paths
NOTE: There will be additional related PRs required for at least
silverstripe/cms and silverstripe/admin.

Co-authored-by: Guy Sartorelli <guy.sartorelli@silverstripe.com>
2023-01-20 10:31:14 +13:00
Maxime Rainville
b6b0bcea9f Merge branch '4' into 5 2023-01-18 22:16:45 +13:00
Steve Boyd
c1a773310d ENH PHP 8.2 support 2022-12-21 14:44:47 +13:00
Guy Sartorelli
0d662ba95f
Merge branch '4.12' into 4 2022-12-19 01:38:09 +00:00
Sabina Talipova
53c0147f11
API Remove deprecated code (#10594) 2022-12-08 10:44:47 +13:00
Steve Boyd
ae4d7fa090 API Create orderBy() method to handle raw SQL 2022-12-07 12:25:58 +13:00
Guy Sartorelli
8bb712a461
Merge branch '4.11' into 4.12-release 2022-11-30 10:54:02 +13:00
Michal Kleiner
b107622400
FIX Improve rounding logic for storing of long decimal numbers (#10593)
Co-authored-by: Michal Kleiner <michal.kleiner@cub3.com>
2022-11-29 15:07:56 +13:00
Sabina Talipova
a52c7795c7 Merge branch '4' into 5 2022-11-22 11:41:53 +13:00
Steve Boyd
137ebcebec API Stop using deprecated API 2022-11-15 18:20:54 +13:00
Guy Sartorelli
e140c3786c
FIX Ensure consistent behaviour with repeat iterations 2022-09-15 16:22:48 +12:00
Guy Sartorelli
d9be52579d
MNT Fix test 2022-09-15 13:29:29 +12:00
Loz Calver
8e0e797b40
Fix code style 2022-09-15 13:29:27 +12:00
Loz Calver
749405170c
Update MySQLDatabaseTest to work with new query iterators 2022-09-15 13:29:10 +12:00
Sam Minnee
77c7552c3f
NEW: ORM’ Query is a generator-based IteratorAggregate
API: Query no longer has iterator methods current(), first(), rewind(), next()

Using generators reduces the amount of boilerplate needed for this
code.

Turning it into an IteratorAggregate means that the iterator can be
re-created for each subsequent foreach call. This means that the
rewind() and seek() functionality can be discarded.
2022-09-15 13:28:56 +12:00
Sam Minnee
d8735633a7
FIX: Don’t call PaginatedList::getIterator() directly.
It’s best for foreach() to call this for us.
2022-09-15 13:28:20 +12:00
Guy Sartorelli
03b929dd33
API Remove support for PDO (#10499) 2022-09-15 13:13:48 +12:00
Guy Sartorelli
06b13e0fa6
Revert "Merge pull request #10450 from creative-commoners/pulls/5/rescue-master-generators" (#10483)
This reverts commit 9edf3a5ca6, reversing
changes made to 934fafd29d.
2022-09-02 10:58:37 +12:00
Guy Sartorelli
1bf86cf39f
API Revert shorten auto-generated table names (#10482)
* Revert "BUG Fix table name test"

This reverts commit b36a01a8fd.

* Revert "ENH shorten auto-generated table names"

This reverts commit 156f63bce3.
2022-09-02 10:55:45 +12:00
Steve Boyd
37ff4ee46a
Merge pull request #10454 from creative-commoners/pulls/5/rescue-master-table-name
API rescue master-branch PR: Shorten auto-generated table names #7621
2022-09-01 09:12:11 +12:00
Steve Boyd
9edf3a5ca6
Merge pull request #10450 from creative-commoners/pulls/5/rescue-master-generators
API rescue master-branch PR: Use Generators for ORM
2022-08-29 19:03:47 +12:00
Steve Boyd
b37921d0b1
Merge pull request #10462 from creative-commoners/pulls/5/rescue-master-join-aliases
Rescue Master Branch PR: Fix SQLConditionalExpression::getJoins so it always adds explicit aliases
2022-08-24 15:33:41 +12:00
Serge Latyntcev
e07671a890
Fix SQLConditionalExpression::getJoins so it always adds explicit aliases
This is a revert of https://github.com/silverstripe/silverstripe-framework/pull/8956
2022-08-24 11:27:02 +12:00
Andrew Aitken-Fincham
f2de39162d
API Allow dataobject get_one without passing a class
add class validation early in get_one()
2022-08-23 16:25:23 +12:00
Christopher Joe
b36a01a8fd
BUG Fix table name test 2022-08-22 17:47:14 +12:00
Guy Sartorelli
4cb36d4d14
MNT Fix test 2022-08-11 16:29:39 +12:00
Daniel Hensby
595835bb15
Merge pull request #6518 from sminnee/generators
Use Generators for ORM Query, Map, ArrayList
2022-08-11 16:29:32 +12:00
Guy Sartorelli
11595952f4
NEW Search across multiple searchable fields by default (#10382)
* NEW Search across multiple searchable fields by default

* ENH Split search query and search each term separately.
2022-08-01 12:19:02 +12:00