That doesn't matter. You're changing a public interface in a non-compatible way. This causes all current calls to DataQuery->sql() (and DataList->sql()) to throw warnings due to a missing argument.
On 5/04/2013, at 8:30 AM, Damian Mooyman <notifications@github.com> wrote:

>> 	 */
>> -	public function sql() {
>> -		return $this->getFinalisedQuery()->sql();
>> +	public function sql(&$parameters) {
> 
> It is set to array by default, but is done in the delegated functions, rather than at this level.
> 
> The generation of SQL starts here and follows these functions, each of which passes the $parameters variable by reference
> * SQLExpression->query https://github.com/silverstripe/sapphire/pull/1360/files#L84R101
> * DB::buildSQL https://github.com/silverstripe/sapphire/pull/1360/files#L44R83. At this point if there is no connection the parameters is set to default array()
> * DBQueryBuilder::buildSQL https://github.com/silverstripe/sapphire/pull/1360/files#L60R46 where parameters is set to array()
> 
> It shouldn't need to set the default at the top level if the delegated function DB::buildSQL ensures that the value is set. It's the job of the DBQueryBuilder to generate the parameters, not the DataQuery
> 
> ---
> Reply to this email directly or view it on GitHub:
> https://github.com/silverstripe/sapphire/pull/1360/files#r3661754

---
Simon Welsh
Admin of http://simon.geek.nz/