Commit graph

1361 commits

Author SHA1 Message Date
paolo
a7b5f8c3af DboSource now check the actual status of connection by executing a dumb query on DB
This change makes it possible for developer to build reconnection logic
on MySQL connections which frequently time out in long running CLI
processes.

Cherry picked onto 2.7 from #7190.
2015-08-07 21:59:28 -04:00
Mark Story
de4b44a37b Merge pull request #7077 from dereuromark/2.7-static
Replacing self with static due to PHP5.3+. Following #7040.
2015-07-23 22:27:37 -04:00
mark_story
c6e5026767 Fix issues saveMany & saveAssociated with boolean values.
For non-atomic, save operations that include models with boolean fields.
The first false value would cause the save to abort. This regression was
introduced in #6947. Instead of checking the data from save() we should
be boolean casting save() to capture the success/failure.

Refs #7069
2015-07-22 00:41:10 -04:00
Mark Scherer
52e79987a2 Replacing self with static due to PHP5.3+. Following #7040. 2015-07-21 10:22:53 +02:00
mark_story
47378427e3 Merge branch '2.6' into 2.7 2015-07-11 21:25:26 -04:00
mark_story
65c1745349 Add missing parameter to rawQuery()
Previously bound parameters were put in the incorrect position.

Refs #6992
2015-07-10 12:56:49 -04:00
mark_story
59a18e7709 Merge branch '2.6' into 2.7 2015-07-07 22:05:56 -04:00
hiromi2424
deb62c8887 #6935 Fix deep saving for hasMany could not handle validation errors correctly 2015-07-04 06:10:58 +00:00
Lawrence Barsanti
0b28c2e839 Added negative lookahead
It is possible to have multiple occurrences of 'as' in a field name.
Use the last occurrence of 'as' when extracting field name.

Tested with following examples:
"WeldCheck"."weld_id"
count(*) as WeldCheck__num_measurements
count(case decision when 2 then 1 else null end) as
WeldCheck__num_failures
avg(cast (WeldMeasurement.surface_indentation as bigint)) as
WeldCheck__avg_indentation
avg(cast (WeldMeasurement.circle_diameter as bigint)) as
WeldCheck__avg_diameter
2015-06-25 22:21:38 -04:00
mark_story
ae2ea1ea6c Merge branch '2.6' into 2.7 2015-06-25 21:50:47 -04:00
mark_story
2f616a9e0c Fix greedy regex operators in Postgres driver.
`*` is greedy in regex, and needs to be escaped so that SQL operators
don't cause invalid SQL conditions to be created.

Refs #6877
2015-06-24 23:39:26 -04:00
Mark Scherer
0524eb95ae Documentation update 2015-06-01 16:14:15 +02:00
Mark Scherer
4ad001b9ca Use options array. 2015-06-01 16:12:45 +02:00
Mark Scherer
670d93b6f6 Extract formatTreeList() from generateTreeList(). 2015-06-01 12:36:20 +02:00
mark_story
d7d8b90986 Merge branch '2.6' into 2.7 2015-05-28 19:34:59 -04:00
mark_story
52a0d642ec Fix incorrectly quoted table aliases in virtual fields.
DboSource::_quoteFields() is already a bit of a mess, and while I'm not
happy about having to add more regex replacement, it seems to be the
only reasonable solution given that the code is already 'parsing' SQL
to apply identifier quoting.

Fixes #6602
2015-05-20 22:40:47 -04:00
Mark Scherer
4f3602ad5f Adjust bake, docblocks and tests for notBlank. 2015-05-17 22:27:16 +02:00
mark_story
096a2ebb72 Merge branch '2.6' into 2.7
Conflicts:
	lib/Cake/Test/Case/TestSuite/ControllerTestCaseTest.php
	lib/Cake/VERSION.txt
2015-04-20 15:42:54 -04:00
mark_story
b2958dad79 Re-add call to parent destructor.
In 762ebd4 a destructor was added to DboSource, this accidentally
removed the rollback on destruct that Datasource provides. Restoring
this via a parent call allows pending transactions to be rolled back at
the end of a request.

Fixes #6251
2015-04-01 20:37:06 -04:00
mark_story
446dd408bb Renew the session even the session id is '0'.
This fixes AuthComponent not being able to log a user in when they
inadvertently change their session id to 0.

