Commit Graph

230 Commits

Author SHA1 Message Date
Jinzhu 066abcef40 Merge pull request #1132 from zardak/preload-dedupe 2016-11-10 09:33:15 +08:00
slockij e26cb8dbc4 In some cases (Error not checked, missed data) one can perform very harmful operation - global update or delete (all records)
This is to prevent it.
2016-11-04 17:54:43 +01:00
Jinzhu f2fe351aa0 Merge pull request #1243 from smacker/raw_first_last
db.Raw().First() makes wrong sql fix #1214
2016-11-03 21:45:29 +08:00
Jinzhu 4a540f3ac8 Add tag to support skip nested save for associations 2016-10-27 10:31:46 +08:00
smacker cf7fbb56d5 db.Raw().First() makes wrong sql fix #1214 2016-10-26 21:32:27 +07:00
Jinzhu 56a7d1b69e Change query's prefix table for generated conditions 2016-10-26 17:35:51 +08:00
Jinzhu 39165d4980 Refactor named value support for PolymorphicType 2016-10-07 22:19:28 +08:00
slockij 1413e55339 Add named value for PolymorphicType (to replace scope.TableName) 2016-09-28 22:44:43 +02:00
Jinzhu 041cd3dd31 Fix scan ignored fields, close #1117 2016-09-13 09:29:36 +08:00
Jinzhu 35a2a004d8 Strict select argument check for Count 2016-08-15 21:28:07 +08:00
Jinzhu 2f27f0f27f Fix TestUpdateDecodeVirtualAttributes 2016-08-14 16:13:50 +08:00
elgris fb09befb9b Adds processing of ignored fields on Update 2016-08-14 16:12:57 +08:00
Jinzhu 34e75afb42 Support specify count select argument 2016-08-14 15:15:09 +08:00
Jinzhu fde205f758 Refactor joining multiple tables with the same fields 2016-08-13 21:23:18 +08:00
Vladislav Fursov e8c14bd1b3 Fixed a bug when joining multiple tables with the same fields and where on the same field. 2016-08-09 14:28:43 +09:00
Jinzhu ca46038cb4 Fix preload duplicates has many related objects 2016-07-10 21:34:37 +08:00
Jinzhu c1c4f9f86e Add ORDER BY sql expression support 2016-06-28 11:15:42 +08:00
Michael Goff e7f00bd2cd Add support for multiple indexes seperated by commas for issue #884 2016-06-15 16:06:22 -07:00
Nikola Kovacs 6eb73ae654 Fix too long foreign key names in mysql.
The dialect must define its own foreign key generator method.
The previous default is available as a method on gorm.DefaultForeignKeyNamer
and can be embedded in other dialects.
The mysql dialect uses the first 24 characters plus an sha1 hash of the
full key name if the key name is more than 64 characters.
2016-05-22 00:13:26 +02:00
Jinzhu 4786e830d6 Fix create join table 2016-05-09 22:32:33 +08:00
Jinzhu 5174cc5c24 Only get address from non pointer when call method, fix #912 2016-04-04 22:49:28 +08:00
Jinzhu 9fd05d1bad Print warning message when using unaddressable value with Update 2016-04-04 21:33:11 +08:00
Jinzhu c49e68fac2 Make Update works with unaddressable value 2016-04-04 20:57:42 +08:00
Jinzhu 2530dcbccd Quote order column name, fix #918 2016-03-23 10:29:52 +08:00
Jinzhu 83002c4d5f Include default search attributes when query with Join, close #906 2016-03-14 08:05:45 +08:00
Jinzhu 7c43d9fc36 Fix scan columns with same name 2016-03-10 17:35:19 +08:00
Jinzhu 846a2d401a Fix scan columns with same name 2016-03-10 17:13:48 +08:00
Jinzhu 8de97c2883 Refactor Scope updatedAttrsWithValues 2016-03-09 16:45:53 +08:00
Jinzhu a0aa21aec5 Refactor 2016-03-08 22:29:58 +08:00
Jinzhu d08894cd69 Rename test files 2016-03-08 22:00:15 +08:00
Jinzhu 88184a989e Update godoc 2016-03-07 21:09:05 +08:00
Jinzhu ec110657da Refactor based on golint 2016-03-07 17:49:55 +08:00
Jinzhu 3055bad1e8 scope.Fields() return slice of *Field 2016-03-07 14:25:41 +08:00
Jinzhu 6bd0862811 Only update non blank fields that has been changed 2016-02-18 23:17:35 +08:00
Jinzhu d92c5db9e7 Refactor dialect 2016-01-19 13:11:11 +08:00
Jinzhu e159ca1914 Refactor dialect 2016-01-18 20:32:52 +08:00
Jinzhu 896ee534e2 Add indirect method 2016-01-18 12:20:27 +08:00
Jinzhu 19e9bd29e3 Refactor Scope CallMethod 2016-01-17 21:43:20 +08:00
Jinzhu e38b1e0948 Remove uncessary NeedPtr method 2016-01-17 17:12:19 +08:00
Jinzhu 4f84bf0d94 Hide method QuoteIfPossible 2016-01-17 16:37:17 +08:00
Jinzhu 31366f388f Remove uncessary method CallMethodWithErrorCheck for Scope 2016-01-17 16:14:14 +08:00
Jinzhu 8d716be896 Fix some go vet/lint reports 2016-01-15 21:16:48 +08:00
Jinzhu d9229c5a7b Extract method Scan from rows 2016-01-13 16:53:11 +08:00
Jinzhu d53f5cf6dd Rename scope.Trace to trace 2016-01-13 16:00:08 +08:00
shenli 499b5b7615 scope: Catch error for db.Commit() 2016-01-04 13:32:35 +08:00
Jinzhu 92e0809716 Don't save associations if has any error happened 2015-08-18 11:09:03 +08:00
Jinzhu 018a7e69ec Handle DB error in callbacks 2015-08-17 16:38:01 +08:00
Jinzhu 309740983e Add Errors 2015-08-14 11:04:05 +08:00
Jinzhu 1a07673e97 Fix can't call callbacks for embedded pointers 2015-08-10 12:51:12 +08:00
Jinzhu fd9e42655f Handle children db's Error in callbacks 2015-08-07 16:35:48 +08:00
Jinzhu 8a88d665d5 Add QuoteIfPossible for Scope 2015-08-01 09:25:06 +08:00
Jay Taylor 923ca15b6f Surface errors emitted by `RowsAffected'. 2015-07-02 12:06:06 -07:00
Jinzhu 5ddca7c427 Fix table name for association 2015-06-30 10:39:29 +08:00
Jinzhu 308c96ee4c Add PrimaryFields 2015-06-29 18:04:15 +08:00
Jinzhu 0b8c9f29a9 Find Field by db name also 2015-06-04 12:10:14 +08:00
Jinzhu b96ca76e59 Set table name handler 2015-05-27 12:19:48 +08:00
Jinzhu dc55c59b84 Fix use SQL as table name 2015-05-19 10:43:32 +08:00
Jinzhu 5af077cd2d Handle []string for Select 2015-05-11 15:17:35 +08:00
Jinzhu 055bf79f8b Don't call method if value is nil 2015-04-21 11:24:48 +08:00
li3p f9bd6bcc64 look up the Field.Name at Scope.SetColumn 2015-04-16 14:28:55 +08:00
li3p 7966cde514 look up the Field.Name at Scope.SetColumn 2015-04-16 14:08:13 +08:00
Jinzhu e2eef50fb4 Add SetTableNameHandler 2015-04-08 14:56:03 +08:00
Jinzhu b9a39be9c5 Add Tabler 2015-04-08 11:36:01 +08:00
Jay Taylor ab48cd222a `UpdateColumns(...)` no longer triggers save of associated records. 2015-03-28 14:15:12 -07:00
Jinzhu 2989e42d4d Support UpdateColumn with Select and Omit 2015-03-13 11:01:05 +08:00
Jinzhu 187eae8d9c Update with Select and Omit 2015-03-12 18:30:59 +08:00
Jinzhu ad251b9deb Create with Select 2015-03-12 17:47:31 +08:00
Jinzhu 6e5d46bf37 Refactor Search API 2015-03-12 14:47:07 +08:00
Jinzhu 49454839bd Support Multi primary keys 2015-03-11 11:28:30 +08:00
Jinzhu 33e6b14632 Clear value from db after set table name 2015-02-26 16:08:26 +08:00
Jinzhu ce72988e96 Refactoring API for plugin system 2015-02-26 14:40:30 +08:00
Jinzhu 10340e6ad7 Support SQL expression 2015-02-24 22:06:35 +08:00
Jinzhu 0f08058713 Fix quote table name with database 2015-02-24 18:02:22 +08:00
Jinzhu 83ee11e184 Don't call callbacks if has error 2015-02-24 16:28:15 +08:00
Jinzhu 406a01875c Test using pointer as struct fields 2015-02-20 22:06:49 +08:00
Jinzhu 5c478b46e1 Use Common Initialisms from golint 2015-02-18 10:36:32 +08:00
Jinzhu 672ba4ffc9 Rename ToSnake to ToDBColumnName 2015-02-18 09:26:35 +08:00
Jinzhu 9b355ee86c Fix Associations with slice of pointer 2015-02-17 23:36:23 +08:00
Jinzhu 0b32041135 Review and Refactor 2015-02-17 22:55:14 +08:00
Jinzhu a38f83527a Fix all tests 2015-02-17 18:37:47 +08:00
Jinzhu d6439f4147 Fix tests after refactor 2015-02-17 18:01:24 +08:00
Jinzhu 803343fbe5 Fix scope.getField 2015-02-17 14:30:37 +08:00
Jinzhu 139b9a37e7 Merge branch 'master' into refactor 2015-02-17 08:38:32 +08:00
Jinzhu 73b6f0eace Linting according to golint 2015-02-17 08:34:01 +08:00
Andrew Martin 52775992ec golinting 2015-02-17 10:15:34 +11:00
Jinzhu de3f2a5c46 Refactor Fields 2015-02-16 17:47:07 +08:00
Jinzhu 3a73206010 Refactor model struct 2015-02-16 16:35:26 +08:00
Jinzhu 5d692a6bf2 Try to cache struct fields 2015-02-15 23:01:09 +08:00
Jinzhu 87b23edd3b Fix get PrimaryKeyField with embedded struct 2015-02-11 18:10:59 +08:00
Jinzhu aac52fdcf8 Fix Preload with slice of pointer 2015-02-11 17:58:19 +08:00
deoxxa d3ffcfab40 check for IsScanner on slices 2015-01-30 21:25:11 +11:00
Jinzhu 3e9c2d581f Fix duplicated instanceId in edge case 2015-01-26 17:59:31 +08:00
Jinzhu e2c989be17 Remove unnecessary IsIgnored check 2015-01-23 09:04:07 +08:00
Jinzhu 2069364296 HasColumn with ignored column 2015-01-19 16:23:33 +08:00
Jinzhu ebe5f191a9 Fix upper case for primary key 2015-01-16 10:02:04 +08:00
Jinzhu 3500dfa1b6 expose db.New as API 2015-01-06 15:11:41 +08:00
Jinzhu 6d13ae4ead Merge pull request #303 from jnfeinstein/dev_poly
Support polymorphic has-one and has-many associations
2014-11-28 10:10:47 +08:00
jnfeinstein a8492826a8 Fields are only cached when withRelation, so they should only be accessed when withRelation.
The result of .Fields() is quite different with and without withRelation.
I assume that if you call it without withRelation, you don't want the
fields that were cached when withRelation was true.
2014-11-27 14:04:05 -08:00
jnfeinstein 8b451f0084 Add support for polymorphic relationships using the POLYMORPHIC setting.
This commit adds support for two settings:

FOREIGNTYPE - A field that is used to store the type of the owner.

POLYMORPHIC - A shortcut to set FOREIGNKEY and FOREIGNTYPE to the same
value suffixed by "Id" and "Type" respectively.

The type is stored as the table name, which I thought might be useful
for other queries.

The biggest gotcha of this commit is that I flipped the definition of
has_one and belongs_to. gorm is very flexible such that it didn't
really care if it was a has_one or belongs_to, and can pretty much
determine it at runtime. For the sake of the error, I had to define
one of them as belongs_to, and I chose the one with the fields as
the belongs_to, like ActiveRecord. The error could probably be
genericized to "gorm cannot determine type", but I think it's nicer
to tell people DONT DO PATTERN XYZ CAUSE IT WONT WORK. Functionally,
it doesn't matter.
2014-11-25 21:35:47 -08:00
Jinzhu e9684db42a Show error message if not using addressable value for auto migration 2014-11-25 13:44:14 +08:00