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