Refs #6053
2015-03-29 21:42:43 -04:00
mark_story
3151c53255 Merge branch '2.6' into 2.7 2015-03-23 22:50:09 -04:00
mark_story
827465fa30 Merge branch 'postgres_altercolum_error' into master
Merge changes from #5512 into master. This fixes changing columns in
postgres to integer from string types.
2015-03-14 22:23:43 -04:00
mark_story
c32e5559bb Add test to ensure column was converted to integer.
Refs #5512
2015-03-14 22:23:17 -04:00
mark_story
8cadb553d7 Merge branch 'master' into 2.7 2015-03-14 22:08:53 -04:00
Marc Würth
4f9d764fc2 Fixed link to cookbook 2015-03-11 11:27:30 +01:00
mark_story
0b916cedbb Merge branch 'master' into 2.7 2015-03-09 21:55:20 -04:00
mark_story
a9519d39f7 Fix whitelist being empty during afterSave.
whitelist should only be reset after afterSave event.

Refs #6028
2015-03-08 13:51:46 -04:00
ADmad
7173f21dc8 Type hint model param 2015-03-04 21:15:24 +05:30
ADmad
a1286e9e7d Prefix fields with model alias 2015-03-04 21:11:18 +05:30
ADmad
6ad68ae1e2 Allow setting level (depth) of tree nodes on save.
Backported from 3.0.
2015-02-15 22:29:19 +05:30
ADmad
18246daf17 Merge branch 'master' into 2.7 2015-02-15 21:15:02 +05:30
ADmad
bdc6a1f010 Fix CS error 2015-02-15 19:22:44 +05:30
ADmad
0750a63ed4 Make code DRYer. 2015-02-15 18:36:30 +05:30
ADmad
844b4beaa6 Reduced code nesting. 2015-02-15 16:30:43 +05:30
ADmad
54fe7ed204 Add method to get depth of tree's node.
Backported from 3.0.
2015-02-01 17:27:46 +05:30
Mark Scherer
611889235a Fix clear(). Add test cases. 2015-01-28 23:54:32 +01:00
Mark Story
35e0dc2bbd Merge pull request #5760 from cakephp/master
Merge master into 2.7
2015-01-27 20:48:15 -05:00
AD7six
5e89e893f2 Ignore counter cache also 2015-01-23 08:30:34 +00:00
AD7six
c0ee49fe88 Remove callbacks to speed up saving 2015-01-23 08:30:26 +00:00
AD7six
838d23300b Remove some exists checks by not validating 2015-01-23 08:29:59 +00:00
AD7six
51bd1d0a2b If a PDOException is thrown, try again.
This can occur if the exists check returns no rows, but before this
request inserts into the database a _different_ thread inserts a
session record.
2015-01-23 08:28:08 +00:00
Ceeram
9ce75e6fd6 No need to get the datasource if column is defined in schema. Fixes #5712 2015-01-22 00:46:55 +01:00
mark_story
511ee1f776 Fix strict error with 2.6 code. 2015-01-19 21:43:14 -05:00
mark_story
3078a1eb52 Merge branch 'master' into 2.7
Conflicts:
	lib/Cake/VERSION.txt
2015-01-16 22:22:26 -05:00
Mark Story
2a9f2d4b58 Merge pull request #5668 from cakephp/issue-5649
Fix numeric values not being quoted for MySQL set columns.
2015-01-15 21:29:57 -05:00
mark_story
d4a6d3f6c0 Fix numeric values not being quoted for MySQL set columns.
Set columns should always have their values quoted. Not quoting values
makes MySQL do bad things.

Refs #5649
2015-01-15 21:10:33 -05:00
David Steinsland
687d0b44f5 Backport of https://github.com/cakephp/cakephp/issues/5667 2015-01-15 11:00:27 +01:00
mark_story
ac9a212d44 Merge branch 'master' into 2.7
Conflicts:
	lib/Cake/Utility/String.php
