Commit Graph

1629 Commits

Author SHA1 Message Date
Iskander (Alex) Sharipov 742154be9a rewrite if-else chain as switch statement (#2121)
From effective Go: https://golang.org/doc/effective_go.html#switch

> It's therefore possible—and idiomatic—to write an if-else-if-else chain as a switch.
2018-10-07 08:49:37 +08:00
Artemij Shepelev f6260a0085 Second part of the defaultTableName field race fix (#2060)
* fix (https://github.com/jinzhu/gorm/issues/1407)

* changed map with mutex to sync.Map (https://github.com/jinzhu/gorm/issues/1407)

* removed newModelStructsMap func

* commit to rerun pipeline, comment changed

* fix race with defaultTableName field (again)
2018-09-22 19:59:11 +08:00
ch3rub1m 5be9bd3413 Rollback transaction when a panic happens in callback (#2093) 2018-09-14 15:53:49 +08:00
Eyal Posener 123d4f50ef lock TagSettings structure when modified (#1796)
The map is modified in different places in the code which results in race conditions
on execution.
This commit locks the map with read-write lock when it is modified
2018-09-10 07:11:00 +08:00
gstvg 282f11af19 Support only preloading (#1926)
* add support for only preloading relations on an already populated model

* Update callback_query.go

comments
2018-09-10 06:52:32 +08:00
Phillip Shipley 588b598f9f Fix issue updating models with foreign key constraints (#1988)
* fix update callback to not try to write zero values when field has default value

* fix to update callback for gorm tests
2018-09-10 06:50:22 +08:00
Gustavo Brunoro 26fde9110f getValueFromFields doesn't panic on nil pointers (#2021)
* `IsValid()` won't return `false` for nil pointers unless Value
  is wrapped in a `reflect.Indirect`.
2018-09-10 06:47:18 +08:00
maddie 012d147974 Improve preload speed (#2058)
All credits to @vanjapt who came up with this patch.

Closes #1672
2018-09-10 06:45:55 +08:00
Aaron Leung 73e7561e20 Use sync.Map for DB.values (#2064)
* Replace the regular map with a sync.Map to avoid fatal concurrent map reads/writes

* fix the formatting
2018-09-10 06:26:29 +08:00
Ikhtiyor d3e666a1e0 save_associations:true should store related item (#2067)
* save_associations:true should store related item, save_associations priority on related objects

* code quality
2018-09-10 06:25:26 +08:00
kuangzhiqiang 12607e8bdf for go1.11 go mod (#2072)
when used go1.11 gomodules the code dir will be `$GOPATH/pkg/mod/github.com/jinzhu/gorm@*/`
fileWithLineNum check failed
2018-09-10 06:14:05 +08:00
Xy Ziemba 71b7f19aad Fix scanning identical column names occurring >2 times (#2080)
Fix the indexing logic used in selectedColumnsMap to skip fields
that have already been seen. The values of selectedColumns map
must be indexed relative to fields, not relative to selectFields.
2018-09-10 06:12:58 +08:00
Jinzhu dc3b2476c4 Don't save ignored fields into database 2018-09-10 06:03:41 +08:00
Adem Özay 6f58f8a52c added naming strategy option for db, table and column names (#2040) 2018-09-10 05:52:20 +08:00
Eason Lin 32455088f2 doc: document ErrRecordNotFound error more clear (#2015)
* doc: document ErrRecordNotFound error more clear

* fix goimports

* fix goimports

* undo change
2018-08-19 07:14:33 +08:00
hector 53995294ef Change buildCondition TableName to struct's TableName when query is interface{} (#2011) 2018-08-19 07:13:16 +08:00
Elliott 31ec9255cd Setting gorm:auto_preload to false now prevents preloading (#2031) 2018-08-19 07:11:27 +08:00
Artemij Shepelev 0e04d414d5 Race fix. Changes modelStructsMap implementation from map with mutex to sync.Map (#2022)
* fix (https://github.com/jinzhu/gorm/issues/1407)

* changed map with mutex to sync.Map (https://github.com/jinzhu/gorm/issues/1407)

* removed newModelStructsMap func

* commit to rerun pipeline, comment changed
2018-08-19 07:09:21 +08:00
Alexey 409121d9e3 Fixed mysql query syntax for FK removal (#1993) 2018-07-27 07:43:49 +08:00
antness d68403b29d do not close wrapped *sql.DB (#1985) 2018-07-27 07:43:09 +08:00
David Zhang 588e2eef5d Fix typo in query_test (#1977) 2018-07-27 07:38:02 +08:00
Kevin ac3ec858a6 Edit DB.clone(), DB.Dialect(), and Scope.Dialect() preserve transactions (#1939)
* Edit DB.clone(), DB.Dialect(), and Scope.Dialect() preserve transactions.

* Adds a test case for tables creations and autoMigrate in the same transaction.
2018-07-27 07:35:53 +08:00
Louis Brauer dbb25e9487 Adding json type for mssql dialect, similar to postgres.Jsonb (#1934)
* Adding json type for mssql dialect, similar to postgres.Jsonb

* Adding proper comments
2018-07-27 07:30:57 +08:00
Masaki Yoshida 0fd395ab37 Fix ToDBName (#1941)
Don't place '_' before number.

- NG: SHA256Hash -> sha_256_hash
- OK: SHA256Hash -> sha256_hash
2018-06-25 13:07:53 +08:00
ia 1907bff373 all: gofmt (#1956)
Run standard gofmt command on project root.

- go version go1.10.3 darwin/amd64

Signed-off-by: ia <isaac.ardis@gmail.com>
2018-06-25 13:06:58 +08:00
Olga Kleitsa 82eb9f8a5b included actual sql query to discover fi foreign key with the same name exists in a specific table of the database in use (#1896) 2018-05-12 01:29:00 -05:00
lrita a58b98acee Do not panic if Begin().Error was ignored (#1830) (#1881) 2018-05-12 01:28:15 -05:00
Illya Busigin 9044197ef9 Adding GetDialect function (#1869) 2018-05-02 09:38:51 -05:00
Daniel McDonald 35efe68ba7 add simple input validation on gorm.Open function (#1855)
Simply check if the passed-in database source meets the expected types
and, if not, early return with error.
2018-05-02 09:37:51 -05:00
Shane 6842b49a1a fix scope.removeForeignKey method (#1841) 2018-04-16 09:20:02 -05:00
Giuseppe 919c6db4f8 Do not panic if Begin().Error was ignored (#1830) 2018-04-16 09:18:51 -05:00
Saúl Ortega 52c5c8127c Support for UTF8 names on DB (#1793) 2018-03-15 22:35:31 +08:00
Jinzhu 6ed508ec6a Fix panic with raw SQL 2018-02-28 07:43:56 +08:00
Jinzhu a12c2a2e13 Remove mysql8 from CI 2018-02-27 10:48:59 +08:00
Jinzhu 48a20a6e9f Add SubQuery method 2018-02-22 12:04:12 +08:00
Jinzhu 58e34726df Don't access scanner's fields if already defined data type 2018-02-18 09:00:03 +08:00
Jinzhu 55945afb34 Update README 2018-02-17 00:33:52 +08:00
Jinzhu 6e1387b44c Update README 2018-02-13 18:12:09 +08:00
Jinzhu 1fb623dfbb Update README 2018-02-13 17:59:48 +08:00
Jinzhu becd777b1e Fix unicode chars in SQL 2018-02-13 12:37:39 +08:00
Jinzhu 67c4280c57 Fix support embedded pointer type struct, close #1450 2018-02-13 10:00:18 +08:00
Jinzhu fe3c94cd2d Add Take method, close #1228 2018-02-13 09:18:42 +08:00
Jinzhu cfd1cc586a Add 2D array support, close #1201 2018-02-13 08:33:11 +08:00
Jinzhu 3b2c4b3608 Fix insert with default value for mysql 2018-02-12 17:39:34 +08:00
Jinzhu 8005321a1c Allow table option when DropTable, close #1514 2018-02-12 14:49:24 +08:00
Jinzhu 30adc80edc Test customize data type for primary key 2018-02-12 13:20:55 +08:00
Jinzhu 7e2bb3d7fa Allow customize table name when creating index, close #1656 2018-02-12 11:56:51 +08:00
Jinzhu 49934ff3bf Call DefaultTableNameHandler for JoinTableHandler's table 2018-02-12 09:43:28 +08:00
Jinzhu c54d23473c Add IsRecordNotFoundError method 2018-02-12 09:38:16 +08:00
Jinzhu 0cc4d47ce5 Merge branch 'eatigo-master' 2018-02-12 00:06:50 +08:00