Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: darwin arm64 binary #690

Merged
merged 10 commits into from May 15, 2022
Merged

Conversation

jfreeland
Copy link
Contributor

@jfreeland jfreeland commented Feb 10, 2022

I tried to brew install gobuffalo/tap/buffalo on an Apple M1 today that balked at https://github.com/gobuffalo/homebrew-tap/blob/master/pop.rb. This line was missing, but this isn't the only open question.

The past 2 releases have failed to publish tarballs with binaries, https://github.com/gobuffalo/pop/actions/workflows/release.yml, because of cgo: C compiler "o64-clang" not found: exec: "o64-clang": executable file not found in $PATH. There were some changes to https://github.com/gobuffalo/pop/blob/master/.github/workflows/release.yml in v6.0.0 that moved away from using image: bepsays/ci-goreleaser, https://github.com/gobuffalo/pop/blob/4c1da2d172cafe8687aeb0c5dcd7a43fe62a08ad/.github/workflows/release.yml, that was maybe providing this before.

I don't know what the preference is so I just thought I'd mention it.

@jfreeland jfreeland changed the title feat: arm64 binary feat: darwin arm64 binary Feb 10, 2022
@paganotoni
Copy link
Member

Hey @jfreeland! Thanks for putting this one together I tried adding the arch in gorelease yml and basing the container on bepsays. Got no luck on that, see:

https://github.com/gobuffalo/pop/blob/task-trying-goarch/.github/workflows/release.yml

could you take a look and see if I missed something? Appreciate your help.

@jfreeland
Copy link
Contributor Author

I will need to look at bit harder at the bepsays container and goreleaser cross-platform. I played a bit yesterday with no success, https://github.com/jfreeland/pop/actions. I'll spend a bit more time reviewing this week.

@paganotoni
Copy link
Member

paganotoni commented Apr 3, 2022

Appreciate it @jfreeland 🙏