2015-01-11 15:25:18 -05:00
antograssiot
c2f298a8b7 Replace our custom code fence with markdown standard fence 2015-01-09 13:47:25 +01:00
Mark Story
c4f9727720 Merge pull request #5576 from istvanp/2.7
Prevent NULL value on NOT NULL column when value is an empty string
2015-01-06 21:23:53 -05:00
Istvan Pusztai
22b0275a58 Prevent NULL value on NOT NULL column when value is an empty string (MySQL) 2015-01-05 12:04:24 -05:00
euromark
52ecccb1a2 App::uses and usage replacements for String => CakeText. 2015-01-05 01:00:57 +01:00
euromark
394da88d23 Stay 100% BC for 2.7 2015-01-04 10:52:18 +01:00
euromark
39e0ce415d Backport of 3.0 Session API hardening and clear(). 2015-01-04 01:40:09 +01:00
mark_story
4cd2c8fdcb Merge branch 'master' into 2.7 2015-01-03 14:34:55 -05:00
Mark Story
0a4cffc603 Merge pull request #5501 from cakephp/2.6-hotfix-session-tmp-dir
Also autocreate session folder in debug mode
2015-01-02 11:36:53 -05:00
Kaz Watanabe
e5fc1858f9 fix error at change type of text field to integer in PostgreSQL 2014-12-30 09:27:46 +09:00
mark_story
ec57fb4579 Fix length reflection in SQLServer
Don't reflect TEXT column lengths in SQLServer. Because SQLServer text
columns hold ~2GB of data there is no meaningful length to them.

Refs #5506
2014-12-29 16:47:50 -05:00
euromark
5aff618109 Also autocreate session folder in debug mode 2014-12-27 20:34:47 +01:00
Mark Story
7bbc3dfd90 Merge pull request #5470 from cakephp/2.7-session
Backport Session consume() to 2.x
2014-12-26 12:22:20 -05:00
euromark
813925abee Backport Session consume() 2014-12-23 03:39:05 +01:00
mark_story
c540e2b798 Merge branch 'master' into 2.6 2014-12-22 21:38:58 -05:00
Mark Story
484b114e9b Merge pull request #5384 from okinaka/fix-mysql-describe
2.5: Fixing Mysql::describe() for timestamp.
2014-12-21 21:27:27 -05:00
Rachman Chavik
45be270a7b Enable use of Containable with TreeBehaviors
This patch allows Containable use with:

- TreeBehavior::getParentNode()
- TreeBehavior::children()
- TreeBehavior::getPath()
2014-12-20 16:32:20 +07:00
mark_story
4d6611b328 Merge branch 'master' into 2.6
Conflicts:
	lib/Cake/VERSION.txt
2014-12-17 21:38:32 -05:00
OKINAKA Kenshin
8c008ad97d Update. 2014-12-11 13:55:41 +09:00
mark_story
cf108dbff3 Remove duplicate order key.
This was a mistake made in 4b6dba0.

Fixes #5376
2014-12-10 22:32:59 -05:00
OKINAKA Kenshin
5cff6aa746 Fixing Mysql::describe() for timestamp. 2014-12-11 10:31:19 +09:00
euromark
e1c128bb99 Consolidate with conditions sniff. 2014-12-09 03:17:35 +01:00
mark_story
ad2d6edda9 Merge branch 'master' into 2.6 2014-12-06 21:28:59 -05:00
Guy Warner
327fcb4846 Fix some missed doc block issues 2014-11-30 14:50:11 -07:00
Guy Warner
fb61d9393b Add @trigger doc blocks of methods triggering CakeEvent 2014-11-30 14:45:40 -07:00
mark_story
543f05e3d0 Merge branch 'master' into 2.6 2014-11-29 22:00:00 -05:00
euromark
d0f75a03af Allow RLIKE in conditions. 2014-11-26 19:56:58 +01:00
Stephen Cuppett
ffb7e86641 Enable sslmode for PostgreSQL connections
By default, PHP 5.5 and PostgreSQL PDO will not allow SSL connections. This adds the default of "allow", but also the user may override the setting to "require" or any of the other potential values. 

See: http://php.net/manual/en/function.pg-connect.php
2014-11-20 22:37:39 -05:00
mark_story
23c5805763 Fix mistake with previous commit.
I forgot to put the correct variable into the query like a doofus.

Refs #4168
2014-11-18 22:03:30 -05:00
mark_story
ddc3eee84c Use name() instead of hand quoting sequence names.
By using name() we can easily accomodate postgres sequences that exist
out side of sequences.

