Ingo Schommer
6d5925708e
FIX Empty fields on SQLQuery->aggregate() with alias
...
Breaks Postgres otherwise, because it produces a
"SELECT *, <field> ... " statement without putting all
fields into the GROUP BY.
2013-04-03 12:22:12 +02:00
g4b0
e53280c650
BUG SQLQuery::aggregate() with limit, groupBy and orderBy ( fixes #8148 )
2012-12-21 15:20:59 +01:00
Ingo Schommer
8ec3641e60
Merge remote-tracking branch 'origin/3.0' into 3.1
...
Conflicts:
admin/javascript/LeftAndMain.FieldHelp.js
lang/en.yml
model/URLSegmentFilter.php
2012-12-21 15:04:17 +01:00
Sean Harvey
aa3b358469
Adding test for SortColumn to SQLQueryTest
...
Mostly for the benefit of MSSQLDatabase which is having problems
with subselects and alias functions.
2012-12-20 15:52:46 +13:00
Ingo Schommer
d13c53fda6
Merge remote-tracking branch 'origin/3.0' into 3.1
...
Conflicts:
tests/model/DataQueryTest.php
2012-12-14 10:57:28 +01:00
Ingo Schommer
2e9b5e9221
Merge branch 'orm-join-bug' of git://github.com/stojg/sapphire into stojg-orm-join-bug
2012-12-12 15:53:19 +01:00
Simon Welsh
b0121b541c
Add codesniffer that ensures indentation is with tabs.
2012-12-12 17:33:31 +13:00
Simon Welsh
fc5dd2994c
Add codesniffer that ensures indentation is with tabs.
2012-12-12 00:12:11 +13:00
stojg
efa9ff9b08
API: Queries added by DataList::addInnerJoin() and DataList::leftJoin() come after the base joins, not before.
...
This bug will surface when using the ORM and adding an join to DataList
where a DataObject inherits another DataObject.
If you for example want to restrict the number of pages that only have a
related Staff object:
$list = DataList::create('Page')
->InnerJoin('Staff', '"Staff"."ID" = "Page"."StaffID");
This will create a SQL query where the INNER JOIN is before the
LEFT JOIN of Page and SiteTree in the resulting SQL string. In MySQL
and PostgreSQL this will create an invalid query.
This patch solves the problem by sorting the joins.
2012-12-11 11:04:29 +13:00
Ingo Schommer
c55c7c33f8
Merge branch '3.0'
...
Conflicts:
admin/code/CMSProfileController.php
composer.json
tests/model/DataObjectTest.php
2012-11-22 23:51:28 +01:00
Sean Harvey
b3d5b68019
Remove deprecated SQLQuery::setWhere() multiple arguments
2012-11-16 14:35:30 +13:00
Damian Mooyman
76c63fe4a4
BUG Fixed issue with SQLQuery::lastRow crashing on empty set. Added test cases for lastRow and firstRow.
...
Quoted table / column names to make test cases work in postgres
BUG Fixed issue with SQLQuery::lastRow crashing on empty set. Added test cases for lastRow and firstRow.
Quoted table / column names to make test cases work in postgres
Merge branch '3.0-sqlquery-lastrow-fix' of github.com:tractorcow/sapphire into 3.0-sqlquery-lastrow-fix
2012-11-16 13:27:51 +13:00
Ingo Schommer
fb5e488103
Line length fixes
2012-10-03 18:11:31 +02:00
Ingo Schommer
56f7ce1dcf
Merge remote-tracking branch 'origin/3.0'
...
Conflicts:
control/Cookie.php
control/Director.php
control/HTTPResponse.php
model/Database.php
model/MySQLDatabase.php
model/SQLQuery.php
view/Requirements.php
view/SSViewer.php
2012-10-03 16:16:19 +02:00
Sam Minnee
1f7fc1f76a
FIX Remove instances of lines longer than 120c
...
The entire framework repo (with the exception of system-generated files) has been amended to respect the 120c line-length limit. This is in preparation for the enforcement of this rule with PHP_CodeSniffer.
2012-09-30 17:18:13 +13:00
Simon Welsh
1e629f4585
Merge branch '3.0'
...
Conflicts:
control/Cookie.php
control/Director.php
dev/Profiler.php
view/Requirements.php
2012-09-21 14:56:56 +12:00
Ingo Schommer
e2f073f38a
Method visibility according to coding conventions
2012-09-20 10:46:59 +02:00
Ingo Schommer
1088d044c5
Merge remote-tracking branch 'origin/3.0'
...
Conflicts:
.travis.yml
2012-09-07 17:21:41 +02:00
Simon Welsh
a6f3e9f9eb
Corrects replacement method name in deprecation notice.
2012-09-04 15:25:53 +12:00
Simon Welsh
78fdcc580b
API DataList->leftJoin()/innerJoin() args no longer escaped
...
The table name in the join was being escaped, though table
names aren't escaped anywhere else. This breaks
namespaced classes, which rely on unescaped backslashes.
2012-08-29 11:54:42 +02:00
Will Rossiter
4ee709e88d
FIX: ensure limits to SQLQuery are passed as positive values
2012-06-29 19:40:28 +12:00
Sam Minnee
1b5768975c
BUG: exclude() clears previously selected filters() (Trac #7529 )
...
This bug was caused by the fact that SQLQuery::whereAny() removed existing filters. In line with addWhere() and setWhere(), I split this into addWhereAny() and setWhereAny(). Strictly speaking, this drops the method SQLQuery::whereAny(), but it was really just an internal function for exclude, and so I think that's acceptable.
2012-06-22 16:31:29 +12:00
Ingo Schommer
8f2ede8fcf
MINOR Fixed syntax errors from SQLQuery/DataQuery cleanup
2012-05-16 13:17:19 +02:00
Ingo Schommer
3a11c690ed
MINOR Updated security documentation (phpdoc and markdown) around new DataList and SQLQuery APIs, additional automatic escaping on some stricter inputs like column names
2012-05-16 11:59:22 +02:00
Ingo Schommer
9326d9e60e
BUGFIX Fixing SQLQuery->getFilter() usage of non-existent method (removed during refactoring of pull request), more accurate deprecation notice
2012-05-15 21:29:43 +02:00
Sean Harvey
46f51d5653
MINOR Fixing deprecated use of SQLQuery
2012-05-11 11:39:06 +12:00
Sean Harvey
7c272d3139
MINOR SQLQuery doc cleanup
2012-05-07 17:11:10 +12:00
Sean Harvey
3bc1da0543
MINOR Tidy up of SQLQuery constructor docs and default args, limit is
...
stored internally as an array, not a string.
2012-05-07 17:07:30 +12:00
Sean Harvey
bb9ffd2eb1
ENHANCEMENT SQLQuery::selectField() returns a SQLQuery object to be
...
consistent with how the other add/set methods work.
MINOR Fixing DbDatetimeTest to use the correct selectField to select an
alias
2012-05-07 16:59:42 +12:00
Sean Harvey
051d9de482
API CHANGE Deprecated internal access to SQLQuery properties, update core code to reflect these changes.
...
Using set/add instead in accessor methods, and use Database::sql*ToString() to allow easier per-database adapter SQL overloading.
2012-05-07 14:21:44 +12:00
Sean Harvey
37369abf1d
BUGFIX Fixing SortColumn alias to be recognised by MSSQL/PGSQL
2012-05-03 12:02:21 +12:00
Ingo Schommer
2288d80c30
Merge pull request #387 from sminnee/sapphire
...
---
The primary goal of this branch was to fix the sort bugs in AssetAdmin, however, it started a bit of a yak shave in that the API around SQLQuery was poor. The biggest change that this pull request makes is it changes the format of SQLQuery::$select to contain aliases as array keys (and consistently puts the "implicit alias" in there to assist with various query generation logic), but it also makes a bunch of changes to avoid direct access of that property.
2012-05-01 17:57:03 +02:00
Sam Minnee
2207e3d978
API CHANGE: Add SQLQuery::prepareSelect(), to further remove the need for direct property access.
...
API CHANGE: Change the format of SQLQuery::$select to use aliases as keys.
2012-05-01 18:15:11 +12:00
Sam Minnee
a8e8a6060a
BUGFIX: Fixed errors caused by complex raw SQL sort() calls. ( #7236 )
2012-05-01 18:15:08 +12:00
Sam Minnee
8661164c19
API CHANGE: Add SQLQuery::clearSelect(), SQLQuery::selectField() and SQLQuery::itemisedSelect() to make it easier for other subsystems to use SQLQuery without resorting to direct property access.
...
API CHANGE: Remove DataQuery::select() in place of DataQuery::selectField().
BUGFIX: Remove direct property access to SQLQuery::$select
2012-05-01 17:57:39 +12:00
Sean Harvey
c84254c5b1
API CHANGE Rename SQLQuery prepareSelect to prepareWhere
2012-05-01 12:04:11 +12:00
Sean Harvey
80575a0e5e
MINOR Re-adding getFilter as a deprecated method instead of removing it
2012-04-27 16:56:07 +12:00
Will Rossiter
9938b64cf6
FEATURE: implement SS_Sortable->reverse()
...
API CHANGE: SQLQuery:: now an array object rather than string. Existing strings will continue to work
2012-04-27 15:54:14 +12:00
Simon Welsh
f07258f3cf
MINOR Update @package values to match renaming sapphire
2012-04-15 10:50:19 +12:00
Sean Harvey
e097f6e1a8
MINOR Fixes to method arguments in core classes for E_STRICT support.
...
API CHANGE Remove abstract static function and just use static functions
in Authenticator (PHP 5.3+ doesn't support abstract static functions)
2012-03-28 22:41:42 +13:00
Sam Minnee
a55e06f6b5
API CHANGE: Introduce SS_Limitable class for adding to SS_Lists that have limit capability.
...
API CHANGE: Deprecated SS_List::getRange() in favour of SS_Limitable::limit().
API CHANGE: Introduce SS_Limitable::limit($limit, $offset = 0) as the only modern way of specifying limits; deprecate all others.
2012-03-09 17:07:40 +13:00
Fred Condo
d370423825
Clean up trailing ?> per coding standard
...
All sapphire but the lang directory
2012-02-12 12:40:16 -08:00
Stig Lindqvist
9bf247cc33
API CHANGE Introduced DataQuery::whereAny() and SQLQuery::whereAny()
2011-12-17 16:42:30 +13:00
Stig Lindqvist
aafdb8e01c
API CHANGE All SS_List implementators supports filter, exclude and sort methods
2011-12-17 16:42:29 +13:00
Sean Harvey
dd48a605b6
BUGFIX Removing DB coupling in SQLQuery::orderby() stopping functions from being fixed in the select list when used in orderby
...
BUGFIX DataQuery::ensureSelectContainsOrderbyColumns() shouldn't mess with "_SortColumn*" fields created by SQLQuery::orderby()
2011-10-29 23:54:35 +13:00
Sam Minnee
c8ce6f9f55
BUGFIX: Don't create unnecessary aliases in generated SQL.
2011-10-29 17:36:37 +13:00
Stig Lindqvist
73c249128b
MINOR Fixed the SQLQuery to return empty query in only certain cases
2011-09-28 12:33:01 +13:00
Stig Lindqvist
4171015df1
MINOR SQLQuery without a FROM table should return empty query
2011-09-27 10:18:23 +13:00
Will Rossiter
1732a17114
Merged new-orm into datagrid
2011-09-26 16:47:54 +13:00
Ingo Schommer
ce8e72cf0e
MINOR Removing executable flag from all files (thanks miiihi)
2011-09-18 22:04:02 +02:00