Sam Minnee
79c2b5ad42
FIX: Use DELETE FROM instead of TRUNCATE for clearTable
...
clearTable is mainly used for clearing data between tests. In this case,
there are very few or zero records, and DELETE FROM is quicker than
TRUNCATE, which works by deleting and recreating the table.
This materially speeds up test execution, at least on MySQL.
Implemented in SS3 at 815da76b056a716c8831d22bbf93528912cbcb28
2018-10-02 18:00:38 +13:00
Sam Minnee
f2cbc1dfbb
FIX: Don’t use USE_FRM in MySQL repair. Fixes #6300 .
...
USE_FRM is a sufficiently dangerous option that it should require
manual DBA activity to carry out.
See http://dev.mysql.com/doc/refman/5.7/en/repair-table.html for more
info.
2018-10-02 10:48:47 +13:00
Sam Minnee
ad87890b2e
FIX: Don’t change state in ArrayList::getIterator()
...
This prevents the map-to-ArrayData conversion from changing object
state and making the result of toArray() non-deterministic.
Fixes #2636 . Other solutions were suggested on that ticket, but there is
no way of putting special code in for a SSViewer-specific iterator, and
having object state pre-emptively converted to ArrayData would
be an SS5-level change.
2018-10-02 09:56:09 +13:00
Robbie Averill
ac1fe5e9d5
FIX joinClass's default_sort is used when nothing else has been set already
2018-09-28 15:39:24 +02:00
Robbie Averill
4d14e9b6b1
Merge pull request #8421 from creative-commoners/pulls/4.3/psr-5-deprecations
...
Update deprecation PHPDocs to be PSR-5 compliant
2018-09-28 14:18:54 +02:00
Robbie Averill
e4768e44b0
Use splat over call_user_func_array and reduce calls to func_get_args()
2018-09-28 12:32:20 +02:00
Robbie Averill
f842ee2eec
Update deprecation PHPDocs to be PSR-5 compliant
...
See: https://github.com/php-fig/fig-standards/blob/master/proposed/phpdoc-tags.md#55-deprecated
2018-09-28 10:49:14 +02:00
Robbie Averill
1b0293d8c5
Replace array syntax, use some strict comparison and remove unnecessary elseif
2018-09-27 17:37:37 +02:00
Robbie Averill
adb4d1f92d
MINOR Reduce some code complexity, update array syntax and injected SQLSelect etc
2018-09-27 16:40:23 +02:00
Robbie Averill
f5929d87e0
DOCS Update do blocks for DataQuery::having() to reflect correct input types
2018-09-25 17:46:42 +02:00
Sam Minnée
5b7a84141b
NEW: Add Hierarchy::prepopulate_numchildren_cache() ( #8380 )
...
* NEW: Add Hierarchy::prepopulate_numchildren_cache()
API: Hierarchy::stageChildren() customisations must be applied to the base class and not include record-specific behaviour.
Adds the ability to prepopulate the cache for Hierarchy::numChildren()
in a batch.
Note that this optimisation means that stageChildren() is not called on
each record in order to calculate numChildren(). This means that the
structure of the stageChildren() query must be the same for all records
and the behaviour cannot be customised only for a subclass of the base
data class. For example, apply your customisations to SiteTree and not
a subclass.
This is an useful part of optimising the query count on tree generation.
See https://github.com/silverstripe/silverstripe-framework/issues/8379
* NEW: Add Hierarchy::prepopulateTreeDataCache()
This provides a more extensible way of preopulating caches for optimised
tree generation.
Fixes https://github.com/silverstripe/silverstripe-framework/issues/8391
2018-09-25 12:25:23 +12:00
Sam Minnee
40dde226fd
NEW: Add ?showqueries=backtrace
...
This variant of showqueries will include a backtrace after each query.
This is extremely verbose but can be helpful when diagnosing where
queries have come from.
This is something that I have frequently added as a local hack on my
environment, I figured that exposing it as a formal feature would be
useful.
2018-09-19 14:28:40 +12:00
Robbie Averill
373a8afeb5
Merge branch '4.2' into 4
2018-09-06 13:26:46 +02:00
Robbie Averill
270aba4007
Merge branch '4.1' into 4.2
2018-09-06 13:26:31 +02:00
Robbie Averill
b6ff21f72a
Merge branch '4.0' into 4.1
2018-09-06 13:26:13 +02:00
Guy Marriott
610f17282f
DOCS Updating DataObject config documentation
2018-08-29 14:53:05 +12:00
Maxime Rainville
dd3379e68f
Merge pull request #8075 from creative-commoners/pulls/4.0/remap-polymorphics
...
FIX Polymorphic relationship class columns have obsolete class names remapped
2018-08-28 17:03:39 +12:00
Robbie Averill
d651d0fbfc
FIX Use base class (not remapping target class) when looking up whether object is versioned
2018-08-28 14:15:02 +12:00
Robbie Averill
953153500d
FIX Polymorphic relationship class columns have obsolete class names remapped
2018-08-15 10:40:51 +12:00
Daniel Hensby
d0598c02c5
Merge branch '4.2' into 4
2018-07-30 11:07:15 +01:00
Daniel Hensby
ec5640cbd9
Merge tag '4.2.0' into 4.2
...
Release 4.2.0
2018-07-30 11:04:57 +01:00
Will Rossiter
9ec77ab9d3
Check database has table before altering.
...
Work around to prevent several issues with silverstripe-framework#4451 and cwp#0031726.
Throws a LogicException if the table does not exist.
2018-07-30 13:14:03 +12:00
Mark Muller
e154aa170c
Make removeDuplicates() chainable
...
Added the return to allow removeDuplicates to be chained.
2018-07-24 13:50:37 +01:00
Ingo Schommer
0f5420b6a5
Removed unused classes
2018-07-23 19:09:11 +01:00
Daniel Hensby
cc0320b2a7
Merge branch '4.2' into 4
2018-07-23 17:42:43 +01:00
Daniel Hensby
793aafae91
FIX Transaction depth should error if not implemented by child classes
2018-07-23 14:03:20 +01:00
Robbie Averill
1048520fbe
Restore check for zero or negative transaction nesting
2018-07-23 14:01:22 +01:00
Daniel Hensby
cbdf547c1b
Address feedback
2018-07-23 14:01:22 +01:00
Damian Mooyman
8ea3bb36a0
Maybe fix it?
2018-07-23 14:01:21 +01:00
Damian Mooyman
225e61dc67
BUG FIx manual resetDBSchema() calls breaking the database
2018-07-23 14:01:21 +01:00
Damian Mooyman
95bcac796a
ENHANCEMENT Ensure test DB is flushed on either DDL or transaction-disabled tests
...
Fixes #8182
2018-07-23 14:01:20 +01:00
Daniel Hensby
b984959170
Merge branch '4.1' into 4.2
2018-07-23 13:30:49 +01:00
Daniel Hensby
1a634f5ba6
Merge pull request #8244 from altwohill/column-not-distinct
...
Make column query not distinct
2018-07-16 13:01:32 +01:00
Al Twohill
3292a8b773
NEW Add columnUnique
API SS_List classes.
2018-07-16 12:16:17 +01:00
Al Twohill
91068c23b5
FIX Make column query not distinct
...
When selecting a column, it doesn't make sense to have it distinct.
As an alternative, the API could be changed to give the end user the option
(eg `->column($field, $distinct = false)`)
However if we did that, we would need to make sure we do something
similar with `SilverStripe\ORM\UnsavedRelationList` to ensure consistency.
2018-07-16 11:38:41 +01:00
Robbie Averill
d122995652
FIX Duplicate config values for cascade_duplicates no longer duplicate their duplicates
...
Previously you could define identical values for this config prop via a DataExtension and on the base
class, resulting in double duplication
2018-07-16 12:04:56 +12:00
Harsh Chokshi
6af736a9e1
Change DBCurrency scaffolded form field to CurrencyField ( fixes #8246 )
...
Add test ensuring DBCurrency scaffolds CurrencyField
2018-07-09 10:57:01 +12:00
Luke Edwards
fbf30ee747
Message reflect previous return type change
2018-07-04 10:55:20 +12:00
Luke Edwards
9ee84fd515
MINOR: DataObject->fieldLabels() will only return an array
2018-07-02 13:53:59 +12:00
Robbie Averill
a39a221c4c
Merge branch '4.2' into 4
2018-06-25 13:45:03 +12:00
Daniel Hensby
27b60ae989
FIX Transaction depth should error if not implemented by child classes
2018-06-21 14:26:21 +01:00
Robbie Averill
df257686c1
Restore check for zero or negative transaction nesting
2018-06-20 14:46:50 +12:00
Daniel Hensby
d8430f549d
Address feedback
2018-06-20 14:46:50 +12:00
Damian Mooyman
6da72d686f
Maybe fix it?
2018-06-20 14:46:50 +12:00
Damian Mooyman
a116b5dad8
BUG FIx manual resetDBSchema() calls breaking the database
2018-06-20 14:46:50 +12:00
Damian Mooyman
fbfd454d65
ENHANCEMENT Ensure test DB is flushed on either DDL or transaction-disabled tests
...
Fixes #8182
2018-06-20 14:46:50 +12:00
Daniel Hensby
a7a45559f0
Merge pull request #8188 from gelysis/array-lib
...
Tweaks on the ArrayLib class
2018-06-19 15:06:39 +01:00
Aaron Carlino
05edb372f1
Revise per tractorcow review
2018-06-18 16:00:17 +12:00
jovenden
b0863fee91
Ensure tables are properly named on dontRequireTable()
2018-06-18 16:00:17 +12:00
Andreas Gerhards
59fe36ba04
Tweaked the other flattening method as well, allowing keys to be preserved
2018-06-18 11:16:20 +12:00
Andreas Gerhards
1753bb2d07
Improved speed on the recursive array flattening
2018-06-18 10:37:20 +12:00
Andreas Gerhards
f45cf75407
Implemented improved associative array check
2018-06-18 08:45:22 +12:00
Damian Mooyman
53dded8cff
API Remove @internal from new 4.2 methods
2018-06-15 13:14:42 +12:00
Robbie Averill
5fa5abf295
Merge branch '4.1' into 4
...
# Conflicts:
# src/Forms/DateField.php
2018-06-15 11:52:07 +12:00
Damian Mooyman
b636587945
Respect semver and add tests
2018-06-15 11:04:12 +12:00
Damian Mooyman
310a259c5f
Add locale to Format
...
Fix up some regressions
2018-06-14 17:28:16 +12:00
Damian Mooyman
3ce8ab3adc
Improve handling of deprecated apis
2018-06-14 13:01:27 +12:00
Damian Mooyman
687d0a6af1
Refactor everything out of HTTP and into separate middlewares
2018-06-13 17:56:47 +12:00
Damian Mooyman
02ae2e7ed0
BUG Fix internal date formatting inheriting default locale
...
Fixes #8097
2018-06-13 13:32:11 +12:00
Daniel Hensby
ec956a682d
API Moving tests to use transactions
2018-06-13 09:35:45 +12:00
Damian Mooyman
77a45c0dbc
Merge remote-tracking branch 'origin/4.1' into 4
...
# Conflicts:
# src/Forms/HTMLEditor/HTMLEditorSanitiser.php
# src/ORM/DataObjectSchema.php
# src/ORM/Queries/SQLSelect.php
# src/View/Parsers/ShortcodeParser.php
2018-06-11 10:19:04 +12:00
Robbie Averill
d842225df6
FIX Codesniffer style violations with comments
2018-06-11 09:55:18 +12:00
Daniel Hensby
e260319823
Merge branch '4.0' into 4.1
2018-06-08 23:05:24 +01:00
Daniel Hensby
e1450b5e82
Merge pull request #8147 from kinglozzer/mysql-pdo-attr
...
FIX: Only set MYSQL_ATTR_INIT_COMMAND when using mysql driver (fixes #8103 )
2018-06-08 13:06:03 +01:00
Damian Mooyman
29f9b1c18f
Fix linting issues
2018-06-08 11:38:36 +12:00
Loz Calver
66f57bd4da
FIX: Only set MYSQL_ATTR_INIT_COMMAND when using mysql driver ( fixes #8103 )
2018-06-07 10:26:00 +01:00
Damian Mooyman
0aa13da0d9
BUG Backport bugfix for belongs_many_many with many_many through.
...
Partial backport of #7928
Fixes #8131
2018-06-06 09:43:04 +12:00
Damian Mooyman
2510935b53
Merge pull request #8065 from dhensby/pulls/4/mmtl-jointable
...
NEW Add getJoinTable to MMTL
2018-06-01 10:33:46 +12:00
Robbie Averill
e0993043f8
Merge branch '4.1' into 4
2018-05-30 15:08:39 +12:00
Robbie Averill
c8b0bc0ad7
Merge branch '4.0' into 4.1
...
# Conflicts:
# src/ORM/DataObject.php
# tests/php/ORM/DataObjectDuplicationTest.php
# tests/php/ORM/DataObjectDuplicationTest/Class1.php
2018-05-30 14:52:07 +12:00
Robbie Averill
ea16e28aa7
Merge branch '4.1' into 4
2018-05-28 18:33:56 +12:00
Robbie Averill
6d98a912c9
Merge branch 'heads/4.1.1' into 4.1
2018-05-28 18:26:20 +12:00
Robbie Averill
3a537bc745
Merge branch 'heads/4.0.4' into 4.0
2018-05-28 17:50:07 +12:00
Robbie Averill
722202fef4
Merge remote-tracking branch 'origin/4.0.4' into 4.1.1
...
# Conflicts:
# src/Control/Director.php
2018-05-24 15:41:11 +12:00
Daniel Hensby
1a57c7c1d0
NEW Add getJoinTable to MMTL
2018-05-14 11:19:24 +01:00
Robbie Averill
cd716fb61b
Switch check for is_string
2018-05-14 17:05:31 +12:00
Damian Mooyman
2e13ae746f
[ss-2018-006] Prevent code execution in template value resolution
2018-05-14 17:05:31 +12:00
Daniel Hensby
d5e2d3fa67
Merge branch '3.6' into 4.0
2018-05-01 21:47:17 +01:00
JorisDebonnet
1d3e83838d
Fix phpdoc for relation method (namespace)
2018-04-30 02:10:33 +02:00
UndefinedOffset
d17f424541
Changed checked for UnsavedRelationList to ManyManyList
2018-04-18 12:15:16 -03:00
UndefinedOffset
fe4b90edc0
FIX: Duplicating many_many relationships looses the extra fields in 4.0
2018-04-18 11:49:20 -03:00
Damian Mooyman
be8287fef8
BUG Prevent failover / extensions interfering with composite field properties ( #7988 )
2018-04-06 14:48:24 +12:00
Damian Mooyman
5ff6874dbc
Merge remote-tracking branch 'origin/4.1' into 4
2018-04-04 17:38:26 +12:00
Damian Mooyman
99426cdb05
Merge remote-tracking branch 'origin/4.0' into 4.1
2018-04-04 17:36:45 +12:00
Damian Mooyman
878dc1f86d
BUG Change inverse polymorphic inference to silent-empty instead of explicit error
2018-03-29 09:38:07 +13:00
Andreas Lindahl
dd44deacb4
Fix for "too few parameters" error when using DBMultiEnum
2018-03-28 16:42:12 +02:00
Damian Mooyman
257ff69e32
API Implement many_many through polymorphic (from only) ( #7928 )
...
* API Support many_many through polymorphic relations (from side only)
Fixes #7911
Fixes #3136
* Add extra docs and allow optional arguments
* ENHANCEMENT Enable quiet to be turned off
* BUG Fix issue with manymanythroughlist duplication
2018-03-22 10:26:25 +13:00
Daniel Hensby
fb945690b1
Merge pull request #7875 from sminnee/devbuild-record-count
...
Suggested feature: dev/build record count
2018-03-14 14:26:49 +00:00
Daniel Hensby
fd449618b2
Merge branch '4.1' into 4
2018-03-14 14:11:03 +00:00
Daniel Hensby
ec6ff71107
Merge branch '4.0' into 4.1
2018-03-14 14:09:40 +00:00
Daniel Hensby
d28a1b5cfc
Merge branch '3.6' into 4.0
2018-03-14 14:08:41 +00:00
Damian Mooyman
8b9c292509
Merge remote-tracking branch 'origin/4.1' into 4
2018-03-13 14:26:39 +13:00
Damian Mooyman
625f7b4eee
Merge remote-tracking branch 'origin/4.0' into 4.1
2018-03-13 14:26:18 +13:00
Damian Mooyman
4d424dd340
ENHANCEMENT get_by_id: alternate signature to allow MyDataObject::get_by_id($id)
2018-03-01 14:02:40 +00:00
Roman Schmid
40c2e299a0
Fix "mb_stripos(): Empty delimiter" warning when no search-keywords are given for DBText::ContextSummary
.
...
Add unit-test to cover that case.
2018-03-01 11:39:30 +01:00
Daniel Hensby
9006daf20b
Cleaning up PR and adding tests
2018-02-28 13:31:56 +00:00
Joris Debonnet
559254407f
get_by_id: alternate signature to allow MyDataObject::get_by_id($id)
2018-02-28 13:09:12 +00:00
Daniel Hensby
dace2f179d
Merge branch '4.1' into 4
2018-02-21 13:58:45 +00:00
Daniel Hensby
c04ff8c55a
Merge branch '4.0' into 4.1
2018-02-21 13:40:30 +00:00
Damian Mooyman
0e26c06644
BUG Fix behaviour towards versioned but unstagable records
2018-02-20 12:20:18 +13:00