Fixes #4168
2014-11-17 22:47:07 -05:00
mark_story
decce4daf2 Merge branch 'master' into 2.6 2014-11-14 21:25:09 -05:00
Mark Story
f570f931ce Merge pull request #5159 from cakephp/issue-5155
Add order=>false to all treebehavior queries.

Refs #5155
2014-11-14 10:02:17 -05:00
mark_story
4b6dba0c0a Add order=>false to all treebehavior queries.
Models can define default order conditions that will cause issues with
postgres. By setting order=>false on all the queries emitted by
TreeBehavior, we can avoid this issue and not have issues with models
that define a default ordering.

Refs #5155
2014-11-13 21:21:47 -05:00
Bryan Crowe
e3e54d40fa Fix CS, remove extra space 2014-11-13 16:47:10 -05:00
mark_story
6092c168a9 Fix issues with sqlite field parsing.
The previous attempt would still fail on unions or derived table join
queries. This new approach is a bit slower but more robust.

Refs #3972
2014-11-12 20:49:19 -05:00
mark_story
93a6fd5648 Fix SQLite parsing fields incorrectly when using subqueries.
When using subqueries or joining against tables containing FROM the
results were bizzare and unexpected. By tokenizing the entire query we
can more accurately grab the fields.

Refs #3972
2014-11-11 23:16:08 -05:00
watermark
8712dc01df Cleanup of isUnique
isUnique takes the count of the args multiple times.  Store the count in a variable to cut down on overhead.
2014-11-11 16:13:16 -05:00
Mark Story
4242ce453f Merge pull request #5093 from cakephp/2.6-returns
Simplify return types.

Update code to use documented return types where possible, and reduce number of return types.
2014-11-08 14:58:22 -05:00
euromark
41c646c5a1 Simplification of return types. No need to return more mixed than necessary. 2014-11-08 20:07:47 +01:00
mark_story
0e4fb9d648 Merge branch 'master' into 2.6 2014-11-07 15:13:46 -05:00
mark_story
dac8b7b644 Update return type for Model::saveField().
Fixes #5086
2014-11-05 20:37:43 -05:00
euromark
345a18f15f Merge branch 'master' into 2.6 2014-11-05 23:29:06 +01:00
euromark
0d5d6b19b5 Wording correction. 2014-11-05 13:14:45 +01:00
euromark
768f2c809c Correct doc block return types. 2014-11-05 13:03:27 +01:00
mark_story
48101e6bf5 Merge branch 'master' into 2.6 2014-11-04 22:44:11 -05:00
Mark Story
96b82e4226 Merge pull request #5021 from dereuromark/master-mysql
Fix IN replacement in virtual fields for MYSQL.
2014-11-04 08:24:03 -05:00
mark_story
579b16d90b Merge branch 'master' into 2.6 2014-10-30 21:20:53 -04:00
Mark Story
a8c5b70b22 Merge pull request #4489 from busgurlu/patch-1
to correctly return SET() type
2014-10-30 19:56:47 -04:00
euromark
e5b45bcdea Fix IN replacement in virtual fields for MYSQL. 2014-10-30 19:14:04 +01:00
mark_story
4b5783c5fe Add deterministic ordering to translate associations.
Having a deterministic ordering based on the primary key resolves
tests potentially failing when postgres returns data in a non-sequential
order.
2014-10-24 22:21:06 -04:00
Marc Würth
2ad181b6e1 Now the tableParameters array gets escaped through values(), too 2014-10-16 19:10:52 +02:00
Marc Würth
84b0fe1c88 Added comment to $tableParameters array 2014-10-16 16:06:33 +02:00
mark_story
1c440e2cb2 Merge branch '2.6' of github.com:cakephp/cakephp into 2.6 2014-10-13 21:11:52 -04:00
mark_story
87fcc9f0b9 Merge branch 'master' into 2.6
Conflicts:
	lib/Cake/VERSION.txt
2014-10-13 21:11:38 -04:00
mark_story
50b3893e65 Make rule sniff less complicated and tidy up doc block.
Refs #4871
2014-10-13 17:59:31 -04:00
Rachman Chavik
dcb605c700 Possible fix for isUnique backward compatibility 2014-10-13 19:46:10 +07:00
ADmad
6dc98afa1e Merge branch 'master' into 2.6
Conflicts:
	lib/Cake/VERSION.txt