* fix: improve model ID field customization (gobuffalo#604)

Updates places where `"id"` was hardcoded instead of using `model.IDField()`.

* Ensure uninitialized map is initialized when unmarshaling json
Add tests for this scenario

* exclude migration_table_name from connection string

* add test for OptionsString

* Add support for pointer FKs when preloading a belongs_to association (gobuffalo#602)

* feat: support context-aware tablenames (gobuffalo#614)

This patch adds a feature which enables pop to pass down the connection context to the model's TableName() function by implementing TableName(ctx context.Context) string. The context can be used to dynamically generate tablenames which can be important for prefixed or generic tables and other use cases.

* Bump pg deps (gobuffalo#616)

* Reset to development

* bumping pgx and pgconn versions

Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

* Latest from master (gobuffalo#620)

* Latest from development (gobuffalo#617)

* fix: improve model ID field customization (gobuffalo#604)

Updates places where `"id"` was hardcoded instead of using `model.IDField()`.

* Ensure uninitialized map is initialized when unmarshaling json
Add tests for this scenario

* exclude migration_table_name from connection string

* add test for OptionsString

* Add support for pointer FKs when preloading a belongs_to association (gobuffalo#602)

* feat: support context-aware tablenames (gobuffalo#614)

This patch adds a feature which enables pop to pass down the connection context to the model's TableName() function by implementing TableName(ctx context.Context) string. The context can be used to dynamically generate tablenames which can be important for prefixed or generic tables and other use cases.

* Bump pg deps (gobuffalo#616)

* Reset to development

* bumping pgx and pgconn versions

Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

Co-authored-by: Patrik <zepatrik@users.noreply.github.com>
Co-authored-by: Michael Montgomery <mmontg1@gmail.com>
Co-authored-by: kyrozetera <jasonhale.w@gmail.com>
Co-authored-by: Reggie Riser <4960757+reggieriser@users.noreply.github.com>
Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

* adding goreleaser syntaz (gobuffalo#619)

Co-authored-by: Patrik <zepatrik@users.noreply.github.com>
Co-authored-by: Michael Montgomery <mmontg1@gmail.com>
Co-authored-by: kyrozetera <jasonhale.w@gmail.com>
Co-authored-by: Reggie Riser <4960757+reggieriser@users.noreply.github.com>
Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

* Resolve issues in UPDATE and DELETE when using schemas (gobuffalo#618)

* Resolve MySQL issues and improve test migrations
* Bump CockroachDB to maintained and supported versions
Version 2.1 has reached EoL in 2019

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Use `PaginatorPageKey` and `PaginatorPerPageKey` variables (gobuffalo#615)

* update pagination_test

* Pass Time structure into timestamp update functions. (gobuffalo#625)

Closes gobuffalo#624

* Allow nullable JSONB and resolve MySQL regression (gobuffalo#639)

* Allow passing args to `Order` (gobuffalo#630)

* Added connection maximum idle time configuration (gobuffalo#635)

This PR add the possibility to configure the connection maximum idle time (https://golang.org/pkg/database/sql/#DB.SetConnMaxIdleTime).

Closes gobuffalo#632

BREAKING CHANGE: Requires Go 1.15 from now on.

* Bump sqlite to 3.35.4 / 1.14.7 (gobuffalo#642)

* Update pg, pgx, sqlx (gobuffalo#643)

- `jackc/pgx` to  version `v4.11.0`.
- `jmoiron/sqlx` to version`v1.3.3`
- `lib/pq` to version`v1.10.1`

* Fix Inner has many associations when passing on multiple arguments (gobuffalo#633)

* Fix Inner has many associations when passing on multiple arguments for inner fields

* Fix broken tests

* clean up extractFieldAndInnerFields function

Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Antonio Pagano <645522+paganotoni@users.noreply.github.com>

* Remove many to many TX condition for EagerPreload (gobuffalo#645)

* Remove the need to use Tx when loading many to many associations

* replace TX access to create a new tx.Store.Transaction() object

* Added fix/tests for has_many with pointer foreign key (gobuffalo#647)

Co-authored-by: Antonio Pagano <645522+paganotoni@users.noreply.github.com>

* Export WhereID, Alias, WhereNamedID (gobuffalo#637)

This patch export some model convenience functions which are useful when constructing queries outside of pop: custom updates, deletes, inserts, ...

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

Co-authored-by: Antonio Pagano <645522+paganotoni@users.noreply.github.com>

* fix: log model values everywhere (gobuffalo#656)

Some SQL logs were missing the values as argument. This adds all places

* Add delete to query builder (gobuffalo#658)

This allows writing delete queries without knowing the exact primary key or for composite keys.
`Destroy` only allows to delete by primary key, but there are many cases where you want to delete multiple rows or by some other query than the ID.

See gobuffalo#29

* Sort down migrations (gobuffalo#657)

Basically, just reversing the up migration order does not work, as that puts "all" migrations before specific ones. Therefore, I added implemented the proper `Less` function for down migrations explicitly.

Related gobuffalo#533

Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>

* Preserve eager information when validating models (gobuffalo#664) (gobuffalo#665)

Co-authored-by: Karl Haas <karl.haas@coditects.com>

* Migrate from packr to fs (gobuffalo#667)

* Updating Pgx (gobuffalo#660)

* adding goreleaser syntaz

* updating pgx now really

* Migrate from packr to fs

* Migrate to v6

* Use old build tags

* Update error handling

* Fix error after rebase

* Fix error handling

* Fix filenames for embed Go 1.16 usage

Co-authored-by: Antonio Pagano <645522+paganotoni@users.noreply.github.com>

* Task merging master (gobuffalo#669)

* v5.3.4 (gobuffalo#644)

* fix: improve model ID field customization (gobuffalo#604)

Updates places where `"id"` was hardcoded instead of using `model.IDField()`.

* Ensure uninitialized map is initialized when unmarshaling json
Add tests for this scenario

* exclude migration_table_name from connection string

* add test for OptionsString

* Add support for pointer FKs when preloading a belongs_to association (gobuffalo#602)

* feat: support context-aware tablenames (gobuffalo#614)

This patch adds a feature which enables pop to pass down the connection context to the model's TableName() function by implementing TableName(ctx context.Context) string. The context can be used to dynamically generate tablenames which can be important for prefixed or generic tables and other use cases.

* Bump pg deps (gobuffalo#616)

* Reset to development

* bumping pgx and pgconn versions

Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

* Latest from master (gobuffalo#620)

* Latest from development (gobuffalo#617)

* fix: improve model ID field customization (gobuffalo#604)

Updates places where `"id"` was hardcoded instead of using `model.IDField()`.

* Ensure uninitialized map is initialized when unmarshaling json
Add tests for this scenario

* exclude migration_table_name from connection string

* add test for OptionsString

* Add support for pointer FKs when preloading a belongs_to association (gobuffalo#602)

* feat: support context-aware tablenames (gobuffalo#614)

This patch adds a feature which enables pop to pass down the connection context to the model's TableName() function by implementing TableName(ctx context.Context) string. The context can be used to dynamically generate tablenames which can be important for prefixed or generic tables and other use cases.

* Bump pg deps (gobuffalo#616)

* Reset to development

* bumping pgx and pgconn versions

Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

Co-authored-by: Patrik <zepatrik@users.noreply.github.com>
Co-authored-by: Michael Montgomery <mmontg1@gmail.com>
Co-authored-by: kyrozetera <jasonhale.w@gmail.com>
Co-authored-by: Reggie Riser <4960757+reggieriser@users.noreply.github.com>
Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

* adding goreleaser syntaz (gobuffalo#619)

Co-authored-by: Patrik <zepatrik@users.noreply.github.com>
Co-authored-by: Michael Montgomery <mmontg1@gmail.com>
Co-authored-by: kyrozetera <jasonhale.w@gmail.com>
Co-authored-by: Reggie Riser <4960757+reggieriser@users.noreply.github.com>
Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

* Resolve issues in UPDATE and DELETE when using schemas (gobuffalo#618)

* Resolve MySQL issues and improve test migrations
* Bump CockroachDB to maintained and supported versions
Version 2.1 has reached EoL in 2019

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Use `PaginatorPageKey` and `PaginatorPerPageKey` variables (gobuffalo#615)

* update pagination_test

* Pass Time structure into timestamp update functions. (gobuffalo#625)

Closes gobuffalo#624

* Allow nullable JSONB and resolve MySQL regression (gobuffalo#639)

* Allow passing args to `Order` (gobuffalo#630)

* Added connection maximum idle time configuration (gobuffalo#635)

This PR add the possibility to configure the connection maximum idle time (https://golang.org/pkg/database/sql/#DB.SetConnMaxIdleTime).

Closes gobuffalo#632

BREAKING CHANGE: Requires Go 1.15 from now on.

* Bump sqlite to 3.35.4 / 1.14.7 (gobuffalo#642)

* Update pg, pgx, sqlx (gobuffalo#643)

- `jackc/pgx` to  version `v4.11.0`.
- `jmoiron/sqlx` to version`v1.3.3`
- `lib/pq` to version`v1.10.1`

* Fix Inner has many associations when passing on multiple arguments (gobuffalo#633)

* Fix Inner has many associations when passing on multiple arguments for inner fields

* Fix broken tests

* clean up extractFieldAndInnerFields function

Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Antonio Pagano <645522+paganotoni@users.noreply.github.com>

* Remove many to many TX condition for EagerPreload (gobuffalo#645)

* Remove the need to use Tx when loading many to many associations

* replace TX access to create a new tx.Store.Transaction() object

* Added fix/tests for has_many with pointer foreign key (gobuffalo#647)

Co-authored-by: Antonio Pagano <645522+paganotoni@users.noreply.github.com>

Co-authored-by: Patrik <zepatrik@users.noreply.github.com>
Co-authored-by: Michael Montgomery <mmontg1@gmail.com>
Co-authored-by: kyrozetera <jasonhale.w@gmail.com>
Co-authored-by: Reggie Riser <4960757+reggieriser@users.noreply.github.com>
Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>
Co-authored-by: Brian Buchholz <4773480+bhb603@users.noreply.github.com>
Co-authored-by: Mike Pontillo <mpontillo@users.noreply.github.com>
Co-authored-by: Benjamin Blattberg <ben.blattberg@objectrocket.com>
Co-authored-by: Jonathan Duck <Duckbrain30@gmail.com>
Co-authored-by: Arthur Knoepflin <arthur.knoepflin@epitech.eu>

* Updating Pgx (gobuffalo#660)

* adding goreleaser syntaz

* updating pgx now really

* tidying

Co-authored-by: Patrik <zepatrik@users.noreply.github.com>
Co-authored-by: Michael Montgomery <mmontg1@gmail.com>
Co-authored-by: kyrozetera <jasonhale.w@gmail.com>
Co-authored-by: Reggie Riser <4960757+reggieriser@users.noreply.github.com>
Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>
Co-authored-by: Brian Buchholz <4773480+bhb603@users.noreply.github.com>
Co-authored-by: Mike Pontillo <mpontillo@users.noreply.github.com>
Co-authored-by: Benjamin Blattberg <ben.blattberg@objectrocket.com>
Co-authored-by: Jonathan Duck <Duckbrain30@gmail.com>
Co-authored-by: Arthur Knoepflin <arthur.knoepflin@epitech.eu>

* Replace removed  command

The  command has been removed from the CLI. This patch introduces a new mechanism to reliably dump the SQL schema for CockroachDB.

* Resolve `EagerPreload` panic caused for pointer references

Resolves a panic where `EagerPreload` tried to set `reflect.Struct` for a `reflect.Pointer` on 1.. associations.

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Resolve `EagerPreload` panic caused by NullUUID

Resolves a panic where `EagerPreload` was trying to set UUID into NullUUID.

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Support pointers in n+1 `Eager` loading

Resolves an issue where n+1 eager associations would error with a double pointer in `associations.ForStruct`.

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Improve error message of associations.ForStruct

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Add test cases for `IsZeroOfUnderlyingType`

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Resolve an obscure bug where empty structs got loaded for NULL foreign keys

Closes gobuffalo#139

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Resolve association regression in finders.go

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Use dedicated migrations for preloading regression test

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Fix code regression

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Fix test code regressions

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Fix sql migration order

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Resolve order issue in test

* Ignore order when testing for nil values in test

* Pass Context during exec in create. (gobuffalo#688)

* feat: support embedded struct fields (gobuffalo#691)

* test: use `T.TempDir` to create temporary test directory

This commit replaces `ioutil.TempDir` with `t.TempDir` in tests. The
directory created by `t.TempDir` is automatically removed when the test
and all its subtests complete.

Prior to this commit, temporary directory created using `ioutil.TempDir`
needs to be removed manually by calling `os.RemoveAll`, which is omitted
in some tests. The error handling boilerplate e.g.
	defer func() {
		if err := os.RemoveAll(dir); err != nil {
			t.Fatal(err)
		}
	}
is also tedious, but `t.TempDir` handles this for us nicely.

Reference: https://pkg.go.dev/testing#T.TempDir
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>

* task: adding next version number

Co-authored-by: Patrik <zepatrik@users.noreply.github.com>
Co-authored-by: Michael Montgomery <mmontg1@gmail.com>
Co-authored-by: kyrozetera <jasonhale.w@gmail.com>
Co-authored-by: Reggie Riser <4960757+reggieriser@users.noreply.github.com>
Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>
Co-authored-by: Brian Buchholz <4773480+bhb603@users.noreply.github.com>
Co-authored-by: Mike Pontillo <mpontillo@users.noreply.github.com>
Co-authored-by: Benjamin Blattberg <ben.blattberg@objectrocket.com>
Co-authored-by: Jonathan Duck <Duckbrain30@gmail.com>
Co-authored-by: Arthur Knoepflin <arthur.knoepflin@epitech.eu>
Co-authored-by: karlhaas <haaskarl81@gmail.com>
Co-authored-by: Karl Haas <karl.haas@coditects.com>
Co-authored-by: Matthias Fasching <fasching.matthias@gmail.com>
Co-authored-by: Martin Eigenbrodt <martin.eigenbrodt@googlemail.com>
Co-authored-by: Eng Zer Jun <engzerjun@gmail.com>
@paganotoni
Copy link
Member

paganotoni commented Apr 18, 2022

found this: https://github.com/goreleaser/goreleaser-cross-example. It may provide the foundation for solving our issue. cc @jfreeland

@jfreeland
Copy link
Contributor Author

found this: https://github.com/goreleaser/goreleaser-cross-example. It may provide the foundation for solving our issue.

Nice one! I got images to build today https://github.com/jfreeland/pop/runs/6069504394?check_suite_focus=true#step:5:95 with:

Will need to revisit later to make these compatible with the current release process.

- name: Set up Go 1.17
uses: actions/setup-go@v3
with:
go-version: 1.17
id: go
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this is used.

Comment on lines +23 to +24
- name: release dry run
run: make release-dry-run
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This container image is awfully big. I wouldn't want this running that often as I don't personally understand the implications for GHA for this org.

.goreleaser.yml Outdated
Comment on lines 35 to 38
env:
- CGO_ENABLED=1
- CC=/osxcross/target/bin/oa64-clang
- CXX=/osxcross/target/bin/oa64-clang++
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I separated out pop_darwin and pop_darwin_arm64 as darwin_arm64 suggests oa64-clang/oa64-clang++ on https://github.com/goreleaser/goreleaser-cross#supported-toolchainsplatforms.

.goreleaser.yml Outdated
Comment on lines 9 to 10
- id: pop_darwin
binary: soda
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I changed the indentation as my vimconfig make it obnoxious. Maybe I should undo that because this looks more gnarly than it is.

.goreleaser.yml Outdated
binary: soda
main: soda/main.go
env:
- CGO_ENABLED=0
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I changed CGO_ENABLED=0 on the Linux builds and it built fine in https://github.com/jfreeland/pop/runs/6069504394?check_suite_focus=true#step:5:95. But maybe that is not the correct step here.

Comment on lines +43 to +49
.PHONY: sysroot-pack
sysroot-pack:
@tar cf - $(SYSROOT_DIR) -P | pv -s $[$(du -sk $(SYSROOT_DIR) | awk '{print $1}') * 1024] | pbzip2 > $(SYSROOT_ARCHIVE)

.PHONY: sysroot-unpack
sysroot-unpack:
@pv $(SYSROOT_ARCHIVE) | pbzip2 -cd | tar -xf -
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't see anywhere that these functions are explicitly used, they just came from https://github.com/goreleaser/goreleaser-cross-example/blob/master/Makefile#L7-L13. These could probably be removed.

-v `pwd`/sysroot:/sysroot \
-w /go/src/$(PACKAGE_NAME) \
goreleaser/goreleaser-cross:${GOLANG_CROSS_VERSION} \
--rm-dist --skip-validate --skip-publish --snapshot
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When I was running without --snapshot goreleaser was complaining about not having tags available.

@paganotoni paganotoni changed the base branch from master to development May 15, 2022 00:37
@paganotoni paganotoni merged commit ca4f9fd into gobuffalo:development May 15, 2022
paganotoni added a commit that referenced this pull request May 15, 2022
* fix: improve model ID field customization (#604)

Updates places where `"id"` was hardcoded instead of using `model.IDField()`.

* Ensure uninitialized map is initialized when unmarshaling json
Add tests for this scenario

* exclude migration_table_name from connection string

* add test for OptionsString

* Add support for pointer FKs when preloading a belongs_to association (#602)

* feat: support context-aware tablenames (#614)

This patch adds a feature which enables pop to pass down the connection context to the model's TableName() function by implementing TableName(ctx context.Context) string. The context can be used to dynamically generate tablenames which can be important for prefixed or generic tables and other use cases.

* Bump pg deps (#616)

* Reset to development

* bumping pgx and pgconn versions

Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

* Latest from master (#620)

* Latest from development (#617)

* fix: improve model ID field customization (#604)

Updates places where `"id"` was hardcoded instead of using `model.IDField()`.

* Ensure uninitialized map is initialized when unmarshaling json
Add tests for this scenario

* exclude migration_table_name from connection string

* add test for OptionsString

* Add support for pointer FKs when preloading a belongs_to association (#602)

* feat: support context-aware tablenames (#614)

This patch adds a feature which enables pop to pass down the connection context to the model's TableName() function by implementing TableName(ctx context.Context) string. The context can be used to dynamically generate tablenames which can be important for prefixed or generic tables and other use cases.

* Bump pg deps (#616)

* Reset to development

* bumping pgx and pgconn versions

Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

Co-authored-by: Patrik <zepatrik@users.noreply.github.com>
Co-authored-by: Michael Montgomery <mmontg1@gmail.com>
Co-authored-by: kyrozetera <jasonhale.w@gmail.com>
Co-authored-by: Reggie Riser <4960757+reggieriser@users.noreply.github.com>
Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

* adding goreleaser syntaz (#619)

Co-authored-by: Patrik <zepatrik@users.noreply.github.com>
Co-authored-by: Michael Montgomery <mmontg1@gmail.com>
Co-authored-by: kyrozetera <jasonhale.w@gmail.com>
Co-authored-by: Reggie Riser <4960757+reggieriser@users.noreply.github.com>
Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

* Resolve issues in UPDATE and DELETE when using schemas (#618)

* Resolve MySQL issues and improve test migrations
* Bump CockroachDB to maintained and supported versions
Version 2.1 has reached EoL in 2019

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Use `PaginatorPageKey` and `PaginatorPerPageKey` variables (#615)

* update pagination_test

* Pass Time structure into timestamp update functions. (#625)

Closes #624

* Allow nullable JSONB and resolve MySQL regression (#639)

* Allow passing args to `Order` (#630)

* Added connection maximum idle time configuration (#635)

This PR add the possibility to configure the connection maximum idle time (https://golang.org/pkg/database/sql/#DB.SetConnMaxIdleTime).

Closes #632

BREAKING CHANGE: Requires Go 1.15 from now on.

* Bump sqlite to 3.35.4 / 1.14.7 (#642)

* Update pg, pgx, sqlx (#643)

- `jackc/pgx` to  version `v4.11.0`.
- `jmoiron/sqlx` to version`v1.3.3`
- `lib/pq` to version`v1.10.1`

* Fix Inner has many associations when passing on multiple arguments (#633)

* Fix Inner has many associations when passing on multiple arguments for inner fields

* Fix broken tests

* clean up extractFieldAndInnerFields function

Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Antonio Pagano <645522+paganotoni@users.noreply.github.com>

* Remove many to many TX condition for EagerPreload (#645)

* Remove the need to use Tx when loading many to many associations

* replace TX access to create a new tx.Store.Transaction() object

* Added fix/tests for has_many with pointer foreign key (#647)

Co-authored-by: Antonio Pagano <645522+paganotoni@users.noreply.github.com>

* Export WhereID, Alias, WhereNamedID (#637)

This patch export some model convenience functions which are useful when constructing queries outside of pop: custom updates, deletes, inserts, ...

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

Co-authored-by: Antonio Pagano <645522+paganotoni@users.noreply.github.com>

* fix: log model values everywhere (#656)

Some SQL logs were missing the values as argument. This adds all places

* Add delete to query builder (#658)

This allows writing delete queries without knowing the exact primary key or for composite keys.
`Destroy` only allows to delete by primary key, but there are many cases where you want to delete multiple rows or by some other query than the ID.

See #29

* Sort down migrations (#657)

Basically, just reversing the up migration order does not work, as that puts "all" migrations before specific ones. Therefore, I added implemented the proper `Less` function for down migrations explicitly.

Related #533

Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>

* Preserve eager information when validating models (#664) (#665)

Co-authored-by: Karl Haas <karl.haas@coditects.com>

* Migrate from packr to fs (#667)

* Updating Pgx (#660)

* adding goreleaser syntaz

* updating pgx now really

* Migrate from packr to fs

* Migrate to v6

* Use old build tags

* Update error handling

* Fix error after rebase

* Fix error handling

* Fix filenames for embed Go 1.16 usage

Co-authored-by: Antonio Pagano <645522+paganotoni@users.noreply.github.com>

* Task merging master (#669)

* v5.3.4 (#644)

* fix: improve model ID field customization (#604)

Updates places where `"id"` was hardcoded instead of using `model.IDField()`.

* Ensure uninitialized map is initialized when unmarshaling json
Add tests for this scenario

* exclude migration_table_name from connection string

* add test for OptionsString

* Add support for pointer FKs when preloading a belongs_to association (#602)

* feat: support context-aware tablenames (#614)

This patch adds a feature which enables pop to pass down the connection context to the model's TableName() function by implementing TableName(ctx context.Context) string. The context can be used to dynamically generate tablenames which can be important for prefixed or generic tables and other use cases.

* Bump pg deps (#616)

* Reset to development

* bumping pgx and pgconn versions

Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

* Latest from master (#620)

* Latest from development (#617)

* fix: improve model ID field customization (#604)

Updates places where `"id"` was hardcoded instead of using `model.IDField()`.

* Ensure uninitialized map is initialized when unmarshaling json
Add tests for this scenario

* exclude migration_table_name from connection string

* add test for OptionsString

* Add support for pointer FKs when preloading a belongs_to association (#602)

* feat: support context-aware tablenames (#614)

This patch adds a feature which enables pop to pass down the connection context to the model's TableName() function by implementing TableName(ctx context.Context) string. The context can be used to dynamically generate tablenames which can be important for prefixed or generic tables and other use cases.

* Bump pg deps (#616)

* Reset to development

* bumping pgx and pgconn versions

Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

Co-authored-by: Patrik <zepatrik@users.noreply.github.com>
Co-authored-by: Michael Montgomery <mmontg1@gmail.com>
Co-authored-by: kyrozetera <jasonhale.w@gmail.com>
Co-authored-by: Reggie Riser <4960757+reggieriser@users.noreply.github.com>
Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

* adding goreleaser syntaz (#619)

Co-authored-by: Patrik <zepatrik@users.noreply.github.com>
Co-authored-by: Michael Montgomery <mmontg1@gmail.com>
Co-authored-by: kyrozetera <jasonhale.w@gmail.com>
Co-authored-by: Reggie Riser <4960757+reggieriser@users.noreply.github.com>
Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

* Resolve issues in UPDATE and DELETE when using schemas (#618)

* Resolve MySQL issues and improve test migrations
* Bump CockroachDB to maintained and supported versions
Version 2.1 has reached EoL in 2019

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Use `PaginatorPageKey` and `PaginatorPerPageKey` variables (#615)

* update pagination_test

* Pass Time structure into timestamp update functions. (#625)

Closes #624

* Allow nullable JSONB and resolve MySQL regression (#639)

* Allow passing args to `Order` (#630)

* Added connection maximum idle time configuration (#635)

This PR add the possibility to configure the connection maximum idle time (https://golang.org/pkg/database/sql/#DB.SetConnMaxIdleTime).

Closes #632

BREAKING CHANGE: Requires Go 1.15 from now on.

* Bump sqlite to 3.35.4 / 1.14.7 (#642)

* Update pg, pgx, sqlx (#643)

- `jackc/pgx` to  version `v4.11.0`.
- `jmoiron/sqlx` to version`v1.3.3`
- `lib/pq` to version`v1.10.1`

* Fix Inner has many associations when passing on multiple arguments (#633)

* Fix Inner has many associations when passing on multiple arguments for inner fields

* Fix broken tests

* clean up extractFieldAndInnerFields function

Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Antonio Pagano <645522+paganotoni@users.noreply.github.com>

* Remove many to many TX condition for EagerPreload (#645)

* Remove the need to use Tx when loading many to many associations

* replace TX access to create a new tx.Store.Transaction() object

* Added fix/tests for has_many with pointer foreign key (#647)

Co-authored-by: Antonio Pagano <645522+paganotoni@users.noreply.github.com>

Co-authored-by: Patrik <zepatrik@users.noreply.github.com>
Co-authored-by: Michael Montgomery <mmontg1@gmail.com>
Co-authored-by: kyrozetera <jasonhale.w@gmail.com>
Co-authored-by: Reggie Riser <4960757+reggieriser@users.noreply.github.com>
Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>
Co-authored-by: Brian Buchholz <4773480+bhb603@users.noreply.github.com>
Co-authored-by: Mike Pontillo <mpontillo@users.noreply.github.com>
Co-authored-by: Benjamin Blattberg <ben.blattberg@objectrocket.com>
Co-authored-by: Jonathan Duck <Duckbrain30@gmail.com>
Co-authored-by: Arthur Knoepflin <arthur.knoepflin@epitech.eu>

* Updating Pgx (#660)

* adding goreleaser syntaz

* updating pgx now really

* tidying

Co-authored-by: Patrik <zepatrik@users.noreply.github.com>
Co-authored-by: Michael Montgomery <mmontg1@gmail.com>
Co-authored-by: kyrozetera <jasonhale.w@gmail.com>
Co-authored-by: Reggie Riser <4960757+reggieriser@users.noreply.github.com>
Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>
Co-authored-by: Brian Buchholz <4773480+bhb603@users.noreply.github.com>
Co-authored-by: Mike Pontillo <mpontillo@users.noreply.github.com>
Co-authored-by: Benjamin Blattberg <ben.blattberg@objectrocket.com>
Co-authored-by: Jonathan Duck <Duckbrain30@gmail.com>
Co-authored-by: Arthur Knoepflin <arthur.knoepflin@epitech.eu>

* Replace removed  command

The  command has been removed from the CLI. This patch introduces a new mechanism to reliably dump the SQL schema for CockroachDB.

* Resolve `EagerPreload` panic caused for pointer references

Resolves a panic where `EagerPreload` tried to set `reflect.Struct` for a `reflect.Pointer` on 1.. associations.

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Resolve `EagerPreload` panic caused by NullUUID

Resolves a panic where `EagerPreload` was trying to set UUID into NullUUID.

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Support pointers in n+1 `Eager` loading

Resolves an issue where n+1 eager associations would error with a double pointer in `associations.ForStruct`.

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Improve error message of associations.ForStruct

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Add test cases for `IsZeroOfUnderlyingType`

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Resolve an obscure bug where empty structs got loaded for NULL foreign keys

Closes #139

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Resolve association regression in finders.go

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Use dedicated migrations for preloading regression test

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Fix code regression

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Fix test code regressions

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Fix sql migration order

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Resolve order issue in test

* Ignore order when testing for nil values in test

* Pass Context during exec in create. (#688)

* feat: support embedded struct fields (#691)

* test: use `T.TempDir` to create temporary test directory

This commit replaces `ioutil.TempDir` with `t.TempDir` in tests. The
directory created by `t.TempDir` is automatically removed when the test
and all its subtests complete.

Prior to this commit, temporary directory created using `ioutil.TempDir`
needs to be removed manually by calling `os.RemoveAll`, which is omitted
in some tests. The error handling boilerplate e.g.
	defer func() {
		if err := os.RemoveAll(dir); err != nil {
			t.Fatal(err)
		}
	}
is also tedious, but `t.TempDir` handles this for us nicely.

Reference: https://pkg.go.dev/testing#T.TempDir
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>

* task: adding next version number

* fix: associations for embedded fields

* test: add other fields to duplicate type, because of some kind of query builder cache

* feat: implement UpdateQuery

This commit introduces a new function, UpdateQuery, that enables updating all
rows matched by a query. It can be used for conditional updates.

* feat: allow customizing the time used for CreatedAt/UpdatedAt

* feat: allow using SQLite without built tag via include (#662)

* preparing go1.18 support (package specific workflow)

* feat: darwin arm64 binary (#690)

* feat: arm64 binary

* v6.0.2 (#704)

* fix: improve model ID field customization (#604)

Updates places where `"id"` was hardcoded instead of using `model.IDField()`.

* Ensure uninitialized map is initialized when unmarshaling json
Add tests for this scenario

* exclude migration_table_name from connection string

* add test for OptionsString

* Add support for pointer FKs when preloading a belongs_to association (#602)

* feat: support context-aware tablenames (#614)

This patch adds a feature which enables pop to pass down the connection context to the model's TableName() function by implementing TableName(ctx context.Context) string. The context can be used to dynamically generate tablenames which can be important for prefixed or generic tables and other use cases.

* Bump pg deps (#616)

* Reset to development

* bumping pgx and pgconn versions

Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

* Latest from master (#620)

* Latest from development (#617)

* fix: improve model ID field customization (#604)

Updates places where `"id"` was hardcoded instead of using `model.IDField()`.

* Ensure uninitialized map is initialized when unmarshaling json
Add tests for this scenario

* exclude migration_table_name from connection string

* add test for OptionsString

* Add support for pointer FKs when preloading a belongs_to association (#602)

* feat: support context-aware tablenames (#614)

This patch adds a feature which enables pop to pass down the connection context to the model's TableName() function by implementing TableName(ctx context.Context) string. The context can be used to dynamically generate tablenames which can be important for prefixed or generic tables and other use cases.

* Bump pg deps (#616)

* Reset to development

* bumping pgx and pgconn versions

Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

Co-authored-by: Patrik <zepatrik@users.noreply.github.com>
Co-authored-by: Michael Montgomery <mmontg1@gmail.com>
Co-authored-by: kyrozetera <jasonhale.w@gmail.com>
Co-authored-by: Reggie Riser <4960757+reggieriser@users.noreply.github.com>
Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

* adding goreleaser syntaz (#619)

Co-authored-by: Patrik <zepatrik@users.noreply.github.com>
Co-authored-by: Michael Montgomery <mmontg1@gmail.com>
Co-authored-by: kyrozetera <jasonhale.w@gmail.com>
Co-authored-by: Reggie Riser <4960757+reggieriser@users.noreply.github.com>
Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

* Resolve issues in UPDATE and DELETE when using schemas (#618)

* Resolve MySQL issues and improve test migrations
* Bump CockroachDB to maintained and supported versions
Version 2.1 has reached EoL in 2019

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Use `PaginatorPageKey` and `PaginatorPerPageKey` variables (#615)

* update pagination_test

* Pass Time structure into timestamp update functions. (#625)

Closes #624

* Allow nullable JSONB and resolve MySQL regression (#639)

* Allow passing args to `Order` (#630)

* Added connection maximum idle time configuration (#635)

This PR add the possibility to configure the connection maximum idle time (https://golang.org/pkg/database/sql/#DB.SetConnMaxIdleTime).

Closes #632

BREAKING CHANGE: Requires Go 1.15 from now on.

* Bump sqlite to 3.35.4 / 1.14.7 (#642)

* Update pg, pgx, sqlx (#643)

- `jackc/pgx` to  version `v4.11.0`.
- `jmoiron/sqlx` to version`v1.3.3`
- `lib/pq` to version`v1.10.1`

* Fix Inner has many associations when passing on multiple arguments (#633)

* Fix Inner has many associations when passing on multiple arguments for inner fields

* Fix broken tests

* clean up extractFieldAndInnerFields function

Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Antonio Pagano <645522+paganotoni@users.noreply.github.com>

* Remove many to many TX condition for EagerPreload (#645)

* Remove the need to use Tx when loading many to many associations

* replace TX access to create a new tx.Store.Transaction() object

* Added fix/tests for has_many with pointer foreign key (#647)

Co-authored-by: Antonio Pagano <645522+paganotoni@users.noreply.github.com>

* Export WhereID, Alias, WhereNamedID (#637)

This patch export some model convenience functions which are useful when constructing queries outside of pop: custom updates, deletes, inserts, ...

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

Co-authored-by: Antonio Pagano <645522+paganotoni@users.noreply.github.com>

* fix: log model values everywhere (#656)

Some SQL logs were missing the values as argument. This adds all places

* Add delete to query builder (#658)

This allows writing delete queries without knowing the exact primary key or for composite keys.
`Destroy` only allows to delete by primary key, but there are many cases where you want to delete multiple rows or by some other query than the ID.

See #29

* Sort down migrations (#657)

Basically, just reversing the up migration order does not work, as that puts "all" migrations before specific ones. Therefore, I added implemented the proper `Less` function for down migrations explicitly.

Related #533

Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>

* Preserve eager information when validating models (#664) (#665)

Co-authored-by: Karl Haas <karl.haas@coditects.com>

* Migrate from packr to fs (#667)

* Updating Pgx (#660)

* adding goreleaser syntaz

* updating pgx now really

* Migrate from packr to fs

* Migrate to v6

* Use old build tags

* Update error handling

* Fix error after rebase

* Fix error handling

* Fix filenames for embed Go 1.16 usage

Co-authored-by: Antonio Pagano <645522+paganotoni@users.noreply.github.com>

* Task merging master (#669)

* v5.3.4 (#644)

* fix: improve model ID field customization (#604)

Updates places where `"id"` was hardcoded instead of using `model.IDField()`.

* Ensure uninitialized map is initialized when unmarshaling json
Add tests for this scenario

* exclude migration_table_name from connection string

* add test for OptionsString

* Add support for pointer FKs when preloading a belongs_to association (#602)

* feat: support context-aware tablenames (#614)

This patch adds a feature which enables pop to pass down the connection context to the model's TableName() function by implementing TableName(ctx context.Context) string. The context can be used to dynamically generate tablenames which can be important for prefixed or generic tables and other use cases.

* Bump pg deps (#616)

* Reset to development

* bumping pgx and pgconn versions

Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

* Latest from master (#620)

* Latest from development (#617)

* fix: improve model ID field customization (#604)

Updates places where `"id"` was hardcoded instead of using `model.IDField()`.

* Ensure uninitialized map is initialized when unmarshaling json
Add tests for this scenario

* exclude migration_table_name from connection string

* add test for OptionsString

* Add support for pointer FKs when preloading a belongs_to association (#602)

* feat: support context-aware tablenames (#614)

This patch adds a feature which enables pop to pass down the connection context to the model's TableName() function by implementing TableName(ctx context.Context) string. The context can be used to dynamically generate tablenames which can be important for prefixed or generic tables and other use cases.

* Bump pg deps (#616)

* Reset to development

* bumping pgx and pgconn versions

Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

Co-authored-by: Patrik <zepatrik@users.noreply.github.com>
Co-authored-by: Michael Montgomery <mmontg1@gmail.com>
Co-authored-by: kyrozetera <jasonhale.w@gmail.com>
Co-authored-by: Reggie Riser <4960757+reggieriser@users.noreply.github.com>
Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

* adding goreleaser syntaz (#619)

Co-authored-by: Patrik <zepatrik@users.noreply.github.com>
Co-authored-by: Michael Montgomery <mmontg1@gmail.com>
Co-authored-by: kyrozetera <jasonhale.w@gmail.com>
Co-authored-by: Reggie Riser <4960757+reggieriser@users.noreply.github.com>
Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

* Resolve issues in UPDATE and DELETE when using schemas (#618)

* Resolve MySQL issues and improve test migrations
* Bump CockroachDB to maintained and supported versions
Version 2.1 has reached EoL in 2019

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Use `PaginatorPageKey` and `PaginatorPerPageKey` variables (#615)

* update pagination_test

* Pass Time structure into timestamp update functions. (#625)

Closes #624

* Allow nullable JSONB and resolve MySQL regression (#639)

* Allow passing args to `Order` (#630)

* Added connection maximum idle time configuration (#635)

This PR add the possibility to configure the connection maximum idle time (https://golang.org/pkg/database/sql/#DB.SetConnMaxIdleTime).

Closes #632

BREAKING CHANGE: Requires Go 1.15 from now on.

* Bump sqlite to 3.35.4 / 1.14.7 (#642)

* Update pg, pgx, sqlx (#643)

- `jackc/pgx` to  version `v4.11.0`.
- `jmoiron/sqlx` to version`v1.3.3`
- `lib/pq` to version`v1.10.1`

* Fix Inner has many associations when passing on multiple arguments (#633)

* Fix Inner has many associations when passing on multiple arguments for inner fields

* Fix broken tests

* clean up extractFieldAndInnerFields function

Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Antonio Pagano <645522+paganotoni@users.noreply.github.com>

* Remove many to many TX condition for EagerPreload (#645)

* Remove the need to use Tx when loading many to many associations

* replace TX access to create a new tx.Store.Transaction() object

* Added fix/tests for has_many with pointer foreign key (#647)

Co-authored-by: Antonio Pagano <645522+paganotoni@users.noreply.github.com>

Co-authored-by: Patrik <zepatrik@users.noreply.github.com>
Co-authored-by: Michael Montgomery <mmontg1@gmail.com>
Co-authored-by: kyrozetera <jasonhale.w@gmail.com>
Co-authored-by: Reggie Riser <4960757+reggieriser@users.noreply.github.com>
Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>
Co-authored-by: Brian Buchholz <4773480+bhb603@users.noreply.github.com>
Co-authored-by: Mike Pontillo <mpontillo@users.noreply.github.com>
Co-authored-by: Benjamin Blattberg <ben.blattberg@objectrocket.com>
Co-authored-by: Jonathan Duck <Duckbrain30@gmail.com>
Co-authored-by: Arthur Knoepflin <arthur.knoepflin@epitech.eu>

* Updating Pgx (#660)

* adding goreleaser syntaz

* updating pgx now really

* tidying

Co-authored-by: Patrik <zepatrik@users.noreply.github.com>
Co-authored-by: Michael Montgomery <mmontg1@gmail.com>
Co-authored-by: kyrozetera <jasonhale.w@gmail.com>
Co-authored-by: Reggie Riser <4960757+reggieriser@users.noreply.github.com>
Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>
Co-authored-by: Brian Buchholz <4773480+bhb603@users.noreply.github.com>
Co-authored-by: Mike Pontillo <mpontillo@users.noreply.github.com>
Co-authored-by: Benjamin Blattberg <ben.blattberg@objectrocket.com>
Co-authored-by: Jonathan Duck <Duckbrain30@gmail.com>
Co-authored-by: Arthur Knoepflin <arthur.knoepflin@epitech.eu>

* Replace removed  command

The  command has been removed from the CLI. This patch introduces a new mechanism to reliably dump the SQL schema for CockroachDB.

* Resolve `EagerPreload` panic caused for pointer references

Resolves a panic where `EagerPreload` tried to set `reflect.Struct` for a `reflect.Pointer` on 1.. associations.

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Resolve `EagerPreload` panic caused by NullUUID

Resolves a panic where `EagerPreload` was trying to set UUID into NullUUID.

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Support pointers in n+1 `Eager` loading

Resolves an issue where n+1 eager associations would error with a double pointer in `associations.ForStruct`.

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Improve error message of associations.ForStruct

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Add test cases for `IsZeroOfUnderlyingType`

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Resolve an obscure bug where empty structs got loaded for NULL foreign keys

Closes #139

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Resolve association regression in finders.go

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Use dedicated migrations for preloading regression test

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Fix code regression

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Fix test code regressions

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Fix sql migration order

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Resolve order issue in test

* Ignore order when testing for nil values in test

* Pass Context during exec in create. (#688)

* feat: support embedded struct fields (#691)

* test: use `T.TempDir` to create temporary test directory

This commit replaces `ioutil.TempDir` with `t.TempDir` in tests. The
directory created by `t.TempDir` is automatically removed when the test
and all its subtests complete.

Prior to this commit, temporary directory created using `ioutil.TempDir`
needs to be removed manually by calling `os.RemoveAll`, which is omitted
in some tests. The error handling boilerplate e.g.
	defer func() {
		if err := os.RemoveAll(dir); err != nil {
			t.Fatal(err)
		}
	}
is also tedious, but `t.TempDir` handles this for us nicely.

Reference: https://pkg.go.dev/testing#T.TempDir
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>

* task: adding next version number

Co-authored-by: Patrik <zepatrik@users.noreply.github.com>
Co-authored-by: Michael Montgomery <mmontg1@gmail.com>
Co-authored-by: kyrozetera <jasonhale.w@gmail.com>
Co-authored-by: Reggie Riser <4960757+reggieriser@users.noreply.github.com>
Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>
Co-authored-by: Brian Buchholz <4773480+bhb603@users.noreply.github.com>
Co-authored-by: Mike Pontillo <mpontillo@users.noreply.github.com>
Co-authored-by: Benjamin Blattberg <ben.blattberg@objectrocket.com>
Co-authored-by: Jonathan Duck <Duckbrain30@gmail.com>
Co-authored-by: Arthur Knoepflin <arthur.knoepflin@epitech.eu>
Co-authored-by: karlhaas <haaskarl81@gmail.com>
Co-authored-by: Karl Haas <karl.haas@coditects.com>
Co-authored-by: Matthias Fasching <fasching.matthias@gmail.com>
Co-authored-by: Martin Eigenbrodt <martin.eigenbrodt@googlemail.com>
Co-authored-by: Eng Zer Jun <engzerjun@gmail.com>

* play time

* chore: updates

* chore: reset formatting

Co-authored-by: Antonio Pagano <645522+paganotoni@users.noreply.github.com>
Co-authored-by: Patrik <zepatrik@users.noreply.github.com>
Co-authored-by: Michael Montgomery <mmontg1@gmail.com>
Co-authored-by: kyrozetera <jasonhale.w@gmail.com>
Co-authored-by: Reggie Riser <4960757+reggieriser@users.noreply.github.com>
Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>
Co-authored-by: Brian Buchholz <4773480+bhb603@users.noreply.github.com>
Co-authored-by: Mike Pontillo <mpontillo@users.noreply.github.com>
Co-authored-by: Benjamin Blattberg <ben.blattberg@objectrocket.com>
Co-authored-by: Jonathan Duck <Duckbrain30@gmail.com>
Co-authored-by: Arthur Knoepflin <arthur.knoepflin@epitech.eu>
Co-authored-by: karlhaas <haaskarl81@gmail.com>
Co-authored-by: Karl Haas <karl.haas@coditects.com>
Co-authored-by: Matthias Fasching <fasching.matthias@gmail.com>
Co-authored-by: Martin Eigenbrodt <martin.eigenbrodt@googlemail.com>
Co-authored-by: Eng Zer Jun <engzerjun@gmail.com>

* task: adding release-env in the gitignore

* task: its release-env

* task: adding .release-env to the release-dry-run make

* task: changing the order of release steps

* task:changing the token

Co-authored-by: Patrik <zepatrik@users.noreply.github.com>
Co-authored-by: Michael Montgomery <mmontg1@gmail.com>
Co-authored-by: kyrozetera <jasonhale.w@gmail.com>
Co-authored-by: Reggie Riser <4960757+reggieriser@users.noreply.github.com>
Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>
Co-authored-by: Brian Buchholz <4773480+bhb603@users.noreply.github.com>
Co-authored-by: Mike Pontillo <mpontillo@users.noreply.github.com>
Co-authored-by: Benjamin Blattberg <ben.blattberg@objectrocket.com>
Co-authored-by: Jonathan Duck <Duckbrain30@gmail.com>
Co-authored-by: Arthur Knoepflin <arthur.knoepflin@epitech.eu>
Co-authored-by: karlhaas <haaskarl81@gmail.com>
Co-authored-by: Karl Haas <karl.haas@coditects.com>
Co-authored-by: Matthias Fasching <fasching.matthias@gmail.com>
Co-authored-by: Martin Eigenbrodt <martin.eigenbrodt@googlemail.com>
Co-authored-by: Eng Zer Jun <engzerjun@gmail.com>
Co-authored-by: Grant Zvolsky <grant@zvolsky.org>
Co-authored-by: Andrew Hobson <ahobson@truss.works>
Co-authored-by: Yonghwan SO <scinix@gmail.com>
Co-authored-by: Joey Freeland <30938344+jfreeland@users.noreply.github.com>
paganotoni added a commit that referenced this pull request May 27, 2022
* fix: improve model ID field customization (#604)

Updates places where `"id"` was hardcoded instead of using `model.IDField()`.

* Ensure uninitialized map is initialized when unmarshaling json
Add tests for this scenario

* exclude migration_table_name from connection string

* add test for OptionsString

* Add support for pointer FKs when preloading a belongs_to association (#602)

* feat: support context-aware tablenames (#614)

This patch adds a feature which enables pop to pass down the connection context to the model's TableName() function by implementing TableName(ctx context.Context) string. The context can be used to dynamically generate tablenames which can be important for prefixed or generic tables and other use cases.

* Bump pg deps (#616)

* Reset to development

* bumping pgx and pgconn versions

Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

* Latest from master (#620)

* Latest from development (#617)

* fix: improve model ID field customization (#604)

Updates places where `"id"` was hardcoded instead of using `model.IDField()`.

* Ensure uninitialized map is initialized when unmarshaling json
Add tests for this scenario

* exclude migration_table_name from connection string

* add test for OptionsString

* Add support for pointer FKs when preloading a belongs_to association (#602)

* feat: support context-aware tablenames (#614)

This patch adds a feature which enables pop to pass down the connection context to the model's TableName() function by implementing TableName(ctx context.Context) string. The context can be used to dynamically generate tablenames which can be important for prefixed or generic tables and other use cases.

* Bump pg deps (#616)

* Reset to development

* bumping pgx and pgconn versions

Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

Co-authored-by: Patrik <zepatrik@users.noreply.github.com>
Co-authored-by: Michael Montgomery <mmontg1@gmail.com>
Co-authored-by: kyrozetera <jasonhale.w@gmail.com>
Co-authored-by: Reggie Riser <4960757+reggieriser@users.noreply.github.com>
Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

* adding goreleaser syntaz (#619)

Co-authored-by: Patrik <zepatrik@users.noreply.github.com>
Co-authored-by: Michael Montgomery <mmontg1@gmail.com>
Co-authored-by: kyrozetera <jasonhale.w@gmail.com>
Co-authored-by: Reggie Riser <4960757+reggieriser@users.noreply.github.com>
Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

* Resolve issues in UPDATE and DELETE when using schemas (#618)

* Resolve MySQL issues and improve test migrations
* Bump CockroachDB to maintained and supported versions
Version 2.1 has reached EoL in 2019

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Use `PaginatorPageKey` and `PaginatorPerPageKey` variables (#615)

* update pagination_test

* Pass Time structure into timestamp update functions. (#625)

Closes #624

* Allow nullable JSONB and resolve MySQL regression (#639)

* Allow passing args to `Order` (#630)

* Added connection maximum idle time configuration (#635)

This PR add the possibility to configure the connection maximum idle time (https://golang.org/pkg/database/sql/#DB.SetConnMaxIdleTime).

Closes #632

BREAKING CHANGE: Requires Go 1.15 from now on.

* Bump sqlite to 3.35.4 / 1.14.7 (#642)

* Update pg, pgx, sqlx (#643)

- `jackc/pgx` to  version `v4.11.0`.
- `jmoiron/sqlx` to version`v1.3.3`
- `lib/pq` to version`v1.10.1`

* Fix Inner has many associations when passing on multiple arguments (#633)

* Fix Inner has many associations when passing on multiple arguments for inner fields

* Fix broken tests

* clean up extractFieldAndInnerFields function

Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Antonio Pagano <645522+paganotoni@users.noreply.github.com>

* Remove many to many TX condition for EagerPreload (#645)

* Remove the need to use Tx when loading many to many associations

* replace TX access to create a new tx.Store.Transaction() object

* Added fix/tests for has_many with pointer foreign key (#647)

Co-authored-by: Antonio Pagano <645522+paganotoni@users.noreply.github.com>

* Export WhereID, Alias, WhereNamedID (#637)

This patch export some model convenience functions which are useful when constructing queries outside of pop: custom updates, deletes, inserts, ...

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

Co-authored-by: Antonio Pagano <645522+paganotoni@users.noreply.github.com>

* fix: log model values everywhere (#656)

Some SQL logs were missing the values as argument. This adds all places

* Add delete to query builder (#658)

This allows writing delete queries without knowing the exact primary key or for composite keys.
`Destroy` only allows to delete by primary key, but there are many cases where you want to delete multiple rows or by some other query than the ID.

See #29

* Sort down migrations (#657)

Basically, just reversing the up migration order does not work, as that puts "all" migrations before specific ones. Therefore, I added implemented the proper `Less` function for down migrations explicitly.

Related #533

Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>

* Preserve eager information when validating models (#664) (#665)

Co-authored-by: Karl Haas <karl.haas@coditects.com>

* Migrate from packr to fs (#667)

* Updating Pgx (#660)

* adding goreleaser syntaz

* updating pgx now really

* Migrate from packr to fs

* Migrate to v6

* Use old build tags

* Update error handling

* Fix error after rebase

* Fix error handling

* Fix filenames for embed Go 1.16 usage

Co-authored-by: Antonio Pagano <645522+paganotoni@users.noreply.github.com>

* Task merging master (#669)

* v5.3.4 (#644)

* fix: improve model ID field customization (#604)

Updates places where `"id"` was hardcoded instead of using `model.IDField()`.

* Ensure uninitialized map is initialized when unmarshaling json
Add tests for this scenario

* exclude migration_table_name from connection string

* add test for OptionsString

* Add support for pointer FKs when preloading a belongs_to association (#602)

* feat: support context-aware tablenames (#614)

This patch adds a feature which enables pop to pass down the connection context to the model's TableName() function by implementing TableName(ctx context.Context) string. The context can be used to dynamically generate tablenames which can be important for prefixed or generic tables and other use cases.

* Bump pg deps (#616)

* Reset to development

* bumping pgx and pgconn versions

Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

* Latest from master (#620)

* Latest from development (#617)

* fix: improve model ID field customization (#604)

Updates places where `"id"` was hardcoded instead of using `model.IDField()`.

* Ensure uninitialized map is initialized when unmarshaling json
Add tests for this scenario

* exclude migration_table_name from connection string

* add test for OptionsString

* Add support for pointer FKs when preloading a belongs_to association (#602)

* feat: support context-aware tablenames (#614)

This patch adds a feature which enables pop to pass down the connection context to the model's TableName() function by implementing TableName(ctx context.Context) string. The context can be used to dynamically generate tablenames which can be important for prefixed or generic tables and other use cases.

* Bump pg deps (#616)

* Reset to development

* bumping pgx and pgconn versions

Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

Co-authored-by: Patrik <zepatrik@users.noreply.github.com>
Co-authored-by: Michael Montgomery <mmontg1@gmail.com>
Co-authored-by: kyrozetera <jasonhale.w@gmail.com>
Co-authored-by: Reggie Riser <4960757+reggieriser@users.noreply.github.com>
Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

* adding goreleaser syntaz (#619)

Co-authored-by: Patrik <zepatrik@users.noreply.github.com>
Co-authored-by: Michael Montgomery <mmontg1@gmail.com>
Co-authored-by: kyrozetera <jasonhale.w@gmail.com>
Co-authored-by: Reggie Riser <4960757+reggieriser@users.noreply.github.com>
Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

* Resolve issues in UPDATE and DELETE when using schemas (#618)

* Resolve MySQL issues and improve test migrations
* Bump CockroachDB to maintained and supported versions
Version 2.1 has reached EoL in 2019

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Use `PaginatorPageKey` and `PaginatorPerPageKey` variables (#615)

* update pagination_test

* Pass Time structure into timestamp update functions. (#625)

Closes #624

* Allow nullable JSONB and resolve MySQL regression (#639)

* Allow passing args to `Order` (#630)

* Added connection maximum idle time configuration (#635)

This PR add the possibility to configure the connection maximum idle time (https://golang.org/pkg/database/sql/#DB.SetConnMaxIdleTime).

Closes #632

BREAKING CHANGE: Requires Go 1.15 from now on.

* Bump sqlite to 3.35.4 / 1.14.7 (#642)

* Update pg, pgx, sqlx (#643)

- `jackc/pgx` to  version `v4.11.0`.
- `jmoiron/sqlx` to version`v1.3.3`
- `lib/pq` to version`v1.10.1`

* Fix Inner has many associations when passing on multiple arguments (#633)

* Fix Inner has many associations when passing on multiple arguments for inner fields

* Fix broken tests

* clean up extractFieldAndInnerFields function

Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Antonio Pagano <645522+paganotoni@users.noreply.github.com>

* Remove many to many TX condition for EagerPreload (#645)

* Remove the need to use Tx when loading many to many associations

* replace TX access to create a new tx.Store.Transaction() object

* Added fix/tests for has_many with pointer foreign key (#647)

Co-authored-by: Antonio Pagano <645522+paganotoni@users.noreply.github.com>

Co-authored-by: Patrik <zepatrik@users.noreply.github.com>
Co-authored-by: Michael Montgomery <mmontg1@gmail.com>
Co-authored-by: kyrozetera <jasonhale.w@gmail.com>
Co-authored-by: Reggie Riser <4960757+reggieriser@users.noreply.github.com>
Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>
Co-authored-by: Brian Buchholz <4773480+bhb603@users.noreply.github.com>
Co-authored-by: Mike Pontillo <mpontillo@users.noreply.github.com>
Co-authored-by: Benjamin Blattberg <ben.blattberg@objectrocket.com>
Co-authored-by: Jonathan Duck <Duckbrain30@gmail.com>
Co-authored-by: Arthur Knoepflin <arthur.knoepflin@epitech.eu>

* Updating Pgx (#660)

* adding goreleaser syntaz

* updating pgx now really

* tidying

Co-authored-by: Patrik <zepatrik@users.noreply.github.com>
Co-authored-by: Michael Montgomery <mmontg1@gmail.com>
Co-authored-by: kyrozetera <jasonhale.w@gmail.com>
Co-authored-by: Reggie Riser <4960757+reggieriser@users.noreply.github.com>
Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>
Co-authored-by: Brian Buchholz <4773480+bhb603@users.noreply.github.com>
Co-authored-by: Mike Pontillo <mpontillo@users.noreply.github.com>
Co-authored-by: Benjamin Blattberg <ben.blattberg@objectrocket.com>
Co-authored-by: Jonathan Duck <Duckbrain30@gmail.com>
Co-authored-by: Arthur Knoepflin <arthur.knoepflin@epitech.eu>

* Replace removed  command

The  command has been removed from the CLI. This patch introduces a new mechanism to reliably dump the SQL schema for CockroachDB.

* Resolve `EagerPreload` panic caused for pointer references

Resolves a panic where `EagerPreload` tried to set `reflect.Struct` for a `reflect.Pointer` on 1.. associations.

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Resolve `EagerPreload` panic caused by NullUUID

Resolves a panic where `EagerPreload` was trying to set UUID into NullUUID.

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Support pointers in n+1 `Eager` loading

Resolves an issue where n+1 eager associations would error with a double pointer in `associations.ForStruct`.

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Improve error message of associations.ForStruct

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Add test cases for `IsZeroOfUnderlyingType`

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Resolve an obscure bug where empty structs got loaded for NULL foreign keys

Closes #139

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Resolve association regression in finders.go

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Use dedicated migrations for preloading regression test

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Fix code regression

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Fix test code regressions

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Fix sql migration order

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Resolve order issue in test

* Ignore order when testing for nil values in test

* Pass Context during exec in create. (#688)

* feat: support embedded struct fields (#691)

* test: use `T.TempDir` to create temporary test directory

This commit replaces `ioutil.TempDir` with `t.TempDir` in tests. The
directory created by `t.TempDir` is automatically removed when the test
and all its subtests complete.

Prior to this commit, temporary directory created using `ioutil.TempDir`
needs to be removed manually by calling `os.RemoveAll`, which is omitted
in some tests. The error handling boilerplate e.g.
	defer func() {
		if err := os.RemoveAll(dir); err != nil {
			t.Fatal(err)
		}
	}
is also tedious, but `t.TempDir` handles this for us nicely.

Reference: https://pkg.go.dev/testing#T.TempDir
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>

* task: adding next version number

* fix: associations for embedded fields

* test: add other fields to duplicate type, because of some kind of query builder cache

* feat: implement UpdateQuery

This commit introduces a new function, UpdateQuery, that enables updating all
rows matched by a query. It can be used for conditional updates.

* feat: allow customizing the time used for CreatedAt/UpdatedAt

* feat: allow using SQLite without built tag via include (#662)

* preparing go1.18 support (package specific workflow)

* feat: darwin arm64 binary (#690)

* feat: arm64 binary

* v6.0.2 (#704)

* fix: improve model ID field customization (#604)

Updates places where `"id"` was hardcoded instead of using `model.IDField()`.

* Ensure uninitialized map is initialized when unmarshaling json
Add tests for this scenario

* exclude migration_table_name from connection string

* add test for OptionsString

* Add support for pointer FKs when preloading a belongs_to association (#602)

* feat: support context-aware tablenames (#614)

This patch adds a feature which enables pop to pass down the connection context to the model's TableName() function by implementing TableName(ctx context.Context) string. The context can be used to dynamically generate tablenames which can be important for prefixed or generic tables and other use cases.

* Bump pg deps (#616)

* Reset to development

* bumping pgx and pgconn versions

Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

* Latest from master (#620)

* Latest from development (#617)

* fix: improve model ID field customization (#604)

Updates places where `"id"` was hardcoded instead of using `model.IDField()`.

* Ensure uninitialized map is initialized when unmarshaling json
Add tests for this scenario

* exclude migration_table_name from connection string

* add test for OptionsString

* Add support for pointer FKs when preloading a belongs_to association (#602)

* feat: support context-aware tablenames (#614)

This patch adds a feature which enables pop to pass down the connection context to the model's TableName() function by implementing TableName(ctx context.Context) string. The context can be used to dynamically generate tablenames which can be important for prefixed or generic tables and other use cases.

* Bump pg deps (#616)

* Reset to development

* bumping pgx and pgconn versions

Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

Co-authored-by: Patrik <zepatrik@users.noreply.github.com>
Co-authored-by: Michael Montgomery <mmontg1@gmail.com>
Co-authored-by: kyrozetera <jasonhale.w@gmail.com>
Co-authored-by: Reggie Riser <4960757+reggieriser@users.noreply.github.com>
Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

* adding goreleaser syntaz (#619)

Co-authored-by: Patrik <zepatrik@users.noreply.github.com>
Co-authored-by: Michael Montgomery <mmontg1@gmail.com>
Co-authored-by: kyrozetera <jasonhale.w@gmail.com>
Co-authored-by: Reggie Riser <4960757+reggieriser@users.noreply.github.com>
Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

* Resolve issues in UPDATE and DELETE when using schemas (#618)

* Resolve MySQL issues and improve test migrations
* Bump CockroachDB to maintained and supported versions
Version 2.1 has reached EoL in 2019

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Use `PaginatorPageKey` and `PaginatorPerPageKey` variables (#615)

* update pagination_test

* Pass Time structure into timestamp update functions. (#625)

Closes #624

* Allow nullable JSONB and resolve MySQL regression (#639)

* Allow passing args to `Order` (#630)

* Added connection maximum idle time configuration (#635)

This PR add the possibility to configure the connection maximum idle time (https://golang.org/pkg/database/sql/#DB.SetConnMaxIdleTime).

Closes #632

BREAKING CHANGE: Requires Go 1.15 from now on.

* Bump sqlite to 3.35.4 / 1.14.7 (#642)

* Update pg, pgx, sqlx (#643)

- `jackc/pgx` to  version `v4.11.0`.
- `jmoiron/sqlx` to version`v1.3.3`
- `lib/pq` to version`v1.10.1`

* Fix Inner has many associations when passing on multiple arguments (#633)

* Fix Inner has many associations when passing on multiple arguments for inner fields

* Fix broken tests

* clean up extractFieldAndInnerFields function

Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Antonio Pagano <645522+paganotoni@users.noreply.github.com>

* Remove many to many TX condition for EagerPreload (#645)

* Remove the need to use Tx when loading many to many associations

* replace TX access to create a new tx.Store.Transaction() object

* Added fix/tests for has_many with pointer foreign key (#647)

Co-authored-by: Antonio Pagano <645522+paganotoni@users.noreply.github.com>

* Export WhereID, Alias, WhereNamedID (#637)

This patch export some model convenience functions which are useful when constructing queries outside of pop: custom updates, deletes, inserts, ...

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

Co-authored-by: Antonio Pagano <645522+paganotoni@users.noreply.github.com>

* fix: log model values everywhere (#656)

Some SQL logs were missing the values as argument. This adds all places

* Add delete to query builder (#658)

This allows writing delete queries without knowing the exact primary key or for composite keys.
`Destroy` only allows to delete by primary key, but there are many cases where you want to delete multiple rows or by some other query than the ID.

See #29

* Sort down migrations (#657)

Basically, just reversing the up migration order does not work, as that puts "all" migrations before specific ones. Therefore, I added implemented the proper `Less` function for down migrations explicitly.

Related #533

Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>

* Preserve eager information when validating models (#664) (#665)

Co-authored-by: Karl Haas <karl.haas@coditects.com>

* Migrate from packr to fs (#667)

* Updating Pgx (#660)

* adding goreleaser syntaz

* updating pgx now really

* Migrate from packr to fs

* Migrate to v6

* Use old build tags

* Update error handling

* Fix error after rebase

* Fix error handling

* Fix filenames for embed Go 1.16 usage

Co-authored-by: Antonio Pagano <645522+paganotoni@users.noreply.github.com>

* Task merging master (#669)

* v5.3.4 (#644)

* fix: improve model ID field customization (#604)

Updates places where `"id"` was hardcoded instead of using `model.IDField()`.

* Ensure uninitialized map is initialized when unmarshaling json
Add tests for this scenario

* exclude migration_table_name from connection string

* add test for OptionsString

* Add support for pointer FKs when preloading a belongs_to association (#602)

* feat: support context-aware tablenames (#614)

This patch adds a feature which enables pop to pass down the connection context to the model's TableName() function by implementing TableName(ctx context.Context) string. The context can be used to dynamically generate tablenames which can be important for prefixed or generic tables and other use cases.

* Bump pg deps (#616)

* Reset to development

* bumping pgx and pgconn versions

Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

* Latest from master (#620)

* Latest from development (#617)

* fix: improve model ID field customization (#604)

Updates places where `"id"` was hardcoded instead of using `model.IDField()`.

* Ensure uninitialized map is initialized when unmarshaling json
Add tests for this scenario

* exclude migration_table_name from connection string

* add test for OptionsString

* Add support for pointer FKs when preloading a belongs_to association (#602)

* feat: support context-aware tablenames (#614)

This patch adds a feature which enables pop to pass down the connection context to the model's TableName() function by implementing TableName(ctx context.Context) string. The context can be used to dynamically generate tablenames which can be important for prefixed or generic tables and other use cases.

* Bump pg deps (#616)

* Reset to development

* bumping pgx and pgconn versions

Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

Co-authored-by: Patrik <zepatrik@users.noreply.github.com>
Co-authored-by: Michael Montgomery <mmontg1@gmail.com>
Co-authored-by: kyrozetera <jasonhale.w@gmail.com>
Co-authored-by: Reggie Riser <4960757+reggieriser@users.noreply.github.com>
Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

* adding goreleaser syntaz (#619)

Co-authored-by: Patrik <zepatrik@users.noreply.github.com>
Co-authored-by: Michael Montgomery <mmontg1@gmail.com>
Co-authored-by: kyrozetera <jasonhale.w@gmail.com>
Co-authored-by: Reggie Riser <4960757+reggieriser@users.noreply.github.com>
Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>

* Resolve issues in UPDATE and DELETE when using schemas (#618)

* Resolve MySQL issues and improve test migrations
* Bump CockroachDB to maintained and supported versions
Version 2.1 has reached EoL in 2019

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Use `PaginatorPageKey` and `PaginatorPerPageKey` variables (#615)

* update pagination_test

* Pass Time structure into timestamp update functions. (#625)

Closes #624

* Allow nullable JSONB and resolve MySQL regression (#639)

* Allow passing args to `Order` (#630)

* Added connection maximum idle time configuration (#635)

This PR add the possibility to configure the connection maximum idle time (https://golang.org/pkg/database/sql/#DB.SetConnMaxIdleTime).

Closes #632

BREAKING CHANGE: Requires Go 1.15 from now on.

* Bump sqlite to 3.35.4 / 1.14.7 (#642)

* Update pg, pgx, sqlx (#643)

- `jackc/pgx` to  version `v4.11.0`.
- `jmoiron/sqlx` to version`v1.3.3`
- `lib/pq` to version`v1.10.1`

* Fix Inner has many associations when passing on multiple arguments (#633)

* Fix Inner has many associations when passing on multiple arguments for inner fields

* Fix broken tests

* clean up extractFieldAndInnerFields function

Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Antonio Pagano <645522+paganotoni@users.noreply.github.com>

* Remove many to many TX condition for EagerPreload (#645)

* Remove the need to use Tx when loading many to many associations

* replace TX access to create a new tx.Store.Transaction() object

* Added fix/tests for has_many with pointer foreign key (#647)

Co-authored-by: Antonio Pagano <645522+paganotoni@users.noreply.github.com>

Co-authored-by: Patrik <zepatrik@users.noreply.github.com>
Co-authored-by: Michael Montgomery <mmontg1@gmail.com>
Co-authored-by: kyrozetera <jasonhale.w@gmail.com>
Co-authored-by: Reggie Riser <4960757+reggieriser@users.noreply.github.com>
Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>
Co-authored-by: Brian Buchholz <4773480+bhb603@users.noreply.github.com>
Co-authored-by: Mike Pontillo <mpontillo@users.noreply.github.com>
Co-authored-by: Benjamin Blattberg <ben.blattberg@objectrocket.com>
Co-authored-by: Jonathan Duck <Duckbrain30@gmail.com>
Co-authored-by: Arthur Knoepflin <arthur.knoepflin@epitech.eu>

* Updating Pgx (#660)

* adding goreleaser syntaz

* updating pgx now really

* tidying

Co-authored-by: Patrik <zepatrik@users.noreply.github.com>
Co-authored-by: Michael Montgomery <mmontg1@gmail.com>
Co-authored-by: kyrozetera <jasonhale.w@gmail.com>
Co-authored-by: Reggie Riser <4960757+reggieriser@users.noreply.github.com>
Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>
Co-authored-by: Brian Buchholz <4773480+bhb603@users.noreply.github.com>
Co-authored-by: Mike Pontillo <mpontillo@users.noreply.github.com>
Co-authored-by: Benjamin Blattberg <ben.blattberg@objectrocket.com>
Co-authored-by: Jonathan Duck <Duckbrain30@gmail.com>
Co-authored-by: Arthur Knoepflin <arthur.knoepflin@epitech.eu>

* Replace removed  command

The  command has been removed from the CLI. This patch introduces a new mechanism to reliably dump the SQL schema for CockroachDB.

* Resolve `EagerPreload` panic caused for pointer references

Resolves a panic where `EagerPreload` tried to set `reflect.Struct` for a `reflect.Pointer` on 1.. associations.

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Resolve `EagerPreload` panic caused by NullUUID

Resolves a panic where `EagerPreload` was trying to set UUID into NullUUID.

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Support pointers in n+1 `Eager` loading

Resolves an issue where n+1 eager associations would error with a double pointer in `associations.ForStruct`.

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Improve error message of associations.ForStruct

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Add test cases for `IsZeroOfUnderlyingType`

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Resolve an obscure bug where empty structs got loaded for NULL foreign keys

Closes #139

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Resolve association regression in finders.go

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Use dedicated migrations for preloading regression test

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Fix code regression

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Fix test code regressions

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Fix sql migration order

Signed-off-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

* Resolve order issue in test

* Ignore order when testing for nil values in test

* Pass Context during exec in create. (#688)

* feat: support embedded struct fields (#691)

* test: use `T.TempDir` to create temporary test directory

This commit replaces `ioutil.TempDir` with `t.TempDir` in tests. The
directory created by `t.TempDir` is automatically removed when the test
and all its subtests complete.

Prior to this commit, temporary directory created using `ioutil.TempDir`
needs to be removed manually by calling `os.RemoveAll`, which is omitted
in some tests. The error handling boilerplate e.g.
	defer func() {
		if err := os.RemoveAll(dir); err != nil {
			t.Fatal(err)
		}
	}
is also tedious, but `t.TempDir` handles this for us nicely.

Reference: https://pkg.go.dev/testing#T.TempDir
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>

* task: adding next version number

Co-authored-by: Patrik <zepatrik@users.noreply.github.com>
Co-authored-by: Michael Montgomery <mmontg1@gmail.com>
Co-authored-by: kyrozetera <jasonhale.w@gmail.com>
Co-authored-by: Reggie Riser <4960757+reggieriser@users.noreply.github.com>
Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>
Co-authored-by: Brian Buchholz <4773480+bhb603@users.noreply.github.com>
Co-authored-by: Mike Pontillo <mpontillo@users.noreply.github.com>
Co-authored-by: Benjamin Blattberg <ben.blattberg@objectrocket.com>
Co-authored-by: Jonathan Duck <Duckbrain30@gmail.com>
Co-authored-by: Arthur Knoepflin <arthur.knoepflin@epitech.eu>
Co-authored-by: karlhaas <haaskarl81@gmail.com>
Co-authored-by: Karl Haas <karl.haas@coditects.com>
Co-authored-by: Matthias Fasching <fasching.matthias@gmail.com>
Co-authored-by: Martin Eigenbrodt <martin.eigenbrodt@googlemail.com>
Co-authored-by: Eng Zer Jun <engzerjun@gmail.com>

* play time

* chore: updates

* chore: reset formatting

Co-authored-by: Antonio Pagano <645522+paganotoni@users.noreply.github.com>
Co-authored-by: Patrik <zepatrik@users.noreply.github.com>
Co-authored-by: Michael Montgomery <mmontg1@gmail.com>
Co-authored-by: kyrozetera <jasonhale.w@gmail.com>
Co-authored-by: Reggie Riser <4960757+reggieriser@users.noreply.github.com>
Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>
Co-authored-by: Brian Buchholz <4773480+bhb603@users.noreply.github.com>
Co-authored-by: Mike Pontillo <mpontillo@users.noreply.github.com>
Co-authored-by: Benjamin Blattberg <ben.blattberg@objectrocket.com>
Co-authored-by: Jonathan Duck <Duckbrain30@gmail.com>
Co-authored-by: Arthur Knoepflin <arthur.knoepflin@epitech.eu>
Co-authored-by: karlhaas <haaskarl81@gmail.com>
Co-authored-by: Karl Haas <karl.haas@coditects.com>
Co-authored-by: Matthias Fasching <fasching.matthias@gmail.com>
Co-authored-by: Martin Eigenbrodt <martin.eigenbrodt@googlemail.com>
Co-authored-by: Eng Zer Jun <engzerjun@gmail.com>

* task: adding release-env in the gitignore

* task: its release-env

* task: adding .release-env to the release-dry-run make

* task: changing the order of release steps

* task:changing the token

* feature: supporting sqlite :memory: and mode=memory on the sqlite driver (#717)

* feat: expose connection transactions with context and options

* task: adding vscode to the ignore list

Co-authored-by: Patrik <zepatrik@users.noreply.github.com>
Co-authored-by: Michael Montgomery <mmontg1@gmail.com>
Co-authored-by: kyrozetera <jasonhale.w@gmail.com>
Co-authored-by: Reggie Riser <4960757+reggieriser@users.noreply.github.com>
Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>
Co-authored-by: Stanislas Michalak <stanislas.michalak@gmail.com>
Co-authored-by: Larry M Jordan <larrymoralesjordan@gmail.com>
Co-authored-by: Brian Buchholz <4773480+bhb603@users.noreply.github.com>
Co-authored-by: Mike Pontillo <mpontillo@users.noreply.github.com>
Co-authored-by: Benjamin Blattberg <ben.blattberg@objectrocket.com>
Co-authored-by: Jonathan Duck <Duckbrain30@gmail.com>
Co-authored-by: Arthur Knoepflin <arthur.knoepflin@epitech.eu>
Co-authored-by: karlhaas <haaskarl81@gmail.com>
Co-authored-by: Karl Haas <karl.haas@coditects.com>
Co-authored-by: Matthias Fasching <fasching.matthias@gmail.com>
Co-authored-by: Martin Eigenbrodt <martin.eigenbrodt@googlemail.com>
Co-authored-by: Eng Zer Jun <engzerjun@gmail.com>
Co-authored-by: Grant Zvolsky <grant@zvolsky.org>
Co-authored-by: Andrew Hobson <ahobson@truss.works>
Co-authored-by: Yonghwan SO <scinix@gmail.com>
Co-authored-by: Joey Freeland <30938344+jfreeland@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants