3 authors Merge #112349 #112944
93c069d Oct 24, 2023
Merge #112349 #112944
112349: build: upgrade to golang v1.21.3 r=rail,rharding6373 a=rickystewart

* [ ] Adjust the Pebble tests to run in new version.
* [x] Adjust version in the TeamCity agent image ([setup script](./packer/teamcity-agent.sh))
* [x] Update `build/teamcity/internal/release/build-and-publish-patched-go/impl.sh` with the new version and adjust SHA256 sums as necessary.
* [x] Adjust `GO_VERSION` and `GO_FIPS_COMMIT` for the FIPS Go toolchain ([source](./teamcity/internal/release/build-and-publish-patched-go/impl-fips.sh)).
* [x] Run the `Internal / Cockroach / Build / Toolchains / Publish Patched Go for Mac` build configuration in TeamCity with your latest version of the script above. Note the job depends on another job `Build and Publish Patched Go`. That job prints out the SHA256 of all tarballs, which you will need to copy-paste into `WORKSPACE` (see below). `Publish Patched Go for Mac` is an extra step that publishes the *signed* `go` binaries for macOS. That job also prints out the SHA256 of the Mac tarballs in particular.
* [x] Adjust `--`@io_bazel_rules_go//go/toolchain:sdk_version`` in [.bazelrc](../.bazelrc).
* [x] Bump the version in `WORKSPACE` under `go_download_sdk`. You may need to bump [rules_go](https://github.com/bazelbuild/rules_go/releases). Also edit the filenames listed in `sdks` and update all the hashes to match what you built in the step above.
* [x] Bump the version in `WORKSPACE` under `go_download_sdk` for the FIPS version of Go (`go_sdk_fips`).
* [x] Run `./dev generate bazel` to refresh `distdir_files.bzl`, then `bazel fetch `@distdir//:archives`` to ensure you've updated all hashes to the correct value.
* [x] Bump the go version in `go.mod`.
* [x] Bump the default installed version of Go in `bootstrap-debian.sh` ([source](./bootstrap/bootstrap-debian.sh)).
* [x] Replace other mentions of the older version of go (grep for `golang:<old_version>` and `go<old_version>`).
* [ ] Ask the Developer Infrastructure team to deploy new TeamCity agent images according to [packer/README.md](./packer/README.md)

Closes #112088.

Epic: none
Release note (general change): Updated Go version to 1.21.3

112944: plpgsql: correctly parse UPSERT statements r=DrewKimball a=DrewKimball

PLpgSQL has a special `INTO` clause that allows assigning the output of a SQL statement to a set of PLpgSQL variables. This complicates parsing of some SQL statements within a PLpgSQL block, since an `INTO` token may be a PLpgSQL `INTO`, or it may be part of a SQL statement like `INSERT INTO` or `IMPORT INTO`. These cases are handled specially, since there are relatively few of them.

Previously, we forgot to add this special handling for the case of `UPSERT INTO`, prevented execution of `UPSERT` statements within a PLpgSQL routine. This patch adds `UPSERT` to the list of special cases.

Fixes #112940

Release note: None

Co-authored-by: Yevgeniy Miretskiy <yevgeniy@cockroachlabs.com>
Co-authored-by: Drew Kimball <drewk@cockroachlabs.com>
93c069d