2014-10-12 20:20:14 +05:30
ADmad
ecf030796b Fix docblock 2014-10-11 19:37:22 +05:30
Ceeram
1dfd3405a4 TranslateBehavior now uses original atomic option value, if set 2014-10-10 14:17:16 +02:00
mark_story
39011cd9d8 Fix Model::isUnique() not working as a validator.
While it *did* work for single fields, isUnique could not be used to
validate the uniqueness across multiple fields as documented. Because
validation methods pass arguments in an order the validator did not
expect the validation method would not work correctly.

Fixes #4571
2014-10-09 22:49:17 -04:00
ADmad
94e718372a Make CakeSession::read() return null for all failure cases. 2014-10-09 19:27:27 +05:30
suzuki86
e4c0dee6ee Fix small typo 2014-10-08 23:37:38 +09:00
mark_story
af43bc1706 Merge branch 'master' into 2.6 2014-09-25 22:39:51 -04:00
mark_story
1877cab341 Fix UUID primary key columns not being reflected properly.
When UUID columns are converted into varchar(36) they should also be
default = null, null = false.

Fixes #4695
2014-09-23 22:16:18 -04:00
mark_story
0d11cf7a33 Merge branch 'master' into 2.6 2014-09-14 23:26:33 -04:00
mark_story
9e4446fe5f Trim whitespace from columns before checking for operators.
Fixes #4599
2014-09-13 21:50:35 -04:00
ADmad
3fb252ad2f Merge branch 'master' into 2.6 2014-09-13 00:37:16 +05:30
euromark
e3dc51bb68 Manually correct remaining casts. 2014-09-10 16:40:22 +02:00
euromark
04ef39217f Take care of more int casts. 2014-09-10 16:29:23 +02:00
euromark
e77f96d8b7 Use (int) cast instead of intval() function for performance reasons and to unify it. 2014-09-10 15:52:57 +02:00
mark_story
734bb9223b Merge branch 'master' into 2.6
Conflicts:
	lib/Cake/Core/App.php
	lib/Cake/VERSION.txt
2014-09-06 23:04:20 -04:00
Burak USGURLU
996ad04b95 to correctly return SET() type 2014-09-04 18:07:30 +03:00
Mark Story
f82fd2d982 Merge pull request #4463 from ravage84/deprecated-annotaions
Update all @deprecated annotations
2014-09-04 08:48:45 -04:00
José Lorenzo Rodríguez
b5bfbfcf15 Merge pull request #4223 from chinpei215/2.6-issue2529-fix
Fix different format of $results in afterFind
2014-09-03 10:39:37 +02:00
mark_story
638d2ea7b6 Add array cast for method_cache data.
Fixes #4186
2014-09-02 22:39:28 -04:00
Marc Würth
67ba9cb406 Update all @deprecated annotations
to adhere to the @deprecated <version> <description> format, where version and description are mandatory.
2014-09-02 17:03:22 +02:00
ADmad
d60cd3ab2f Revert "Merge pull request #4405 from php-engineer/master-session-bugfix"
This reverts commit 5863adda42, reversing
changes made to 4c37cf6d4b.

There was no real issue. The lack of session cookie in CLI makes writing
tests a bit tricky which caused the confusion. Refs #4405, #4451.
2014-09-01 00:17:53 +05:30
mark_story
7c316bbc56 Merge branch 'master' into 2.6
Conflicts:
	lib/Cake/basics.php
2014-08-30 21:28:11 -04:00
Jeremy Harris
2dac6d29c2 Clearing HABTM (unique) when HABTM array is empty, refs #2461 2014-08-28 17:52:13 -05:00
chinpei215
31204832c2 Ensure that afterFind is called when using 'joins' with 'recursive' = -1 2014-08-27 15:16:13 +09:00
chinpei215
b74774bb0c hasOne/belongsTo associations should contain associated records in afterFind
Before 1fe943d6f1,
afterFind() is called twice with belongsTo/hasOne associations.
Although $results also doesn't contain associated records on first time,
it contains them on second time.

After 1fe943d6f1,
it doesn't work if associated records are used in afterFind.
This commit fixes it.
2014-08-27 09:32:00 +09:00
Stefan Dickmann
66ccfaf5e2 session bugfix 2014-08-26 17:47:45 +02:00
mark_story
7936b5e764 Fix CURRENT_TIMESTAMP being stored as a default value.
When reflecting timestamp columns in MySQL current_timestamp comes back
as the default value. This causes insertion errors later on as
'current_timestamp' is an invalid value for timestamp columns.

Refs #4184
2014-08-25 11:17:11 +02:00
ADmad
9d53a1e9ce Merge branch 'master' into 2.6 2014-08-15 12:37:13 +05:30
Brian Porter
5c69ac5578 All CakeSchema doc blocks conform to coding standards.
As laid out here: http://book.cakephp.org/2.0/en/contributing/cakephp-coding-conventions.html#typehinting
2014-08-12 12:55:55 -05:00
Brian Porter
4a0f42e179 Doc block capitalization corrections as requested. 2014-08-12 10:48:12 -05:00
Brian Porter
9b9600fe18 CakeSchema naming fallback.
Abstracts the `require_once` of the schema file so it can be done twice. The added second call is a fallback for the previous APP_DIR-based naming to provide backwards compatibility.

Removes now-obsolete CakeSchema tests that involved `Configure::read('App.dir')`. The CakeSchema::name is now always static (and predictable) in the default case.
2014-08-11 10:40:57 -05:00
Brian Porter
be9be48c46 More predictable default for CakeShema class naming.
Instead of using the `APP_DIR` constant, which may change between developer installations of a project and cause issues loading Schemas generated elsewhere, use a fixed string, 'App'.

This is related to CakeDC/migrations#184 and should fully resolve #4174.
2014-08-11 09:12:16 -05:00
chinpei215
c246695518 Fix different format of $results in afterFind
Refs #2529

As of this commit, we can get consistent format of $resutls in afterFind.
And we can keep backward compatibility if Model::$useConsistentAfterFind is set to false.
2014-08-11 01:19:40 +09:00
chinpei215
c227c14bf2 Fix afterFind() called twice with hasMany relationship
It occurs when a model and the children models are related to a same model.
For example, such as the following:

* User hasMany Comment
* User hasMany Article
* Article hasMany Comment
2014-08-11 00:12:03 +09:00
mark_story
9c3089796f Merge branch 'master' into 2.6
Conflicts:
	lib/Cake/Model/Model.php
2014-08-08 23:28:06 -04:00
mark_story
d114fa1431 Update join building to not error out on empty conditions.
When conditions are empty we can assume one of two things:

* The person made a mistake.
* The person is doing the join conditions in the where clause.

In both cases we should attempt to generate proper SQL.

Fixes #4189
2014-08-08 10:02:09 -04:00
Mark S.
2471c64aae Merge pull request #4158 from dereuromark/master-cakesession-hotfix
Fix notice in CakeSession.
2014-08-06 18:25:55 +02:00
José Lorenzo Rodríguez
64e74cbaac Merge pull request #4175 from chinpei215/master-issue2268-fix
Fix afterFind() called twice with belongsTo and hasOne relationships
2014-08-06 10:48:45 +02:00
chinpei215
1fe943d6f1 Fix afterFind() called twice with belongsTo and hasOne relationships
Refs #2268
2014-08-06 07:27:04 +09:00
euromark
864f5e06f6 Fix notice in CakeSession. 2014-08-04 13:32:20 +02:00
chinpei215
cb376bf420 Add some more transaction tests
And remove 2 else clauses.
2014-08-03 22:34:11 +09:00
ADmad
713f430fc4 Merge branch 'master' into 2.6 2014-08-03 01:05:36 +05:30
chinpei215
799500ce6d Fix transactions do not get rollbacked in saveAssociated/saveMany
Refs #2849
2014-08-02 10:12:33 +09:00
Anthony GRASSIOT
aa42b80a4d a / an typo fixes fot API 2014-07-30 22:11:03 +02:00
Ceeram
02b8bce641 Fix cs error introduced after resolving merge conflict with master to 2.6 2014-07-21 14:01:43 +02:00
mark_story
051d78c1a5 Merge branch 'master' into 2.6
Conflicts:
	lib/Cake/Model/Model.php
2014-07-16 23:11:58 -04:00
chinpei215
ace30fdd8a Fix a race condition problem
Prevents Model::save() from generating a query with WHERE 1 = 1 on race condition.

Refs #3857
2014-07-12 23:27:39 +09:00