diff --git a/DEPS.bzl b/DEPS.bzl index eb1c874b1f10..efd286fd0de4 100644 --- a/DEPS.bzl +++ b/DEPS.bzl @@ -169,16 +169,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/ajstarks/svgo/com_github_ajstarks_svgo-v0.0.0-20211024235047-1546f124cd8b.zip", ], ) - go_repository( - name = "com_github_akavel_rsrc", - build_file_proto_mode = "disable_global", - importpath = "github.com/akavel/rsrc", - sha256 = "13954a09edc3a680d633c5ea7b4be902df3a70ca1720b349faadca44dc0c7ecc", - strip_prefix = "github.com/akavel/rsrc@v0.8.0", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/akavel/rsrc/com_github_akavel_rsrc-v0.8.0.zip", - ], - ) go_repository( name = "com_github_alecthomas_kingpin_v2", build_file_proto_mode = "disable_global", @@ -429,16 +419,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/armon/go-radix/com_github_armon_go_radix-v1.0.0.zip", ], ) - go_repository( - name = "com_github_armon_go_socks5", - build_file_proto_mode = "disable_global", - importpath = "github.com/armon/go-socks5", - sha256 = "f473e6dce826a0552639833cf72cfaa8bc7141daa7b537622d7f78eacfd9dfb3", - strip_prefix = "github.com/armon/go-socks5@v0.0.0-20160902184237-e75332964ef5", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/armon/go-socks5/com_github_armon_go_socks5-v0.0.0-20160902184237-e75332964ef5.zip", - ], - ) go_repository( name = "com_github_aryann_difflib", build_file_proto_mode = "disable_global", @@ -813,16 +793,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/aymerick/raymond/com_github_aymerick_raymond-v2.0.3-0.20180322193309-b565731e1464+incompatible.zip", ], ) - go_repository( - name = "com_github_azure_azure_pipeline_go", - build_file_proto_mode = "disable_global", - importpath = "github.com/Azure/azure-pipeline-go", - sha256 = "83822bc4aca977af31cdb1c46012e64c819d2b9ed53885dd0f8dca5566993a5f", - strip_prefix = "github.com/Azure/azure-pipeline-go@v0.2.1", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/Azure/azure-pipeline-go/com_github_azure_azure_pipeline_go-v0.2.1.zip", - ], - ) go_repository( name = "com_github_azure_azure_sdk_for_go", build_file_proto_mode = "disable_global", @@ -957,16 +927,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/com_github_azure_azure_sdk_for_go_sdk_storage_azblob-v1.0.0.zip", ], ) - go_repository( - name = "com_github_azure_azure_storage_blob_go", - build_file_proto_mode = "disable_global", - importpath = "github.com/Azure/azure-storage-blob-go", - sha256 = "3b02b720c25bbb6cdaf77f45a29a21e374e087081dedfeac2700aed6147b4b35", - strip_prefix = "github.com/Azure/azure-storage-blob-go@v0.8.0", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/Azure/azure-storage-blob-go/com_github_azure_azure_storage_blob_go-v0.8.0.zip", - ], - ) go_repository( name = "com_github_azure_go_ansiterm", build_file_proto_mode = "disable_global", @@ -1375,10 +1335,10 @@ def go_deps(): name = "com_github_buger_jsonparser", build_file_proto_mode = "disable_global", importpath = "github.com/buger/jsonparser", - sha256 = "336c5facdeef6466131bf24c06f3ae1a40d038a7e6fdc3fcf3ab308ff50300c1", - strip_prefix = "github.com/buger/jsonparser@v0.0.0-20200322175846-f7e751efca13", + sha256 = "95752271d3be86828197eb3442b1693672e934bb0bbd3d8395b2635034106aed", + strip_prefix = "github.com/buger/jsonparser@v0.0.0-20180808090653-f4dd9f5a6b44", urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/buger/jsonparser/com_github_buger_jsonparser-v0.0.0-20200322175846-f7e751efca13.zip", + "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/buger/jsonparser/com_github_buger_jsonparser-v0.0.0-20180808090653-f4dd9f5a6b44.zip", ], ) go_repository( @@ -1431,16 +1391,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/BurntSushi/xgb/com_github_burntsushi_xgb-v0.0.0-20160522181843-27f122750802.zip", ], ) - go_repository( - name = "com_github_burntsushi_xgbutil", - build_file_proto_mode = "disable_global", - importpath = "github.com/BurntSushi/xgbutil", - sha256 = "680bb03650f0f43760cab53ec7b3b159ea489f04f379bbba25b5a8d77a2de2e0", - strip_prefix = "github.com/BurntSushi/xgbutil@v0.0.0-20160919175755-f7c97cef3b4e", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/BurntSushi/xgbutil/com_github_burntsushi_xgbutil-v0.0.0-20160919175755-f7c97cef3b4e.zip", - ], - ) go_repository( name = "com_github_c_bata_go_prompt", build_file_proto_mode = "disable_global", @@ -1991,16 +1941,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/Codefor/geohash/com_github_codefor_geohash-v0.0.0-20140723084247-1b41c28e3a9d.zip", ], ) - go_repository( - name = "com_github_codegangsta_cli", - build_file_proto_mode = "disable_global", - importpath = "github.com/codegangsta/cli", - sha256 = "a5a237b9582cf92f0263865760457443bc061da1b1cda4dbf122e9ae53c8303b", - strip_prefix = "github.com/codegangsta/cli@v1.20.0", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/codegangsta/cli/com_github_codegangsta_cli-v1.20.0.zip", - ], - ) go_repository( name = "com_github_codegangsta_inject", build_file_proto_mode = "disable_global", @@ -2271,16 +2211,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/coreos/pkg/com_github_coreos_pkg-v0.0.0-20180928190104-399ea9e2e55f.zip", ], ) - go_repository( - name = "com_github_corpix_uarand", - build_file_proto_mode = "disable_global", - importpath = "github.com/corpix/uarand", - sha256 = "e2220522fbb3b8f21b44e7b6aecf52177738d82809ca4ab6918043ed5b19857c", - strip_prefix = "github.com/corpix/uarand@v0.1.1", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/corpix/uarand/com_github_corpix_uarand-v0.1.1.zip", - ], - ) go_repository( name = "com_github_cpuguy83_go_md2man", build_file_proto_mode = "disable_global", @@ -2321,16 +2251,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/crossdock/crossdock-go/com_github_crossdock_crossdock_go-v0.0.0-20160816171116-049aabb0122b.zip", ], ) - go_repository( - name = "com_github_cyberdelia_go_metrics_graphite", - build_file_proto_mode = "disable_global", - importpath = "github.com/cyberdelia/go-metrics-graphite", - sha256 = "38a34b96a597d50553e367de6e4eb3488e83dc37cae3930b38d9b48695b08b0c", - strip_prefix = "github.com/cyberdelia/go-metrics-graphite@v0.0.0-20161219230853-39f87cc3b432", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cyberdelia/go-metrics-graphite/com_github_cyberdelia_go_metrics_graphite-v0.0.0-20161219230853-39f87cc3b432.zip", - ], - ) go_repository( name = "com_github_cyberdelia_templates", build_file_proto_mode = "disable_global", @@ -2391,16 +2311,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/d2g/hardwareaddr/com_github_d2g_hardwareaddr-v0.0.0-20190221164911-e7d9fbe030e4.zip", ], ) - go_repository( - name = "com_github_daaku_go_zipexe", - build_file_proto_mode = "disable_global", - importpath = "github.com/daaku/go.zipexe", - sha256 = "74d7a0242c03c3c03220e56a59da5f97d3478743250740df538e05e6b609f553", - strip_prefix = "github.com/daaku/go.zipexe@v1.0.0", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/daaku/go.zipexe/com_github_daaku_go_zipexe-v1.0.0.zip", - ], - ) go_repository( name = "com_github_danieljoos_wincred", build_file_proto_mode = "disable_global", @@ -3172,26 +3082,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/gavv/httpexpect/com_github_gavv_httpexpect-v2.0.0+incompatible.zip", ], ) - go_repository( - name = "com_github_geertjohan_go_incremental", - build_file_proto_mode = "disable_global", - importpath = "github.com/GeertJohan/go.incremental", - sha256 = "ce46b3b717f8d2927046bcfb99c6f490b1b547a681e6b23240ac2c2292a891e8", - strip_prefix = "github.com/GeertJohan/go.incremental@v1.0.0", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/GeertJohan/go.incremental/com_github_geertjohan_go_incremental-v1.0.0.zip", - ], - ) - go_repository( - name = "com_github_geertjohan_go_rice", - build_file_proto_mode = "disable_global", - importpath = "github.com/GeertJohan/go.rice", - sha256 = "2fc48b9422bf356c18ed3fe32ec52f6a8b87ac168f83d2eed249afaebcc3eeb8", - strip_prefix = "github.com/GeertJohan/go.rice@v1.0.0", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/GeertJohan/go.rice/com_github_geertjohan_go_rice-v1.0.0.zip", - ], - ) go_repository( name = "com_github_getkin_kin_openapi", build_file_proto_mode = "disable_global", @@ -4176,16 +4066,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/google/go-github/com_github_google_go_github-v17.0.0+incompatible.zip", ], ) - go_repository( - name = "com_github_google_go_github_v27", - build_file_proto_mode = "disable_global", - importpath = "github.com/google/go-github/v27", - sha256 = "c0bb2e2b9d8b610fd1d4b9fa8a3636a5337f19aecec33e76aecbf32ae4e192bb", - strip_prefix = "github.com/google/go-github/v27@v27.0.4", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/google/go-github/v27/com_github_google_go_github_v27-v27.0.4.zip", - ], - ) go_repository( name = "com_github_google_go_github_v61", build_file_proto_mode = "disable_global", @@ -4370,10 +4250,10 @@ def go_deps(): name = "com_github_gopherjs_gopherjs", build_file_proto_mode = "disable_global", importpath = "github.com/gopherjs/gopherjs", - sha256 = "096bf06513b3607377446f9864eab5099652c0985c1614b7e89ca92cd8989178", - strip_prefix = "github.com/gopherjs/gopherjs@v0.0.0-20181103185306-d547d1d9531e", + sha256 = "9b9ccc9606dfeae2fb533f768b437025797dc4aa59ac3f8f091b64dc14bf5db7", + strip_prefix = "github.com/gopherjs/gopherjs@v0.0.0-20181017120253-0766667cb4d1", urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/gopherjs/gopherjs/com_github_gopherjs_gopherjs-v0.0.0-20181103185306-d547d1d9531e.zip", + "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/gopherjs/gopherjs/com_github_gopherjs_gopherjs-v0.0.0-20181017120253-0766667cb4d1.zip", ], ) go_repository( @@ -4615,10 +4495,10 @@ def go_deps(): name = "com_github_hashicorp_go_msgpack", build_file_proto_mode = "disable_global", importpath = "github.com/hashicorp/go-msgpack", - sha256 = "fb47605669b0ddd75292aac788208475fecd54e0ea3e9a282d8a98ae8c60d1f5", - strip_prefix = "github.com/hashicorp/go-msgpack@v0.5.5", + sha256 = "769381be9ae343c2eb34525558c4f59f76d0566229f1d0c13d41a485ab716921", + strip_prefix = "github.com/hashicorp/go-msgpack@v0.5.3", urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/hashicorp/go-msgpack/com_github_hashicorp_go_msgpack-v0.5.5.zip", + "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/hashicorp/go-msgpack/com_github_hashicorp_go_msgpack-v0.5.3.zip", ], ) go_repository( @@ -4801,16 +4681,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/hetznercloud/hcloud-go/com_github_hetznercloud_hcloud_go-v1.32.0.zip", ], ) - go_repository( - name = "com_github_howeyc_gopass", - build_file_proto_mode = "disable_global", - importpath = "github.com/howeyc/gopass", - sha256 = "83560b6c9a6220bcbb4ad2f043e5a190ab11a013b77c1bbff9a3a67ed74d4b37", - strip_prefix = "github.com/howeyc/gopass@v0.0.0-20190910152052-7cb4b85ec19c", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/howeyc/gopass/com_github_howeyc_gopass-v0.0.0-20190910152052-7cb4b85ec19c.zip", - ], - ) go_repository( name = "com_github_hpcloud_tail", build_file_proto_mode = "disable_global", @@ -4921,16 +4791,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/IBM/vpc-go-sdk/com_github_ibm_vpc_go_sdk-v0.65.0.zip", ], ) - go_repository( - name = "com_github_icrowley_fake", - build_file_proto_mode = "disable_global", - importpath = "github.com/icrowley/fake", - sha256 = "b503a0bc24e79b470d85701a11294430274f1203977e931008a88543f9f56fd4", - strip_prefix = "github.com/icrowley/fake@v0.0.0-20180203215853-4178557ae428", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/icrowley/fake/com_github_icrowley_fake-v0.0.0-20180203215853-4178557ae428.zip", - ], - ) go_repository( name = "com_github_imdario_mergo", build_file_proto_mode = "disable_global", @@ -5945,16 +5805,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/kr/text/com_github_kr_text-v0.2.0.zip", ], ) - go_repository( - name = "com_github_krishicks_yaml_patch", - build_file_proto_mode = "disable_global", - importpath = "github.com/krishicks/yaml-patch", - sha256 = "7aaf59809fc6a58e0d182293b974378740962887c8fbc95445921fcebd1fb3ae", - strip_prefix = "github.com/krishicks/yaml-patch@v0.0.10", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/krishicks/yaml-patch/com_github_krishicks_yaml_patch-v0.0.10.zip", - ], - ) go_repository( name = "com_github_kylelemons_godebug", build_file_proto_mode = "disable_global", @@ -6245,36 +6095,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/marstr/guid/com_github_marstr_guid-v1.1.0.zip", ], ) - go_repository( - name = "com_github_martini_contrib_auth", - build_file_proto_mode = "disable_global", - importpath = "github.com/martini-contrib/auth", - sha256 = "b3b2a267bb6ef227960e4391cc2bc868d0e6bceb2cb32372242c60f28f643cb2", - strip_prefix = "github.com/martini-contrib/auth@v0.0.0-20150219114609-fa62c19b7ae8", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/martini-contrib/auth/com_github_martini_contrib_auth-v0.0.0-20150219114609-fa62c19b7ae8.zip", - ], - ) - go_repository( - name = "com_github_martini_contrib_gzip", - build_file_proto_mode = "disable_global", - importpath = "github.com/martini-contrib/gzip", - sha256 = "803830ec3e7c75b135f0215579834192d01ce43da81934d903ed4ff9fa4dac9b", - strip_prefix = "github.com/martini-contrib/gzip@v0.0.0-20151124214156-6c035326b43f", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/martini-contrib/gzip/com_github_martini_contrib_gzip-v0.0.0-20151124214156-6c035326b43f.zip", - ], - ) - go_repository( - name = "com_github_martini_contrib_render", - build_file_proto_mode = "disable_global", - importpath = "github.com/martini-contrib/render", - sha256 = "2edd7f64b2f1f053f86a51856cd0f02b1f762af61a458a2e282dab76ad093d70", - strip_prefix = "github.com/martini-contrib/render@v0.0.0-20150707142108-ec18f8345a11", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/martini-contrib/render/com_github_martini_contrib_render-v0.0.0-20150707142108-ec18f8345a11.zip", - ], - ) go_repository( name = "com_github_maruel_panicparse_v2", build_file_proto_mode = "disable_global", @@ -6295,16 +6115,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/marusama/semaphore/com_github_marusama_semaphore-v0.0.0-20190110074507-6952cef993b2.zip", ], ) - go_repository( - name = "com_github_masterminds_glide", - build_file_proto_mode = "disable_global", - importpath = "github.com/Masterminds/glide", - sha256 = "566d15dde45716f355157ceee512833c7b91e9d25cb609a9bf30f811f61dded7", - strip_prefix = "github.com/Masterminds/glide@v0.13.2", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/Masterminds/glide/com_github_masterminds_glide-v0.13.2.zip", - ], - ) go_repository( name = "com_github_masterminds_goutils", build_file_proto_mode = "disable_global", @@ -6345,16 +6155,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/Masterminds/sprig/com_github_masterminds_sprig-v2.22.0+incompatible.zip", ], ) - go_repository( - name = "com_github_masterminds_vcs", - build_file_proto_mode = "disable_global", - importpath = "github.com/Masterminds/vcs", - sha256 = "c89f09e1c75a80c29d8be82b75a1015b9e811d25d93617f773962f2765d7c9c7", - strip_prefix = "github.com/Masterminds/vcs@v1.13.0", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/Masterminds/vcs/com_github_masterminds_vcs-v1.13.0.zip", - ], - ) go_repository( name = "com_github_matryer_moq", build_file_proto_mode = "disable_global", @@ -6375,16 +6175,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/mattn/go-colorable/com_github_mattn_go_colorable-v0.1.13.zip", ], ) - go_repository( - name = "com_github_mattn_go_ieproxy", - build_file_proto_mode = "disable_global", - importpath = "github.com/mattn/go-ieproxy", - sha256 = "2982ad9362d63b30a081fe7609b595fefcc7baaaeda2f5f17a7dbeb087a84020", - strip_prefix = "github.com/mattn/go-ieproxy@v0.0.0-20190610004146-91bb50d98149", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/mattn/go-ieproxy/com_github_mattn_go_ieproxy-v0.0.0-20190610004146-91bb50d98149.zip", - ], - ) go_repository( name = "com_github_mattn_go_isatty", build_file_proto_mode = "disable_global", @@ -6615,16 +6405,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/minio/md5-simd/com_github_minio_md5_simd-v1.1.2.zip", ], ) - go_repository( - name = "com_github_minio_minio_go", - build_file_proto_mode = "disable_global", - importpath = "github.com/minio/minio-go", - sha256 = "329d7e50f7e20014fa563aa8ff7a789106660e4b6fed87b2ca17fe3387cecb86", - strip_prefix = "github.com/minio/minio-go@v0.0.0-20190131015406-c8a261de75c1", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/minio/minio-go/com_github_minio_minio_go-v0.0.0-20190131015406-c8a261de75c1.zip", - ], - ) go_repository( name = "com_github_minio_minio_go_v7", build_file_proto_mode = "disable_global", @@ -6695,24 +6475,14 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/mitchellh/go-homedir/com_github_mitchellh_go_homedir-v1.1.0.zip", ], ) - go_repository( - name = "com_github_mitchellh_go_ps", - build_file_proto_mode = "disable_global", - importpath = "github.com/mitchellh/go-ps", - sha256 = "f2f0400b1d5e136419daed275c27a930b0f5447ac12bb8acd3ddbe39547b2834", - strip_prefix = "github.com/mitchellh/go-ps@v1.0.0", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/mitchellh/go-ps/com_github_mitchellh_go_ps-v1.0.0.zip", - ], - ) go_repository( name = "com_github_mitchellh_go_testing_interface", build_file_proto_mode = "disable_global", importpath = "github.com/mitchellh/go-testing-interface", - sha256 = "3af316747f951819b19cf55fbaaa592f1d3f19ab078e183c6cd7ca591e6791a8", - strip_prefix = "github.com/mitchellh/go-testing-interface@v1.14.0", + sha256 = "255871a399420cd3513b12f50738d290e251637deb23e21a4332192584ecf9c7", + strip_prefix = "github.com/mitchellh/go-testing-interface@v1.0.0", urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/mitchellh/go-testing-interface/com_github_mitchellh_go_testing_interface-v1.14.0.zip", + "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/mitchellh/go-testing-interface/com_github_mitchellh_go_testing_interface-v1.0.0.zip", ], ) go_repository( @@ -7155,16 +6925,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/ncw/swift/com_github_ncw_swift-v1.0.47.zip", ], ) - go_repository( - name = "com_github_ngdinhtoan_glide_cleanup", - build_file_proto_mode = "disable_global", - importpath = "github.com/ngdinhtoan/glide-cleanup", - sha256 = "e008e980d1a5335baaae1d10df2786ea1aea0d9774f8a46d19886a828edde4f3", - strip_prefix = "github.com/ngdinhtoan/glide-cleanup@v0.2.0", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/ngdinhtoan/glide-cleanup/com_github_ngdinhtoan_glide_cleanup-v0.2.0.zip", - ], - ) go_repository( name = "com_github_niemeyer_pretty", build_file_proto_mode = "disable_global", @@ -7195,16 +6955,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/nishanths/predeclared/com_github_nishanths_predeclared-v0.0.0-20200524104333-86fad755b4d3.zip", ], ) - go_repository( - name = "com_github_nkovacs_streamquote", - build_file_proto_mode = "disable_global", - importpath = "github.com/nkovacs/streamquote", - sha256 = "679a789b4b1409ea81054cb12e5f8441199f5fb17d4a2d3510c51f3aa5f3f0cc", - strip_prefix = "github.com/nkovacs/streamquote@v0.0.0-20170412213628-49af9bddb229", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/nkovacs/streamquote/com_github_nkovacs_streamquote-v0.0.0-20170412213628-49af9bddb229.zip", - ], - ) go_repository( name = "com_github_nvveen_gotty", build_file_proto_mode = "disable_global", @@ -7405,16 +7155,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/opentracing/basictracer-go/com_github_opentracing_basictracer_go-v1.0.0.zip", ], ) - go_repository( - name = "com_github_opentracing_contrib_go_grpc", - build_file_proto_mode = "disable_global", - importpath = "github.com/opentracing-contrib/go-grpc", - sha256 = "51f4dabc672c3d1f4c91eb09f033bab42620e55ee477c01751adeee0b6524f89", - strip_prefix = "github.com/opentracing-contrib/go-grpc@v0.0.0-20180928155321-4b5a12d3ff02", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/opentracing-contrib/go-grpc/com_github_opentracing_contrib_go_grpc-v0.0.0-20180928155321-4b5a12d3ff02.zip", - ], - ) go_repository( name = "com_github_opentracing_contrib_go_observer", build_file_proto_mode = "disable_global", @@ -7495,16 +7235,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/otan/gopgkrb5/com_github_otan_gopgkrb5-v1.0.3.zip", ], ) - go_repository( - name = "com_github_oxtoacart_bpool", - build_file_proto_mode = "disable_global", - importpath = "github.com/oxtoacart/bpool", - sha256 = "6816ec3a6f197cbee0ba6ddb9ec70958bc28870e59864b24e43da0c858079a1b", - strip_prefix = "github.com/oxtoacart/bpool@v0.0.0-20190530202638-03653db5a59c", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/oxtoacart/bpool/com_github_oxtoacart_bpool-v0.0.0-20190530202638-03653db5a59c.zip", - ], - ) go_repository( name = "com_github_pact_foundation_pact_go", build_file_proto_mode = "disable_global", @@ -7525,16 +7255,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/pascaldekloe/goe/com_github_pascaldekloe_goe-v0.1.0.zip", ], ) - go_repository( - name = "com_github_patrickmn_go_cache", - build_file_proto_mode = "disable_global", - importpath = "github.com/patrickmn/go-cache", - sha256 = "d5d1c13e3c9cfeb04a943f656333ec68627dd6ce136af67e2aa5881ad7353c55", - strip_prefix = "github.com/patrickmn/go-cache@v2.1.0+incompatible", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/patrickmn/go-cache/com_github_patrickmn_go_cache-v2.1.0+incompatible.zip", - ], - ) go_repository( name = "com_github_paulbellamy_ratecounter", build_file_proto_mode = "disable_global", @@ -8166,10 +7886,10 @@ def go_deps(): name = "com_github_samuel_go_zookeeper", build_file_proto_mode = "disable_global", importpath = "github.com/samuel/go-zookeeper", - sha256 = "13c5ccd4ada8ba049a48ae6fdf5b4de54894e56e8f017187466a8cb95ce1faf3", - strip_prefix = "github.com/samuel/go-zookeeper@v0.0.0-20200724154423-2164a8ac840e", + sha256 = "499f8144de8a6839b2d70c8869d88f294604188ec501e928ca17446043147d40", + strip_prefix = "github.com/samuel/go-zookeeper@v0.0.0-20190923202752-2cc03de413da", urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/samuel/go-zookeeper/com_github_samuel_go_zookeeper-v0.0.0-20200724154423-2164a8ac840e.zip", + "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/samuel/go-zookeeper/com_github_samuel_go_zookeeper-v0.0.0-20190923202752-2cc03de413da.zip", ], ) go_repository( @@ -8402,16 +8122,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/sirupsen/logrus/com_github_sirupsen_logrus-v1.9.1.zip", ], ) - go_repository( - name = "com_github_sjmudd_stopwatch", - build_file_proto_mode = "disable_global", - importpath = "github.com/sjmudd/stopwatch", - sha256 = "69e0ed207172b04161ccb26977f4c657fbee77296eca0b7ff84f8b1f2c2a6847", - strip_prefix = "github.com/sjmudd/stopwatch@v0.0.0-20170613150411-f380bf8a9be1", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/sjmudd/stopwatch/com_github_sjmudd_stopwatch-v0.0.0-20170613150411-f380bf8a9be1.zip", - ], - ) go_repository( name = "com_github_slack_go_slack", build_file_proto_mode = "disable_global", @@ -8436,10 +8146,10 @@ def go_deps(): name = "com_github_smartystreets_assertions", build_file_proto_mode = "disable_global", importpath = "github.com/smartystreets/assertions", - sha256 = "bf12bc33290d3e1e6f4cfe89aad0ad40c0acbfb378ce11e8157569aaf1526c04", - strip_prefix = "github.com/smartystreets/assertions@v0.0.0-20190116191733-b6c0e53d7304", + sha256 = "0434c12c41cb4c3e7ebf2fa44d3eeaafa75b9a61a80e30408ed8e09c3d5d3d70", + strip_prefix = "github.com/smartystreets/assertions@v0.0.0-20180927180507-b2de0cb4f26d", urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/smartystreets/assertions/com_github_smartystreets_assertions-v0.0.0-20190116191733-b6c0e53d7304.zip", + "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/smartystreets/assertions/com_github_smartystreets_assertions-v0.0.0-20180927180507-b2de0cb4f26d.zip", ], ) go_repository( @@ -8682,16 +8392,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/tdewolff/parse/v2/com_github_tdewolff_parse_v2-v2.6.4.zip", ], ) - go_repository( - name = "com_github_tebeka_selenium", - build_file_proto_mode = "disable_global", - importpath = "github.com/tebeka/selenium", - sha256 = "1bcf27d3675f057bf2af7d73db1d06b932537ba46fa5bd4be6855105c31106d7", - strip_prefix = "github.com/tebeka/selenium@v0.9.9", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/tebeka/selenium/com_github_tebeka_selenium-v0.9.9.zip", - ], - ) go_repository( name = "com_github_the42_cartconvert", build_file_proto_mode = "disable_global", @@ -8716,10 +8416,10 @@ def go_deps(): name = "com_github_tinylib_msgp", build_file_proto_mode = "disable_global", importpath = "github.com/tinylib/msgp", - sha256 = "5f95bcd71857878008dd8f1aca59e672f9e07122ff9689bcf3bc9b8b859ba4e2", - strip_prefix = "github.com/tinylib/msgp@v1.1.1", + sha256 = "61bd58489c555b30abffbe1175565b6f8460583349118e9ee12025fd17b67ea4", + strip_prefix = "github.com/tinylib/msgp@v1.1.0", urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/tinylib/msgp/com_github_tinylib_msgp-v1.1.1.zip", + "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/tinylib/msgp/com_github_tinylib_msgp-v1.1.0.zip", ], ) go_repository( @@ -8862,16 +8562,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/uber/athenadriver/com_github_uber_athenadriver-v1.1.4.zip", ], ) - go_repository( - name = "com_github_uber_go_atomic", - build_file_proto_mode = "disable_global", - importpath = "github.com/uber-go/atomic", - sha256 = "f380292d46ebec89bf53939e4d7d19d617327cbcdf2978e30e6c39bc77df5e73", - strip_prefix = "github.com/uber-go/atomic@v1.4.0", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/uber-go/atomic/com_github_uber_go_atomic-v1.4.0.zip", - ], - ) go_repository( name = "com_github_uber_go_tally", build_file_proto_mode = "disable_global", @@ -9332,16 +9022,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/yvasiyarov/newrelic_platform_go/com_github_yvasiyarov_newrelic_platform_go-v0.0.0-20140908184405-b21fdbd4370f.zip", ], ) - go_repository( - name = "com_github_z_division_go_zookeeper", - build_file_proto_mode = "disable_global", - importpath = "github.com/z-division/go-zookeeper", - sha256 = "b0a67a3bb3cfbb1be18618b84b02588979795966e040f18c5bb4be036888cabd", - strip_prefix = "github.com/z-division/go-zookeeper@v0.0.0-20190128072838-6d7457066b9b", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/z-division/go-zookeeper/com_github_z_division_go_zookeeper-v0.0.0-20190128072838-6d7457066b9b.zip", - ], - ) go_repository( name = "com_github_zabawaba99_go_gitignore", build_file_proto_mode = "disable_global", @@ -10762,16 +10442,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/gopkg.in/alecthomas/kingpin.v2/in_gopkg_alecthomas_kingpin_v2-v2.2.6.zip", ], ) - go_repository( - name = "in_gopkg_asn1_ber_v1", - build_file_proto_mode = "disable_global", - importpath = "gopkg.in/asn1-ber.v1", - sha256 = "fee158570ba9cbfc11156afbe9b9ab0833ab00d0f1a2a2af29a6325984a79903", - strip_prefix = "gopkg.in/asn1-ber.v1@v1.0.0-20181015200546-f715ec2f112d", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/gopkg.in/asn1-ber.v1/in_gopkg_asn1_ber_v1-v1.0.0-20181015200546-f715ec2f112d.zip", - ], - ) go_repository( name = "in_gopkg_check_v1", build_file_proto_mode = "disable_global", @@ -10792,16 +10462,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/gopkg.in/cheggaaa/pb.v1/in_gopkg_cheggaaa_pb_v1-v1.0.25.zip", ], ) - go_repository( - name = "in_gopkg_datadog_dd_trace_go_v1", - build_file_proto_mode = "disable_global", - importpath = "gopkg.in/DataDog/dd-trace-go.v1", - sha256 = "2ebcc818df0b2d560a61037da4492ae7effbaed67de94339a1d3a72728d2cb09", - strip_prefix = "gopkg.in/DataDog/dd-trace-go.v1@v1.17.0", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/gopkg.in/DataDog/dd-trace-go.v1/in_gopkg_datadog_dd_trace_go_v1-v1.17.0.zip", - ], - ) go_repository( name = "in_gopkg_errgo_v2", build_file_proto_mode = "disable_global", @@ -10962,16 +10622,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/gopkg.in/jcmturner/rpc.v1/in_gopkg_jcmturner_rpc_v1-v1.1.0.zip", ], ) - go_repository( - name = "in_gopkg_ldap_v2", - build_file_proto_mode = "disable_global", - importpath = "gopkg.in/ldap.v2", - sha256 = "44fbb28e1a7b33d08edd31957f9fea15744979a97392d89a894306a610ed78f1", - strip_prefix = "gopkg.in/ldap.v2@v2.5.0", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/gopkg.in/ldap.v2/in_gopkg_ldap_v2-v2.5.0.zip", - ], - ) go_repository( name = "in_gopkg_mgo_v2", build_file_proto_mode = "disable_global", @@ -11152,16 +10802,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/k8s.io/api/io_k8s_api-v0.22.5.zip", ], ) - go_repository( - name = "io_k8s_apiextensions_apiserver", - build_file_proto_mode = "disable_global", - importpath = "k8s.io/apiextensions-apiserver", - sha256 = "f3be44b21eaea21dbc2655f207f838a94e4ed63b24e5ce4f1d688c329b53c9ff", - strip_prefix = "k8s.io/apiextensions-apiserver@v0.17.3", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/k8s.io/apiextensions-apiserver/io_k8s_apiextensions_apiserver-v0.17.3.zip", - ], - ) go_repository( name = "io_k8s_apimachinery", build_file_proto_mode = "disable_global", @@ -11192,16 +10832,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/k8s.io/client-go/io_k8s_client_go-v0.22.5.zip", ], ) - go_repository( - name = "io_k8s_code_generator", - build_file_proto_mode = "disable_global", - importpath = "k8s.io/code-generator", - sha256 = "59dd76fe046441365da49abb1eb22db7e368508f2622730b0bf125b044bbf07d", - strip_prefix = "k8s.io/code-generator@v0.17.3", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/k8s.io/code-generator/io_k8s_code_generator-v0.17.3.zip", - ], - ) go_repository( name = "io_k8s_component_base", build_file_proto_mode = "disable_global", @@ -11282,16 +10912,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/sigs.k8s.io/apiserver-network-proxy/konnectivity-client/io_k8s_sigs_apiserver_network_proxy_konnectivity_client-v0.0.15.zip", ], ) - go_repository( - name = "io_k8s_sigs_structured_merge_diff", - build_file_proto_mode = "disable_global", - importpath = "sigs.k8s.io/structured-merge-diff", - sha256 = "a7c7f139cf93c42d9954f02b1f3d393f988cf6b8a423b3baf0f13716dab95141", - strip_prefix = "sigs.k8s.io/structured-merge-diff@v1.0.1-0.20191108220359-b1b620dd3f06", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/sigs.k8s.io/structured-merge-diff/io_k8s_sigs_structured_merge_diff-v1.0.1-0.20191108220359-b1b620dd3f06.zip", - ], - ) go_repository( name = "io_k8s_sigs_structured_merge_diff_v2", build_file_proto_mode = "disable_global", @@ -11515,16 +11135,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/drpc/com_github_cockroachdb_drpc-v0.0.0-20250603054748-5b0c5d2c7b38.zip", ], ) - go_repository( - name = "io_vitess_vitess", - build_file_proto_mode = "disable_global", - importpath = "vitess.io/vitess", - sha256 = "71f14e67f9396930d978d85c47b853f5cc4ce340e53cf88bf7d731b8428b2f77", - strip_prefix = "github.com/cockroachdb/vitess@v0.0.0-20210218160543-54524729cc82", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/vitess/com_github_cockroachdb_vitess-v0.0.0-20210218160543-54524729cc82.zip", - ], - ) go_repository( name = "org_bazil_fuse", build_file_proto_mode = "disable_global", @@ -11919,10 +11529,10 @@ def go_deps(): name = "org_gonum_v1_netlib", build_file_proto_mode = "disable_global", importpath = "gonum.org/v1/netlib", - sha256 = "ed4dca5026c9ab5410d23bbe21c089433ca58a19bd2902311c6a91791142a687", - strip_prefix = "gonum.org/v1/netlib@v0.0.0-20190331212654-76723241ea4e", + sha256 = "eeaeb60f410b86f59d97f15c5ef89096dc72aeb42bae55141738bf9866893938", + strip_prefix = "gonum.org/v1/netlib@v0.0.0-20190313105609-8cb42192e0e0", urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/gonum.org/v1/netlib/org_gonum_v1_netlib-v0.0.0-20190331212654-76723241ea4e.zip", + "https://storage.googleapis.com/cockroach-godeps/gomod/gonum.org/v1/netlib/org_gonum_v1_netlib-v0.0.0-20190313105609-8cb42192e0e0.zip", ], ) go_repository( @@ -11935,16 +11545,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/gonum.org/v1/plot/org_gonum_v1_plot-v0.14.0.zip", ], ) - go_repository( - name = "org_modernc_cc", - build_file_proto_mode = "disable_global", - importpath = "modernc.org/cc", - sha256 = "24711e9b28b0d79dd32438eeb7debd86b850350f5f7749b7af640422ecf6b93b", - strip_prefix = "modernc.org/cc@v1.0.0", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/modernc.org/cc/org_modernc_cc-v1.0.0.zip", - ], - ) go_repository( name = "org_modernc_cc_v3", build_file_proto_mode = "disable_global", @@ -11975,16 +11575,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/modernc.org/ccorpus/org_modernc_ccorpus-v1.11.6.zip", ], ) - go_repository( - name = "org_modernc_golex", - build_file_proto_mode = "disable_global", - importpath = "modernc.org/golex", - sha256 = "335133038991d7feaba5349ac2385db7b49601bba0904abf680803ee2d3c99df", - strip_prefix = "modernc.org/golex@v1.0.0", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/modernc.org/golex/org_modernc_golex-v1.0.0.zip", - ], - ) go_repository( name = "org_modernc_httpfs", build_file_proto_mode = "disable_global", @@ -12075,16 +11665,6 @@ def go_deps(): "https://storage.googleapis.com/cockroach-godeps/gomod/modernc.org/token/org_modernc_token-v1.1.0.zip", ], ) - go_repository( - name = "org_modernc_xc", - build_file_proto_mode = "disable_global", - importpath = "modernc.org/xc", - sha256 = "ef80e60acacc023cd294eef2555bd348f74c1bcd22c8cfbbd2472cb91e35900d", - strip_prefix = "modernc.org/xc@v1.0.0", - urls = [ - "https://storage.googleapis.com/cockroach-godeps/gomod/modernc.org/xc/org_modernc_xc-v1.0.0.zip", - ], - ) go_repository( name = "org_modernc_z", build_file_proto_mode = "disable_global", diff --git a/build/bazelutil/distdir_files.bzl b/build/bazelutil/distdir_files.bzl index 5d8922e4e2b6..93a0b771745d 100644 --- a/build/bazelutil/distdir_files.bzl +++ b/build/bazelutil/distdir_files.bzl @@ -140,7 +140,6 @@ DISTDIR_FILES = { "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/AdaLogics/go-fuzz-headers/com_github_adalogics_go_fuzz_headers-v0.0.0-20210715213245-6c3934b029d8.zip": "b969c84628be06be91fe874426fd3bbcb8635f93714ee3bae788bdc57e78b992", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/AndreasBriese/bbloom/com_github_andreasbriese_bbloom-v0.0.0-20190825152654-46b345b51c96.zip": "8b8c016e041592d4ca8cbd2a8c68e0dd0ba1b7a8f96fab7422c8e373b1835a2d", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/AthenZ/athenz/com_github_athenz_athenz-v1.10.39.zip": "790df98e01ad2c83e33f9760e478432a4d379e7de2b79158742a8fcfd9610dcf", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/Azure/azure-pipeline-go/com_github_azure_azure_pipeline_go-v0.2.1.zip": "83822bc4aca977af31cdb1c46012e64c819d2b9ed53885dd0f8dca5566993a5f", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/Azure/azure-sdk-for-go/com_github_azure_azure_sdk_for_go-v68.0.0+incompatible.zip": "c40d67ce49f8e2bbf4ca4091cbfc05bd3d50117f21d789e32cfa19bdb11ec50c", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/Azure/azure-sdk-for-go/sdk/azcore/com_github_azure_azure_sdk_for_go_sdk_azcore-v1.11.1.zip": "efda0033183b299ff74759eef15c59a8302cbd3f9ef7b10d3e574fcf06006f61", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/Azure/azure-sdk-for-go/sdk/azidentity/com_github_azure_azure_sdk_for_go_sdk_azidentity-v1.7.0.zip": "11b5939e70cf765a9753155023dd3e3ea42cc40a133307336abc0f8a4e3af404", @@ -154,7 +153,6 @@ DISTDIR_FILES = { "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/com_github_azure_azure_sdk_for_go_sdk_resourcemanager_network_armnetwork-v1.0.0.zip": "e09bacbe7fe4532f9887151a51e092ac89a143034da0fb1729126422f9e1212b", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources/com_github_azure_azure_sdk_for_go_sdk_resourcemanager_resources_armresources-v1.1.1.zip": "859deb478c6150fcc8ab966b85be386ca0d0e0c385ace0bc5b3c73c14a877bcd", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/com_github_azure_azure_sdk_for_go_sdk_storage_azblob-v1.0.0.zip": "9bb69aea32f1d59711701f9562d66432c9c0374205e5009d1d1a62f03fb4fdad", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/Azure/azure-storage-blob-go/com_github_azure_azure_storage_blob_go-v0.8.0.zip": "3b02b720c25bbb6cdaf77f45a29a21e374e087081dedfeac2700aed6147b4b35", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/Azure/go-ansiterm/com_github_azure_go_ansiterm-v0.0.0-20210617225240-d185dfc1b5a1.zip": "631ff4b167a4360e10911e475933ecb3bd327c58974c17877d0d4cf6fbef6c96", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/Azure/go-autorest/autorest/adal/com_github_azure_go_autorest_autorest_adal-v0.9.15.zip": "791f1d559e2c4d99f4d29465fd71f5589e368e2087701b78970ad8dcc7be6299", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/Azure/go-autorest/autorest/azure/auth/com_github_azure_go_autorest_autorest_azure_auth-v0.5.8.zip": "7b50ba475d5a8dfcdd37fb5b53ece9e6d6150257d55c279347653ee143518c6f", @@ -171,7 +169,6 @@ DISTDIR_FILES = { "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/AzureAD/microsoft-authentication-library-for-go/com_github_azuread_microsoft_authentication_library_for_go-v1.2.2.zip": "895ac3948492180ed21eabe651bebe45c9d99b92c2738206759d6faf4f430d26", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/BurntSushi/toml/com_github_burntsushi_toml-v1.4.1-0.20240526193622-a339e1f7089c.zip": "f15f0ca7a3c5a4275d3d560236f178e9d735a084534bf3b685ec5f676806230a", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/BurntSushi/xgb/com_github_burntsushi_xgb-v0.0.0-20160522181843-27f122750802.zip": "f52962c7fbeca81ea8a777d1f8b1f1d25803dc437fbb490f253344232884328e", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/BurntSushi/xgbutil/com_github_burntsushi_xgbutil-v0.0.0-20160919175755-f7c97cef3b4e.zip": "680bb03650f0f43760cab53ec7b3b159ea489f04f379bbba25b5a8d77a2de2e0", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/CloudyKit/fastprinter/com_github_cloudykit_fastprinter-v0.0.0-20200109182630-33d98a066a53.zip": "7e6015de3e986e5de8bf7310887bb0d8c1c33d66c5aacbd706aeec524dfda765", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/CloudyKit/jet/v3/com_github_cloudykit_jet_v3-v3.0.0.zip": "eba40af7c0be5a2c4b0cdff2475ae6e16cb7f1acb7531a02b77de06b9b4a527a", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/CloudyKit/jet/v6/com_github_cloudykit_jet_v6-v6.2.0.zip": "24c18e2a19eb56a01fce96e2504196f85d1c2291ff448f20dd32f6247a979264", @@ -180,8 +177,6 @@ DISTDIR_FILES = { "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/DataDog/datadog-api-client-go/v2/com_github_datadog_datadog_api_client_go_v2-v2.15.0.zip": "1b719dab747449f279830dbb1a5920ec45ad041ea13ffde2ef7dc949c52a59f1", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/DataDog/datadog-go/com_github_datadog_datadog_go-v3.2.0+incompatible.zip": "ede4a024d3c106b2f57ca04d7bfc7610e0c83f4d8a3bace2cf87b42fd5cf66cd", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/DataDog/zstd/com_github_datadog_zstd-v1.5.7.zip": "2329cea1cc05226917495381c6036e4c5c1fff4e7a0b7fc2c30fa5cfd83d0b3f", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/GeertJohan/go.incremental/com_github_geertjohan_go_incremental-v1.0.0.zip": "ce46b3b717f8d2927046bcfb99c6f490b1b547a681e6b23240ac2c2292a891e8", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/GeertJohan/go.rice/com_github_geertjohan_go_rice-v1.0.0.zip": "2fc48b9422bf356c18ed3fe32ec52f6a8b87ac168f83d2eed249afaebcc3eeb8", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/GoogleCloudPlatform/cloudsql-proxy/com_github_googlecloudplatform_cloudsql_proxy-v0.0.0-20190129172621-c8b1d7a94ddf.zip": "d18ff41309efc943c71d5c8faa5b1dd792700a79fa4f61508c5e50f17fc9ca6f", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/HdrHistogram/hdrhistogram-go/com_github_hdrhistogram_hdrhistogram_go-v1.1.2.zip": "bbc1d64d3179248c78ffa3729ad2ab696ed1ff14874f37d8d4fc4a5a235fa77f", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/IBM/go-sdk-core/v5/com_github_ibm_go_sdk_core_v5-v5.19.0.zip": "8ba9ee592e3f52aa462561ed187891690c9c12b29e337720021781481d6cace8", @@ -194,12 +189,10 @@ DISTDIR_FILES = { "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/Joker/jade/com_github_joker_jade-v1.1.3.zip": "33ab19f851ef3c58983eeb66f608c01be312ebac0f2cea61df5218490d6b5043", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/Julusian/godocdown/com_github_julusian_godocdown-v0.0.0-20170816220326-6d19f8ff2df8.zip": "1bd26f1d29b20d40b3eb0a5678691a2e6e153c473efe079b8b1bbd97a7cc1f57", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/Knetic/govaluate/com_github_knetic_govaluate-v3.0.1-0.20171022003610-9aa49832a739+incompatible.zip": "d1d4ac5b4f5759726368f68b0d47f3c17c6d8689243ec66272311359d28a865b", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/Masterminds/glide/com_github_masterminds_glide-v0.13.2.zip": "566d15dde45716f355157ceee512833c7b91e9d25cb609a9bf30f811f61dded7", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/Masterminds/goutils/com_github_masterminds_goutils-v1.1.0.zip": "b9520e8d2775ac1ff3fbf18c93dbc4b921133f957ae274f5b047965e9359d27d", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/Masterminds/semver/com_github_masterminds_semver-v1.5.0.zip": "15f6b54a695c15ffb205d5719e5ed50fab9ba9a739e1b4bdf3a0a319f51a7202", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/Masterminds/semver/v3/com_github_masterminds_semver_v3-v3.1.1.zip": "0a46c7403dfeda09b0821e851f8e1cec8f1ea4276281e42ea399da5bc5bf0704", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/Masterminds/sprig/com_github_masterminds_sprig-v2.22.0+incompatible.zip": "1b4d772334cc94e5703291b5f0fe4ac4965ac265424b1060baf18ef5ff9d845c", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/Masterminds/vcs/com_github_masterminds_vcs-v1.13.0.zip": "c89f09e1c75a80c29d8be82b75a1015b9e811d25d93617f773962f2765d7c9c7", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/MichaelTJones/walk/com_github_michaeltjones_walk-v0.0.0-20161122175330-4748e29d5718.zip": "fd1f0195976f587977eb26c9795f7989c02c0701bdff6f2d155a617ee69fdf6e", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/Microsoft/go-winio/com_github_microsoft_go_winio-v0.5.2.zip": "f479d42341fded1d0a98540713339920774f7540edf7a76b8497fbc11493138c", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/Microsoft/hcsshim/com_github_microsoft_hcsshim-v0.9.6.zip": "f7e71db018b2d9d65a89f1fee31f3c255e34db379a1a63d84487898dcd6e7ae3", @@ -230,7 +223,6 @@ DISTDIR_FILES = { "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/ajstarks/deck/com_github_ajstarks_deck-v0.0.0-20200831202436-30c9fc6549a9.zip": "68bad2e38bf5b01e6bbd7b9bbdba35da94dac72bc4ba41f8ea5fe92aa836a3c3", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/ajstarks/deck/generate/com_github_ajstarks_deck_generate-v0.0.0-20210309230005-c3f852c02e19.zip": "dce1cbc4cb42ac26512dd0bccf997baeea99fb4595cd419a28e8566d2d7c7ba8", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/ajstarks/svgo/com_github_ajstarks_svgo-v0.0.0-20211024235047-1546f124cd8b.zip": "e25b5dbb6cc86d2a0b5db08aad757c534681c2cecb30d84746e09c661cbd7c6f", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/akavel/rsrc/com_github_akavel_rsrc-v0.8.0.zip": "13954a09edc3a680d633c5ea7b4be902df3a70ca1720b349faadca44dc0c7ecc", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/alecthomas/kingpin/v2/com_github_alecthomas_kingpin_v2-v2.3.1.zip": "2a322681d79461dd793c1e8a98adf062f6ef554abcd3ab06981eef94d79c136b", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/alecthomas/template/com_github_alecthomas_template-v0.0.0-20190718012654-fb15b899a751.zip": "25e3be7192932d130d0af31ce5bcddae887647ba4afcfb32009c3b9b79dbbdb3", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/alecthomas/units/com_github_alecthomas_units-v0.0.0-20211218093645-b94a6e3cc137.zip": "b62437d74a523089af46ba0115ece1ce11bca5e321fe1e1d4c976ecca6ee78aa", @@ -255,7 +247,6 @@ DISTDIR_FILES = { "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/armon/consul-api/com_github_armon_consul_api-v0.0.0-20180202201655-eb2c6b5be1b6.zip": "091b79667f16ae245785956c490fe05ee26970a89f8ecdbe858ae3510d725088", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/armon/go-metrics/com_github_armon_go_metrics-v0.3.3.zip": "dba0cd2b5d068409eb4acbb1cf14544252068339fcf49e7dc7f3a778bb843d53", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/armon/go-radix/com_github_armon_go_radix-v1.0.0.zip": "df93c816505baf12c3efe61328dc6f8fa42438f68f80b0b3725cae957d021c90", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/armon/go-socks5/com_github_armon_go_socks5-v0.0.0-20160902184237-e75332964ef5.zip": "f473e6dce826a0552639833cf72cfaa8bc7141daa7b537622d7f78eacfd9dfb3", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/aryann/difflib/com_github_aryann_difflib-v0.0.0-20170710044230-e206f873d14a.zip": "973aae50e3d85569e1f0f6cbca78bf9b5896ce53d0534422a7db46f947b50764", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/asaskevich/govalidator/com_github_asaskevich_govalidator-v0.0.0-20230301143203-a9d515a09cc2.zip": "0f8ec67bbc585d29ec115c0885cef6f2431a422cc1cc10008e466ebe8be5dc37", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/atotto/clipboard/com_github_atotto_clipboard-v0.1.4.zip": "d67b2c36c662751309fd2ec351df3651584bea840bd27be9a90702c3a238b43f", @@ -318,7 +309,7 @@ DISTDIR_FILES = { "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/bsm/sarama-cluster/com_github_bsm_sarama_cluster-v2.1.13+incompatible.zip": "5926505c631af623184a1c95453f33f340724c207d5bdffcd5619f2121853a57", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/buchgr/bazel-remote/com_github_buchgr_bazel_remote-v1.3.3.zip": "7ab70784fddbc59e956501b2bc15a30c36baedb34df0d26009607d80c9e129e2", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/bufbuild/buf/com_github_bufbuild_buf-v0.56.0.zip": "a0bf6cfe3b90c931022d2700b62f1b272d7e2ab62096c3df24551e3f5a575a52", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/buger/jsonparser/com_github_buger_jsonparser-v0.0.0-20200322175846-f7e751efca13.zip": "336c5facdeef6466131bf24c06f3ae1a40d038a7e6fdc3fcf3ab308ff50300c1", + "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/buger/jsonparser/com_github_buger_jsonparser-v0.0.0-20180808090653-f4dd9f5a6b44.zip": "95752271d3be86828197eb3442b1693672e934bb0bbd3d8395b2635034106aed", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/bugsnag/bugsnag-go/com_github_bugsnag_bugsnag_go-v0.0.0-20141110184014-b1d153021fcd.zip": "e3b275ae2552bd1fa60f9cf728232ee4bde66afa0da772c20cb0a105818cf1bf", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/bugsnag/osext/com_github_bugsnag_osext-v0.0.0-20130617224835-0dd3f918b21b.zip": "b29adb2508906ea508ba91f404ba33e709d43e037cec96d550335b8e756108bf", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/bugsnag/panicwrap/com_github_bugsnag_panicwrap-v0.0.0-20151223152923-e2c28503fcd0.zip": "c88454a2204604baecd45fa06bab717034e501b406c15470dba4bc8902356401", @@ -377,11 +368,9 @@ DISTDIR_FILES = { "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/tools/com_github_cockroachdb_tools-v0.0.0-20211112185054-642e51449b40.zip": "37a3737dd23768b4997b2f0341d625658f5862cdbf808f7fbf3a7f9fd25913a7", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/ttycolor/com_github_cockroachdb_ttycolor-v0.0.0-20210902133924-c7d7dcdde4e8.zip": "1260533510c89abd6d8af573a40f0246f6865d5091144dea509b2c48e7c61614", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/version/com_github_cockroachdb_version-v0.0.0-20250509181251-54dac3003410.zip": "05edbf709b51a4a95b8cbcc932ca725c5137d235dce9cb0d59027662257e7ac5", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/vitess/com_github_cockroachdb_vitess-v0.0.0-20210218160543-54524729cc82.zip": "71f14e67f9396930d978d85c47b853f5cc4ce340e53cf88bf7d731b8428b2f77", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/x-time/com_github_cockroachdb_x_time-v0.3.1-0.20230525123634-71747adb5d5c.zip": "b151d95b9250e6aab7e53ea08bf6a9ca31c2aa964723baa1df28082589f01b21", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/yaml/com_github_cockroachdb_yaml-v0.0.0-20210825132133-2d6955c8edbc.zip": "98f901d1a2446ea98010e56f8f0587f2f790704ea56d14417803602b214e5697", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/codahale/hdrhistogram/com_github_codahale_hdrhistogram-v0.0.0-20161010025455-3a0bb77429bd.zip": "e7e117da64da2f921b1f9dc57c524430a7f74a78c4b0bad718d85b08e8374e78", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/codegangsta/cli/com_github_codegangsta_cli-v1.20.0.zip": "a5a237b9582cf92f0263865760457443bc061da1b1cda4dbf122e9ae53c8303b", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/codegangsta/inject/com_github_codegangsta_inject-v0.0.0-20150114235600-33e0aa1cb7c0.zip": "0a324d56992bffd288fa70a6d10eb9b8a9467665b0b1eb749ac6ae80e8977ee2", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/containerd/aufs/com_github_containerd_aufs-v1.0.0.zip": "66f63be768b16cdee12c6d040d4aa7c0e8af306c7620b0c18c1f636c8499ae52", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/containerd/btrfs/com_github_containerd_btrfs-v1.0.0.zip": "b6098229f65fe790a52e4db949ae020d9ff00fcd82b90ecb1337291a5aa8f9da", @@ -409,19 +398,16 @@ DISTDIR_FILES = { "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/coreos/go-systemd/com_github_coreos_go_systemd-v0.0.0-20190719114852-fd7a80b32e1f.zip": "22237f0aed3ab6018a1025c65f4f45b4c05f9aa0c0bb9ec880294273b9a15bf2", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/coreos/go-systemd/v22/com_github_coreos_go_systemd_v22-v22.3.2.zip": "01134ae89bf4a91c17eeb1f8425e1064f9bde64cf3ce0c9cf546a9fa1ee25e64", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/coreos/pkg/com_github_coreos_pkg-v0.0.0-20180928190104-399ea9e2e55f.zip": "7fe161d49439a9b4136c932233cb4b803b9e3ac7ee46f39ce247defc4f4ea8d7", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/corpix/uarand/com_github_corpix_uarand-v0.1.1.zip": "e2220522fbb3b8f21b44e7b6aecf52177738d82809ca4ab6918043ed5b19857c", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cpuguy83/go-md2man/com_github_cpuguy83_go_md2man-v1.0.10.zip": "b9b153bb97e2a702ec5c41f6815985d4295524cdf4f2a9e5633f98e9739f4d6e", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cpuguy83/go-md2man/v2/com_github_cpuguy83_go_md2man_v2-v2.0.2.zip": "70a7e609809cf2a92c5535104db5eb82d75c54bfcfed2d224e87dd2fd9729f62", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/creack/pty/com_github_creack_pty-v1.1.11.zip": "d6594fd4844c242a5c7d6e9b25516182460cffa820e47e8ffb8eea625991986c", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/crossdock/crossdock-go/com_github_crossdock_crossdock_go-v0.0.0-20160816171116-049aabb0122b.zip": "f8a2ed6cd39e4f3e8108b8987f72bf6746276ada6fd3fcc62015bdbdd097f1a3", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cyberdelia/go-metrics-graphite/com_github_cyberdelia_go_metrics_graphite-v0.0.0-20161219230853-39f87cc3b432.zip": "38a34b96a597d50553e367de6e4eb3488e83dc37cae3930b38d9b48695b08b0c", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cyberdelia/templates/com_github_cyberdelia_templates-v0.0.0-20141128023046-ca7fffd4298c.zip": "a0ed6b8037d36222f63128f6064ed5b0e461fa9798c3592440a08875154d6c72", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cyphar/filepath-securejoin/com_github_cyphar_filepath_securejoin-v0.2.3.zip": "1e38690899f84b347ddc67cb8c6395812aea795e735b2208d680163278a3e3ba", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/d2g/dhcp4/com_github_d2g_dhcp4-v0.0.0-20170904100407-a1d1b6c41b1c.zip": "15df9468cf548a626e1319e92d550432512c4319cf555bf278ea9215de3504e3", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/d2g/dhcp4client/com_github_d2g_dhcp4client-v1.0.0.zip": "cad5e5d2e85d2f4b68835ea63472f24a6627d6f87058358df4b47902374a6a8b", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/d2g/dhcp4server/com_github_d2g_dhcp4server-v0.0.0-20181031114812-7d4a0a7f59a5.zip": "b2370ecaf825f0dc748a234fb676fbd9d24ac6d28eaa9d7c3a8f807a2badf11d", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/d2g/hardwareaddr/com_github_d2g_hardwareaddr-v0.0.0-20190221164911-e7d9fbe030e4.zip": "bdc3b033b884101d5aa56c79a82c05e1e30af5bec7c7beda317230c3fa400c5e", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/daaku/go.zipexe/com_github_daaku_go_zipexe-v1.0.0.zip": "74d7a0242c03c3c03220e56a59da5f97d3478743250740df538e05e6b609f553", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/danieljoos/wincred/com_github_danieljoos_wincred-v1.1.2.zip": "82eb040a9b5452b37e33e59c6d7ac1a6a9f683885d4c1611463965c99c80de8d", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/dave/dst/com_github_dave_dst-v0.24.0.zip": "73f53e4faffd0d5f77cc88d9fcc0fb9ee53232f301e01da6766962f9fe92c7b6", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/dave/gopackages/com_github_dave_gopackages-v0.0.0-20170318123100-46e7023ec56e.zip": "b953698eb72bd0cf6579f6b8cdc8238572063784da9d443ec70705d210b0c182", @@ -591,7 +577,6 @@ DISTDIR_FILES = { "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/google/flatbuffers/com_github_google_flatbuffers-v23.1.21+incompatible.zip": "2b66a7cfcf2feb5ead4a9399782e4665a02475b66077ab50d299bbd6eafbf526", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/google/go-cmp/com_github_google_go_cmp-v0.6.0.zip": "4b4e9bf6c48211080651b491dfb48d68b736c66a305bcf94605606e1ba2eaa4a", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/google/go-github/com_github_google_go_github-v17.0.0+incompatible.zip": "9831222a466bec73a21627e0c3525da9cadd969468e31d10ecae8580b0568d0e", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/google/go-github/v27/com_github_google_go_github_v27-v27.0.4.zip": "c0bb2e2b9d8b610fd1d4b9fa8a3636a5337f19aecec33e76aecbf32ae4e192bb", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/google/go-github/v61/com_github_google_go_github_v61-v61.0.0.zip": "81c8199e9fae06865d65a50545ddb45a4877c33809a701da839c3a558120f62c", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/google/go-querystring/com_github_google_go_querystring-v1.1.0.zip": "a6aafc01f5602e6177928751074e325792a654e1d92f0e238b8e8739656dd72b", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/google/gofuzz/com_github_google_gofuzz-v1.2.0.zip": "5948f40af1923d8f98dc1d4191311030e40e0057fb255df19ebc0360f2faac16", @@ -609,7 +594,7 @@ DISTDIR_FILES = { "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/googleapis/gnostic/com_github_googleapis_gnostic-v0.5.5.zip": "50fab68c592e8c8038b48b3c7b68d8f56297a58da28194ace2a43a9866c4025b", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/googleapis/google-cloud-go-testing/com_github_googleapis_google_cloud_go_testing-v0.0.0-20200911160855-bcd43fbb19e8.zip": "af70a872c8b0107e2fc7b32a9562e15be885793454df61dc6aae3c774387ca7d", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/gophercloud/gophercloud/com_github_gophercloud_gophercloud-v0.20.0.zip": "aca35069a500cfa1694c16908985bfc88bd52e455a2ad3d901399352240c7424", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/gopherjs/gopherjs/com_github_gopherjs_gopherjs-v0.0.0-20181103185306-d547d1d9531e.zip": "096bf06513b3607377446f9864eab5099652c0985c1614b7e89ca92cd8989178", + "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/gopherjs/gopherjs/com_github_gopherjs_gopherjs-v0.0.0-20181017120253-0766667cb4d1.zip": "9b9ccc9606dfeae2fb533f768b437025797dc4aa59ac3f8f091b64dc14bf5db7", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/gordonklaus/ineffassign/com_github_gordonklaus_ineffassign-v0.0.0-20200309095847-7953dde2c7bf.zip": "ca53f10fdaec7dd8a835c69dee8fe2c0189cb6da38cb0a601310d7e756f15d09", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/gorilla/context/com_github_gorilla_context-v1.1.1.zip": "4ec8e01fe741a931edeebdee9348ffb49b5cc565ca245551d0d20b67062e6f0b", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/gorilla/css/com_github_gorilla_css-v1.0.0.zip": "d854362b9d723daf613b26aae0254723a4ed1bff680683c3e2a01aeb398168e5", @@ -633,7 +618,7 @@ DISTDIR_FILES = { "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/hashicorp/go-cleanhttp/com_github_hashicorp_go_cleanhttp-v0.5.2.zip": "e9f3dcfcb33172ba499b4f8e888169252d7f1e072082182124a6e2053523f7df", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/hashicorp/go-hclog/com_github_hashicorp_go_hclog-v1.6.3.zip": "ebab3136e5327ad17606485f633c2d033c61eadb843b2f3629b6d65d6fbb1400", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/hashicorp/go-immutable-radix/com_github_hashicorp_go_immutable_radix-v1.2.0.zip": "5245859054e0edcc7b017e11c671116b3994e5316695a78bac9b2495a115abc1", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/hashicorp/go-msgpack/com_github_hashicorp_go_msgpack-v0.5.5.zip": "fb47605669b0ddd75292aac788208475fecd54e0ea3e9a282d8a98ae8c60d1f5", + "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/hashicorp/go-msgpack/com_github_hashicorp_go_msgpack-v0.5.3.zip": "769381be9ae343c2eb34525558c4f59f76d0566229f1d0c13d41a485ab716921", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/hashicorp/go-multierror/com_github_hashicorp_go_multierror-v1.1.1.zip": "972cd841ee51fdeac69c5a301e57f8ea27aebf15fddd7f621d5c240f28c3000c", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/hashicorp/go-plugin/com_github_hashicorp_go_plugin-v1.3.0.zip": "bdcedbf701bf0e294e15a46806c520e3c5e40072a1dba1cce5cad959f219f9a3", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/hashicorp/go-retryablehttp/com_github_hashicorp_go_retryablehttp-v0.7.7.zip": "29fa3655abd0a7c91f3a1eb186d309ec24b580afb10d39a3cdfa8cde0e99e0a9", @@ -651,14 +636,12 @@ DISTDIR_FILES = { "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/hashicorp/serf/com_github_hashicorp_serf-v0.9.5.zip": "b26c9916768043e9480615b4032f9f7d18ee2cdad6a7f75436570610df30fadf", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/hashicorp/yamux/com_github_hashicorp_yamux-v0.0.0-20190923154419-df201c70410d.zip": "d8a888d6a4ecbc09f2f3663cb47aa2d064298eeb1491f4761a43ae95e93ba035", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/hetznercloud/hcloud-go/com_github_hetznercloud_hcloud_go-v1.32.0.zip": "c530755603bfe3c79ee4327f896057d6c2fe93792d8a77c42c22b90547c52e7c", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/howeyc/gopass/com_github_howeyc_gopass-v0.0.0-20190910152052-7cb4b85ec19c.zip": "83560b6c9a6220bcbb4ad2f043e5a190ab11a013b77c1bbff9a3a67ed74d4b37", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/hpcloud/tail/com_github_hpcloud_tail-v1.0.0.zip": "3cba484748e2e2919d72663599b8cc6454058976fbca96f9ac78d84f195b922a", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/huandu/xstrings/com_github_huandu_xstrings-v1.3.0.zip": "cdd580467bc14ea0ad6856782d8aeb3d954e9c3499f4a771b6813174d2713d0d", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/hudl/fargo/com_github_hudl_fargo-v1.3.0.zip": "040aa24d7c5cdf43ed18767d4dff7d5533c65f58f45424f38eed51a5956445cf", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/hydrogen18/memlistener/com_github_hydrogen18_memlistener-v1.0.0.zip": "c47c6f44a9c1096c1b61f6c49be924c42e69545ca23a008881d950ee942a2268", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/iancoleman/strcase/com_github_iancoleman_strcase-v0.2.0.zip": "cb5027fec91d36426f0978a6c42ab52d8735fa3e1711be0127feda70a9a9fd05", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/ianlancetaylor/demangle/com_github_ianlancetaylor_demangle-v0.0.0-20230524184225-eabc099b10ab.zip": "b6426a32f7d0525c6a6012a5be7b14ba57a59810d949fadb3bfec22f66604cac", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/icrowley/fake/com_github_icrowley_fake-v0.0.0-20180203215853-4178557ae428.zip": "b503a0bc24e79b470d85701a11294430274f1203977e931008a88543f9f56fd4", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/imdario/mergo/com_github_imdario_mergo-v0.3.13.zip": "04f72d0e4695b4a004846a5d4f60d2dc381bacb032ebb8d58905e6eb00d121d2", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/imkira/go-interpol/com_github_imkira_go_interpol-v1.1.0.zip": "de5111f7694700ea056beeb7c1ca1a827075d423422f251076ee17bd869477d9", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/inconshreveable/mousetrap/com_github_inconshreveable_mousetrap-v1.0.1.zip": "af6f61a00f42d025f195ea272620bbddb045552a9badcf97d8a837980017dbfc", @@ -754,7 +737,6 @@ DISTDIR_FILES = { "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/kr/pretty/com_github_kr_pretty-v0.3.1.zip": "ecf5a4af24826c3ad758ce06410ca08e2d58e4d95053be3b9dde2e14852c0cdc", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/kr/pty/com_github_kr_pty-v1.1.8.zip": "d66e6fbc65e772289a7ff8c58ab2cdfb886253053b0cea11ba3ca1738b2d6bc6", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/kr/text/com_github_kr_text-v0.2.0.zip": "368eb318f91a5b67be905c47032ab5c31a1d49a97848b1011a0d0a2122b30ba4", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/krishicks/yaml-patch/com_github_krishicks_yaml_patch-v0.0.10.zip": "7aaf59809fc6a58e0d182293b974378740962887c8fbc95445921fcebd1fb3ae", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/kylelemons/godebug/com_github_kylelemons_godebug-v1.1.0.zip": "dbbd0ce8c2f4932bb03704d73026b21af12bd68d5b8f4798dbf10a487a2b6d13", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/labstack/echo/v4/com_github_labstack_echo_v4-v4.10.0.zip": "a3fc254d25ecedac09219b74725f6ae3dd9234951c7bd14a18b0f1ce3077f059", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/labstack/gommon/com_github_labstack_gommon-v0.4.0.zip": "ecb8222666a0058337912bbddb2c3e9ba1f60b356248619f6936eec5bfec640b", @@ -784,14 +766,10 @@ DISTDIR_FILES = { "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/markbates/oncer/com_github_markbates_oncer-v0.0.0-20181203154359-bf2de49a0be2.zip": "959dec2377586af9c354b5667c303f0b506cb480b11f3ecdafc54ff1ec015e62", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/markbates/safe/com_github_markbates_safe-v1.0.1.zip": "d5a98e8242318d4e88844ddbbfebe91f67f41e5aa1f6a96a58fa2fa94e0ae9ef", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/marstr/guid/com_github_marstr_guid-v1.1.0.zip": "7db3cd8020c72ba260d1a20183bf5a030c696d6442eccaff2b31f72b194fc571", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/martini-contrib/auth/com_github_martini_contrib_auth-v0.0.0-20150219114609-fa62c19b7ae8.zip": "b3b2a267bb6ef227960e4391cc2bc868d0e6bceb2cb32372242c60f28f643cb2", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/martini-contrib/gzip/com_github_martini_contrib_gzip-v0.0.0-20151124214156-6c035326b43f.zip": "803830ec3e7c75b135f0215579834192d01ce43da81934d903ed4ff9fa4dac9b", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/martini-contrib/render/com_github_martini_contrib_render-v0.0.0-20150707142108-ec18f8345a11.zip": "2edd7f64b2f1f053f86a51856cd0f02b1f762af61a458a2e282dab76ad093d70", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/maruel/panicparse/v2/com_github_maruel_panicparse_v2-v2.2.2.zip": "347c6313a97142b29f3f5093f7f3dcfe5a08bc11e205d5a216de2eae9532fbc3", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/marusama/semaphore/com_github_marusama_semaphore-v0.0.0-20190110074507-6952cef993b2.zip": "2bc0cfc69824299ce542fd221820905ded92a3e236428f0f157887c081eb367d", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/matryer/moq/com_github_matryer_moq-v0.0.0-20190312154309-6cfb0558e1bd.zip": "b9fb2bc3d0894dfaa3cc4298f49c97346ccb66f2f0e6911f4f224ffc9acc3972", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/mattn/go-colorable/com_github_mattn_go_colorable-v0.1.13.zip": "08be322dcc584a9fcfde5caf0cf878b4e11cd98f252e32bc704e92c5a4ba9d15", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/mattn/go-ieproxy/com_github_mattn_go_ieproxy-v0.0.0-20190610004146-91bb50d98149.zip": "2982ad9362d63b30a081fe7609b595fefcc7baaaeda2f5f17a7dbeb087a84020", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/mattn/go-isatty/com_github_mattn_go_isatty-v0.0.20.zip": "f2d5f89ca451577e17464b9bb596dc0d0ecececb5eaa63622c41b57cd0b7b8cc", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/mattn/go-localereader/com_github_mattn_go_localereader-v0.0.1.zip": "aa67306797b071ce93188fe2834f63ffd7963faf623d49229d891ef52e595b35", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/mattn/go-runewidth/com_github_mattn_go_runewidth-v0.0.14.zip": "364ef5ed31f6571dad56730305b5c2288a53da06d9832680ade5e21d97a748e7", @@ -811,7 +789,6 @@ DISTDIR_FILES = { "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/minio/asm2plan9s/com_github_minio_asm2plan9s-v0.0.0-20200509001527-cdd76441f9d8.zip": "39a2e28284764fd5423247d7469875046d0c8c4c2773333abf1c544197e9d946", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/minio/c2goasm/com_github_minio_c2goasm-v0.0.0-20190812172519-36a3d3bbc4f3.zip": "04367ddf0fc5cd0f293e2c4f1acefb131b572539d88b5804d92efc905eb718b5", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/minio/md5-simd/com_github_minio_md5_simd-v1.1.2.zip": "f829d35a6e6897db415af8888c4b074d1a253aee0e8fb7054b4d95477a81c3d6", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/minio/minio-go/com_github_minio_minio_go-v0.0.0-20190131015406-c8a261de75c1.zip": "329d7e50f7e20014fa563aa8ff7a789106660e4b6fed87b2ca17fe3387cecb86", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/minio/minio-go/v7/com_github_minio_minio_go_v7-v7.0.21.zip": "826952231f5c7622b7c2d4b5180a4e12cf3379bd3842e1ef4934dfe115786218", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/minio/minlz/com_github_minio_minlz-v1.0.1-0.20250507153514-87eb42fe8882.zip": "eebf4da3a42da834d650af4e620e879f35b3a4aabb5c41dce417a0bbe6bac859", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/minio/sha256-simd/com_github_minio_sha256_simd-v1.0.0.zip": "62edc1481390c3421ff5a54b80c49acab85331348124d560a5e410074d19c3e5", @@ -819,8 +796,7 @@ DISTDIR_FILES = { "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/mitchellh/cli/com_github_mitchellh_cli-v1.1.0.zip": "521d0ee631576325f75092c56264b4f310bba32b46999ed2024d937dd3a41824", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/mitchellh/copystructure/com_github_mitchellh_copystructure-v1.0.0.zip": "4a2c9eb367a7781864e8edbd3b11781897766bcf6120f77a717d54a575392eee", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/mitchellh/go-homedir/com_github_mitchellh_go_homedir-v1.1.0.zip": "fffec361fc7e776bb71433560c285ee2982d2c140b8f5bfba0db6033c0ade184", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/mitchellh/go-ps/com_github_mitchellh_go_ps-v1.0.0.zip": "f2f0400b1d5e136419daed275c27a930b0f5447ac12bb8acd3ddbe39547b2834", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/mitchellh/go-testing-interface/com_github_mitchellh_go_testing_interface-v1.14.0.zip": "3af316747f951819b19cf55fbaaa592f1d3f19ab078e183c6cd7ca591e6791a8", + "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/mitchellh/go-testing-interface/com_github_mitchellh_go_testing_interface-v1.0.0.zip": "255871a399420cd3513b12f50738d290e251637deb23e21a4332192584ecf9c7", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/mitchellh/go-wordwrap/com_github_mitchellh_go_wordwrap-v1.0.0.zip": "9ea185f97dfe616da351b63b229a5a212b14ac0e23bd3f943e39590eadb38031", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/mitchellh/gox/com_github_mitchellh_gox-v0.4.0.zip": "70c976edc82b069d55c4b05409be9e91d85c20238a5e38c60fbb0b03b43c9550", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/mitchellh/iochan/com_github_mitchellh_iochan-v1.0.0.zip": "f3eede01adb24c22945bf71b4f84ae25e3744a12b9d8bd7c016705adc0d778b8", @@ -866,11 +842,9 @@ DISTDIR_FILES = { "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/nats-io/nuid/com_github_nats_io_nuid-v1.0.1.zip": "809d144fbd16f91651a433e28d2008d339e19dafc450c5995e2ed92f1c17c1f3", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/nbutton23/zxcvbn-go/com_github_nbutton23_zxcvbn_go-v0.0.0-20180912185939-ae427f1e4c1d.zip": "d9a08288eb990834ea161adbd57757a449d664ee254dc8c33444663e6596f4d8", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/ncw/swift/com_github_ncw_swift-v1.0.47.zip": "38cc53277c66456f267963ad9613cd168f252d9bef58de95dcee5202ceecb3e3", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/ngdinhtoan/glide-cleanup/com_github_ngdinhtoan_glide_cleanup-v0.2.0.zip": "e008e980d1a5335baaae1d10df2786ea1aea0d9774f8a46d19886a828edde4f3", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/niemeyer/pretty/com_github_niemeyer_pretty-v0.0.0-20200227124842-a10e7caefd8e.zip": "2dcb7053faf11c28cad7d84fcfa3dd7f93e3d236b39d83cff0934f691f860d7a", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/nightlyone/lockfile/com_github_nightlyone_lockfile-v1.0.0.zip": "0abd22d55b704c18426167732414806b2a70d99bce65fa9f943cb88c185689ad", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/nishanths/predeclared/com_github_nishanths_predeclared-v0.0.0-20200524104333-86fad755b4d3.zip": "f3a40ab7d3e0570570e7bc41a6cc7b08b3e23df5ef5f08553ef622a3752d6e03", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/nkovacs/streamquote/com_github_nkovacs_streamquote-v0.0.0-20170412213628-49af9bddb229.zip": "679a789b4b1409ea81054cb12e5f8441199f5fb17d4a2d3510c51f3aa5f3f0cc", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/nxadm/tail/com_github_nxadm_tail-v1.4.8.zip": "70bf6e142f90694059792f7d5b31a915df989e8a6a554a836de36fa075377ff9", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/oklog/oklog/com_github_oklog_oklog-v0.3.2.zip": "b37d032de5b0dd5e96063c06b77fcb29a692a07bd52a4d99a361f2fef68822ec", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/oklog/run/com_github_oklog_run-v1.1.0.zip": "d6f69fc71aa155043f926c2a98fc1e5b3a8ebab422f2f36d785cfba38a7ebee4", @@ -886,7 +860,6 @@ DISTDIR_FILES = { "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/opencontainers/runtime-spec/com_github_opencontainers_runtime_spec-v1.0.3-0.20210326190908-1c3f411f0417.zip": "5197cb24f4f9d29287ab2f86d4ad46e19a1d042940b156d458b30ce2b641ce5e", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/opencontainers/runtime-tools/com_github_opencontainers_runtime_tools-v0.0.0-20181011054405-1d69bd0f9c39.zip": "49e4ed2cb59461d3af837a3d624096b1fb8f3f0aa021e11c2d3025cca83d862f", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/opencontainers/selinux/com_github_opencontainers_selinux-v1.10.1.zip": "32a2bde9fd34f6a389b80c72ce51457ecdb96f2ce34ba83b4f95fd8ba2c36d19", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/opentracing-contrib/go-grpc/com_github_opentracing_contrib_go_grpc-v0.0.0-20180928155321-4b5a12d3ff02.zip": "51f4dabc672c3d1f4c91eb09f033bab42620e55ee477c01751adeee0b6524f89", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/opentracing-contrib/go-observer/com_github_opentracing_contrib_go_observer-v0.0.0-20170622124052-a52f23424492.zip": "50023eee1ef04412410f43d8b5dcf3ef481c0fc39067add27799654705fa84b2", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/opentracing-contrib/go-stdlib/com_github_opentracing_contrib_go_stdlib-v1.0.0.zip": "4ed9796a724963db8c0f052747a86262faa16b46a67a794cdda2814f47736a44", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/opentracing/basictracer-go/com_github_opentracing_basictracer_go-v1.0.0.zip": "a908957c8e55b7b036b4761fb64c643806fcb9b59d4e7c6fcd03fca1105a9156", @@ -896,10 +869,8 @@ DISTDIR_FILES = { "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/orisano/pixelmatch/com_github_orisano_pixelmatch-v0.0.0-20220722002657-fb0b55479cde.zip": "878ebc59d03acda03cd2052ad348cc481bc9bee0026bed1363a38c4d82b5a2c5", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/ory/dockertest/v3/com_github_ory_dockertest_v3-v3.9.1.zip": "2c9dabed798ccf07ac92653d8895ab50991ecc5f578806f7b856360bcc2087a9", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/otan/gopgkrb5/com_github_otan_gopgkrb5-v1.0.3.zip": "8d7241eed0a03a88654c49ee0a0c5db4f5bd37682011ee953cddb623f16bb349", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/oxtoacart/bpool/com_github_oxtoacart_bpool-v0.0.0-20190530202638-03653db5a59c.zip": "6816ec3a6f197cbee0ba6ddb9ec70958bc28870e59864b24e43da0c858079a1b", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/pact-foundation/pact-go/com_github_pact_foundation_pact_go-v1.0.4.zip": "e753f63d70bf56300c60fe87817d04935bd41693fef06d273ec70014cccabd3b", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/pascaldekloe/goe/com_github_pascaldekloe_goe-v0.1.0.zip": "37b73886f1eec9b093143e7b03f547b90ab55d8d5c9aa3966e90f9df2d07353c", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/patrickmn/go-cache/com_github_patrickmn_go_cache-v2.1.0+incompatible.zip": "d5d1c13e3c9cfeb04a943f656333ec68627dd6ce136af67e2aa5881ad7353c55", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/paulbellamy/ratecounter/com_github_paulbellamy_ratecounter-v0.2.0.zip": "fb012856582335cdac02ee17c08692d75d539158a82eda3a26fb8a51d4ef27e6", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/pborman/uuid/com_github_pborman_uuid-v1.2.0.zip": "b888ff5d33651a1f5f6b8094acc434dd6dc284e2fe5052754a7993cebd539437", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/pelletier/go-toml/com_github_pelletier_go_toml-v1.9.5.zip": "de3dcda660cc800cd86d03273a25956d67f416e8fcbe4d2001a2cb4a01e6ac60", @@ -956,7 +927,7 @@ DISTDIR_FILES = { "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/ryanuber/columnize/com_github_ryanuber_columnize-v2.1.0+incompatible.zip": "ff687e133db2e470640e511c90cf474154941537a94cd97bb0cf7a28a7d00dc7", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/safchain/ethtool/com_github_safchain_ethtool-v0.0.0-20190326074333-42ed695e3de8.zip": "d334d35faf29091158a17c695830d15da359e7fb01d779fcec17fc787ef72d1e", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/sahilm/fuzzy/com_github_sahilm_fuzzy-v0.1.0.zip": "82c8b592ff10966ec1639dea6b5f925706a4901583dc15060ac00392e6693498", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/samuel/go-zookeeper/com_github_samuel_go_zookeeper-v0.0.0-20200724154423-2164a8ac840e.zip": "13c5ccd4ada8ba049a48ae6fdf5b4de54894e56e8f017187466a8cb95ce1faf3", + "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/samuel/go-zookeeper/com_github_samuel_go_zookeeper-v0.0.0-20190923202752-2cc03de413da.zip": "499f8144de8a6839b2d70c8869d88f294604188ec501e928ca17446043147d40", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/sasha-s/go-deadlock/com_github_sasha_s_go_deadlock-v0.3.1.zip": "82eaa020f254a21d5025b6cae9a908315ffa382f941ef228431c10177b9657d4", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/satori/go.uuid/com_github_satori_go_uuid-v1.2.1-0.20181028125025-b2ce2384e17b.zip": "31af2e17e052a9cf74182b335ecb9abadaf9235e09e5cc6a55ebd06d355f1dd2", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/savsgio/gotils/com_github_savsgio_gotils-v0.0.0-20210921075833-21a6215cb0e4.zip": "2d92113b0b2a2c22947d56f51129cf58013e4aaecd2cadfd84d7693c4186ac58", @@ -975,10 +946,9 @@ DISTDIR_FILES = { "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/shurcooL/sanitized_anchor_name/com_github_shurcool_sanitized_anchor_name-v1.0.0.zip": "0af034323e0627a9e94367f87aa50ce29e5b165d54c8da2926cbaffd5834f757", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/shurcooL/vfsgen/com_github_shurcool_vfsgen-v0.0.0-20200824052919-0d455de96546.zip": "98198ecd8f122d1266ff2db193f1aae8a88f2f299bfc34b06ef356694cca537d", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/sirupsen/logrus/com_github_sirupsen_logrus-v1.9.1.zip": "0d36e981b0d2e186fafe7e1ca7faf111a0f61a011ee9f713659e61da623dbde9", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/sjmudd/stopwatch/com_github_sjmudd_stopwatch-v0.0.0-20170613150411-f380bf8a9be1.zip": "69e0ed207172b04161ccb26977f4c657fbee77296eca0b7ff84f8b1f2c2a6847", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/slack-go/slack/com_github_slack_go_slack-v0.9.5.zip": "2b1cc2d4107c7017f1348beefeb23db1cdbecf94b32590da364daed420371cde", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/slok/go-http-metrics/com_github_slok_go_http_metrics-v0.10.0.zip": "bf2e2b626e4fbd9735165494c574f2474f400786d8bd96b6b4648eba352c817b", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/smartystreets/assertions/com_github_smartystreets_assertions-v0.0.0-20190116191733-b6c0e53d7304.zip": "bf12bc33290d3e1e6f4cfe89aad0ad40c0acbfb378ce11e8157569aaf1526c04", + "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/smartystreets/assertions/com_github_smartystreets_assertions-v0.0.0-20180927180507-b2de0cb4f26d.zip": "0434c12c41cb4c3e7ebf2fa44d3eeaafa75b9a61a80e30408ed8e09c3d5d3d70", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/smartystreets/goconvey/com_github_smartystreets_goconvey-v1.6.4.zip": "a931413713a303a958a9c3ac31305498905fb91465e725552472462130396dda", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/soheilhy/cmux/com_github_soheilhy_cmux-v0.1.4.zip": "6d6cadade0e186f84b5f8e7ddf8f4256601b21e49b0ca49fd003a7e570ae1885", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/sony/gobreaker/com_github_sony_gobreaker-v0.4.1.zip": "eab9bf8f98b16b051d7d13c4f5c70d6d1039347e380e0a12cb9ff6e33200d784", @@ -1002,10 +972,9 @@ DISTDIR_FILES = { "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/tchap/go-patricia/com_github_tchap_go_patricia-v2.2.6+incompatible.zip": "948494017eae153a8c2d4ae9b450fd42abcb2578211f1c28e69ab71a2f27814d", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/tdewolff/minify/v2/com_github_tdewolff_minify_v2-v2.12.4.zip": "6f76f152c15fee3a36b0496175d7e075046c3b47b50327428b10d32af6549f5f", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/tdewolff/parse/v2/com_github_tdewolff_parse_v2-v2.6.4.zip": "5bfdded67b0164d0fbfc8c5d308a4c9c2f5ebecdcf3e769b5e9ca8586335c543", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/tebeka/selenium/com_github_tebeka_selenium-v0.9.9.zip": "1bcf27d3675f057bf2af7d73db1d06b932537ba46fa5bd4be6855105c31106d7", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/the42/cartconvert/com_github_the42_cartconvert-v0.0.0-20131203171324-aae784c392b8.zip": "a254c587b6ad690e45269f161fa52e26406bafc14f94442684063df8c953cbf3", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/tidwall/pretty/com_github_tidwall_pretty-v1.0.0.zip": "3b25a1a0fe7688989326aaa1ca1c74c972b30152ef2a756fbf2d217a827fc07d", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/tinylib/msgp/com_github_tinylib_msgp-v1.1.1.zip": "5f95bcd71857878008dd8f1aca59e672f9e07122ff9689bcf3bc9b8b859ba4e2", + "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/tinylib/msgp/com_github_tinylib_msgp-v1.1.0.zip": "61bd58489c555b30abffbe1175565b6f8460583349118e9ee12025fd17b67ea4", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/tklauser/go-sysconf/com_github_tklauser_go_sysconf-v0.3.9.zip": "2233c2cf18d4d37354eb333ec8a2dca63c24a09cfbc3b90cd06a8b3afe70893f", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/tklauser/numcpus/com_github_tklauser_numcpus-v0.3.0.zip": "a5569abed62bb2d5f5f322f23fe8cae888fe98704442d59ed9e7aabfed423899", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/tmc/grpc-websocket-proxy/com_github_tmc_grpc_websocket_proxy-v0.0.0-20190109142713-0ad062ec5ee5.zip": "dadf62266d259ffb6aa1d707892b97fa36c3f39df5cae99f54d3ef7682995376", @@ -1018,7 +987,6 @@ DISTDIR_FILES = { "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/twpayne/go-kml/com_github_twpayne_go_kml-v1.5.2.zip": "f67a698f9a02c889a1f6ff4e0a0625ec2359057674c0f25cf8c862ae519e382e", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/twpayne/go-polyline/com_github_twpayne_go_polyline-v1.0.0.zip": "1794c8b7368bd16dec9cdb7b9be394c2030a1cc706a51edc318490667d9a5a97", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/twpayne/go-waypoint/com_github_twpayne_go_waypoint-v0.0.0-20200706203930-b263a7f6e4e8.zip": "8163a963b71e0723d694f87eeb15e3a7f9a32ad5fd189a1b78cf0aa293d300c8", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/uber-go/atomic/com_github_uber_go_atomic-v1.4.0.zip": "f380292d46ebec89bf53939e4d7d19d617327cbcdf2978e30e6c39bc77df5e73", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/uber-go/tally/com_github_uber_go_tally-v3.3.15+incompatible.zip": "f1d6e97da887bf4a704dace304fdb46cc69a03969c779638f6f805ecfa7aa27c", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/uber/athenadriver/com_github_uber_athenadriver-v1.1.4.zip": "6ac94915e7d83bae55c968c4b750a4dee2ca6a57a5ed2bb8f9203735e452080d", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/uber/jaeger-client-go/com_github_uber_jaeger_client_go-v2.29.1+incompatible.zip": "a6933446c0bdeccfdb60361df9945138b1821dee1dfd5ec27f4fd832550e80fb", @@ -1064,7 +1032,6 @@ DISTDIR_FILES = { "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/yvasiyarov/go-metrics/com_github_yvasiyarov_go_metrics-v0.0.0-20140926110328-57bccd1ccd43.zip": "1f5232fe57c3b7eb0f106cc757441191ef139cb437883a787c180fc3ad46c43f", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/yvasiyarov/gorelic/com_github_yvasiyarov_gorelic-v0.0.0-20141212073537-a9bba5b9ab50.zip": "8e81ca0272c35235d450c0061620cc178df6554bb9d5be5d828c80e08e97fd66", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/yvasiyarov/newrelic_platform_go/com_github_yvasiyarov_newrelic_platform_go-v0.0.0-20140908184405-b21fdbd4370f.zip": "67a98b32ee13f9d4f8f8de52c332e4c4eceea9144ccb5141167a2c40db201658", - "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/z-division/go-zookeeper/com_github_z_division_go_zookeeper-v0.0.0-20190128072838-6d7457066b9b.zip": "b0a67a3bb3cfbb1be18618b84b02588979795966e040f18c5bb4be036888cabd", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/zabawaba99/go-gitignore/com_github_zabawaba99_go_gitignore-v0.0.0-20200117185801-39e6bddfb292.zip": "6c837b93e1c73e53123941c8e866de1deae6b645cc49a7d30d493c146178f8e8", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/zeebo/assert/com_github_zeebo_assert-v1.3.0.zip": "1f01421d74ff37cb8247988155be9e6877d336029bcd887a1d035fd32d7ab6ae", "https://storage.googleapis.com/cockroach-godeps/gomod/github.com/zeebo/errs/com_github_zeebo_errs-v1.2.2.zip": "d2fa293e275c21bfb413e2968d79036931a55f503d8b62381563ed189b523cd2", @@ -1123,7 +1090,7 @@ DISTDIR_FILES = { "https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/tools/org_golang_x_tools-v0.31.0.zip": "5fbbb3a08f85fb7a3d0990d98bc1cd19f921d0df0afbae6c119a0edda752366c", "https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/xerrors/org_golang_x_xerrors-v0.0.0-20220907171357-04be3eba64a2.zip": "b9c481db33c4b682ba8ba348018ddbd2155bd227cc38ff9f6b4cb2b74bbc3c14", "https://storage.googleapis.com/cockroach-godeps/gomod/gonum.org/v1/gonum/org_gonum_v1_gonum-v0.15.1.zip": "7a1b124a144b2c97a29829464d4b7258e04235c1fb14bbcea902086618414a43", - "https://storage.googleapis.com/cockroach-godeps/gomod/gonum.org/v1/netlib/org_gonum_v1_netlib-v0.0.0-20190331212654-76723241ea4e.zip": "ed4dca5026c9ab5410d23bbe21c089433ca58a19bd2902311c6a91791142a687", + "https://storage.googleapis.com/cockroach-godeps/gomod/gonum.org/v1/netlib/org_gonum_v1_netlib-v0.0.0-20190313105609-8cb42192e0e0.zip": "eeaeb60f410b86f59d97f15c5ef89096dc72aeb42bae55141738bf9866893938", "https://storage.googleapis.com/cockroach-godeps/gomod/gonum.org/v1/plot/org_gonum_v1_plot-v0.14.0.zip": "fd775f6c27e4c8e1d3290cbeda17d08b06a1c3ca7d896c6f392fdd59b337501c", "https://storage.googleapis.com/cockroach-godeps/gomod/google.golang.org/api/org_golang_google_api-v0.114.0.zip": "42c62aaba1d76efede08c70d8aef7889c5c8ee9c9c4f1e7c455b07838cabb785", "https://storage.googleapis.com/cockroach-godeps/gomod/google.golang.org/appengine/org_golang_google_appengine-v1.6.7.zip": "79f80dfac18681788f1414e21a4a7734eff4cdf992070be9163103eb8d9f92cd", @@ -1136,10 +1103,8 @@ DISTDIR_FILES = { "https://storage.googleapis.com/cockroach-godeps/gomod/google.golang.org/grpc/examples/org_golang_google_grpc_examples-v0.0.0-20210324172016-702608ffae4d.zip": "f5cad7b05a93557c91864a02890a35c6bc5c394897222978cff2b880a78f7a11", "https://storage.googleapis.com/cockroach-godeps/gomod/google.golang.org/grpc/org_golang_google_grpc-v1.57.2.zip": "4cabfaa890b25757939e2221b93fe22b3097a0b83ffb331e922143a68f3da252", "https://storage.googleapis.com/cockroach-godeps/gomod/google.golang.org/protobuf/org_golang_google_protobuf-v1.35.1.zip": "5a27ed9bbe348c7435d91f699af976d0f7dc40c324542e4f41076a425d9e793e", - "https://storage.googleapis.com/cockroach-godeps/gomod/gopkg.in/DataDog/dd-trace-go.v1/in_gopkg_datadog_dd_trace_go_v1-v1.17.0.zip": "2ebcc818df0b2d560a61037da4492ae7effbaed67de94339a1d3a72728d2cb09", "https://storage.googleapis.com/cockroach-godeps/gomod/gopkg.in/airbrake/gobrake.v2/in_gopkg_airbrake_gobrake_v2-v2.0.9.zip": "2db903664908e5a9afafefba94821b9579bbf271e2929c1f0b7b1fdd23f7bbcf", "https://storage.googleapis.com/cockroach-godeps/gomod/gopkg.in/alecthomas/kingpin.v2/in_gopkg_alecthomas_kingpin_v2-v2.2.6.zip": "638080591aefe7d2642f2575b627d534c692606f02ea54ba89f42db112ba8839", - "https://storage.googleapis.com/cockroach-godeps/gomod/gopkg.in/asn1-ber.v1/in_gopkg_asn1_ber_v1-v1.0.0-20181015200546-f715ec2f112d.zip": "fee158570ba9cbfc11156afbe9b9ab0833ab00d0f1a2a2af29a6325984a79903", "https://storage.googleapis.com/cockroach-godeps/gomod/gopkg.in/check.v1/in_gopkg_check_v1-v1.0.0-20201130134442-10cb98267c6c.zip": "f555684e5c5dacc2850dddb345fef1b8f93f546b72685589789da6d2b062710e", "https://storage.googleapis.com/cockroach-godeps/gomod/gopkg.in/cheggaaa/pb.v1/in_gopkg_cheggaaa_pb_v1-v1.0.25.zip": "12c7e316faacb5cfa5d0851b6e576391b2517a36d5221f42443cd8435394d9fe", "https://storage.googleapis.com/cockroach-godeps/gomod/gopkg.in/errgo.v2/in_gopkg_errgo_v2-v2.1.0.zip": "6b8954819a20ec52982a206fd3eb94629ff53c5790aa77534e6d8daf7de01bee", @@ -1158,7 +1123,6 @@ DISTDIR_FILES = { "https://storage.googleapis.com/cockroach-godeps/gomod/gopkg.in/jcmturner/goidentity.v3/in_gopkg_jcmturner_goidentity_v3-v3.0.0.zip": "1be44bee93d9080ce89f40827c57e8a396b7c801e2d19a1f5446a4325afa755e", "https://storage.googleapis.com/cockroach-godeps/gomod/gopkg.in/jcmturner/gokrb5.v7/in_gopkg_jcmturner_gokrb5_v7-v7.5.0.zip": "0d54c32510f4ab41729761fda5b448c5124917752485711f3d0c0810460134b8", "https://storage.googleapis.com/cockroach-godeps/gomod/gopkg.in/jcmturner/rpc.v1/in_gopkg_jcmturner_rpc_v1-v1.1.0.zip": "83d897b60ecb5a66d25232b775ed04c182ca8e02431f351b3768d4d2876d07ae", - "https://storage.googleapis.com/cockroach-godeps/gomod/gopkg.in/ldap.v2/in_gopkg_ldap_v2-v2.5.0.zip": "44fbb28e1a7b33d08edd31957f9fea15744979a97392d89a894306a610ed78f1", "https://storage.googleapis.com/cockroach-godeps/gomod/gopkg.in/mgo.v2/in_gopkg_mgo_v2-v2.0.0-20180705113604-9856a29383ce.zip": "86c056ac7d51d59bb158bb740e774c0f80b28c8ce8db56d619a569aa96b2cd03", "https://storage.googleapis.com/cockroach-godeps/gomod/gopkg.in/natefinch/lumberjack.v2/in_gopkg_natefinch_lumberjack_v2-v2.0.0.zip": "8c268e36660d6ce36af808d74b9be80207c05463679703e93d857e954c637aaa", "https://storage.googleapis.com/cockroach-godeps/gomod/gopkg.in/resty.v1/in_gopkg_resty_v1-v1.12.0.zip": "43487bb0bb40626d16502b1fe9e719cf751e7a5b4e4233276971873e7863d3cf", @@ -1173,11 +1137,9 @@ DISTDIR_FILES = { "https://storage.googleapis.com/cockroach-godeps/gomod/gotest.tools/v3/tools_gotest_v3-v3.2.0.zip": "fe238394013ebf35c313b7de60c5df5b6271f7c5f982eb8eecefe324531a0f5f", "https://storage.googleapis.com/cockroach-godeps/gomod/honnef.co/go/tools/co_honnef_go_tools-v0.5.1.zip": "d728ff392fc5b6f676a30c36e9d0a5b85f6f2e06b4ebbb121c27d965cbdffa11", "https://storage.googleapis.com/cockroach-godeps/gomod/k8s.io/api/io_k8s_api-v0.22.5.zip": "18d095a1d1344a7ed43ccae0c5b77d2586e134ea9489b1821402d72f980f3564", - "https://storage.googleapis.com/cockroach-godeps/gomod/k8s.io/apiextensions-apiserver/io_k8s_apiextensions_apiserver-v0.17.3.zip": "f3be44b21eaea21dbc2655f207f838a94e4ed63b24e5ce4f1d688c329b53c9ff", "https://storage.googleapis.com/cockroach-godeps/gomod/k8s.io/apimachinery/io_k8s_apimachinery-v0.22.5.zip": "1d624555825fb81d8bdae0c92a0aad07b3edea62dceedd49bc93a2024ed46467", "https://storage.googleapis.com/cockroach-godeps/gomod/k8s.io/apiserver/io_k8s_apiserver-v0.22.5.zip": "9717966bd0efc683e9f6a9d7ba734ef4513acdefe7b5b4639d7418e31382c6c7", "https://storage.googleapis.com/cockroach-godeps/gomod/k8s.io/client-go/io_k8s_client_go-v0.22.5.zip": "10255c093a4ebeb2d415a60d5b8ce5d410640374ca47ac24f721ab3028632193", - "https://storage.googleapis.com/cockroach-godeps/gomod/k8s.io/code-generator/io_k8s_code_generator-v0.17.3.zip": "59dd76fe046441365da49abb1eb22db7e368508f2622730b0bf125b044bbf07d", "https://storage.googleapis.com/cockroach-godeps/gomod/k8s.io/component-base/io_k8s_component_base-v0.22.5.zip": "6ee814e270931c0e0a3b893e51dedccf2be490b130ca892bead656fc24aeaf52", "https://storage.googleapis.com/cockroach-godeps/gomod/k8s.io/cri-api/io_k8s_cri_api-v0.25.0.zip": "78cbfd9d6182d197995c9722970f0809d7ff68ee68ab4cf47b25af786cbbf7b0", "https://storage.googleapis.com/cockroach-godeps/gomod/k8s.io/gengo/io_k8s_gengo-v0.0.0-20200413195148-3a45101e95ac.zip": "2591d39f698cdb50c870a8b97706f5c2b4d2819bd95e9b5c3ff57aca905264e1", @@ -1187,11 +1149,9 @@ DISTDIR_FILES = { "https://storage.googleapis.com/cockroach-godeps/gomod/k8s.io/kubernetes/io_k8s_kubernetes-v1.13.0.zip": "f065c08345beaa714fa5c81a548e2015babd496729f333721948b341eef9eb36", "https://storage.googleapis.com/cockroach-godeps/gomod/k8s.io/utils/io_k8s_utils-v0.0.0-20210930125809-cb0fa318a74b.zip": "36d8bf6bcf31ef7d701db07d0f78642015b811146da81f09e5f182247196c857", "https://storage.googleapis.com/cockroach-godeps/gomod/lukechampine.com/uint128/com_lukechampine_uint128-v1.2.0.zip": "9ff6e9ad553a69fdb961ab2d92f92cda183ef616a6709c15972c2d4bedf33de5", - "https://storage.googleapis.com/cockroach-godeps/gomod/modernc.org/cc/org_modernc_cc-v1.0.0.zip": "24711e9b28b0d79dd32438eeb7debd86b850350f5f7749b7af640422ecf6b93b", "https://storage.googleapis.com/cockroach-godeps/gomod/modernc.org/cc/v3/org_modernc_cc_v3-v3.40.0.zip": "fe3aeb761e55ce77a95b297321a122b4273aeffe1c08f48fc99310e065211f74", "https://storage.googleapis.com/cockroach-godeps/gomod/modernc.org/ccgo/v3/org_modernc_ccgo_v3-v3.16.13.zip": "bfc293300cd1ce656ba0ce0cee1f508afec2518bc4214a6b10ccfad6e8e6046e", "https://storage.googleapis.com/cockroach-godeps/gomod/modernc.org/ccorpus/org_modernc_ccorpus-v1.11.6.zip": "3831b62a73a379b81ac927e17e3e9ffe2d44ad07c934505e1ae24eea8a26a6d3", - "https://storage.googleapis.com/cockroach-godeps/gomod/modernc.org/golex/org_modernc_golex-v1.0.0.zip": "335133038991d7feaba5349ac2385db7b49601bba0904abf680803ee2d3c99df", "https://storage.googleapis.com/cockroach-godeps/gomod/modernc.org/httpfs/org_modernc_httpfs-v1.0.6.zip": "0b5314649c1327a199397eb6fd52b3ce41c9d3bc6dd2a4dea565b5fb87c13f41", "https://storage.googleapis.com/cockroach-godeps/gomod/modernc.org/libc/org_modernc_libc-v1.22.2.zip": "5f98bedf9f0663b3b87555904ee41b82fe9d8e9ac5c47c9fac9a42a7fe232313", "https://storage.googleapis.com/cockroach-godeps/gomod/modernc.org/mathutil/org_modernc_mathutil-v1.5.0.zip": "c17a767eaa5eb62d9bb105b8ece7f249186dd52b9b533301bec140b3d5fd260f", @@ -1201,14 +1161,12 @@ DISTDIR_FILES = { "https://storage.googleapis.com/cockroach-godeps/gomod/modernc.org/strutil/org_modernc_strutil-v1.1.3.zip": "2e59915393fa6a75021a97a41c60fac71c662bb9d1dc2d06e2c4ed77ea5da8cc", "https://storage.googleapis.com/cockroach-godeps/gomod/modernc.org/tcl/org_modernc_tcl-v1.13.2.zip": "f966db0dd1ccbc7f8d5ac2e752b64c3be343aa3f92215ed98b6f2a51b7abbb64", "https://storage.googleapis.com/cockroach-godeps/gomod/modernc.org/token/org_modernc_token-v1.1.0.zip": "3efaa49e9fb10569da9e09e785fa230cd5c0f50fcf605f3b5439dfcd61577c58", - "https://storage.googleapis.com/cockroach-godeps/gomod/modernc.org/xc/org_modernc_xc-v1.0.0.zip": "ef80e60acacc023cd294eef2555bd348f74c1bcd22c8cfbbd2472cb91e35900d", "https://storage.googleapis.com/cockroach-godeps/gomod/modernc.org/z/org_modernc_z-v1.5.1.zip": "5be23ef96669963e52d25b787d71028fff4fe1c468dec20aac59c9512caa2eb7", "https://storage.googleapis.com/cockroach-godeps/gomod/rsc.io/binaryregexp/io_rsc_binaryregexp-v0.2.0.zip": "b3e706aa278fa7f880d32fa1cc40ef8282d1fc7d6e00356579ed0db88f3b0047", "https://storage.googleapis.com/cockroach-godeps/gomod/rsc.io/pdf/io_rsc_pdf-v0.1.1.zip": "79bf310e399cf0e2d8aa61536750d2a6999c5ca884e7a27faf88d3701cd5ba8f", "https://storage.googleapis.com/cockroach-godeps/gomod/rsc.io/quote/v3/io_rsc_quote_v3-v3.1.0.zip": "b434cbbfc32c17b5228d0b0eddeaea89bef4ec9bd90b5c8fc55b64f8ce13eeb9", "https://storage.googleapis.com/cockroach-godeps/gomod/rsc.io/sampler/io_rsc_sampler-v1.3.0.zip": "da202b0da803ab2661ab98a680bba4f64123a326e540c25582b6cdbb9dc114aa", "https://storage.googleapis.com/cockroach-godeps/gomod/sigs.k8s.io/apiserver-network-proxy/konnectivity-client/io_k8s_sigs_apiserver_network_proxy_konnectivity_client-v0.0.15.zip": "70c5b8d90b0c0d03d4b75dd2af46664965f20d7f54a9cfc340256128eba457d2", - "https://storage.googleapis.com/cockroach-godeps/gomod/sigs.k8s.io/structured-merge-diff/io_k8s_sigs_structured_merge_diff-v1.0.1-0.20191108220359-b1b620dd3f06.zip": "a7c7f139cf93c42d9954f02b1f3d393f988cf6b8a423b3baf0f13716dab95141", "https://storage.googleapis.com/cockroach-godeps/gomod/sigs.k8s.io/structured-merge-diff/v2/io_k8s_sigs_structured_merge_diff_v2-v2.0.1.zip": "42c1a3be55e05ee4419bb4833419723a32bfa272e27ee3344efb3f570548c43b", "https://storage.googleapis.com/cockroach-godeps/gomod/sigs.k8s.io/structured-merge-diff/v4/io_k8s_sigs_structured_merge_diff_v4-v4.1.2.zip": "b32af97dadd79179a8f62aaf4ef1e0562e051be77053a60c7a4e724a5cbd00ce", "https://storage.googleapis.com/cockroach-godeps/gomod/sigs.k8s.io/yaml/io_k8s_sigs_yaml-v1.2.0.zip": "55ed08c5df448a033bf7e2c2912d4daa85b856a05c854b0c87ccc85c7f3fbfc7", diff --git a/go.mod b/go.mod index 083e4ac97b87..2be6a122b285 100644 --- a/go.mod +++ b/go.mod @@ -262,7 +262,6 @@ require ( gopkg.in/yaml.v2 v2.4.0 gopkg.in/yaml.v3 v3.0.1 honnef.co/go/tools v0.5.1 - vitess.io/vitess v0.0.0-00010101000000-000000000000 ) require ( @@ -494,8 +493,6 @@ replace github.com/olekukonko/tablewriter => github.com/cockroachdb/tablewriter replace github.com/abourget/teamcity => github.com/cockroachdb/teamcity v0.0.0-20180905144921-8ca25c33eb11 -replace vitess.io/vitess => github.com/cockroachdb/vitess v0.0.0-20210218160543-54524729cc82 - replace gopkg.in/yaml.v2 => github.com/cockroachdb/yaml v0.0.0-20210825132133-2d6955c8edbc replace github.com/docker/docker => github.com/moby/moby v24.0.6+incompatible diff --git a/go.sum b/go.sum index 4a6e4e3196b3..16a9ff04e084 100644 --- a/go.sum +++ b/go.sum @@ -3,7 +3,6 @@ cloud.google.com/go v0.0.0-20170206221025-ce650573d812/go.mod h1:aQUYkXzVsufM+Dw cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.41.0/go.mod h1:OauMR7DV8fzvZIl2qg6rkaIhD/vmgk4iwEw/h6ercmg= cloud.google.com/go v0.43.0/go.mod h1:BOSR3VbTLkk6FDC/TcffxP4NF/FFBGA5ku+jvKOP7pg= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= @@ -84,7 +83,6 @@ github.com/AndreasBriese/bbloom v0.0.0-20190306092124-e2d15f34fcf9/go.mod h1:bOv github.com/AndreasBriese/bbloom v0.0.0-20190825152654-46b345b51c96/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= github.com/AthenZ/athenz v1.10.39 h1:mtwHTF/v62ewY2Z5KWhuZgVXftBej1/Tn80zx4DcawY= github.com/AthenZ/athenz v1.10.39/go.mod h1:3Tg8HLsiQZp81BJY58JBeU2BR6B/H4/0MQGfCwhHNEA= -github.com/Azure/azure-pipeline-go v0.2.1/go.mod h1:UGSo8XybXnIGZ3epmeBw7Jdz+HiUVpqIlpz/HKHylF4= github.com/Azure/azure-sdk-for-go v16.2.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/azure-sdk-for-go v41.3.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/azure-sdk-for-go v57.1.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= @@ -121,7 +119,6 @@ github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources v1. github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources v1.1.1/go.mod h1:c/wcGeGx5FUPbM/JltUYHZcKmigwyVLJlDq+4HdtXaw= github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0 h1:u/LLAOFgsMv7HmNL4Qufg58y+qElGOt5qv0z1mURkRY= github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0/go.mod h1:2e8rMJtl2+2j+HXbTBwnyGpm5Nou7KhvSfxOq8JpTag= -github.com/Azure/azure-storage-blob-go v0.8.0/go.mod h1:lPI3aLPpuLTeUwh1sViKXFxwl2B6teiRqI0deQUvsw0= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= @@ -188,7 +185,6 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03 github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c h1:pxW6RcqyfI9/kWtOwnv/G+AzdKuy2ZrqINhenH4HyNs= github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/BurntSushi/xgbutil v0.0.0-20160919175755-f7c97cef3b4e/go.mod h1:uw9h2sd4WWHOPdJ13MQpwK5qYWKYDumDqxWWIknEQ+k= github.com/CloudyKit/fastprinter v0.0.0-20200109182630-33d98a066a53/go.mod h1:+3IMCy2vIlbG1XG/0ggNQv0SvxCAIpPM5b1nCz56Xno= github.com/CloudyKit/jet/v3 v3.0.0/go.mod h1:HKQPgSJmdK8hdoAbKUUWajkHyHo4RaU5rMdUywE7VMo= github.com/Codefor/geohash v0.0.0-20140723084247-1b41c28e3a9d h1:iG9B49Q218F/XxXNRM7k/vWf7MKmLIS8AcJV9cGN4nA= @@ -199,14 +195,11 @@ github.com/DATA-DOG/go-sqlmock v1.5.0 h1:Shsta01QNfFxHCfpW6YH2STWB0MudeXXEWMr20O github.com/DATA-DOG/go-sqlmock v1.5.0/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= github.com/DataDog/datadog-api-client-go/v2 v2.15.0 h1:5UVON1xs6Lul4d6R5TmLDqqSJxOkunkm/UdM/fjm+zc= github.com/DataDog/datadog-api-client-go/v2 v2.15.0/go.mod h1:ZG8wS+y2rUmkRDJZQq7Og7EAPFPage+7vXcmuah2I9o= -github.com/DataDog/datadog-go v2.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/DataDog/zstd v1.3.6-0.20190409195224-796139022798/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= github.com/DataDog/zstd v1.4.4/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= github.com/DataDog/zstd v1.5.7 h1:ybO8RBeh29qrxIhCA9E8gKY6xfONU9T6G6aP9DTKfLE= github.com/DataDog/zstd v1.5.7/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= -github.com/GeertJohan/go.incremental v1.0.0/go.mod h1:6fAjUhbVuX1KcMD3c8TEgVUqmo4seqhv0i0kdATSkM0= -github.com/GeertJohan/go.rice v1.0.0/go.mod h1:eH6gbSOAUv07dQuZVnBmoDP8mgsM1rtixis4Tib9if0= github.com/GoogleCloudPlatform/cloudsql-proxy v0.0.0-20190129172621-c8b1d7a94ddf/go.mod h1:aJ4qN3TfrelA6NZ6AXsXRfmEVaYin3EDbSPJrKS8OXo= github.com/HdrHistogram/hdrhistogram-go v1.1.0/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM= @@ -226,7 +219,6 @@ github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0 github.com/Joker/hpp v1.0.0/go.mod h1:8x5n+M1Hp5hC0g8okX3sR3vFQwynaX/UgSOM9MeBKzY= github.com/Julusian/godocdown v0.0.0-20170816220326-6d19f8ff2df8/go.mod h1:INZr5t32rG59/5xeltqoCJoNY7e5x/3xoY9WSWVWg74= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= -github.com/Masterminds/glide v0.13.2/go.mod h1:STyF5vcenH/rUqTEv+/hBXlSTo7KYwg2oc2f4tzPWic= github.com/Masterminds/goutils v1.1.0 h1:zukEsf/1JZwCMgHiK3GZftabmxiCw4apj3a28RPBiVg= github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= github.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= @@ -238,7 +230,6 @@ github.com/Masterminds/sprig v2.15.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuN github.com/Masterminds/sprig v2.16.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= github.com/Masterminds/sprig v2.22.0+incompatible h1:z4yfnGrZ7netVz+0EDJ0Wi+5VZCSYp4Z0m2dk6cEM60= github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= -github.com/Masterminds/vcs v1.13.0/go.mod h1:N09YCmOQr6RLxC6UNHzuVwAdodYbbnycGHSmwVJjcKA= github.com/MichaelTJones/walk v0.0.0-20161122175330-4748e29d5718 h1:FSsoaa1q4jAaeiAUxf9H0PgFP7eA/UL6c3PdJH+nMN4= github.com/MichaelTJones/walk v0.0.0-20161122175330-4748e29d5718/go.mod h1:VVwKsx9Dc8rNG55BWqogoJzGubjKnRoXdUvpGbWqeCc= github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= @@ -303,9 +294,7 @@ github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3 github.com/ajstarks/svgo v0.0.0-20210923152817-c3b6e2f0c527/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b h1:slYM766cy2nI3BwyRiyQj/Ud48djTMtMebDqepE95rw= github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b/go.mod h1:1KcenG0jGWcpt8ov532z81sp/kMMUG485J2InIOyADM= -github.com/akavel/rsrc v0.8.0/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c= github.com/alecthomas/kingpin/v2 v2.3.1/go.mod h1:oYL5vtsvEHZGHxU7DMp32Dvx+qL+ptGn6lWaot2vCNE= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= @@ -350,11 +339,9 @@ github.com/ardielle/ardielle-tools v1.5.4/go.mod h1:oZN+JRMnqGiIhrzkRN9l26Cej9dE github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= -github.com/armon/go-metrics v0.0.0-20190430140413-ec5e00d3c878/go.mod h1:3AMJUQhVx52RsWOnlkpikZr01T/yAVN2gn0861vByNg= github.com/armon/go-metrics v0.3.3/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= @@ -370,7 +357,6 @@ github.com/aws/aws-msk-iam-sasl-signer-go v1.0.0 h1:UyjtGmO0Uwl/K+zpzPwLoXzMhcN9 github.com/aws/aws-msk-iam-sasl-signer-go v1.0.0/go.mod h1:TJAXuFs2HcMib3sN5L0gUC+Q01Qvy3DemvA55WuC+iA= github.com/aws/aws-sdk-go v1.15.11/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZoCYDt7FT0= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.28.8/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.29.16/go.mod h1:1KvfttTE3SPKMpo8g2c6jL3ZKfXtFvKscTgahTma5Xg= github.com/aws/aws-sdk-go v1.30.12/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.32.6/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= @@ -464,7 +450,6 @@ github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZx github.com/benbjohnson/immutable v0.2.1/go.mod h1:uc6OHo6PN2++n98KHLxW8ef4W42ylHiQSENghE1ezxI= github.com/benbjohnson/tmpl v1.0.0/go.mod h1:igT620JFIi44B6awvU9IsDhR77IXWtFigTLil/RPdps= github.com/beorn7/perks v0.0.0-20160804104726-4c0e84591b9a/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d h1:xDfNPAt8lFiC1UJrqV3uuy861HCTo708pDMbjHHdCas= @@ -478,7 +463,6 @@ github.com/bits-and-blooms/bitset v1.4.0 h1:+YZ8ePm+He2pU3dZlIZiOeAKfrBkXi1lSrXJ github.com/bits-and-blooms/bitset v1.4.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA= github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/blevesearch/snowballstem v0.9.0 h1:lMQ189YspGP6sXvZQ4WZ+MLawfV8wOmPoD/iWeNXm8s= github.com/blevesearch/snowballstem v0.9.0/go.mod h1:PivSj3JMc8WuaFkTSRDW2SlrulNWPl4ABg1tC/hlgLs= @@ -498,7 +482,6 @@ github.com/buchgr/bazel-remote v1.3.3/go.mod h1:S3hp0AjuSPTPYTFfd742LOOzSNfNnEVK github.com/bufbuild/buf v0.56.0 h1:oBx0OPMc62HE73dXLQWu6AH+WzA0h0p8/TyA1JeVhks= github.com/bufbuild/buf v0.56.0/go.mod h1:IGK996ntty37odzh5iWRUrK7G16Y8GYE8484mhXZxak= github.com/buger/jsonparser v0.0.0-20180808090653-f4dd9f5a6b44/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s= -github.com/buger/jsonparser v0.0.0-20200322175846-f7e751efca13/go.mod h1:tgcrVJ81GPSF0mz+0nu1Xaz0fazGPrmmJfJtxjbHhUQ= github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd/go.mod h1:2oa8nejYd4cQ/b0hMIopN0lCRxU0bueqREvZLWFrtK8= github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b/go.mod h1:obH5gd0BsqsP2LwDJ9aOkm/6J86V6lyAXCoQWGw3K50= github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE= @@ -620,15 +603,12 @@ github.com/cockroachdb/ttycolor v0.0.0-20210902133924-c7d7dcdde4e8 h1:Hli+oX84dK github.com/cockroachdb/ttycolor v0.0.0-20210902133924-c7d7dcdde4e8/go.mod h1:75wnig8+TF6vst9hChkpcFO7YrRLddouJ5is8uqpfv0= github.com/cockroachdb/version v0.0.0-20250509181251-54dac3003410 h1:GuIAxxl30gmd9m7ct6fgYb49GUv8GAxICU5VfU9GRvc= github.com/cockroachdb/version v0.0.0-20250509181251-54dac3003410/go.mod h1:P9WiZOdQ1R/ZZDL0WzF5wlyRvrjtfhNOwMZymFpBwjE= -github.com/cockroachdb/vitess v0.0.0-20210218160543-54524729cc82 h1:8htEd1lLILqfjKardWfKKGgXVCs0WmcgEj9cXnmcuos= -github.com/cockroachdb/vitess v0.0.0-20210218160543-54524729cc82/go.mod h1:+bhevpN4bd6bstiRREkJDaMWZR3lTe5ypydTtXgf7GU= github.com/cockroachdb/x-time v0.3.1-0.20230525123634-71747adb5d5c h1:fL+zfQ88TclMTv0pWlHhe3z+rZvb9CpyCp+fFQSN2Ys= github.com/cockroachdb/x-time v0.3.1-0.20230525123634-71747adb5d5c/go.mod h1:jmtm6Daona1TaRk0Jq0m6CXP+iNDtdNy514J3RuoqRU= github.com/cockroachdb/yaml v0.0.0-20210825132133-2d6955c8edbc h1:vVVz+IAeHhYPxGW9EC8j6HR7uZl/1wSP0Wijaxs4frw= github.com/cockroachdb/yaml v0.0.0-20210825132133-2d6955c8edbc/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd h1:qMd81Ts1T2OTKmB4acZcyKaMtRnY5Y44NuXGX2GFJ1w= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= -github.com/codegangsta/cli v1.20.0/go.mod h1:/qJNoX69yVSKu5o4jLyXAENLRyk1uhi7zkbQ3slBdOA= github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0/go.mod h1:4Zcjuz89kmFXt9morQgcfYZAYZ5n8WHjt81YYWIwtTM= github.com/containerd/aufs v0.0.0-20200908144142-dab0cbea06f4/go.mod h1:nukgQABAEopAHvB6j7cnP5zJ+/3aVcE7hCYqvIwAHyE= github.com/containerd/aufs v0.0.0-20201003224125-76a6863f2989/go.mod h1:AkGGQs9NM2vtYHaUen+NljV0/baGCAPELGm2q9ZXpWU= @@ -735,9 +715,7 @@ github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+ github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/coreos/pkg v0.0.0-20180108230652-97fdf19511ea/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/corpix/uarand v0.1.1/go.mod h1:SFKZvkcRoLqVRFZ4u25xPmp6m9ktANfbpXZ7SJ0/FNU= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= @@ -748,7 +726,6 @@ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ3 github.com/creack/pty v1.1.11 h1:07n33Z8lZxZ2qwegKbObQohDhXDQxiMMz1NOUGYlesw= github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/crossdock/crossdock-go v0.0.0-20160816171116-049aabb0122b/go.mod h1:v9FBN7gdVTpiD/+LZ7Po0UKvROyT87uLVxTHVky/dlQ= -github.com/cyberdelia/go-metrics-graphite v0.0.0-20161219230853-39f87cc3b432/go.mod h1:xwIwAxMvYnVrGJPe2FKx5prTrnAjGOD8zvDOnxnrrkM= github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4= github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= @@ -756,7 +733,6 @@ github.com/d2g/dhcp4 v0.0.0-20170904100407-a1d1b6c41b1c/go.mod h1:Ct2BUK8SB0YC1S github.com/d2g/dhcp4client v1.0.0/go.mod h1:j0hNfjhrt2SxUOw55nL0ATM/z4Yt3t2Kd1mW34z5W5s= github.com/d2g/dhcp4server v0.0.0-20181031114812-7d4a0a7f59a5/go.mod h1:Eo87+Kg/IX2hfWJfwxMzLyuSZyxSoAug2nGa1G2QAi8= github.com/d2g/hardwareaddr v0.0.0-20190221164911-e7d9fbe030e4/go.mod h1:bMl4RjIciD2oAxI7DmWRx6gbeqrkoLqv3MV0vzNad+I= -github.com/daaku/go.zipexe v1.0.0/go.mod h1:z8IiR6TsVLEYKwXAoE/I+8ys/sDkgTzSL0CLnGVd57E= github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0= github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= github.com/dave/dst v0.24.0 h1:5wtsjxee7nUDlKEz4i6ewJVn1193vfv2UpEXKqzmaUI= @@ -765,7 +741,6 @@ github.com/dave/gopackages v0.0.0-20170318123100-46e7023ec56e/go.mod h1:i00+b/gK github.com/dave/jennifer v1.2.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg= github.com/dave/kerr v0.0.0-20170318121727-bc25dd6abe8e/go.mod h1:qZqlPyPvfsDJt+3wHJ1EvSXDuVjFTK0j2p/ca+gtsb8= github.com/dave/rebecca v0.9.1/go.mod h1:N6XYdMD/OKw3lkF3ywh8Z6wPGuwNFDNtWYEMFWEmXBA= -github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v0.0.0-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= @@ -869,7 +844,6 @@ github.com/envoyproxy/protoc-gen-validate v0.10.1 h1:c0g45+xCJhdgFGw7a5QAfdS4byA github.com/envoyproxy/protoc-gen-validate v0.10.1/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss= github.com/etcd-io/bbolt v1.3.3/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw= github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch v4.11.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/fanixk/geohash v0.0.0-20150324002647-c1f9b5fa157a h1:Fyfh/dsHFrC6nkX7H7+nFdTd1wROlX/FxEIWVpKYf1U= @@ -961,7 +935,6 @@ github.com/go-latex/latex v0.0.0-20231108140139-5c1ce85aa4ea h1:DfZQkvEbdmOe+JK2 github.com/go-latex/latex v0.0.0-20231108140139-5c1ce85aa4ea/go.mod h1:Y7Vld91/HRbTBm7JwoI7HejdDB0u+e9AUBO9MB7yuZk= github.com/go-ldap/ldap/v3 v3.4.6 h1:ert95MdbiG7aWo/oPYp9btL3KJlMPKnP58r09rI8T+A= github.com/go-ldap/ldap/v3 v3.4.6/go.mod h1:IGMQANNtxpsOzj7uUAMjpGBaOVTC4DYyIy8VsTdxmtc= -github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA= @@ -1086,7 +1059,6 @@ github.com/go-openapi/swag v0.22.9/go.mod h1:3/OXnFfnMAwBD099SwYRk7GD3xOrr1iL7d/ github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= github.com/go-openapi/validate v0.19.3/go.mod h1:90Vh6jjkTn+OT1Eefm0ZixWNFjhtOH7vS9k0lo6zwJo= -github.com/go-openapi/validate v0.19.5/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4= github.com/go-openapi/validate v0.19.6/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4= github.com/go-openapi/validate v0.19.8/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4= github.com/go-openapi/validate v0.19.10/go.mod h1:RKEZTUWDkxKQxN2jDT7ZnZi2bhZlbNMAuKvKB+IaGx8= @@ -1283,13 +1255,11 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-github v17.0.0+incompatible h1:N0LgJ1j65A7kfXrZnUDaYCs/Sf4rEjNlfyDHW9dolSY= github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= -github.com/google/go-github/v27 v27.0.4/go.mod h1:/0Gr8pJ55COkmv+S/yPKCczSkUPIM/LnFyubufRNIS0= github.com/google/go-github/v61 v61.0.0 h1:VwQCBwhyE9JclCI+22/7mLB1PuU9eowCXKY5pNlu1go= github.com/google/go-github/v61 v61.0.0/go.mod h1:0WR+KmsWX75G2EbpyGsGmradjo3IiciuI4BmdVCobQY= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8= github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= -github.com/google/gofuzz v0.0.0-20161122191042-44d81051d367/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no= @@ -1343,7 +1313,6 @@ github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pf github.com/googleapis/gax-go/v2 v2.7.1 h1:gF4c0zjUP2H/s/hEGyLA3I0fA2ZWjzYiONAD6cvPr8A= github.com/googleapis/gax-go/v2 v2.7.1/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI= github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= -github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/googleapis/gnostic v0.4.0/go.mod h1:on+2t9HRStVgn95RSsFWFz+6Q0Snyqv1awfrALZdbtU= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= github.com/googleapis/gnostic v0.5.1/go.mod h1:6U4PtQXGIEt/Z3h5MAT7FNofLnw9vXk2cUuW7uA/OeU= @@ -1353,7 +1322,6 @@ github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEo github.com/gophercloud/gophercloud v0.10.0/go.mod h1:gmC5oQqMDOMO1t1gq5DquX/yAU808e/4mzjjDA76+Ss= github.com/gophercloud/gophercloud v0.20.0/go.mod h1:wRtmUelyIIv3CSSDI47aUwbs075O6i+LY+pXsKCBsb4= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gordonklaus/ineffassign v0.0.0-20200309095847-7953dde2c7bf/go.mod h1:cuNKsD1zp2v6XfE/orVX2QE1LC+i254ceGcVeDT3pTU= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= github.com/gorilla/handlers v0.0.0-20150720190736-60c7bfde3e33/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ= @@ -1380,7 +1348,6 @@ github.com/grafana/grafana-openapi-client-go v0.0.0-20240215164046-eb0e60d27cb7/ github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.1.0/go.mod h1:f5nM7jw/oeRSadq3xCzHAvxcr8HZnzsqU6ILg/0NiiE= github.com/grpc-ecosystem/go-grpc-middleware v1.2.0/go.mod h1:mJzapYve32yjrKlk9GbyCZHuPgZsrbyIbyKhSzOpg6s= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= @@ -1398,12 +1365,10 @@ github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed/go.mod h1:tMW github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE= github.com/hashicorp/consul/api v1.4.0/go.mod h1:xc8u05kyMa3Wjr9eEAsIAo3dg8+LywT5E/Cl7cNS5nU= -github.com/hashicorp/consul/api v1.5.0/go.mod h1:LqwrLNW876eYSuUOo4ZLHBcdKc038txr/IMfbLPATa4= github.com/hashicorp/consul/api v1.10.1/go.mod h1:XjsvQN+RJGWI2TWy1/kqaE16HrR2J/FWgkYjdZQsX9M= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/consul/sdk v0.4.0/go.mod h1:fY08Y9z5SvJqevyZNy6WWPXiG3KwBPAvlcdx16zZ0fM= -github.com/hashicorp/consul/sdk v0.5.0/go.mod h1:fY08Y9z5SvJqevyZNy6WWPXiG3KwBPAvlcdx16zZ0fM= github.com/hashicorp/consul/sdk v0.8.0/go.mod h1:GBvyrGALthsZObzUGsfgHZQDXjg4lOjagTIwIR1vPms= github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -1420,10 +1385,8 @@ github.com/hashicorp/go-hclog v0.14.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39 github.com/hashicorp/go-hclog v1.6.3 h1:Qr2kF+eVWjTiYmU7Y31tYlP1h0q/X3Nl3tPGdaB11/k= github.com/hashicorp/go-hclog v1.6.3/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= -github.com/hashicorp/go-immutable-radix v1.1.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-immutable-radix v1.2.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= -github.com/hashicorp/go-msgpack v0.5.5/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-multierror v0.0.0-20161216184304-ed905158d874/go.mod h1:JMRHfdO9jKNzS/+BTlxCjKNQHg/jZAft8U7LloJvN7I= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= @@ -1447,7 +1410,6 @@ github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09 github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= @@ -1460,12 +1422,10 @@ github.com/hashicorp/memberlist v0.2.2/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOn github.com/hashicorp/memberlist v0.2.4/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= github.com/hashicorp/serf v0.9.0/go.mod h1:YL0HO+FifKOW2u1ke99DGVu1zhcpZzNwrLIqBC7vbYU= -github.com/hashicorp/serf v0.9.2/go.mod h1:UWDWwZeL5cuWDJdl0C6wrvrUwEqtQ4ZKBKKENpqIUyk= github.com/hashicorp/serf v0.9.5/go.mod h1:UWDWwZeL5cuWDJdl0C6wrvrUwEqtQ4ZKBKKENpqIUyk= github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= github.com/hashicorp/yamux v0.0.0-20190923154419-df201c70410d/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= github.com/hetznercloud/hcloud-go v1.32.0/go.mod h1:XX/TQub3ge0yWR2yHWmnDVIrB+MQbda1pHxkUmDlUME= -github.com/howeyc/gopass v0.0.0-20190910152052-7cb4b85ec19c/go.mod h1:lADxMC39cJJqL93Duh1xhAs4I2Zs8mKS89XWXFGp9cs= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/huandu/xstrings v1.0.0/go.mod h1:4qWG/gcEcfX4z/mBDHJ++3ReCw9ibxbsNJbcucJdbSo= github.com/huandu/xstrings v1.3.0 h1:gvV6jG9dTgFEncxo+AF7PH6MZXi/vZl25owA/8Dg8Wo= @@ -1477,10 +1437,8 @@ github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1: github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20230524184225-eabc099b10ab h1:BA4a7pe6ZTd9F8kXETBoijjFJ/ntaa//1wiH9BZu4zU= github.com/ianlancetaylor/demangle v0.0.0-20230524184225-eabc099b10ab/go.mod h1:gx7rwoVhcfuVKG5uya9Hs3Sxj7EIvldVofAWIUtGouw= -github.com/icrowley/fake v0.0.0-20180203215853-4178557ae428/go.mod h1:uhpZMVGznybq1itEKXj6RYw9I71qK4kH+OGMjRC4KEo= github.com/imdario/mergo v0.3.4/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.9/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.10/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= @@ -1614,7 +1572,6 @@ github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8Hm github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= -github.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= @@ -1627,7 +1584,6 @@ github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1 github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/jsternberg/zap-logfmt v1.0.0/go.mod h1:uvPs/4X51zdkcm5jXl5SYoN+4RK21K8mysFmDaM/h+o= github.com/jsternberg/zap-logfmt v1.2.0/go.mod h1:kz+1CUmCutPWABnNkOu9hOHKdT2q3TDYCcsFy9hpqb0= -github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= @@ -1655,7 +1611,6 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o github.com/klauspost/asmfmt v1.3.2 h1:4Ri7ox3EwapiOjCki+hw14RyKk201CN4rzyCJRFLpK4= github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= github.com/klauspost/compress v1.4.0/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= -github.com/klauspost/compress v1.4.1/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.8.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.9.7/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= @@ -1668,7 +1623,6 @@ github.com/klauspost/compress v1.15.15/go.mod h1:ZcK2JAFqKOpnBlxcLsJzYfrS9X1akm9 github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/klauspost/cpuid v0.0.0-20170728055534-ae7887de9fa5/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= -github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/cpuid v1.2.3/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/cpuid v1.3.1/go.mod h1:bYW4mA6ZgKPob1/Dlai2LviZJO7KGI3uoWLd42rAQw4= @@ -1679,7 +1633,6 @@ github.com/klauspost/cpuid/v2 v2.2.3 h1:sxCkb+qR91z4vsqw4vGGZlDgPz3G7gjaLyK3V8y7 github.com/klauspost/cpuid/v2 v2.2.3/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= github.com/klauspost/crc32 v0.0.0-20161016154125-cb6bfca970f6/go.mod h1:+ZoRqAPRLkC4NPOvfYeR5KNOrY6TD+/sAC3HXPZgDYg= github.com/klauspost/pgzip v1.0.2-0.20170402124221-0bf5dcad4ada/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= -github.com/klauspost/pgzip v1.2.4/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= github.com/klauspost/pgzip v1.2.5 h1:qnWYvvKqedOF2ulHpMG72XQol4ILEJ8k2wwRl/Km8oE= github.com/klauspost/pgzip v1.2.5/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= github.com/knz/bubbline v0.0.0-20230422210153-e176cdfe1c43 h1:uhwfuoL9LDMUGlxcs3Rbt35L3YoqGUd+YWgaL9EFl0A= @@ -1705,7 +1658,6 @@ github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/krishicks/yaml-patch v0.0.10/go.mod h1:Sm5TchwZS6sm7RJoyg87tzxm2ZcKzdRE4Q7TjNhPrME= github.com/kylelemons/godebug v0.0.0-20160406211939-eadb3ce320cb/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= @@ -1769,9 +1721,6 @@ github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJ github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= github.com/marstr/guid v1.1.0/go.mod h1:74gB1z2wpxxInTG6yaqA7KrtM0NZ+RbrcqDvYHefzho= -github.com/martini-contrib/auth v0.0.0-20150219114609-fa62c19b7ae8/go.mod h1:ahTFgV/NtzY/CALneRrC67m1dis5arHTQDfyIhKk69E= -github.com/martini-contrib/gzip v0.0.0-20151124214156-6c035326b43f/go.mod h1:jhUB0rZB2TPWqy0yGugKRRictO591eSO7If7O4MfCaA= -github.com/martini-contrib/render v0.0.0-20150707142108-ec18f8345a11/go.mod h1:Ah2dBMoxZEqk118as2T4u4fjfXarE0pPnMJaArZQZsI= github.com/maruel/panicparse/v2 v2.2.2 h1:4Gu/Z5oLpJCE/0/NwxrUkyn7alpqOQdJAUuchB2OoJU= github.com/maruel/panicparse/v2 v2.2.2/go.mod h1:WizmeHJfpyKYYKGInKv8ax8jh7DJnQE5yFDuzFfHzIU= github.com/marusama/semaphore v0.0.0-20190110074507-6952cef993b2 h1:sq+a5mb8zHbmHhrIH06oqIMGsanjpbxNgxEgZVfgpvQ= @@ -1788,7 +1737,6 @@ github.com/mattn/go-colorable v0.1.11/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= -github.com/mattn/go-ieproxy v0.0.0-20190610004146-91bb50d98149/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= @@ -1815,7 +1763,6 @@ github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWV github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-shellwords v1.0.3/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o= github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= -github.com/mattn/go-sqlite3 v1.14.0/go.mod h1:JIl7NbARA7phWnGvh0LKTyg7S9BA+6gx71ShQilpsus= github.com/mattn/go-sqlite3 v1.14.5/go.mod h1:WVKg1VTActs4Qso6iwGbiFih2UIHo0ENGwNd0Lj+XmI= github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= github.com/mattn/go-tty v0.0.0-20180907095812-13ff1204f104/go.mod h1:XPvLUNfbS4fJH25nqRHfWLMa1ONC8Amw+mIA639KxkE= @@ -1847,7 +1794,6 @@ github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8Ie github.com/minio/md5-simd v1.1.0/go.mod h1:XpBqgZULrMYD3R+M28PcmP0CkI7PEMzB3U77ZrKZ0Gw= github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34= github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM= -github.com/minio/minio-go v0.0.0-20190131015406-c8a261de75c1/go.mod h1:vuvdOZLJuf5HmJAJrKV64MmozrSsk+or0PB5dzdfspg= github.com/minio/minio-go/v7 v7.0.1/go.mod h1:dJ80Mv2HeGkYLH1sqS/ksz07ON6csH3S6JUMSQ2zAns= github.com/minio/minio-go/v7 v7.0.21 h1:xrc4BQr1Fa4s5RwY0xfMjPZFJ1bcYBCCHYlngBdWV+k= github.com/minio/minio-go/v7 v7.0.21/go.mod h1:ei5JjmxwHaMrgsMrn4U/+Nmg+d8MKS1U2DAn1ou4+Do= @@ -1864,17 +1810,14 @@ github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFW github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg= github.com/mitchellh/go-testing-interface v0.0.0-20171004221916-a61a99592b77/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= -github.com/mitchellh/go-testing-interface v1.14.0/go.mod h1:gfgS7OtZj6MA4U1UrDRp04twqAjfvlZyCfX3sDjEym8= github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.2.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/mapstructure v1.2.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.3.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.4.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= @@ -1906,14 +1849,12 @@ github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6/go.mod h1:E2VnQOmVuvZB6U github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v0.0.0-20180320133207-05fbef0ca5da/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8= github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= -github.com/montanaflynn/stats v0.6.3/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= github.com/montanaflynn/stats v0.6.6/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= github.com/montanaflynn/stats v0.7.1 h1:etflOAAHORrCC44V+aR6Ftzort912ZU+YLiSTuV8eaE= github.com/montanaflynn/stats v0.7.1/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= @@ -1961,12 +1902,10 @@ github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxzi github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= github.com/nbutton23/zxcvbn-go v0.0.0-20180912185939-ae427f1e4c1d/go.mod h1:o96djdrsSGy3AWPyBgZMAGfxZNfgntdJG+11KU4QvbU= github.com/ncw/swift v1.0.47/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM= -github.com/ngdinhtoan/glide-cleanup v0.2.0/go.mod h1:UQzsmiDOb8YV3nOsCxK/c9zPpCZVNoHScRE3EO9pVMM= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nightlyone/lockfile v1.0.0 h1:RHep2cFKK4PonZJDdEl4GmkabuhbsRMgk/k3uAmxBiA= github.com/nightlyone/lockfile v1.0.0/go.mod h1:rywoIealpdNse2r832aiD9jRk8ErCatROs6LzC841CI= github.com/nishanths/predeclared v0.0.0-20200524104333-86fad755b4d3/go.mod h1:nt3d53pc1VYcphSCIaYAJtnPYnr3Zyn8fMq2wvPGPso= -github.com/nkovacs/streamquote v0.0.0-20170412213628-49af9bddb229/go.mod h1:0aYXnNPJ8l7uZxf45rWW1a/uME32OF0rhiYGNQ2oF2E= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= @@ -2027,7 +1966,6 @@ github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39/go.mo github.com/opencontainers/selinux v1.6.0/go.mod h1:VVGKuOLlE7v4PJyT6h7mNWvq1rzqiriPsEqVhc+svHE= github.com/opencontainers/selinux v1.8.0/go.mod h1:RScLhm78qiWa2gbVCcGkC7tCGdgk3ogry1nUQF8Evvo= github.com/opencontainers/selinux v1.10.0/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI= -github.com/opentracing-contrib/go-grpc v0.0.0-20180928155321-4b5a12d3ff02/go.mod h1:JNdpVEzCpXBgIiv4ds+TzhN1hrtxq6ClLrTlT9OQRSc= github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= github.com/opentracing-contrib/go-stdlib v0.0.0-20190519235532-cf7a6c988dc9/go.mod h1:PLldrQSroqzH70Xl+1DQcGnefIbqsKR7UDaiux3zV+w= github.com/opentracing-contrib/go-stdlib v1.0.0/go.mod h1:qtI1ogk+2JhVPIXVc6q+NHziSmy2W5GbdQZFUHADCBU= @@ -2047,11 +1985,9 @@ github.com/orisano/pixelmatch v0.0.0-20220722002657-fb0b55479cde/go.mod h1:nZgzb github.com/ory/dockertest/v3 v3.9.1/go.mod h1:42Ir9hmvaAPm0Mgibk6mBPi7SFvTXxEcnztDYOJ//uM= github.com/otan/gopgkrb5 v1.0.3 h1:iDZlYPC8mxvKvpIvDu66j48Q4WqW15HuWUX+MIwjF0U= github.com/otan/gopgkrb5 v1.0.3/go.mod h1:aamIwpVk0oxQLpA6drHPvqvcPuJ7lzCSZ4NUkC+69MQ= -github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwUbLaax7L0S3Tw4hpejzu63ZrrQiUe6W0hcy0= github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= github.com/paulbellamy/ratecounter v0.2.0/go.mod h1:Hfx1hDpSGoqxkVVpBi/IlYD7kChlfo5C6hzIHwPqfFE= github.com/pborman/uuid v1.2.0 h1:J7Q5mO4ysT1dv8hyrUGHb9+ooztCXu1D8MY8DZYsu3g= github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= @@ -2087,7 +2023,6 @@ github.com/pierrre/geohash v1.0.0 h1:f/zfjdV4rVofTCz1FhP07T+EMQAvcMM2ioGZVt+zqjI github.com/pierrre/geohash v1.0.0/go.mod h1:atytaeVa21hj5F6kMebHYPf8JbIrGxK2FSzN2ajKXms= github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= -github.com/pires/go-proxyproto v0.0.0-20191211124218-517ecdf5bb2b/go.mod h1:Odh9VFOZJCf9G8cLW5o435Xf1J95Jw9Gw5rnCjcwzAY= github.com/pires/go-proxyproto v0.7.0 h1:IukmRewDQFWC7kfnb66CSomk2q/seBuilHBYFwyq0Hs= github.com/pires/go-proxyproto v0.7.0/go.mod h1:Vz/1JPY/OACxWGQNIRY2BeyDmpoaWmEP40O9LbuiFR4= github.com/pkg/browser v0.0.0-20180916011732-0a3d74bf9ce4/go.mod h1:4OwLy04Bl9Ef3GJJCoec+30X3LQs/0/m4HFRt/2LUSA= @@ -2121,14 +2056,12 @@ github.com/prashantv/protectmem v0.0.0-20171002184600-e20412882b3a/go.mod h1:lzZ github.com/prometheus/alertmanager v0.20.0/go.mod h1:9g2i48FAyZW6BtbsnvHtMHQXl2aVtrORKwKVCQ+nbrg= github.com/prometheus/alertmanager v0.23.0/go.mod h1:0MLTrjQI8EuVmvykEhcfr/7X0xmaDAZrqMgxIq3OXHk= github.com/prometheus/client_model v0.0.0-20171117100541-99fa1f4be8e5/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= github.com/prometheus/common v0.0.0-20180110214958-89604d197083/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= @@ -2142,9 +2075,7 @@ github.com/prometheus/common/sigv4 v0.1.0 h1:qoVebwtwwEhS85Czm2dSROY5fTo2PAPEVdD github.com/prometheus/common/sigv4 v0.1.0/go.mod h1:2Jkxxk9yYvCkE5G1sQT7GuEXm57JrvHu9k5YwTjsNtI= github.com/prometheus/exporter-toolkit v0.6.1/go.mod h1:ZUBIj498ePooX9t/2xtDjeQYwvRpiPP2lh5u4iblj2g= github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190522114515-bc1a522cf7b1/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.0.10/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= @@ -2163,10 +2094,8 @@ github.com/pseudomuto/protokit v0.2.0 h1:hlnBDcy3YEDXH7kc9gV+NLaN0cDzhDvD1s7Y6FZ github.com/pseudomuto/protokit v0.2.0/go.mod h1:2PdH30hxVHsup8KpBTOXTBeMVhJZVio3Q8ViKSAXT0Q= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rcrowley/go-metrics v0.0.0-20190826022208-cac0b30c2563/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M= github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/retailnext/hllpp v1.0.1-0.20180308014038-101a6d2f8b52/go.mod h1:RDpi1RftBQPUCDRw6SmxeaREsAaRKnOclghuzp/WRzc= @@ -2208,7 +2137,6 @@ github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8/go.mod h1:Z0q5wiB github.com/sahilm/fuzzy v0.1.0 h1:FzWGaw2Opqyu+794ZQ9SYifWv2EIXpwP4q8dY1kDAwI= github.com/sahilm/fuzzy v0.1.0/go.mod h1:VFvziUEIMCrT6A6tw2RFIXPXXmzXbOsSHF0DOI8ZK9Y= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= -github.com/samuel/go-zookeeper v0.0.0-20200724154423-2164a8ac840e/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/sasha-s/go-deadlock v0.3.1 h1:sqv7fDNShgjcaxkO0JNcOAlr8B9+cV5Ey/OB71efZx0= github.com/sasha-s/go-deadlock v0.3.1/go.mod h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZjwesgfQ1/iLM= github.com/satori/go.uuid v0.0.0-20160603004225-b111a074d5ef/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= @@ -2249,15 +2177,12 @@ github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/sirupsen/logrus v1.9.1 h1:Ou41VVR3nMWWmTiEUnj0OlsgOSCUFgsPAOl6jRIcVtQ= github.com/sirupsen/logrus v1.9.1/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/sjmudd/stopwatch v0.0.0-20170613150411-f380bf8a9be1/go.mod h1:Pgf1sZ2KrHK8vdRTV5UHGp80LT7HMUKuNAiKC402abY= github.com/slack-go/slack v0.9.5 h1:j7uOUDowybWf9eSgZg/AbGx6J1OPJB6SE8Z5dNl6Mtw= github.com/slack-go/slack v0.9.5/go.mod h1:wWL//kk0ho+FcQXcBTmEafUI5dz4qz5f4mMk8oIkioQ= github.com/slok/go-http-metrics v0.8.0/go.mod h1:f22ekj0Ht4taz2clntVmLRSK4D+feX33zkdDW0Eytvk= github.com/slok/go-http-metrics v0.10.0 h1:rh0LaYEKza5eaYRGDXujKrOln57nHBi4TtVhmNEpbgM= github.com/slok/go-http-metrics v0.10.0/go.mod h1:lFqdaS4kWMfUKCSukjC47PdCeTk+hXDUVm8kLHRqJ38= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/assertions v0.0.0-20190116191733-b6c0e53d7304/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v0.0.0-20181108003508-044398e4856c/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s= github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= @@ -2309,7 +2234,6 @@ github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSS github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= -github.com/stretchr/testify v0.0.0-20151208002404-e3a8ff8ce365/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v0.0.0-20170130113145-4d4bfba8f1d1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v0.0.0-20180303142811-b89eecf5ca5d/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.0/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= @@ -2331,15 +2255,12 @@ github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69 github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/tchap/go-patricia v0.0.0-20160729071656-dd168db6051b/go.mod h1:bmLyhP68RS6kStMGxByiQ23RP/odRBOTVjwp2cDyi6I= github.com/tchap/go-patricia v2.2.6+incompatible/go.mod h1:bmLyhP68RS6kStMGxByiQ23RP/odRBOTVjwp2cDyi6I= -github.com/tebeka/selenium v0.9.9/go.mod h1:5Fr8+pUvU6B1OiPfkdCKdXZyr5znvVkxuPd0NOdZCQc= github.com/the42/cartconvert v0.0.0-20131203171324-aae784c392b8 h1:I4DY8wLxJXCrMYzDM6lKCGc3IQwJX0PlTLsd3nQqI3c= github.com/the42/cartconvert v0.0.0-20131203171324-aae784c392b8/go.mod h1:fWO/msnJVhHqN1yX6OBoxSyfj7TEj1hHiL8bJSQsK30= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/tinylib/msgp v1.0.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= github.com/tinylib/msgp v1.1.0/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= -github.com/tinylib/msgp v1.1.1/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= github.com/tklauser/go-sysconf v0.3.9 h1:JeUVdAOWhhxVcU6Eqr/ATFHgXk/mmiItdKeJPev3vTo= github.com/tklauser/go-sysconf v0.3.9/go.mod h1:11DU/5sG7UexIrp/O6g35hrWzu0JxlwQ3LSFUzyeuhs= github.com/tklauser/numcpus v0.3.0 h1:ILuRUQBtssgnxw0XXIjKUC56fgnOrFoQQ/4+DeU2biQ= @@ -2361,15 +2282,12 @@ github.com/twpayne/go-kml v1.5.2 h1:rFMw2/EwgkVssGS2MT6YfWSPZz6BgcJkLxQ53jnE8rQ= github.com/twpayne/go-kml v1.5.2/go.mod h1:kz8jAiIz6FIdU2Zjce9qGlVtgFYES9vt7BTPBHf5jl4= github.com/twpayne/go-polyline v1.0.0/go.mod h1:ICh24bcLYBX8CknfvNPKqoTbe+eg+MX1NPyJmSBo7pU= github.com/twpayne/go-waypoint v0.0.0-20200706203930-b263a7f6e4e8/go.mod h1:qj5pHncxKhu9gxtZEYWypA/z097sxhFlbTyOyt9gcnU= -github.com/uber-go/atomic v1.4.0/go.mod h1:/Ct5t2lcmbJ4OSe/waGBoaVvVqtO0bmtfVNex1PFV8g= github.com/uber-go/tally v3.3.15+incompatible/go.mod h1:YDTIBxdXyOU/sCWilKB4bgyufu1cEi0jdVnRdxvjnmU= github.com/uber/athenadriver v1.1.4/go.mod h1:tQjho4NzXw55LGfSZEcETuYydpY1vtmixUabHkC1K/E= -github.com/uber/jaeger-client-go v2.16.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-client-go v2.22.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-client-go v2.23.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-client-go v2.28.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-client-go v2.29.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= -github.com/uber/jaeger-lib v2.0.0+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= github.com/uber/jaeger-lib v2.2.0+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= github.com/uber/jaeger-lib v2.4.1+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= github.com/uber/tchannel-go v1.16.0/go.mod h1:Rrgz1eL8kMjW/nEzZos0t+Heq0O4LhnUJVA32OvWKHo= @@ -2443,7 +2361,6 @@ github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQ github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43/go.mod h1:aX5oPXxHm3bOH+xeAttToC8pqch2ScQN/JoXYupl6xs= github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50/go.mod h1:NUSPSUX/bi6SeDMUh6brw0nXpxHnc96TguQh0+r/ssA= github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg= -github.com/z-division/go-zookeeper v0.0.0-20190128072838-6d7457066b9b/go.mod h1:JNALoWa+nCXR8SmgLluHcBNVJgyejzpKPZk9pX2yXXE= github.com/zabawaba99/go-gitignore v0.0.0-20200117185801-39e6bddfb292 h1:vpcCVk+pSR/6zcurmlGFD3jC5I/7RMl+GwGAPLxvX18= github.com/zabawaba99/go-gitignore v0.0.0-20200117185801-39e6bddfb292/go.mod h1:qcqv8IHwbR0JmjY1LZy4PeytlwxDPn1vUkjX7Wq0VaY= github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= @@ -2560,7 +2477,6 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20181009213950-7c1a557ab941/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190128193316-c7b33c32a30b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -2616,7 +2532,6 @@ golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3/go.mod h1:NOZ3BPKG0ec/BKJQgnvsSFpcKLM5xXVWnvZS97DWHgE= @@ -2691,7 +2606,6 @@ golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -2812,10 +2726,8 @@ golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -3013,7 +2925,6 @@ golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190624190245-7f2218787638/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190813034749-528a2984e271/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -3021,7 +2932,6 @@ golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20190823170909-c4a336ef6a2f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190927191325-030b2cf1153e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -3036,7 +2946,6 @@ golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191203134012-c197fd4bf371/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191219041853-979b82bfef62/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200108203644-89082a384178/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= @@ -3100,7 +3009,6 @@ golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3j golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= gonum.org/v1/gonum v0.0.0-20181121035319-3f7ecaa7e8ca/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= -gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0= gonum.org/v1/gonum v0.6.0/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0= gonum.org/v1/gonum v0.9.3/go.mod h1:TZumC3NeyVQskjXqmyWt4S3bINhy7B4eYwW69EbyX+0= @@ -3109,7 +3017,6 @@ gonum.org/v1/gonum v0.15.1 h1:FNy7N6OUZVUaWG9pTiD+jlhdQ3lMP+/LcTpJ6+a8sQ0= gonum.org/v1/gonum v0.15.1/go.mod h1:eZTZuRFrzu5pcyjN5wJhcIhnUdNijYxX1T2IcrOGY0o= gonum.org/v1/netlib v0.0.0-20181029234149-ec6d1f5cefe6/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ= gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= gonum.org/v1/plot v0.9.0/go.mod h1:3Pcqqmp6RHvJI72kgb8fThyUnav364FOsdDo2aGW5lY= gonum.org/v1/plot v0.10.0/go.mod h1:JWIHJ7U20drSQb/aDpTetJzfC1KlAPldJLpkSy88dvQ= @@ -3169,12 +3076,10 @@ google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190522204451-c2c4e71fbf69/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= -google.golang.org/genproto v0.0.0-20190626174449-989357319d63/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190716160619-c506a9f90610/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20190926190326-7ee9db18f195/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= google.golang.org/genproto v0.0.0-20190927181202-20e1ac93f88c/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= @@ -3303,10 +3208,8 @@ google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqw google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= -gopkg.in/DataDog/dd-trace-go.v1 v1.17.0/go.mod h1:DVp8HmDh8PuTu2Z0fVVlBsyWaC++fzwVCaGWylTe3tg= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20141024133853-64131543e789/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -3326,7 +3229,6 @@ gopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/R gopkg.in/go-playground/validator.v9 v9.29.1/go.mod h1:+c9/zcJMFNgbLvly1L1V+PpxWdVbfP1avr/N00E2vyQ= gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ini.v1 v1.41.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.51.1/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.52.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= @@ -3340,7 +3242,6 @@ gopkg.in/jcmturner/goidentity.v3 v3.0.0/go.mod h1:oG2kH0IvSYNIu80dVAyu/yoefjq1mN gopkg.in/jcmturner/gokrb5.v7 v7.2.3/go.mod h1:l8VISx+WGYp+Fp7KRbsiUuXTTOnxIc3Tuvyavf11/WM= gopkg.in/jcmturner/gokrb5.v7 v7.5.0/go.mod h1:l8VISx+WGYp+Fp7KRbsiUuXTTOnxIc3Tuvyavf11/WM= gopkg.in/jcmturner/rpc.v1 v1.1.0/go.mod h1:YIdkC4XfD6GXbzje11McwsDuOlZQSb9W4vfLvuNnlv8= -gopkg.in/ldap.v2 v2.5.0/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= @@ -3378,31 +3279,24 @@ honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9 honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= honnef.co/go/tools v0.5.1 h1:4bH5o3b5ZULQ4UrBmP+63W9r7qIkqJClEA9ko5YKx+I= honnef.co/go/tools v0.5.1/go.mod h1:e9irvo83WDG9/irijV44wr3tbhcFeRnfpVlRqVwpzMs= -k8s.io/api v0.17.3/go.mod h1:YZ0OTkuw7ipbe305fMpIdf3GLXZKRigjtZaV5gzC2J0= k8s.io/api v0.17.5/go.mod h1:0zV5/ungglgy2Rlm3QK8fbxkXVs+BSJWpJP/+8gUVLY= k8s.io/api v0.20.1/go.mod h1:KqwcCVogGxQY3nBlRpwt+wpAMF/KjaCc7RpywacvqUo= k8s.io/api v0.20.4/go.mod h1:++lNL1AJMkDymriNniQsWRkMDzRaX2Y/POTUi8yvqYQ= k8s.io/api v0.20.6/go.mod h1:X9e8Qag6JV/bL5G6bU8sdVRltWKmdHsFUGS3eVndqE8= k8s.io/api v0.22.1/go.mod h1:bh13rkTp3F1XEaLGykbyRD2QaTTzPm0e/BMd8ptFONY= -k8s.io/apiextensions-apiserver v0.17.3/go.mod h1:CJbCyMfkKftAd/X/V6OTHYhVn7zXnDdnkUjS1h0GTeY= -k8s.io/apimachinery v0.17.3/go.mod h1:gxLnyZcGNdZTCLnq3fgzyg2A5BVCHTNDFrw8AmuJ+0g= k8s.io/apimachinery v0.17.5/go.mod h1:ioIo1G/a+uONV7Tv+ZmCbMG1/a3kVw5YcDdncd8ugQ0= k8s.io/apimachinery v0.20.1/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU= k8s.io/apimachinery v0.20.4/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU= k8s.io/apimachinery v0.20.6/go.mod h1:ejZXtW1Ra6V1O5H8xPBGz+T3+4gfkTCeExAHKU57MAc= k8s.io/apimachinery v0.22.1/go.mod h1:O3oNtNadZdeOMxHFVxOreoznohCpy0z6mocxbZr7oJ0= -k8s.io/apiserver v0.17.3/go.mod h1:iJtsPpu1ZpEnHaNawpSV0nYTGBhhX2dUlnn7/QS7QiY= k8s.io/apiserver v0.20.1/go.mod h1:ro5QHeQkgMS7ZGpvf4tSMx6bBOgPfE+f52KwvXfScaU= k8s.io/apiserver v0.20.4/go.mod h1:Mc80thBKOyy7tbvFtB4kJv1kbdD0eIH8k8vianJcbFM= k8s.io/apiserver v0.20.6/go.mod h1:QIJXNt6i6JB+0YQRNcS0hdRHJlMhflFmsBDeSgT1r8Q= -k8s.io/client-go v0.17.3/go.mod h1:cLXlTMtWHkuK4tD360KpWz2gG2KtdWEr/OT02i3emRQ= k8s.io/client-go v0.17.5/go.mod h1:S8uZpBpjJJdEH/fEyxcqg7Rn0P5jH+ilkgBHjriSmNo= k8s.io/client-go v0.20.1/go.mod h1:/zcHdt1TeWSd5HoUe6elJmHSQ6uLLgp4bIJHVEuy+/Y= k8s.io/client-go v0.20.4/go.mod h1:LiMv25ND1gLUdBeYxBIwKpkSC5IsozMMmOOeSJboP+k= k8s.io/client-go v0.20.6/go.mod h1:nNQMnOvEUEsOzRRFIIkdmYOjAZrC8bgq0ExboWSU1I0= k8s.io/client-go v0.22.1/go.mod h1:BquC5A4UOo4qVDUtoc04/+Nxp1MeHcVc1HJm1KmG8kk= -k8s.io/code-generator v0.17.3/go.mod h1:l8BLVwASXQZTo2xamW5mQNFCe1XPiAesVq7Y1t7PiQQ= -k8s.io/component-base v0.17.3/go.mod h1:GeQf4BrgelWm64PXkIXiPh/XS0hnO42d9gx9BtbZRp8= k8s.io/component-base v0.20.1/go.mod h1:guxkoJnNoh8LNrbtiQOlyp2Y2XFCZQmrcg2n/DeYNLk= k8s.io/component-base v0.20.4/go.mod h1:t4p9EdiagbVCJKrQ1RsA5/V4rFQNDfRlevJajlGwgjI= k8s.io/component-base v0.20.6/go.mod h1:6f1MPBAeI+mvuts3sIdtpjljHWBQ2cIy38oBIWMYnrM= @@ -3411,7 +3305,6 @@ k8s.io/cri-api v0.20.1/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI= k8s.io/cri-api v0.20.4/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI= k8s.io/cri-api v0.20.6/go.mod h1:ew44AjNXwyn1s0U4xCKGodU7J1HzBeZ1MpGrpa5r8Yc= k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/gengo v0.0.0-20190822140433-26a664648505/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= @@ -3420,7 +3313,6 @@ k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/klog/v2 v2.9.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= k8s.io/klog/v2 v2.10.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= -k8s.io/kube-openapi v0.0.0-20191107075043-30be4d16710a/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E= k8s.io/kube-openapi v0.0.0-20200316234421-82d701f24f9d/go.mod h1:F+5wygcW0wmRTnM3cOgIqGivxkwSWIWT5YdsDbeAOaU= k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd/go.mod h1:WOJ3KddDSol4tAGcJo0Tvi+dK12EcqSLqcWsryKMpfM= k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw= @@ -3431,7 +3323,6 @@ k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/ k8s.io/utils v0.0.0-20210707171843-4b05e18ac7d9/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= lukechampine.com/uint128 v1.1.1/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= lukechampine.com/uint128 v1.2.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= -modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw= modernc.org/cc/v3 v3.36.0/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= modernc.org/cc/v3 v3.36.2/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= modernc.org/cc/v3 v3.37.0/go.mod h1:vtL+3mdHx/wcj3iEGz84rQa8vEqR6XM84v5Lcvfph20= @@ -3446,7 +3337,6 @@ modernc.org/ccgo/v3 v3.16.9/go.mod h1:zNMzC9A9xeNUepy6KuZBbugn3c0Mc9TeiJO4lgvkJD modernc.org/ccgo/v3 v3.16.13-0.20221017192402-261537637ce8/go.mod h1:fUB3Vn0nVPReA+7IG7yZDfjv1TMWjhQP8gCxrFAtL5g= modernc.org/ccgo/v3 v3.16.13/go.mod h1:2Quk+5YgpImhPjv2Qsob1DnZ/4som1lJTodubIcoUkY= modernc.org/ccorpus v1.11.6/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ= -modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk= modernc.org/httpfs v1.0.6/go.mod h1:7dosgurJGp0sPaRanU53W4xZYKh14wfzX420oZADeHM= modernc.org/libc v0.0.0-20220428101251-2d5f3daf273b/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA= modernc.org/libc v1.16.0/go.mod h1:N4LD6DBE9cf+Dzf9buBlzVJndKr/iJHG97vGLHYnb5A= @@ -3459,7 +3349,6 @@ modernc.org/libc v1.18.0/go.mod h1:vj6zehR5bfc98ipowQOM2nIDUZnVew/wNC/2tOGS+q0= modernc.org/libc v1.20.3/go.mod h1:ZRfIaEkgrYgZDl6pa4W39HgN5G/yDW+NRmNKZBDFrk0= modernc.org/libc v1.21.4/go.mod h1:przBsL5RDOZajTVslkugzLBj1evTue36jEomFQOoYuI= modernc.org/libc v1.22.2/go.mod h1:uvQavJ1pZ0hIoC/jfqNoMLURIMhKzINIWypNM17puug= -modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k= modernc.org/mathutil v1.2.2/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= modernc.org/mathutil v1.4.1/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= @@ -3471,14 +3360,12 @@ modernc.org/memory v1.5.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= modernc.org/opt v0.1.1/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= modernc.org/sqlite v1.18.2/go.mod h1:kvrTLEWgxUcHa2GfHBQtanR1H9ht3hTJNtKpzH9k1u0= -modernc.org/strutil v1.0.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs= modernc.org/strutil v1.1.1/go.mod h1:DE+MQQ/hjKBZS2zNInV5hhcipt5rLPWkmpbGeW5mmdw= modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw= modernc.org/tcl v1.13.2/go.mod h1:7CLiGIPo1M8Rv1Mitpv5akc2+8fxUd2y2UzC/MfMzy0= modernc.org/token v1.0.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= modernc.org/token v1.0.1/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= -modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I= modernc.org/z v1.5.1/go.mod h1:eWFB510QWW5Th9YGZT81s+LwvaAs3Q2yr4sP0rmLkv8= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/pdf v0.1.1 h1:k1MczvYDUvJBe93bYd7wrZLLUEcLZAuF824/I4e5Xr4= @@ -3487,8 +3374,6 @@ rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.14/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= -sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI= -sigs.k8s.io/structured-merge-diff v1.0.1-0.20191108220359-b1b620dd3f06/go.mod h1:/ULNhyfzRopfcjskuui0cTITekDduZ7ycKN3oUT9R18= sigs.k8s.io/structured-merge-diff/v2 v2.0.1/go.mod h1:Wb7vfKAodbKgf6tn1Kl0VvGj7mRH6DGaRcixXEJXTsE= sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= diff --git a/pkg/backup/restore_job.go b/pkg/backup/restore_job.go index 1ab9874d7a8e..b83567d3d309 100644 --- a/pkg/backup/restore_job.go +++ b/pkg/backup/restore_job.go @@ -985,9 +985,8 @@ func createImportingDescriptors( for _, desc := range sqlDescs { // Decide which offline tables to include in the restore: // - // - An offline table created by RESTORE or IMPORT PGDUMP is - // fully discarded. The table will not exist in the restoring - // cluster. + // - An offline table created by RESTORE is fully discarded. The table + // will not exist in the restoring cluster. // // - An offline table undergoing an IMPORT INTO in traditional // restore has all importing data elided in the restore diff --git a/pkg/build/starlarkutil/starlarkutil_test.go b/pkg/build/starlarkutil/starlarkutil_test.go index 7fe51575aa4d..257b88c7e366 100644 --- a/pkg/build/starlarkutil/starlarkutil_test.go +++ b/pkg/build/starlarkutil/starlarkutil_test.go @@ -15,14 +15,6 @@ func TestGetExistingMirrorsFromDepsBzl(t *testing.T) { depsbzl := `# leading comment load("@bazel_gazelle//:deps.bzl", "go_repository") def go_deps(): - go_repository( - name = "io_vitess_vitess", - build_file_proto_mode = "disable_global", - importpath = "vitess.io/vitess", - sha256 = "FAKESHA256", - strip_prefix = "github.com/cockroachdb/vitess@v0.0.0-20210218160543-54524729cc82", - urls = ["https://example.com/fakeurl"], - ) go_repository( name = "com_github_akavel_rsrc", build_file_proto_mode = "disable_global", @@ -41,11 +33,8 @@ def go_deps(): ` mirrors, err := downloadableArtifactsFromDepsBzl(depsbzl) require.NoError(t, err) - require.Equal(t, len(mirrors), 2) - mirror := mirrors["io_vitess_vitess"] - require.Equal(t, mirror.URL, "https://example.com/fakeurl") - require.Equal(t, mirror.Sha256, "FAKESHA256") - mirror = mirrors["com_github_alecthomas_units"] + require.Equal(t, len(mirrors), 1) + mirror := mirrors["com_github_alecthomas_units"] require.Equal(t, mirror.URL, "https://foo/bar.zip") require.Equal(t, mirror.Sha256, "abcdefghij") } diff --git a/pkg/cmd/cr2pg/sqlstream/stream.go b/pkg/cmd/cr2pg/sqlstream/stream.go index 57ff55e74b10..2d7f3001084b 100644 --- a/pkg/cmd/cr2pg/sqlstream/stream.go +++ b/pkg/cmd/cr2pg/sqlstream/stream.go @@ -17,8 +17,6 @@ import ( "github.com/cockroachdb/errors" ) -// Modified from importer/read_import_pgdump.go. - // Stream streams an io.Reader into tree.Statements. type Stream struct { scan *bufio.Scanner diff --git a/pkg/roachpb/io-formats.proto b/pkg/roachpb/io-formats.proto index d64254e802cd..5d708351fef6 100644 --- a/pkg/roachpb/io-formats.proto +++ b/pkg/roachpb/io-formats.proto @@ -15,19 +15,17 @@ message IOFileFormat { Unknown = 0; CSV = 1; MysqlOutfile = 2; - Mysqldump = 3; PgCopy = 4; - PgDump = 5; Avro = 6; Parquet = 7; + + reserved 3, 5; } optional FileFormat format = 1 [(gogoproto.nullable) = false]; optional CSVOptions csv = 2 [(gogoproto.nullable) = false]; optional MySQLOutfileOptions mysql_out = 3 [(gogoproto.nullable) = false]; optional PgCopyOptions pg_copy = 4 [(gogoproto.nullable) = false]; - optional MysqldumpOptions mysql_dump = 9 [(gogoproto.nullable) = false]; - optional PgDumpOptions pg_dump = 6 [(gogoproto.nullable) = false]; optional AvroOptions avro = 8 [(gogoproto.nullable) = false]; optional ParquetOptions parquet = 10 [(gogoproto.nullable) = false]; @@ -41,6 +39,8 @@ message IOFileFormat { optional Compression compression = 5 [(gogoproto.nullable) = false]; // If true, don't abort on failures but instead save the offending row and keep on. optional bool save_rejected = 7 [(gogoproto.nullable) = false]; + + reserved 6, 9; } @@ -103,29 +103,6 @@ message PgCopyOptions { optional int32 maxRowSize = 3 [(gogoproto.nullable) = false]; } -// PgDumpOptions describe the format of postgresql's pg_dump. -message PgDumpOptions { - // maxRowSize is the maximum row size - optional int32 maxRowSize = 1 [(gogoproto.nullable) = false]; - // Indicates the number of rows to import per table. - // Must be a non-zero positive number. - optional int64 row_limit = 2 [(gogoproto.nullable) = false]; - // Indicates if all unparseable and parseable, but unimplemented PGDUMP stmts - // should be ignored during IMPORT. - optional bool ignore_unsupported = 3 [(gogoproto.nullable) = false]; - // Points to the destination where unsupported statements during a PGDUMP - // import should be logged. This can only be used when ignore_unsupported is - // specified, otherwise the IMPORT errors out on encountering an unsupported - // stmt. - optional string ignore_unsupported_log = 4 [(gogoproto.nullable) = false]; -} - -message MysqldumpOptions { - // Indicates the number of rows to import per table. - // Must be a non-zero positive number. - optional int64 row_limit = 1 [(gogoproto.nullable) = false]; -} - message AvroOptions { enum Format { // Avro object container file input diff --git a/pkg/sql/importer/BUILD.bazel b/pkg/sql/importer/BUILD.bazel index 01d06f63da38..9ad96e8ed6c0 100644 --- a/pkg/sql/importer/BUILD.bazel +++ b/pkg/sql/importer/BUILD.bazel @@ -17,10 +17,8 @@ go_library( "read_import_avro.go", "read_import_base.go", "read_import_csv.go", - "read_import_mysql.go", "read_import_mysqlout.go", "read_import_pgcopy.go", - "read_import_pgdump.go", "read_import_workload.go", "rollback_job.go", ], @@ -31,7 +29,6 @@ go_library( "//pkg/clusterversion", "//pkg/col/coldata", "//pkg/crosscluster", - "//pkg/docs", "//pkg/featureflag", "//pkg/jobs", "//pkg/jobs/ingeststopped", @@ -51,7 +48,6 @@ go_library( "//pkg/sql/catalog/catpb", "//pkg/sql/catalog/colinfo", "//pkg/sql/catalog/dbdesc", - "//pkg/sql/catalog/descidgen", "//pkg/sql/catalog/descpb", "//pkg/sql/catalog/descs", "//pkg/sql/catalog/ingesting", @@ -70,10 +66,8 @@ go_library( "//pkg/sql/isql", "//pkg/sql/lexbase", "//pkg/sql/opt/memo", - "//pkg/sql/parser", "//pkg/sql/pgwire/pgcode", "//pkg/sql/pgwire/pgerror", - "//pkg/sql/pgwire/pgnotice", "//pkg/sql/physicalplan", "//pkg/sql/privilege", "//pkg/sql/row", @@ -96,7 +90,6 @@ go_library( "//pkg/util/errorutil/unimplemented", "//pkg/util/hlc", "//pkg/util/humanizeutil", - "//pkg/util/intsets", "//pkg/util/ioctx", "//pkg/util/log", "//pkg/util/log/eventpb", @@ -115,8 +108,6 @@ go_library( "@com_github_cockroachdb_redact//:redact", "@com_github_lib_pq//oid", "@com_github_linkedin_goavro_v2//:goavro", - "@io_vitess_vitess//go/sqltypes", - "@io_vitess_vitess//go/vt/sqlparser", ], ) diff --git a/pkg/sql/importer/import_job.go b/pkg/sql/importer/import_job.go index 8626a8517739..104e85622a01 100644 --- a/pkg/sql/importer/import_job.go +++ b/pkg/sql/importer/import_job.go @@ -12,7 +12,6 @@ import ( "math" "time" - "github.com/cockroachdb/cockroach/pkg/cloud" "github.com/cockroachdb/cockroach/pkg/clusterversion" "github.com/cockroachdb/cockroach/pkg/jobs" "github.com/cockroachdb/cockroach/pkg/jobs/ingeststopped" @@ -28,7 +27,6 @@ import ( "github.com/cockroachdb/cockroach/pkg/sql" "github.com/cockroachdb/cockroach/pkg/sql/catalog" "github.com/cockroachdb/cockroach/pkg/sql/catalog/dbdesc" - "github.com/cockroachdb/cockroach/pkg/sql/catalog/descidgen" "github.com/cockroachdb/cockroach/pkg/sql/catalog/descpb" "github.com/cockroachdb/cockroach/pkg/sql/catalog/descs" "github.com/cockroachdb/cockroach/pkg/sql/catalog/ingesting" @@ -47,7 +45,6 @@ import ( "github.com/cockroachdb/cockroach/pkg/sql/sqltelemetry" "github.com/cockroachdb/cockroach/pkg/sql/stats" "github.com/cockroachdb/cockroach/pkg/util/hlc" - "github.com/cockroachdb/cockroach/pkg/util/ioctx" "github.com/cockroachdb/cockroach/pkg/util/log" "github.com/cockroachdb/cockroach/pkg/util/log/eventpb" "github.com/cockroachdb/cockroach/pkg/util/log/logutil" @@ -129,9 +126,6 @@ type preparedSchemaMetadata struct { // Resume is part of the jobs.Resumer interface. func (r *importResumer) Resume(ctx context.Context, execCtx interface{}) error { p := execCtx.(sql.JobExecContext) - if err := r.parseBundleSchemaIfNeeded(ctx, p); err != nil { - return err - } details := r.job.Details().(jobspb.ImportDetails) files := details.URIs @@ -244,15 +238,6 @@ func (r *importResumer) Resume(ctx context.Context, execCtx interface{}) error { return errors.New("invalid table specification") } - // If we are importing from PGDUMP, qualify the table name with the schema - // name since we support non-public schemas. - if details.Format.Format == roachpb.IOFileFormat_PgDump { - schemaName := catconstants.PublicSchemaName - if schema, ok := schemaIDToName[i.Desc.GetUnexposedParentSchemaID()]; ok { - schemaName = schema - } - tableName = fmt.Sprintf("%s.%s", schemaName, tableName) - } tables[tableName] = &execinfrapb.ReadImportDataSpec_ImportTable{ Desc: i.Desc, TargetCols: i.TargetCols, @@ -429,6 +414,7 @@ func (r *importResumer) prepareTablesForIngestion( } hasExistingTables = true } else { + // TODO(yuzefovich): remove this branch. // PGDUMP imports support non-public schemas. // For the purpose of disambiguation we must take the schema into // account when constructing the newTablenameToIdx map. @@ -763,206 +749,6 @@ func bindTableDescImportProperties( return nil } -// parseBundleSchemaIfNeeded parses dump files (PGDUMP, MYSQLDUMP) for DDL -// statements and creates the relevant database, schema, table and type -// descriptors. Data from the dump files is ingested into these descriptors in -// the next phase of the import. -func (r *importResumer) parseBundleSchemaIfNeeded(ctx context.Context, phs interface{}) error { - p := phs.(sql.JobExecContext) - seqVals := make(map[descpb.ID]int64) - details := r.job.Details().(jobspb.ImportDetails) - skipFKs := details.SkipFKs - parentID := details.ParentID - files := details.URIs - format := details.Format - - owner := r.job.Payload().UsernameProto.Decode() - - p.SessionDataMutatorIterator().SetSessionDefaultIntSize(details.DefaultIntSize) - - if details.ParseBundleSchema { - var span *tracing.Span - ctx, span = tracing.ChildSpan(ctx, "import-parsing-bundle-schema") - defer span.Finish() - - if err := r.job.NoTxn().UpdateStatusMessage(ctx, statusImportBundleParseSchema); err != nil { - return errors.Wrapf(err, "failed to update running status of job %d", errors.Safe(r.job.ID())) - } - - var dbDesc catalog.DatabaseDescriptor - { - if err := sql.DescsTxn(ctx, p.ExecCfg(), func( - ctx context.Context, txn isql.Txn, descriptors *descs.Collection, - ) (err error) { - dbDesc, err = descriptors.ByIDWithoutLeased(txn.KV()).WithoutNonPublic().Get().Database(ctx, parentID) - if err != nil { - return err - } - return err - }); err != nil { - return err - } - } - - var schemaDescs []*schemadesc.Mutable - var tableDescs []*tabledesc.Mutable - var err error - walltime := p.ExecCfg().Clock.Now().WallTime - - if tableDescs, schemaDescs, err = parseAndCreateBundleTableDescs( - ctx, p, details, seqVals, skipFKs, dbDesc, files, format, walltime, owner, - r.job.ID()); err != nil { - return err - } - - schemaDetails := make([]jobspb.ImportDetails_Schema, len(schemaDescs)) - for i, schemaDesc := range schemaDescs { - schemaDetails[i] = jobspb.ImportDetails_Schema{Desc: schemaDesc.SchemaDesc()} - } - details.Schemas = schemaDetails - - tableDetails := make([]jobspb.ImportDetails_Table, len(tableDescs)) - for i, tableDesc := range tableDescs { - tableDetails[i] = jobspb.ImportDetails_Table{ - Name: tableDesc.GetName(), - Desc: tableDesc.TableDesc(), - SeqVal: seqVals[tableDescs[i].ID], - IsNew: true, - } - } - details.Tables = tableDetails - - for _, tbl := range tableDescs { - // For reasons relating to #37691, we disallow user defined types in - // the standard IMPORT case. - for _, col := range tbl.Columns { - if col.Type.UserDefined() { - return errors.Newf("IMPORT cannot be used with user defined types; use IMPORT INTO instead") - } - } - } - // Prevent job from redoing schema parsing and table desc creation - // on subsequent resumptions. - details.ParseBundleSchema = false - if err := r.job.NoTxn().SetDetails(ctx, details); err != nil { - return err - } - } - return nil -} - -func getPublicSchemaDescForDatabase( - ctx context.Context, execCfg *sql.ExecutorConfig, db catalog.DatabaseDescriptor, -) (scDesc catalog.SchemaDescriptor, err error) { - if err := sql.DescsTxn(ctx, execCfg, func( - ctx context.Context, txn isql.Txn, descriptors *descs.Collection, - ) error { - publicSchemaID := db.GetSchemaID(catconstants.PublicSchemaName) - scDesc, err = descriptors.ByIDWithLeased(txn.KV()).WithoutNonPublic().Get().Schema(ctx, publicSchemaID) - return err - }); err != nil { - return nil, err - } - - return scDesc, nil -} - -// parseAndCreateBundleTableDescs parses and creates the table -// descriptors for bundle formats. -func parseAndCreateBundleTableDescs( - ctx context.Context, - p sql.JobExecContext, - details jobspb.ImportDetails, - seqVals map[descpb.ID]int64, - skipFKs bool, - parentDB catalog.DatabaseDescriptor, - files []string, - format roachpb.IOFileFormat, - walltime int64, - owner username.SQLUsername, - jobID jobspb.JobID, -) ([]*tabledesc.Mutable, []*schemadesc.Mutable, error) { - - var schemaDescs []*schemadesc.Mutable - var tableDescs []*tabledesc.Mutable - var tableName string - - // A single table entry in the import job details when importing a bundle format - // indicates that we are performing a single table import. - // This info is populated during the planning phase. - if len(details.Tables) > 0 { - tableName = details.Tables[0].Name - } - - store, err := p.ExecCfg().DistSQLSrv.ExternalStorageFromURI(ctx, files[0], p.User()) - if err != nil { - return tableDescs, schemaDescs, err - } - defer store.Close() - - raw, _, err := store.ReadFile(ctx, "", cloud.ReadOptions{NoFileSize: true}) - if err != nil { - return tableDescs, schemaDescs, err - } - defer raw.Close(ctx) - reader, err := decompressingReader(ioctx.ReaderCtxAdapter(ctx, raw), files[0], format.Compression) - if err != nil { - return tableDescs, schemaDescs, err - } - defer reader.Close() - - fks := fkHandler{skip: skipFKs, allowed: true, resolver: fkResolver{ - tableNameToDesc: make(map[string]*tabledesc.Mutable), - }} - switch format.Format { - case roachpb.IOFileFormat_Mysqldump: - idgen := descidgen.NewGenerator(p.ExecCfg().Settings, p.ExecCfg().Codec, p.ExecCfg().DB) - id, err := idgen.PeekNextUniqueDescID(ctx) - if err != nil { - return tableDescs, schemaDescs, err - } - fks.resolver.format.Format = roachpb.IOFileFormat_Mysqldump - evalCtx := &p.ExtendedEvalContext().Context - tableDescs, err = readMysqlCreateTable( - ctx, reader, evalCtx, p, id, parentDB, tableName, fks, - seqVals, owner, walltime, - ) - if err != nil { - return tableDescs, schemaDescs, err - } - case roachpb.IOFileFormat_PgDump: - fks.resolver.format.Format = roachpb.IOFileFormat_PgDump - evalCtx := &p.ExtendedEvalContext().Context - - // Setup a logger to handle unsupported DDL statements in the PGDUMP file. - unsupportedStmtLogger := makeUnsupportedStmtLogger(ctx, p.User(), int64(jobID), - format.PgDump.IgnoreUnsupported, format.PgDump.IgnoreUnsupportedLog, schemaParsing, - p.ExecCfg().DistSQLSrv.ExternalStorage) - - tableDescs, schemaDescs, err = readPostgresCreateTable(ctx, reader, evalCtx, p, tableName, - parentDB, walltime, fks, int(format.PgDump.MaxRowSize), owner, unsupportedStmtLogger) - - logErr := unsupportedStmtLogger.flush() - if logErr != nil { - return nil, nil, logErr - } - - default: - return tableDescs, schemaDescs, errors.Errorf( - "non-bundle format %q does not support reading schemas", format.Format.String()) - } - - if err != nil { - return tableDescs, schemaDescs, err - } - - if tableDescs == nil && len(details.Tables) > 0 { - return tableDescs, schemaDescs, errors.Errorf("table definition not found for %q", tableName) - } - - return tableDescs, schemaDescs, err -} - // publishTables updates the status of imported tables from OFFLINE to PUBLIC. func (r *importResumer) publishTables( ctx context.Context, execCfg *sql.ExecutorConfig, res kvpb.BulkOpSummary, @@ -1389,6 +1175,20 @@ func emitImportJobEvent( } } +type schemaAndTableName struct { + schema string + table string +} + +func (s *schemaAndTableName) String() string { + var ret string + if s.schema != "" { + ret += s.schema + "." + } + ret += s.table + return ret +} + func constructSchemaAndTableKey( _ context.Context, tableDesc *descpb.TableDescriptor, diff --git a/pkg/sql/importer/import_planning.go b/pkg/sql/importer/import_planning.go index f2dc08a6e73f..81381dff7227 100644 --- a/pkg/sql/importer/import_planning.go +++ b/pkg/sql/importer/import_planning.go @@ -6,7 +6,6 @@ package importer import ( - "bytes" "context" "fmt" "math" @@ -17,12 +16,10 @@ import ( "strings" "github.com/cockroachdb/cockroach/pkg/cloud" - "github.com/cockroachdb/cockroach/pkg/docs" "github.com/cockroachdb/cockroach/pkg/featureflag" "github.com/cockroachdb/cockroach/pkg/jobs" "github.com/cockroachdb/cockroach/pkg/jobs/jobspb" "github.com/cockroachdb/cockroach/pkg/roachpb" - "github.com/cockroachdb/cockroach/pkg/security/username" "github.com/cockroachdb/cockroach/pkg/server/telemetry" "github.com/cockroachdb/cockroach/pkg/settings" "github.com/cockroachdb/cockroach/pkg/sql" @@ -38,7 +35,6 @@ import ( "github.com/cockroachdb/cockroach/pkg/sql/isql" "github.com/cockroachdb/cockroach/pkg/sql/pgwire/pgcode" "github.com/cockroachdb/cockroach/pkg/sql/pgwire/pgerror" - "github.com/cockroachdb/cockroach/pkg/sql/pgwire/pgnotice" "github.com/cockroachdb/cockroach/pkg/sql/privilege" "github.com/cockroachdb/cockroach/pkg/sql/sem/idxtype" "github.com/cockroachdb/cockroach/pkg/sql/sem/tree" @@ -89,15 +85,6 @@ const ( // as either an inline JSON schema, or an external schema URI. avroSchema = "schema" avroSchemaURI = "schema_uri" - - pgDumpIgnoreAllUnsupported = "ignore_unsupported_statements" - pgDumpIgnoreShuntFileDest = "log_ignored_statements" - pgDumpUnsupportedSchemaStmtLog = "unsupported_schema_stmts" - pgDumpUnsupportedDataStmtLog = "unsupported_data_stmts" - - // statusImportBundleParseSchema indicates to the user that a bundle format - // schema is being parsed - statusImportBundleParseSchema jobs.StatusMessage = "parsing schema on Import Bundle" ) var importOptionExpectValues = map[string]exprutil.KVStringOptValidate{ @@ -129,13 +116,8 @@ var importOptionExpectValues = map[string]exprutil.KVStringOptValidate{ avroRecordsSeparatedBy: exprutil.KVStringOptRequireValue, avroBinRecords: exprutil.KVStringOptRequireNoValue, avroJSONRecords: exprutil.KVStringOptRequireNoValue, - - pgDumpIgnoreAllUnsupported: exprutil.KVStringOptRequireNoValue, - pgDumpIgnoreShuntFileDest: exprutil.KVStringOptRequireValue, } -var pgDumpMaxLoggedStmts = 1024 - func makeStringSet(opts ...string) map[string]struct{} { res := make(map[string]struct{}, len(opts)) for _, opt := range opts { @@ -164,12 +146,7 @@ var mysqlOutAllowedOptions = makeStringSet( mysqlOutfileEscape, csvNullIf, csvSkip, csvRowLimit, ) -var ( - mysqlDumpAllowedOptions = makeStringSet(importOptionSkipFKs, csvRowLimit) - pgCopyAllowedOptions = makeStringSet(pgCopyDelimiter, pgCopyNull, optMaxRowSize) - pgDumpAllowedOptions = makeStringSet(optMaxRowSize, importOptionSkipFKs, csvRowLimit, - pgDumpIgnoreAllUnsupported, pgDumpIgnoreShuntFileDest) -) +var pgCopyAllowedOptions = makeStringSet(pgCopyDelimiter, pgCopyNull, optMaxRowSize) // DROP is required because the target table needs to be take offline during // IMPORT INTO. @@ -343,15 +320,6 @@ func importPlanHook( return nil, nil, false, nil } - switch f := strings.ToUpper(importStmt.FileFormat); f { - case "PGDUMP", "MYSQLDUMP": - p.BufferClientNotice(ctx, pgnotice.Newf( - "IMPORT %s has been deprecated in 23.1, and will be removed in a future version. See %s for alternatives.", - redact.SafeString(f), - redact.SafeString(docs.URL("migration-overview")), - )) - } - addToFileFormatTelemetry(importStmt.FileFormat, "attempted") if err := featureflag.CheckEnabled( @@ -603,21 +571,6 @@ func importPlanHook( } format.MysqlOut.RowLimit = int64(rowLimit) } - case "MYSQLDUMP": - if err = validateFormatOptions(importStmt.FileFormat, opts, mysqlDumpAllowedOptions); err != nil { - return err - } - format.Format = roachpb.IOFileFormat_Mysqldump - if override, ok := opts[csvRowLimit]; ok { - rowLimit, err := strconv.Atoi(override) - if err != nil { - return pgerror.Wrapf(err, pgcode.Syntax, "invalid numeric %s value", csvRowLimit) - } - if rowLimit <= 0 { - return pgerror.Newf(pgcode.Syntax, "%s must be > 0", csvRowLimit) - } - format.MysqlDump.RowLimit = int64(rowLimit) - } case "PGCOPY": if err = validateFormatOptions(importStmt.FileFormat, opts, pgCopyAllowedOptions); err != nil { return err @@ -649,44 +602,6 @@ func importPlanHook( maxRowSize = int32(sz) } format.PgCopy.MaxRowSize = maxRowSize - case "PGDUMP": - if err = validateFormatOptions(importStmt.FileFormat, opts, pgDumpAllowedOptions); err != nil { - return err - } - format.Format = roachpb.IOFileFormat_PgDump - maxRowSize := int32(defaultScanBuffer) - if override, ok := opts[optMaxRowSize]; ok { - sz, err := humanizeutil.ParseBytes(override) - if err != nil { - return err - } - if sz < 1 || sz > math.MaxInt32 { - return errors.Errorf("%d out of range: %d", maxRowSize, sz) - } - maxRowSize = int32(sz) - } - format.PgDump.MaxRowSize = maxRowSize - if _, ok := opts[pgDumpIgnoreAllUnsupported]; ok { - format.PgDump.IgnoreUnsupported = true - } - - if dest, ok := opts[pgDumpIgnoreShuntFileDest]; ok { - if !format.PgDump.IgnoreUnsupported { - return errors.New("cannot log unsupported PGDUMP stmts without `ignore_unsupported_statements` option") - } - format.PgDump.IgnoreUnsupportedLog = dest - } - - if override, ok := opts[csvRowLimit]; ok { - rowLimit, err := strconv.Atoi(override) - if err != nil { - return pgerror.Wrapf(err, pgcode.Syntax, "invalid numeric %s value", csvRowLimit) - } - if rowLimit <= 0 { - return pgerror.Newf(pgcode.Syntax, "%s must be > 0", csvRowLimit) - } - format.PgDump.RowLimit = int64(rowLimit) - } case "AVRO": if err = validateFormatOptions(importStmt.FileFormat, opts, avroAllowedOptions); err != nil { return err @@ -1034,115 +949,6 @@ func parseAvroOptions( return nil } -type loggerKind int - -const ( - schemaParsing loggerKind = iota - dataIngestion -) - -// unsupportedStmtLogger is responsible for handling unsupported PGDUMP SQL -// statements seen during the import. -type unsupportedStmtLogger struct { - ctx context.Context - user username.SQLUsername - jobID int64 - - // Values are initialized based on the options specified in the IMPORT PGDUMP - // stmt. - ignoreUnsupported bool - ignoreUnsupportedLogDest string - externalStorage cloud.ExternalStorageFactory - - // logBuffer holds the string to be flushed to the ignoreUnsupportedLogDest. - logBuffer *bytes.Buffer - numIgnoredStmts int - - // Incremented every time the logger flushes. It is used as the suffix of the - // log file written to external storage. - flushCount int - - loggerType loggerKind -} - -func makeUnsupportedStmtLogger( - ctx context.Context, - user username.SQLUsername, - jobID int64, - ignoreUnsupported bool, - unsupportedLogDest string, - loggerType loggerKind, - externalStorage cloud.ExternalStorageFactory, -) *unsupportedStmtLogger { - return &unsupportedStmtLogger{ - ctx: ctx, - user: user, - jobID: jobID, - ignoreUnsupported: ignoreUnsupported, - ignoreUnsupportedLogDest: unsupportedLogDest, - loggerType: loggerType, - logBuffer: new(bytes.Buffer), - externalStorage: externalStorage, - } -} - -func (u *unsupportedStmtLogger) log(logLine string, isParseError bool) error { - // We have already logged parse errors during the schema ingestion phase, so - // skip them to avoid duplicate entries. - skipLoggingParseErr := isParseError && u.loggerType == dataIngestion - if u.ignoreUnsupportedLogDest == "" || skipLoggingParseErr { - return nil - } - - // Flush to a file if we have hit the max size of our buffer. - if u.numIgnoredStmts >= pgDumpMaxLoggedStmts { - err := u.flush() - if err != nil { - return err - } - } - - if isParseError { - logLine = fmt.Sprintf("%s: could not be parsed\n", logLine) - } else { - logLine = fmt.Sprintf("%s: unsupported by IMPORT\n", logLine) - } - u.logBuffer.Write([]byte(logLine)) - u.numIgnoredStmts++ - return nil -} - -func (u *unsupportedStmtLogger) flush() error { - if u.ignoreUnsupportedLogDest == "" { - return nil - } - - conf, err := cloud.ExternalStorageConfFromURI(u.ignoreUnsupportedLogDest, u.user) - if err != nil { - return errors.Wrap(err, "failed to log unsupported stmts during IMPORT PGDUMP") - } - var s cloud.ExternalStorage - if s, err = u.externalStorage(u.ctx, conf); err != nil { - return errors.New("failed to log unsupported stmts during IMPORT PGDUMP") - } - defer s.Close() - - logFileName := fmt.Sprintf("import%d", u.jobID) - if u.loggerType == dataIngestion { - logFileName = path.Join(logFileName, pgDumpUnsupportedDataStmtLog, fmt.Sprintf("%d.log", u.flushCount)) - } else { - logFileName = path.Join(logFileName, pgDumpUnsupportedSchemaStmtLog, fmt.Sprintf("%d.log", u.flushCount)) - } - err = cloud.WriteFile(u.ctx, s, logFileName, bytes.NewReader(u.logBuffer.Bytes())) - if err != nil { - return errors.Wrap(err, "failed to log unsupported stmts to log during IMPORT PGDUMP") - } - u.flushCount++ - u.numIgnoredStmts = 0 - u.logBuffer.Truncate(0) - return nil -} - func init() { sql.AddPlanHook("import", importPlanHook, importTypeCheck) } diff --git a/pkg/sql/importer/import_processor.go b/pkg/sql/importer/import_processor.go index ba4164d06c98..a1f1adedef72 100644 --- a/pkg/sql/importer/import_processor.go +++ b/pkg/sql/importer/import_processor.go @@ -259,24 +259,22 @@ func makeInputConverter( } } - if format := spec.Format.Format; singleTable == nil && !isMultiTableFormat(format) { - return nil, errors.Errorf("%s only supports reading a single, pre-specified table", format.String()) + if singleTable == nil { + return nil, errors.Errorf("%s only supports reading a single, pre-specified table", spec.Format.Format.String()) } - if singleTable != nil { - // If we're using a format like CSV where data columns are not "named", and - // therefore cannot be mapped to schema columns, then require the user to - // use IMPORT INTO. - // - // We could potentially do something smarter here and check that only a - // suffix of the columns are computed, and then expect the data file to have - // #(visible columns) - #(computed columns). - if len(singleTableTargetCols) == 0 && !formatHasNamedColumns(spec.Format.Format) { - for _, col := range singleTable.VisibleColumns() { - if col.IsComputed() { - return nil, unimplemented.NewWithIssueDetail(56002, "import.computed", - "to use computed columns, use IMPORT INTO") - } + // If we're using a format like CSV where data columns are not "named", and + // therefore cannot be mapped to schema columns, then require the user to + // use IMPORT INTO. + // + // We could potentially do something smarter here and check that only a + // suffix of the columns are computed, and then expect the data file to have + // #(visible columns) - #(computed columns). + if len(singleTableTargetCols) == 0 && !formatHasNamedColumns(spec.Format.Format) { + for _, col := range singleTable.VisibleColumns() { + if col.IsComputed() { + return nil, unimplemented.NewWithIssueDetail(56002, "import.computed", + "to use computed columns, use IMPORT INTO") } } } @@ -308,15 +306,9 @@ func makeInputConverter( return newMysqloutfileReader( semaCtx, spec.Format.MysqlOut, kvCh, spec.WalltimeNanos, readerParallelism, singleTable, singleTableTargetCols, evalCtx, db) - case roachpb.IOFileFormat_Mysqldump: - return newMysqldumpReader(ctx, semaCtx, kvCh, spec.WalltimeNanos, spec.Tables, evalCtx, - spec.Format.MysqlDump, db) case roachpb.IOFileFormat_PgCopy: return newPgCopyReader(semaCtx, spec.Format.PgCopy, kvCh, spec.WalltimeNanos, readerParallelism, singleTable, singleTableTargetCols, evalCtx, db) - case roachpb.IOFileFormat_PgDump: - return newPgDumpReader(ctx, semaCtx, int64(spec.Progress.JobID), kvCh, spec.Format.PgDump, - spec.WalltimeNanos, spec.Tables, evalCtx, db) case roachpb.IOFileFormat_Avro: return newAvroInputReader( semaCtx, kvCh, singleTable, spec.Format.Avro, spec.WalltimeNanos, diff --git a/pkg/sql/importer/import_table_creation.go b/pkg/sql/importer/import_table_creation.go index f6e62c27c52b..828d739cf7e6 100644 --- a/pkg/sql/importer/import_table_creation.go +++ b/pkg/sql/importer/import_table_creation.go @@ -10,7 +10,6 @@ import ( "fmt" "strings" - "github.com/cockroachdb/cockroach/pkg/roachpb" "github.com/cockroachdb/cockroach/pkg/security/username" "github.com/cockroachdb/cockroach/pkg/settings/cluster" "github.com/cockroachdb/cockroach/pkg/sql" @@ -45,8 +44,18 @@ var NoFKs = fkHandler{resolver: fkResolver{ tableNameToDesc: make(map[string]*tabledesc.Mutable), }} -// MakeTestingSimpleTableDescriptor is like MakeSimpleTableDescriptor but it -// uses parentID and parentSchemaID instead of descriptors. +// MakeTestingSimpleTableDescriptor creates a tabledesc.Mutable from a +// CreateTable parse node without the full machinery. Many parts of the syntax +// are unsupported (see the implementation and +// TestMakeSimpleTableDescriptorErrors for details), but this is enough for some +// unit tests. +// +// Any occurrence of SERIAL in the column definitions is handled using +// the CockroachDB legacy behavior, i.e. INT NOT NULL DEFAULT +// unique_rowid(). +// +// TODO(yuzefovich): move this out of importer package into some test utils +// package. func MakeTestingSimpleTableDescriptor( ctx context.Context, semaCtx *tree.SemaContext, @@ -69,34 +78,6 @@ func MakeTestingSimpleTableDescriptor( username.RootUserName(), ), }).BuildCreatedMutableSchema() - return MakeSimpleTableDescriptor(ctx, semaCtx, st, create, db, sc, tableID, fks, walltime) -} - -func makeSemaCtxWithoutTypeResolver(semaCtx *tree.SemaContext) *tree.SemaContext { - semaCtxCopy := *semaCtx - semaCtxCopy.TypeResolver = nil - return &semaCtxCopy -} - -// MakeSimpleTableDescriptor creates a tabledesc.Mutable from a CreateTable -// parse node without the full machinery. Many parts of the syntax are -// unsupported (see the implementation and TestMakeSimpleTableDescriptorErrors -// for details), but this is enough for our csv IMPORT and for some unit tests. -// -// Any occurrence of SERIAL in the column definitions is handled using -// the CockroachDB legacy behavior, i.e. INT NOT NULL DEFAULT -// unique_rowid(). -func MakeSimpleTableDescriptor( - ctx context.Context, - semaCtx *tree.SemaContext, - st *cluster.Settings, - create *tree.CreateTable, - db catalog.DatabaseDescriptor, - sc catalog.SchemaDescriptor, - tableID descpb.ID, - fks fkHandler, - walltime int64, -) (*tabledesc.Mutable, error) { create.HoistConstraints() if create.IfNotExists { return nil, unimplemented.NewWithIssueDetailf(42846, "import.if-no-exists", "unsupported IF NOT EXISTS") @@ -334,7 +315,6 @@ func (so *importSequenceOperators) SetSequenceValueByID( type fkResolver struct { tableNameToDesc map[string]*tabledesc.Mutable - format roachpb.IOFileFormat } var _ resolver.SchemaResolver = &fkResolver{} @@ -367,18 +347,9 @@ func (r *fkResolver) CurrentSearchPath() sessiondata.SearchPath { func (r *fkResolver) LookupObject( ctx context.Context, flags tree.ObjectLookupFlags, dbName, scName, obName string, ) (found bool, prefix catalog.ResolvedObjectPrefix, objMeta catalog.Descriptor, err error) { - // PGDUMP supports non-public schemas so respect the schema name. var lookupName string - if r.format.Format == roachpb.IOFileFormat_PgDump { - if scName == "" || dbName == "" { - return false, prefix, nil, errors.Errorf("expected catalog and schema name to be set when resolving"+ - " table %q in PGDUMP", obName) - } - lookupName = fmt.Sprintf("%s.%s", scName, obName) - } else { - if scName != "" { - lookupName = strings.TrimPrefix(obName, scName+".") - } + if scName != "" { + lookupName = strings.TrimPrefix(obName, scName+".") } tbl, ok := r.tableNameToDesc[lookupName] if ok { diff --git a/pkg/sql/importer/read_import_base.go b/pkg/sql/importer/read_import_base.go index 93ff0c63a000..c696166a57ee 100644 --- a/pkg/sql/importer/read_import_base.go +++ b/pkg/sql/importer/read_import_base.go @@ -376,40 +376,12 @@ type inputConverter interface { // mapped specifically to a particular data column. func formatHasNamedColumns(format roachpb.IOFileFormat_FileFormat) bool { switch format { - case roachpb.IOFileFormat_Avro, - roachpb.IOFileFormat_Mysqldump, - roachpb.IOFileFormat_PgDump: + case roachpb.IOFileFormat_Avro: return true } return false } -func isMultiTableFormat(format roachpb.IOFileFormat_FileFormat) bool { - switch format { - case roachpb.IOFileFormat_Mysqldump, - roachpb.IOFileFormat_PgDump: - return true - } - return false -} - -func makeRowErr(row int64, code pgcode.Code, format string, args ...interface{}) error { - err := pgerror.NewWithDepthf(1, code, format, args...) - err = errors.WrapWithDepthf(1, err, "row %d", row) - return err -} - -func wrapRowErr(err error, row int64, code pgcode.Code, format string, args ...interface{}) error { - if format != "" || len(args) > 0 { - err = errors.WrapWithDepthf(1, err, format, args...) - } - err = errors.WrapWithDepthf(1, err, "row %d", row) - if code != pgcode.Uncategorized { - err = pgerror.WithCandidateCode(err, code) - } - return err -} - // importRowError is an error type describing malformed import data. type importRowError struct { err error diff --git a/pkg/sql/importer/read_import_mysql.go b/pkg/sql/importer/read_import_mysql.go deleted file mode 100644 index bef8cd6047cc..000000000000 --- a/pkg/sql/importer/read_import_mysql.go +++ /dev/null @@ -1,800 +0,0 @@ -// Copyright 2018 The Cockroach Authors. -// -// Use of this software is governed by the CockroachDB Software License -// included in the /LICENSE file. - -package importer - -import ( - "bufio" - "bytes" - "context" - "fmt" - "io" - "strconv" - "strings" - - "github.com/cockroachdb/cockroach/pkg/cloud" - "github.com/cockroachdb/cockroach/pkg/kv" - "github.com/cockroachdb/cockroach/pkg/roachpb" - "github.com/cockroachdb/cockroach/pkg/security/username" - "github.com/cockroachdb/cockroach/pkg/sql" - "github.com/cockroachdb/cockroach/pkg/sql/catalog" - "github.com/cockroachdb/cockroach/pkg/sql/catalog/catpb" - "github.com/cockroachdb/cockroach/pkg/sql/catalog/descpb" - "github.com/cockroachdb/cockroach/pkg/sql/catalog/schemadesc" - "github.com/cockroachdb/cockroach/pkg/sql/catalog/tabledesc" - "github.com/cockroachdb/cockroach/pkg/sql/execinfrapb" - "github.com/cockroachdb/cockroach/pkg/sql/lexbase" - "github.com/cockroachdb/cockroach/pkg/sql/parser" - "github.com/cockroachdb/cockroach/pkg/sql/row" - "github.com/cockroachdb/cockroach/pkg/sql/rowenc" - "github.com/cockroachdb/cockroach/pkg/sql/sem/catconstants" - "github.com/cockroachdb/cockroach/pkg/sql/sem/eval" - "github.com/cockroachdb/cockroach/pkg/sql/sem/tree" - "github.com/cockroachdb/cockroach/pkg/sql/types" - "github.com/cockroachdb/cockroach/pkg/util/errorutil/unimplemented" - "github.com/cockroachdb/cockroach/pkg/util/hlc" - "github.com/cockroachdb/cockroach/pkg/util/log" - "github.com/cockroachdb/errors" - mysqltypes "vitess.io/vitess/go/sqltypes" - mysql "vitess.io/vitess/go/vt/sqlparser" -) - -// mysqldumpReader reads the default output of `mysqldump`, which consists of -// SQL statements, in MySQL-dialect, namely CREATE TABLE and INSERT statements, -// with some additional statements that control the loading process like LOCK or -// UNLOCK (which are simply ignored for the purposed of this reader). Data for -// tables with names that appear in the `tables` map is converted to Cockroach -// KVs using the mapped converter and sent to kvCh. -type mysqldumpReader struct { - evalCtx *eval.Context - tables map[string]*row.DatumRowConverter - kvCh chan row.KVBatch - debugRow func(tree.Datums) - walltime int64 - opts roachpb.MysqldumpOptions -} - -var _ inputConverter = &mysqldumpReader{} - -func newMysqldumpReader( - ctx context.Context, - semaCtx *tree.SemaContext, - kvCh chan row.KVBatch, - walltime int64, - tables map[string]*execinfrapb.ReadImportDataSpec_ImportTable, - evalCtx *eval.Context, - opts roachpb.MysqldumpOptions, - db *kv.DB, -) (*mysqldumpReader, error) { - res := &mysqldumpReader{evalCtx: evalCtx, kvCh: kvCh, walltime: walltime, opts: opts} - - converters := make(map[string]*row.DatumRowConverter, len(tables)) - for name, table := range tables { - if table.Desc == nil { - converters[name] = nil - continue - } - conv, err := row.NewDatumRowConverter( - ctx, semaCtx, tabledesc.NewBuilder(table.Desc).BuildImmutableTable(), - nil /* targetColNames */, evalCtx, kvCh, - nil /* seqChunkProvider */, nil /* metrics */, db, - ) - if err != nil { - return nil, err - } - converters[name] = conv - } - res.tables = converters - return res, nil -} - -func (m *mysqldumpReader) readFiles( - ctx context.Context, - dataFiles map[int32]string, - resumePos map[int32]int64, - format roachpb.IOFileFormat, - makeExternalStorage cloud.ExternalStorageFactory, - user username.SQLUsername, -) error { - return readInputFiles(ctx, dataFiles, resumePos, format, m.readFile, makeExternalStorage, user) -} - -func (m *mysqldumpReader) readFile( - ctx context.Context, input *fileReader, inputIdx int32, resumePos int64, rejected chan string, -) error { - var inserts, count int64 - r := bufio.NewReaderSize(input, 1024*64) - tableNameToRowsProcessed := make(map[string]int64) - rowLimit := m.opts.RowLimit - tokens := mysql.NewTokenizer(r) - tokens.SkipSpecialComments = true - - for _, conv := range m.tables { - conv.KvBatch.Source = inputIdx - conv.FractionFn = input.ReadFraction - conv.CompletedRowFn = func() int64 { - return count - } - } - - for { - stmt, err := mysql.ParseNextStrictDDL(tokens) - if err == io.EOF { - break - } - if errors.Is(err, mysql.ErrEmpty) { - continue - } - if err != nil { - return errors.Wrap(err, "mysql parse error") - } - switch i := stmt.(type) { - case *mysql.Insert: - name := safeString(i.Table.Name) - conv, ok := m.tables[lexbase.NormalizeName(name)] - if !ok { - // not importing this table. - continue - } - if conv == nil { - return errors.Errorf("missing schema info for requested table %q", name) - } - inserts++ - timestamp := timestampAfterEpoch(m.walltime) - rows, ok := i.Rows.(mysql.Values) - if !ok { - return errors.Errorf( - "insert statement %d: unexpected insert row type %T: %v", inserts, rows, i.Rows, - ) - } - startingCount := count - for _, inputRow := range rows { - count++ - tableNameToRowsProcessed[name]++ - - if count <= resumePos { - continue - } - if rowLimit != 0 && tableNameToRowsProcessed[name] > rowLimit { - break - } - if expected, got := len(conv.VisibleCols), len(inputRow); expected != got { - return errors.Errorf("expected %d values, got %d: %v", expected, got, inputRow) - } - for i, raw := range inputRow { - converted, err := mysqlValueToDatum(ctx, raw, conv.VisibleColTypes[i], conv.EvalCtx, conv.SemaCtx) - if err != nil { - return errors.Wrapf(err, "reading row %d (%d in insert statement %d)", - count, count-startingCount, inserts) - } - conv.Datums[i] = converted - } - if err := conv.Row(ctx, inputIdx, count+int64(timestamp)); err != nil { - return err - } - if m.debugRow != nil { - m.debugRow(conv.Datums) - } - } - default: - if log.V(3) { - log.Infof(ctx, "ignoring %T stmt: %v", i, i) - } - continue - } - } - for _, conv := range m.tables { - if err := conv.SendBatch(ctx); err != nil { - return err - } - } - return nil -} - -const ( - zeroDate = "0000-00-00" - zeroYear = "0000" - zeroTime = "0000-00-00 00:00:00" -) - -func mysqlStrToDatum(evalCtx *eval.Context, s string, desired *types.T) (tree.Datum, error) { - switch desired.Family() { - case types.BytesFamily: - // mysql emits raw byte strings that do not use the same escaping as our - // tree.ParseDBytes function expects, and the difference between - // tree.ParseAndRequireString and mysqlStrToDatum is whether or not it - // attempts to parse bytes. - return tree.NewDBytes(tree.DBytes(s)), nil - default: - res, _, err := tree.ParseAndRequireString(desired, s, evalCtx) - return res, err - } -} - -// mysqlValueToDatum attempts to convert a value, as parsed from a mysqldump -// INSERT statement, in to a Cockroach Datum of type `desired`. The MySQL parser -// does not parse the values themselves to Go primitivies, rather leaving the -// original bytes uninterpreted in a value wrapper. The possible mysql value -// wrapper types are: StrVal, IntVal, FloatVal, HexNum, HexVal, ValArg, BitVal -// as well as NullVal. -func mysqlValueToDatum( - ctx context.Context, - raw mysql.Expr, - desired *types.T, - evalContext *eval.Context, - semaCtx *tree.SemaContext, -) (tree.Datum, error) { - switch v := raw.(type) { - case mysql.BoolVal: - if v { - return tree.DBoolTrue, nil - } - return tree.DBoolFalse, nil - case *mysql.Literal: - switch v.Type { - case mysql.StrVal: - s := string(v.Val) - // https://github.com/cockroachdb/cockroach/issues/29298 - - if strings.HasPrefix(s, zeroYear) { - switch desired.Family() { - case types.TimestampTZFamily, types.TimestampFamily: - if s == zeroTime { - return tree.DNull, nil - } - case types.DateFamily: - if s == zeroDate { - return tree.DNull, nil - } - } - } - return mysqlStrToDatum(evalContext, s, desired) - case mysql.IntVal: - return rowenc.ParseDatumStringAs(ctx, desired, string(v.Val), evalContext, semaCtx) - case mysql.FloatVal: - return rowenc.ParseDatumStringAs(ctx, desired, string(v.Val), evalContext, semaCtx) - case mysql.HexVal: - v, err := v.HexDecode() - return tree.NewDBytes(tree.DBytes(v)), err - // ValArg appears to be for placeholders, which should not appear in dumps. - // TODO(dt): Do we need to handle HexNum or BitVal? - default: - return nil, fmt.Errorf("unsupported value type %c: %v", v.Type, v) - } - - case *mysql.UnaryExpr: - switch v.Operator { - case mysql.UMinusOp: - parsed, err := mysqlValueToDatum(ctx, v.Expr, desired, evalContext, semaCtx) - if err != nil { - return nil, err - } - switch i := parsed.(type) { - case *tree.DInt: - return tree.NewDInt(-*i), nil - case *tree.DFloat: - return tree.NewDFloat(-*i), nil - case *tree.DDecimal: - dec := &i.Decimal - dd := &tree.DDecimal{} - dd.Decimal.Neg(dec) - return dd, nil - default: - return nil, errors.Errorf("unsupported negation of %T", i) - } - case mysql.UBinaryOp: - // TODO(dt): do we want to use this hint to change our decoding logic? - return mysqlValueToDatum(ctx, v.Expr, desired, evalContext, semaCtx) - default: - return nil, errors.Errorf("unexpected operator: %q", v.Operator) - } - - case *mysql.NullVal: - return tree.DNull, nil - - default: - return nil, errors.Errorf("unexpected value type %T: %v", v, v) - } -} - -// readMysqlCreateTable parses mysql-dialect SQL from input to extract table -// definitions and return them as Cockroach's TableDescriptors. If `match` is -// non-empty, only the table with that name is returned and an error is returned -// if a matching table is not found in the input. Otherwise, if match is empty, -// all tables encountered are returned (or an error is returned if no tables are -// found). Returned tables are given dummy, placeholder IDs -- it is up to the -// caller to allocate and assign real IDs. -func readMysqlCreateTable( - ctx context.Context, - input io.Reader, - evalCtx *eval.Context, - p sql.JobExecContext, - startingID descpb.ID, - parentDB catalog.DatabaseDescriptor, - match string, - fks fkHandler, - seqVals map[descpb.ID]int64, - owner username.SQLUsername, - walltime int64, -) ([]*tabledesc.Mutable, error) { - match = lexbase.NormalizeName(match) - r := bufio.NewReaderSize(input, 1024*64) - tokens := mysql.NewTokenizer(r) - tokens.SkipSpecialComments = true - - var ret []*tabledesc.Mutable - var fkDefs []delayedFK - var found bool - var names []string - for { - stmt, err := mysql.ParseNextStrictDDL(tokens) - if err == nil { - err = tokens.LastError - } - if err == io.EOF { - break - } - if errors.Is(err, mysql.ErrEmpty) { - continue - } - if err != nil { - return nil, errors.Wrap(err, "mysql parse error") - } - if i, ok := stmt.(*mysql.DDL); ok && i.Action == mysql.CreateDDLAction { - name := safeString(i.Table.Name) - if match != "" && match != name { - names = append(names, name) - continue - } - id := descpb.ID(int(startingID) + len(ret)) - tbl, moreFKs, err := mysqlTableToCockroach(ctx, evalCtx, p, parentDB, id, name, i.TableSpec, fks, seqVals, owner, walltime) - if err != nil { - return nil, err - } - fkDefs = append(fkDefs, moreFKs...) - ret = append(ret, tbl...) - if match == name { - found = true - break - } - } - } - if ret == nil { - return nil, errors.Errorf("no table definitions found") - } - if match != "" && !found { - return nil, errors.Errorf("table %q not found in file (found tables: %s)", match, strings.Join(names, ", ")) - } - if err := addDelayedFKs(ctx, fkDefs, fks.resolver, evalCtx); err != nil { - return nil, err - } - return ret, nil -} - -type mysqlIdent interface{ CompliantName() string } - -func safeString(in mysqlIdent) string { - return lexbase.NormalizeName(in.CompliantName()) -} - -func safeName(in mysqlIdent) tree.Name { - return tree.Name(safeString(in)) -} - -// mysqlTableToCockroach creates a Cockroach TableDescriptor from a parsed mysql -// CREATE TABLE statement, converting columns and indexes to their closest -// Cockroach counterparts. -func mysqlTableToCockroach( - ctx context.Context, - evalCtx *eval.Context, - p sql.JobExecContext, - parentDB catalog.DatabaseDescriptor, - id descpb.ID, - name string, - in *mysql.TableSpec, - fks fkHandler, - seqVals map[descpb.ID]int64, - owner username.SQLUsername, - walltime int64, -) ([]*tabledesc.Mutable, []delayedFK, error) { - if in == nil { - return nil, nil, errors.Errorf("could not read definition for table %q (possible unsupported type?)", name) - } - - time := hlc.Timestamp{WallTime: walltime} - - const seqOpt = "auto_increment=" - var seqName string - var startingValue int64 - for _, opt := range strings.Fields(strings.ToLower(in.Options)) { - if strings.HasPrefix(opt, seqOpt) { - seqName = name + "_auto_inc" - i, err := strconv.Atoi(strings.TrimPrefix(opt, seqOpt)) - if err != nil { - return nil, nil, errors.Wrapf(err, "parsing AUTO_INCREMENT value") - } - startingValue = int64(i) - break - } - } - - if seqName == "" { - for _, raw := range in.Columns { - if raw.Type.Autoincrement { - seqName = name + "_auto_inc" - break - } - } - } - publicSchema, err := getPublicSchemaDescForDatabase(ctx, p.ExecCfg(), parentDB) - if err != nil { - return nil, nil, err - } - var seqDesc *tabledesc.Mutable - // If we have an auto-increment seq, create it and increment the id. - if seqName != "" { - var opts tree.SequenceOptions - if startingValue != 0 { - opts = tree.SequenceOptions{{Name: tree.SeqOptStart, IntVal: &startingValue}} - seqVals[id] = startingValue - } - var err error - privilegeDesc := catpb.NewBasePrivilegeDescriptor(owner) - seqDesc, err = sql.NewSequenceTableDesc( - ctx, - nil, /* planner */ - evalCtx.Settings, - seqName, - opts, - parentDB.GetID(), - publicSchema.GetID(), - id, - time, - privilegeDesc, - tree.PersistencePermanent, - // If this is multi-region, this will get added by WriteDescriptors. - false, /* isMultiRegion */ - ) - if err != nil { - return nil, nil, err - } - fks.resolver.tableNameToDesc[seqName] = seqDesc - id++ - } - - stmt := &tree.CreateTable{Table: tree.MakeUnqualifiedTableName(tree.Name(name))} - - checks := make(map[string]*tree.CheckConstraintTableDef) - - for _, raw := range in.Columns { - def, err := mysqlColToCockroach(safeString(raw.Name), raw.Type, checks) - if err != nil { - return nil, nil, err - } - if raw.Type.Autoincrement { - - expr, err := parser.ParseExpr(fmt.Sprintf("nextval('%s':::STRING)", seqName)) - if err != nil { - return nil, nil, err - } - def.DefaultExpr.Expr = expr - } - // If the target table columns have data type INT or INTEGER, they need to - // be updated to conform to the session variable `default_int_size`. - if dType, ok := def.Type.(*types.T); ok { - if dType.Equivalent(types.Int) && p != nil && p.SessionData() != nil { - def.Type = parser.NakedIntTypeFromDefaultIntSize(p.SessionData().DefaultIntSize) - } - } - stmt.Defs = append(stmt.Defs, def) - } - - for _, raw := range in.Indexes { - var elems tree.IndexElemList - for _, col := range raw.Columns { - elems = append(elems, tree.IndexElem{Column: safeName(col.Column)}) - } - - idxName := safeName(raw.Info.Name) - // In MySQL, all PRIMARY KEY have the constraint name PRIMARY. - // To match PostgreSQL, we want to rename this to the appropriate form. - if raw.Info.Primary { - idxName = tree.Name(tabledesc.PrimaryKeyIndexName(name)) - } - // TODO(wenyihu6): support importing mysql CREATE TABLE statement with not - // visible index. - idx := tree.IndexTableDef{Name: idxName, Columns: elems} - if raw.Info.Primary || raw.Info.Unique { - stmt.Defs = append(stmt.Defs, &tree.UniqueConstraintTableDef{IndexTableDef: idx, PrimaryKey: raw.Info.Primary}) - } else { - stmt.Defs = append(stmt.Defs, &idx) - } - } - - for _, c := range checks { - stmt.Defs = append(stmt.Defs, c) - } - - var semaCtxPtr *tree.SemaContext - // p is nil in some tests. - if p != nil && p.SemaCtx() != nil { - semaCtxPtr = p.SemaCtx() - } else { - semaCtx := tree.MakeSemaContext(nil /* resolver */) - semaCtxPtr = &semaCtx - } - - // Bundle imports do not support user defined types, and so we nil out the - // type resolver to protect against unexpected behavior on UDT resolution. - semaCtxPtr = makeSemaCtxWithoutTypeResolver(semaCtxPtr) - desc, err := MakeSimpleTableDescriptor( - ctx, semaCtxPtr, evalCtx.Settings, stmt, parentDB, - publicSchema, id, fks, time.WallTime, - ) - if err != nil { - return nil, nil, err - } - - var fkDefs []delayedFK - for _, raw := range in.Constraints { - switch i := raw.Details.(type) { - case *mysql.ForeignKeyDefinition: - if !fks.allowed { - return nil, nil, errors.Errorf("foreign keys not supported: %s", mysql.String(raw)) - } - if fks.skip { - continue - } - fromCols := i.Source - toTable := tree.MakeTableNameWithSchema( - safeName(i.ReferencedTable.Qualifier), - catconstants.PublicSchemaName, - safeName(i.ReferencedTable.Name), - ) - toCols := i.ReferencedColumns - d := &tree.ForeignKeyConstraintTableDef{ - Name: tree.Name(lexbase.NormalizeName(raw.Name)), - FromCols: toNameList(fromCols), - ToCols: toNameList(toCols), - } - - if i.OnDelete != mysql.NoAction { - d.Actions.Delete = mysqlActionToCockroach(i.OnDelete) - } - if i.OnUpdate != mysql.NoAction { - d.Actions.Update = mysqlActionToCockroach(i.OnUpdate) - } - - d.Table = toTable - fkDefs = append(fkDefs, delayedFK{ - db: parentDB, - sc: schemadesc.GetPublicSchema(), - tbl: desc, - def: d, - }) - } - } - fks.resolver.tableNameToDesc[desc.Name] = desc - if seqDesc != nil { - return []*tabledesc.Mutable{seqDesc, desc}, fkDefs, nil - } - return []*tabledesc.Mutable{desc}, fkDefs, nil -} - -func mysqlActionToCockroach(action mysql.ReferenceAction) tree.ReferenceAction { - switch action { - case mysql.Restrict: - return tree.Restrict - case mysql.Cascade: - return tree.Cascade - case mysql.SetNull: - return tree.SetNull - case mysql.SetDefault: - return tree.SetDefault - } - return tree.NoAction -} - -type delayedFK struct { - db catalog.DatabaseDescriptor - sc catalog.SchemaDescriptor - tbl *tabledesc.Mutable - def *tree.ForeignKeyConstraintTableDef -} - -func addDelayedFKs( - ctx context.Context, defs []delayedFK, resolver fkResolver, evalCtx *eval.Context, -) error { - for _, def := range defs { - backrefs := map[descpb.ID]*tabledesc.Mutable{} - if err := sql.ResolveFK( - ctx, nil, &resolver, def.db, def.sc, def.tbl, def.def, - backrefs, sql.NewTable, - tree.ValidationDefault, evalCtx, - ); err != nil { - return err - } - if err := fixDescriptorFKState(def.tbl); err != nil { - return err - } - version := evalCtx.Settings.Version.ActiveVersion(ctx) - if err := def.tbl.AllocateIDs(ctx, version); err != nil { - return err - } - } - return nil -} - -func toNameList(cols mysql.Columns) tree.NameList { - res := make([]tree.Name, len(cols)) - for i := range cols { - res[i] = safeName(cols[i]) - } - return res -} - -// mysqlColToCockroach attempts to convert a parsed MySQL column definition to a -// Cockroach column definition, mapping the mysql type to its closest Cockroach -// counterpart (or returning an error if it is unable to do so). -// To the extent possible, parameters such as length or precision are preseved -// even if they have only cosmetic (i.e. when viewing schemas) effects compared -// to their behavior in MySQL. -func mysqlColToCockroach( - name string, col mysql.ColumnType, checks map[string]*tree.CheckConstraintTableDef, -) (*tree.ColumnTableDef, error) { - def := &tree.ColumnTableDef{Name: tree.Name(name)} - - var length, scale int - - if col.Length != nil { - num, err := strconv.Atoi(string(col.Length.Val)) - if err != nil { - return nil, errors.Wrapf(err, "could not parse length for column %q", name) - } - length = num - } - - if col.Scale != nil { - num, err := strconv.Atoi(string(col.Scale.Val)) - if err != nil { - return nil, errors.Wrapf(err, "could not parse scale for column %q", name) - } - scale = num - } - - switch typ := col.SQLType(); typ { - - case mysqltypes.Char: - def.Type = types.MakeChar(int32(length)) - case mysqltypes.VarChar: - def.Type = types.MakeVarChar(int32(length)) - case mysqltypes.Text: - def.Type = types.MakeString(int32(length)) - - case mysqltypes.Blob: - def.Type = types.Bytes - case mysqltypes.VarBinary: - def.Type = types.Bytes - case mysqltypes.Binary: - def.Type = types.Bytes - - case mysqltypes.Int8: - def.Type = types.Int2 - case mysqltypes.Uint8: - def.Type = types.Int2 - case mysqltypes.Int16: - def.Type = types.Int2 - case mysqltypes.Uint16: - def.Type = types.Int4 - case mysqltypes.Int24: - def.Type = types.Int4 - case mysqltypes.Uint24: - def.Type = types.Int4 - case mysqltypes.Int32: - def.Type = types.Int4 - case mysqltypes.Uint32: - def.Type = types.Int - case mysqltypes.Int64: - def.Type = types.Int - case mysqltypes.Uint64: - def.Type = types.Int - - case mysqltypes.Float32: - def.Type = types.Float4 - case mysqltypes.Float64: - def.Type = types.Float - - case mysqltypes.Decimal: - def.Type = types.MakeDecimal(int32(length), int32(scale)) - - case mysqltypes.Date: - def.Type = types.Date - if col.Default != nil { - if lit, ok := col.Default.(*mysql.Literal); ok && bytes.Equal(lit.Val, []byte(zeroDate)) { - col.Default = nil - } - } - case mysqltypes.Time: - def.Type = types.Time - case mysqltypes.Timestamp: - def.Type = types.TimestampTZ - if col.Default != nil { - if lit, ok := col.Default.(*mysql.Literal); ok && bytes.Equal(lit.Val, []byte(zeroTime)) { - col.Default = nil - } - } - case mysqltypes.Datetime: - def.Type = types.TimestampTZ - if col.Default != nil { - if lit, ok := col.Default.(*mysql.Literal); ok && bytes.Equal(lit.Val, []byte(zeroTime)) { - col.Default = nil - } - } - case mysqltypes.Year: - def.Type = types.Int2 - - case mysqltypes.Enum: - def.Type = types.String - - expr, err := parser.ParseExpr(fmt.Sprintf("%s in (%s)", name, strings.Join(col.EnumValues, ","))) - if err != nil { - return nil, err - } - checks[name] = &tree.CheckConstraintTableDef{ - Name: tree.Name(fmt.Sprintf("imported_from_enum_%s", name)), - Expr: expr, - } - - case mysqltypes.TypeJSON: - def.Type = types.Jsonb - - case mysqltypes.Set: - return nil, errors.WithHint( - unimplemented.NewWithIssue(32560, "cannot import SET columns at this time"), - "try converting the column to a 64-bit integer before import") - case mysqltypes.Geometry: - return nil, unimplemented.NewWithIssue(32559, "cannot import GEOMETRY columns at this time") - case mysqltypes.Bit: - return nil, errors.WithHint( - unimplemented.NewWithIssue(32561, "cannot import BIT columns at this time"), - "try converting the column to a 64-bit integer before import") - default: - return nil, unimplemented.Newf(fmt.Sprintf("import.mysqlcoltype.%s", typ), - "unsupported mysql type %q", col.Type) - } - - if col.NotNull { - def.Nullable.Nullability = tree.NotNull - } else { - def.Nullable.Nullability = tree.Null - } - - if col.Default != nil { - if _, ok := col.Default.(*mysql.NullVal); !ok { - if literal, ok := col.Default.(*mysql.Literal); ok && literal.Type == mysql.StrVal { - // mysql.String(col.Default) returns a quoted string for string - // literals. We should use the literal's Val instead. - def.DefaultExpr.Expr = tree.NewStrVal(string(literal.Val)) - } else { - exprString := mysql.String(col.Default) - expr, err := parser.ParseExpr(exprString) - if err != nil { - // There is currently no way to wrap an error with an unimplemented - // error. - // nolint:errwrap - return nil, errors.Wrapf( - unimplemented.Newf("import.mysql.default", "unsupported default expression"), - "error parsing %q for column %q: %v", - exprString, - name, - err, - ) - } - def.DefaultExpr.Expr = expr - } - } - } - return def, nil -} diff --git a/pkg/sql/importer/read_import_mysqlout.go b/pkg/sql/importer/read_import_mysqlout.go index efc05a2c2d00..e6e2012092f6 100644 --- a/pkg/sql/importer/read_import_mysqlout.go +++ b/pkg/sql/importer/read_import_mysqlout.go @@ -20,6 +20,7 @@ import ( "github.com/cockroachdb/cockroach/pkg/sql/row" "github.com/cockroachdb/cockroach/pkg/sql/sem/eval" "github.com/cockroachdb/cockroach/pkg/sql/sem/tree" + "github.com/cockroachdb/cockroach/pkg/sql/types" "github.com/cockroachdb/errors" ) @@ -365,3 +366,17 @@ func (d *mysqloutfileReader) readFile( return runParallelImport(ctx, d.importCtx, fileCtx, producer, consumer) } + +func mysqlStrToDatum(evalCtx *eval.Context, s string, desired *types.T) (tree.Datum, error) { + switch desired.Family() { + case types.BytesFamily: + // mysql emits raw byte strings that do not use the same escaping as our + // tree.ParseDBytes function expects, and the difference between + // tree.ParseAndRequireString and mysqlStrToDatum is whether or not it + // attempts to parse bytes. + return tree.NewDBytes(tree.DBytes(s)), nil + default: + res, _, err := tree.ParseAndRequireString(desired, s, evalCtx) + return res, err + } +} diff --git a/pkg/sql/importer/read_import_pgcopy.go b/pkg/sql/importer/read_import_pgcopy.go index f90fd79daa0e..855b8ec78fb9 100644 --- a/pkg/sql/importer/read_import_pgcopy.go +++ b/pkg/sql/importer/read_import_pgcopy.go @@ -23,11 +23,11 @@ import ( "github.com/cockroachdb/cockroach/pkg/sql/rowenc" "github.com/cockroachdb/cockroach/pkg/sql/sem/eval" "github.com/cockroachdb/cockroach/pkg/sql/sem/tree" + "github.com/cockroachdb/cockroach/pkg/util/humanizeutil" "github.com/cockroachdb/errors" ) -// defaultScanBuffer is the default max row size of the PGCOPY and PGDUMP -// scanner. +// defaultScanBuffer is the default max row size of the PGCOPY. const defaultScanBuffer = 1024 * 1024 * 4 type pgCopyReader struct { @@ -372,3 +372,11 @@ func (d *pgCopyReader) readFile( return runParallelImport(ctx, d.importCtx, fileCtx, producer, consumer) } + +func wrapWithLineTooLongHint(err error) error { + return errors.WithHintf( + err, + "use `max_row_size` to increase the maximum line limit (default: %s).", + humanizeutil.IBytes(defaultScanBuffer), + ) +} diff --git a/pkg/sql/importer/read_import_pgdump.go b/pkg/sql/importer/read_import_pgdump.go deleted file mode 100644 index adff5c9e583c..000000000000 --- a/pkg/sql/importer/read_import_pgdump.go +++ /dev/null @@ -1,1448 +0,0 @@ -// Copyright 2018 The Cockroach Authors. -// -// Use of this software is governed by the CockroachDB Software License -// included in the /LICENSE file. - -package importer - -import ( - "bufio" - "context" - "fmt" - "io" - "regexp" - "strings" - - "github.com/cockroachdb/cockroach/pkg/cloud" - "github.com/cockroachdb/cockroach/pkg/clusterversion" - "github.com/cockroachdb/cockroach/pkg/kv" - "github.com/cockroachdb/cockroach/pkg/roachpb" - "github.com/cockroachdb/cockroach/pkg/security/username" - "github.com/cockroachdb/cockroach/pkg/sql" - "github.com/cockroachdb/cockroach/pkg/sql/catalog" - "github.com/cockroachdb/cockroach/pkg/sql/catalog/catpb" - "github.com/cockroachdb/cockroach/pkg/sql/catalog/colinfo" - "github.com/cockroachdb/cockroach/pkg/sql/catalog/descidgen" - "github.com/cockroachdb/cockroach/pkg/sql/catalog/descpb" - "github.com/cockroachdb/cockroach/pkg/sql/catalog/descs" - "github.com/cockroachdb/cockroach/pkg/sql/catalog/schemadesc" - "github.com/cockroachdb/cockroach/pkg/sql/catalog/tabledesc" - "github.com/cockroachdb/cockroach/pkg/sql/execinfrapb" - "github.com/cockroachdb/cockroach/pkg/sql/isql" - "github.com/cockroachdb/cockroach/pkg/sql/parser" - "github.com/cockroachdb/cockroach/pkg/sql/pgwire/pgcode" - "github.com/cockroachdb/cockroach/pkg/sql/pgwire/pgerror" - "github.com/cockroachdb/cockroach/pkg/sql/row" - "github.com/cockroachdb/cockroach/pkg/sql/sem/catconstants" - "github.com/cockroachdb/cockroach/pkg/sql/sem/eval" - "github.com/cockroachdb/cockroach/pkg/sql/sem/tree" - "github.com/cockroachdb/cockroach/pkg/sql/sessiondata" - "github.com/cockroachdb/cockroach/pkg/sql/types" - "github.com/cockroachdb/cockroach/pkg/util/errorutil/unimplemented" - "github.com/cockroachdb/cockroach/pkg/util/hlc" - "github.com/cockroachdb/cockroach/pkg/util/humanizeutil" - "github.com/cockroachdb/cockroach/pkg/util/intsets" - "github.com/cockroachdb/errors" - "github.com/lib/pq/oid" -) - -type postgreStream struct { - ctx context.Context - s *bufio.Scanner - copy *postgreStreamCopy - unsupportedStmtLogger *unsupportedStmtLogger -} - -// newPostgreStream returns a struct that can stream statements from an -// io.Reader. -func newPostgreStream( - ctx context.Context, r io.Reader, max int, unsupportedStmtLogger *unsupportedStmtLogger, -) *postgreStream { - s := bufio.NewScanner(r) - s.Buffer(nil, max) - p := &postgreStream{ctx: ctx, s: s, unsupportedStmtLogger: unsupportedStmtLogger} - s.Split(p.split) - return p -} - -func (p *postgreStream) split(data []byte, atEOF bool) (advance int, token []byte, err error) { - if p.copy == nil { - return splitSQLSemicolon(data, atEOF) - } - return bufio.ScanLines(data, atEOF) -} - -// splitSQLSemicolon is a bufio.SplitFunc that splits on SQL semicolon tokens. -func splitSQLSemicolon(data []byte, atEOF bool) (advance int, token []byte, err error) { - if atEOF && len(data) == 0 { - return 0, nil, nil - } - - if pos, ok := parser.SplitFirstStatement(string(data)); ok { - return pos, data[:pos], nil - } - // If we're at EOF, we have a final, non-terminated line. Return it. - if atEOF { - return len(data), data, nil - } - // Request more data. - return 0, nil, nil -} - -// Next returns the next statement. The type of statement can be one of -// tree.Statement, copyData, or errCopyDone. A nil statement and io.EOF are -// returned when there are no more statements. -func (p *postgreStream) Next() (interface{}, error) { - if p.copy != nil { - row, err := p.copy.Next() - if errors.Is(err, errCopyDone) { - p.copy = nil - return errCopyDone, nil - } - return row, err - } - - for p.s.Scan() { - t := p.s.Text() - skipOverComments(t) - - stmts, err := parser.Parse(t) - if err != nil { - // There are some statements that CRDB is unable to parse. If the user has - // indicated that they want to skip these stmts during the IMPORT, then do - // so here. - if p.unsupportedStmtLogger.ignoreUnsupported && errors.HasType(err, (*tree.UnsupportedError)(nil)) { - if unsupportedErr := (*tree.UnsupportedError)(nil); errors.As(err, &unsupportedErr) { - err := p.unsupportedStmtLogger.log(unsupportedErr.FeatureName, true /* isParseError */) - if err != nil { - return nil, err - } - } - continue - } - return nil, wrapErrorWithUnsupportedHint(err) - } - switch len(stmts) { - case 0: - // Got whitespace or comments; try again. - case 1: - // If the statement is COPY ... FROM STDIN, set p.copy so the next call to - // this function will read copy data. We still return this COPY statement - // for this invocation. - if cf, ok := stmts[0].AST.(*tree.CopyFrom); ok && cf.Stdin { - // Set p.copy which reconfigures the scanner's split func. - p.copy = newPostgreStreamCopy(p.s, copyDefaultDelimiter, copyDefaultNull) - - // We expect a single newline character following the COPY statement before - // the copy data starts. - if !p.s.Scan() { - return nil, errors.Errorf("expected empty line") - } - if err := p.s.Err(); err != nil { - return nil, err - } - if len(p.s.Bytes()) != 0 { - return nil, errors.Errorf("expected empty line") - } - } - return stmts[0].AST, nil - default: - return nil, errors.Errorf("unexpected: got %d statements", len(stmts)) - } - } - if err := p.s.Err(); err != nil { - if errors.Is(err, bufio.ErrTooLong) { - err = wrapWithLineTooLongHint( - errors.HandledWithMessage(err, "line too long"), - ) - } - return nil, err - } - return nil, io.EOF -} - -var ignoreComments = regexp.MustCompile(`^\s*(--.*)`) - -func skipOverComments(s string) { - // Look for the first line with no whitespace or comments. - for { - m := ignoreComments.FindStringIndex(s) - if m == nil { - break - } - s = s[m[1]:] - } -} - -type regclassRewriter struct{} - -var _ tree.Visitor = regclassRewriter{} - -func (regclassRewriter) VisitPre(expr tree.Expr) (recurse bool, newExpr tree.Expr) { - switch t := expr.(type) { - case *tree.FuncExpr: - switch t.Func.String() { - case "nextval": - if len(t.Exprs) > 0 { - switch e := t.Exprs[0].(type) { - case *tree.CastExpr: - if typ, ok := tree.GetStaticallyKnownType(e.Type); ok && typ.Oid() == oid.T_regclass { - // tree.Visitor says we should make a copy, but since copyNode is unexported - // and there's no planner here, I think it's safe to directly modify the - // statement here. - t.Exprs[0] = e.Expr - } - } - } - } - } - return true, expr -} - -func (regclassRewriter) VisitPost(expr tree.Expr) tree.Expr { return expr } - -// removeDefaultRegclass removes `::regclass` casts from sequence operations -// (i.e., nextval) in DEFAULT column expressions. -func removeDefaultRegclass(create *tree.CreateTable) { - for _, def := range create.Defs { - switch def := def.(type) { - case *tree.ColumnTableDef: - if def.DefaultExpr.Expr != nil { - def.DefaultExpr.Expr, _ = tree.WalkExpr(regclassRewriter{}, def.DefaultExpr.Expr) - } - } - } -} - -type schemaAndTableName struct { - schema string - table string -} - -func (s *schemaAndTableName) String() string { - var ret string - if s.schema != "" { - ret += s.schema + "." - } - ret += s.table - return ret -} - -type schemaParsingObjects struct { - createSchema map[string]*tree.CreateSchema - createTbl map[schemaAndTableName]*tree.CreateTable - createSeq map[schemaAndTableName]*tree.CreateSequence - tableFKs map[schemaAndTableName][]*tree.ForeignKeyConstraintTableDef -} - -func createPostgresSchemas( - ctx context.Context, - parentID descpb.ID, - schemasToCreate map[string]*tree.CreateSchema, - execCfg *sql.ExecutorConfig, - sessionData *sessiondata.SessionData, -) ([]*schemadesc.Mutable, error) { - createSchema := func( - ctx context.Context, txn descs.Txn, - dbDesc catalog.DatabaseDescriptor, schema *tree.CreateSchema, - ) (*schemadesc.Mutable, error) { - desc, _, err := sql.CreateUserDefinedSchemaDescriptor( - ctx, sessionData, schema, txn, - execCfg.DescIDGenerator, dbDesc, false, /* allocateID */ - ) - if err != nil { - return nil, err - } - - // This is true when the schema exists and we are processing a - // CREATE SCHEMA IF NOT EXISTS statement. - if desc == nil { - return nil, nil - } - - // We didn't allocate an ID above, so we must assign it a mock ID until it - // is assigned an actual ID later in the import. - desc.ID, err = getNextPlaceholderDescID(ctx, execCfg) - if err != nil { - return nil, err - } - desc.SetOffline(tabledesc.OfflineReasonImporting) - return desc, nil - } - var schemaDescs []*schemadesc.Mutable - createSchemaDescs := func( - ctx context.Context, txn descs.Txn, - ) error { - schemaDescs = nil // reset for retries - dbDesc, err := txn.Descriptors().ByIDWithoutLeased(txn.KV()).WithoutNonPublic().Get().Database(ctx, parentID) - if err != nil { - return err - } - for _, schema := range schemasToCreate { - scDesc, err := createSchema(ctx, txn, dbDesc, schema) - if err != nil { - return err - } - if scDesc != nil { - schemaDescs = append(schemaDescs, scDesc) - } - } - return nil - } - if err := execCfg.InternalDB.DescsTxn(ctx, createSchemaDescs); err != nil { - return nil, err - } - return schemaDescs, nil -} - -func createPostgresSequences( - ctx context.Context, - parentID descpb.ID, - createSeq map[schemaAndTableName]*tree.CreateSequence, - fks fkHandler, - walltime int64, - owner username.SQLUsername, - schemaNameToDesc map[string]*schemadesc.Mutable, - execCfg *sql.ExecutorConfig, -) ([]*tabledesc.Mutable, error) { - ret := make([]*tabledesc.Mutable, 0) - for schemaAndTableName, seq := range createSeq { - schema, err := getSchemaByNameFromMap(ctx, schemaAndTableName, schemaNameToDesc, execCfg.Settings.Version) - if err != nil { - return nil, err - } - id, err := getNextPlaceholderDescID(ctx, execCfg) - if err != nil { - return nil, err - } - desc, err := sql.NewSequenceTableDesc( - ctx, - nil, /* planner */ - execCfg.Settings, - schemaAndTableName.table, - seq.Options, - parentID, - schema.GetID(), - id, - hlc.Timestamp{WallTime: walltime}, - catpb.NewBasePrivilegeDescriptor(owner), - tree.PersistencePermanent, - // If this is multi-region, this will get added by WriteDescriptors. - false, /* isMultiRegion */ - ) - if err != nil { - return nil, err - } - fks.resolver.tableNameToDesc[schemaAndTableName.String()] = desc - ret = append(ret, desc) - } - - return ret, nil -} - -func getSchemaByNameFromMap( - ctx context.Context, - schemaAndTableName schemaAndTableName, - schemaNameToDesc map[string]*schemadesc.Mutable, - version clusterversion.Handle, -) (catalog.SchemaDescriptor, error) { - var schema catalog.SchemaDescriptor - var ok bool - if schema, ok = schemaNameToDesc[schemaAndTableName.schema]; !ok { - return nil, errors.Newf("schema %q not found in the schemas created from the pgdump", - schema) - } - return schema, nil -} - -func createPostgresTables( - ctx context.Context, - evalCtx *eval.Context, - p sql.JobExecContext, - createTbl map[schemaAndTableName]*tree.CreateTable, - fks fkHandler, - backrefs map[descpb.ID]*tabledesc.Mutable, - parentDB catalog.DatabaseDescriptor, - walltime int64, - schemaNameToDesc map[string]*schemadesc.Mutable, -) ([]*tabledesc.Mutable, error) { - ret := make([]*tabledesc.Mutable, 0) - for schemaAndTableName, create := range createTbl { - if create == nil { - continue - } - schema, err := getSchemaByNameFromMap(ctx, schemaAndTableName, schemaNameToDesc, evalCtx.Settings.Version) - if err != nil { - return nil, err - } - removeDefaultRegclass(create) - // Bundle imports do not support user defined types, and so we nil out the - // type resolver to protect against unexpected behavior on UDT resolution. - semaCtxPtr := makeSemaCtxWithoutTypeResolver(p.SemaCtx()) - id, err := getNextPlaceholderDescID(ctx, p.ExecCfg()) - if err != nil { - return nil, err - } - desc, err := MakeSimpleTableDescriptor(ctx, semaCtxPtr, p.ExecCfg().Settings, - create, parentDB, schema, id, fks, walltime) - if err != nil { - return nil, err - } - fks.resolver.tableNameToDesc[schemaAndTableName.String()] = desc - backrefs[desc.ID] = desc - ret = append(ret, desc) - } - - return ret, nil -} - -func resolvePostgresFKs( - ctx context.Context, - evalCtx *eval.Context, - parentDB catalog.DatabaseDescriptor, - tableFKs map[schemaAndTableName][]*tree.ForeignKeyConstraintTableDef, - fks fkHandler, - backrefs map[descpb.ID]*tabledesc.Mutable, - schemaNameToDesc map[string]*schemadesc.Mutable, -) error { - for schemaAndTableName, constraints := range tableFKs { - desc := fks.resolver.tableNameToDesc[schemaAndTableName.String()] - if desc == nil { - continue - } - schema, err := getSchemaByNameFromMap(ctx, schemaAndTableName, schemaNameToDesc, evalCtx.Settings.Version) - if err != nil { - return err - } - for _, constraint := range constraints { - if constraint.Table.Schema() == "" { - return errors.Errorf("schema expected to be non-empty when resolving postgres FK %s", - constraint.Name.String()) - } - constraint.Table.ExplicitSchema = true - // Add a dummy catalog name to aid in object resolution. - if constraint.Table.Catalog() == "" { - constraint.Table.ExplicitCatalog = true - constraint.Table.CatalogName = "defaultdb" - } - if err := sql.ResolveFK( - ctx, nil /* txn */, &fks.resolver, - parentDB, schema, desc, - constraint, backrefs, sql.NewTable, - tree.ValidationDefault, evalCtx, - ); err != nil { - return err - } - } - if err := fixDescriptorFKState(desc); err != nil { - return err - } - } - - return nil -} - -// getNextPlaceholderDescID returns a monotonically increasing placeholder ID -// that is used when creating table, sequence and schema descriptors during the -// schema parsing phase of a PGDUMP import. -// We assign these descriptors "fake" IDs because it is early in the IMPORT -// execution and we do not want to blow through GenerateUniqueDescID calls only -// to fail during the verification phase before we actually begin ingesting -// data. Thus, we pessimistically wait till all the verification steps in the -// IMPORT have been completed after which we rewrite the descriptor IDs with -// "real" unique IDs. -func getNextPlaceholderDescID( - ctx context.Context, execCfg *sql.ExecutorConfig, -) (_ descpb.ID, err error) { - if placeholderID == 0 { - idgen := descidgen.NewGenerator(execCfg.Settings, execCfg.Codec, execCfg.DB) - placeholderID, err = idgen.PeekNextUniqueDescID(ctx) - if err != nil { - return descpb.InvalidID, err - } - } - ret := placeholderID - placeholderID++ - return ret, nil -} - -var placeholderID descpb.ID - -// readPostgresCreateTable returns table descriptors for all tables or the -// matching table from SQL statements. -func readPostgresCreateTable( - ctx context.Context, - input io.Reader, - evalCtx *eval.Context, - p sql.JobExecContext, - match string, - parentDB catalog.DatabaseDescriptor, - walltime int64, - fks fkHandler, - max int, - owner username.SQLUsername, - unsupportedStmtLogger *unsupportedStmtLogger, -) ([]*tabledesc.Mutable, []*schemadesc.Mutable, error) { - // Modify the CreateTable stmt with the various index additions. We do this - // instead of creating a full table descriptor first and adding indexes - // later because MakeSimpleTableDescriptor calls the sql package which calls - // AllocateIDs which adds the hidden rowid and default primary key. This means - // we'd have to delete the index and row and modify the column family. This - // is much easier and probably safer too. - schemaObjects := schemaParsingObjects{ - createSchema: make(map[string]*tree.CreateSchema), - createTbl: make(map[schemaAndTableName]*tree.CreateTable), - createSeq: make(map[schemaAndTableName]*tree.CreateSequence), - tableFKs: make(map[schemaAndTableName][]*tree.ForeignKeyConstraintTableDef), - } - ps := newPostgreStream(ctx, input, max, unsupportedStmtLogger) - for { - stmt, err := ps.Next() - if err == io.EOF { - break - } - if err != nil { - return nil, nil, errors.Wrap(err, "postgres parse error") - } - if err := readPostgresStmt(ctx, evalCtx, match, fks, &schemaObjects, stmt, p, - parentDB.GetID(), unsupportedStmtLogger); err != nil { - return nil, nil, err - } - } - - tables := make([]*tabledesc.Mutable, 0, len(schemaObjects.createTbl)) - schemaNameToDesc := make(map[string]*schemadesc.Mutable) - schemaDescs, err := createPostgresSchemas(ctx, parentDB.GetID(), schemaObjects.createSchema, - p.ExecCfg(), p.SessionData()) - if err != nil { - return nil, nil, err - } - - for _, schemaDesc := range schemaDescs { - schemaNameToDesc[schemaDesc.GetName()] = schemaDesc - } - - // The database should already have a public schema so we don't have to create - // it. However, we do have to add it to the naming map for name resolution. - publicSchema, err := getPublicSchemaDescForDatabase(ctx, p.ExecCfg(), parentDB) - if err != nil { - return nil, nil, err - } - schemaNameToDesc[catconstants.PublicSchemaName] = - schemadesc.NewBuilder(publicSchema.SchemaDesc()).BuildExistingMutableSchema() - - // Construct sequence descriptors. - seqs, err := createPostgresSequences( - ctx, - parentDB.GetID(), - schemaObjects.createSeq, - fks, - walltime, - owner, - schemaNameToDesc, - p.ExecCfg(), - ) - if err != nil { - return nil, nil, err - } - tables = append(tables, seqs...) - - // Construct table descriptors. - backrefs := make(map[descpb.ID]*tabledesc.Mutable) - tableDescs, err := createPostgresTables( - ctx, evalCtx, p, schemaObjects.createTbl, fks, backrefs, parentDB, walltime, schemaNameToDesc, - ) - if err != nil { - return nil, nil, err - } - tables = append(tables, tableDescs...) - - // Resolve FKs. - err = resolvePostgresFKs( - ctx, evalCtx, parentDB, schemaObjects.tableFKs, fks, backrefs, schemaNameToDesc, - ) - if err != nil { - return nil, nil, err - } - if match != "" && len(tables) != 1 { - found := make([]string, 0, len(schemaObjects.createTbl)) - for schemaAndTableName := range schemaObjects.createTbl { - found = append(found, schemaAndTableName.String()) - } - return nil, nil, errors.Errorf("table %q not found in file (found tables: %s)", match, - strings.Join(found, ", ")) - } - if len(tables) == 0 { - return nil, nil, errors.Errorf("no table definition found") - } - return tables, schemaDescs, nil -} - -func readPostgresStmt( - ctx context.Context, - evalCtx *eval.Context, - match string, - fks fkHandler, - schemaObjects *schemaParsingObjects, - stmt interface{}, - p sql.JobExecContext, - parentID descpb.ID, - unsupportedStmtLogger *unsupportedStmtLogger, -) error { - ignoreUnsupportedStmts := unsupportedStmtLogger.ignoreUnsupported - switch stmt := stmt.(type) { - case *tree.CreateSchema: - name, err := getSchemaName(&stmt.Schema) - if err != nil { - return err - } - // If a target table is specified we do not want to create any user defined - // schemas. This is because we only allow specifying target table's in the - // public schema. - if match != "" { - break - } - schemaObjects.createSchema[name] = stmt - case *tree.CreateTable: - // If the target table columns have data type INT or INTEGER, they need to - // be updated to conform to the session variable `default_int_size`. - for _, def := range stmt.Defs { - if d, ok := def.(*tree.ColumnTableDef); ok { - if dType, ok := d.Type.(*types.T); ok { - if dType.Equivalent(types.Int) { - d.Type = parser.NakedIntTypeFromDefaultIntSize(p.SessionData().DefaultIntSize) - } - } - } - } - schemaQualifiedName, err := getSchemaAndTableName(&stmt.Table) - if err != nil { - return err - } - isMatch := match == "" || match == schemaQualifiedName.String() - if isMatch { - schemaObjects.createTbl[schemaQualifiedName] = stmt - } else { - schemaObjects.createTbl[schemaQualifiedName] = nil - } - case *tree.CreateIndex: - if stmt.Predicate != nil { - return unimplemented.NewWithIssue(50225, "cannot import a table with partial indexes") - } - schemaQualifiedTableName, err := getSchemaAndTableName(&stmt.Table) - if err != nil { - return err - } - create := schemaObjects.createTbl[schemaQualifiedTableName] - if create == nil { - break - } - var idx tree.TableDef = &tree.IndexTableDef{ - Name: stmt.Name, - Columns: stmt.Columns, - Storing: stmt.Storing, - Type: stmt.Type, - PartitionByIndex: stmt.PartitionByIndex, - StorageParams: stmt.StorageParams, - // Postgres doesn't support NotVisible Index, so NotVisible is not populated here. - } - if stmt.Unique { - idx = &tree.UniqueConstraintTableDef{IndexTableDef: *idx.(*tree.IndexTableDef)} - } - create.Defs = append(create.Defs, idx) - case *tree.AlterSchema: - switch stmt.Cmd { - default: - } - case *tree.AlterTable: - schemaQualifiedTableName, err := getSchemaAndTableName2(stmt.Table) - if err != nil { - return err - } - create := schemaObjects.createTbl[schemaQualifiedTableName] - if create == nil { - break - } - for _, cmd := range stmt.Cmds { - switch cmd := cmd.(type) { - case *tree.AlterTableAddConstraint: - switch con := cmd.ConstraintDef.(type) { - case *tree.ForeignKeyConstraintTableDef: - if !fks.skip { - if con.Table.Schema() == "" { - con.Table.SchemaName = catconstants.PublicSchemaName - } - schemaObjects.tableFKs[schemaQualifiedTableName] = append(schemaObjects.tableFKs[schemaQualifiedTableName], con) - } - default: - create.Defs = append(create.Defs, cmd.ConstraintDef) - } - case *tree.AlterTableSetDefault: - found := false - for i, def := range create.Defs { - def, ok := def.(*tree.ColumnTableDef) - // If it's not a column definition, or the column name doesn't match, - // we're not interested in this column. - if !ok || def.Name != cmd.Column { - continue - } - def.DefaultExpr.Expr = cmd.Default - create.Defs[i] = def - found = true - break - } - if !found { - return colinfo.NewUndefinedColumnError(cmd.Column.String()) - } - case *tree.AlterTableSetVisible: - found := false - for i, def := range create.Defs { - def, ok := def.(*tree.ColumnTableDef) - // If it's not a column definition, or the column name doesn't match, - // we're not interested in this column. - if !ok || def.Name != cmd.Column { - continue - } - def.Hidden = !cmd.Visible - create.Defs[i] = def - found = true - break - } - if !found { - return colinfo.NewUndefinedColumnError(cmd.Column.String()) - } - case *tree.AlterTableAddColumn: - if cmd.IfNotExists { - if ignoreUnsupportedStmts { - err := unsupportedStmtLogger.log(stmt.String(), false /* isParseError */) - if err != nil { - return err - } - continue - } - return wrapErrorWithUnsupportedHint(errors.Errorf("unsupported statement: %s", stmt)) - } - create.Defs = append(create.Defs, cmd.ColumnDef) - case *tree.AlterTableSetNotNull: - found := false - for i, def := range create.Defs { - def, ok := def.(*tree.ColumnTableDef) - // If it's not a column definition, or the column name doesn't match, - // we're not interested in this column. - if !ok || def.Name != cmd.Column { - continue - } - def.Nullable.Nullability = tree.NotNull - create.Defs[i] = def - found = true - break - } - if !found { - return colinfo.NewUndefinedColumnError(cmd.Column.String()) - } - default: - if ignoreUnsupportedStmts { - err := unsupportedStmtLogger.log(stmt.String(), false /* isParseError */) - if err != nil { - return err - } - continue - } - return wrapErrorWithUnsupportedHint(errors.Errorf("unsupported statement: %s", stmt)) - } - } - case *tree.AlterTableOwner: - if ignoreUnsupportedStmts { - return unsupportedStmtLogger.log(stmt.String(), false /* isParseError */) - } - return wrapErrorWithUnsupportedHint(errors.Errorf("unsupported statement: %s", stmt)) - case *tree.AlterTableSetLogged: - // No-op: CockroachDB does not support unlogged tables, tables are logged by default - return nil - case *tree.CreateSequence: - schemaQualifiedTableName, err := getSchemaAndTableName(&stmt.Name) - if err != nil { - return err - } - if match == "" || match == schemaQualifiedTableName.String() { - schemaObjects.createSeq[schemaQualifiedTableName] = stmt - } - case *tree.AlterSequence: - if ignoreUnsupportedStmts { - return unsupportedStmtLogger.log(stmt.String(), false /* isParseError */) - } - return wrapErrorWithUnsupportedHint(errors.Errorf("unsupported %T statement: %s", stmt, stmt)) - // Some SELECT statements mutate schema. Search for those here. - case *tree.Select: - switch sel := stmt.Select.(type) { - case *tree.SelectClause: - for _, selExpr := range sel.Exprs { - switch expr := selExpr.Expr.(type) { - case *tree.FuncExpr: - // Look for function calls that mutate schema (this is actually a thing). - semaCtx := tree.MakeSemaContext(nil /* resolver */) - semaCtx.Properties.Require("pg_dump function arguments", tree.RejectSubqueries) - if _, err := expr.TypeCheck(ctx, &semaCtx, nil /* desired */); err != nil { - // If the expression does not type check, it may be a case of using - // a column that does not exist yet in a setval call (as is the case - // of PGDUMP output from ogr2ogr). We're not interested in setval - // calls during schema reading so it is safe to ignore this for now. - if f := expr.Func.String(); pgerror.GetPGCode(err) == pgcode.UndefinedColumn && f == "setval" { - continue - } - return err - } - ov := expr.ResolvedOverload() - // Search for a SQLFn, which returns a SQL string to execute. - fn, ok := ov.SQLFn.(eval.SQLFnOverload) - if !ok { - err := errors.Errorf("unsupported function call: %s in stmt: %s", - expr.Func.String(), stmt.String()) - if ignoreUnsupportedStmts { - err := unsupportedStmtLogger.log(err.Error(), false /* isParseError */) - if err != nil { - return err - } - continue - } - return wrapErrorWithUnsupportedHint(err) - } - // Attempt to convert all func exprs to datums. - datums := make(tree.Datums, len(expr.Exprs)) - for i, ex := range expr.Exprs { - d, ok := ex.(tree.Datum) - if !ok { - // We got something that wasn't a datum so we can't call the - // overload. Since this is a SQLFn and the user would have - // expected us to execute it, we have to error. - return errors.Errorf("unsupported statement: %s", stmt) - } - datums[i] = d - } - // Now that we have all of the datums, we can execute the overload. - fnSQL, err := fn(ctx, evalCtx, datums) - if err != nil { - return err - } - // We have some sql. Parse and process it. - fnStmts, err := parser.Parse(fnSQL) - if err != nil { - return err - } - for _, fnStmt := range fnStmts { - switch ast := fnStmt.AST.(type) { - case *tree.AlterTable: - if err := readPostgresStmt(ctx, evalCtx, match, fks, schemaObjects, ast, p, - parentID, unsupportedStmtLogger); err != nil { - return err - } - default: - // We only support ALTER statements returned from a SQLFn. - return errors.Errorf("unsupported statement: %s", stmt) - } - } - default: - err := errors.Errorf("unsupported %T SELECT expr: %s", expr, expr) - if ignoreUnsupportedStmts { - err := unsupportedStmtLogger.log(err.Error(), false /* isParseError */) - if err != nil { - return err - } - continue - } - return wrapErrorWithUnsupportedHint(err) - } - } - default: - err := errors.Errorf("unsupported %T SELECT %s", sel, sel) - if ignoreUnsupportedStmts { - err := unsupportedStmtLogger.log(err.Error(), false /* isParseError */) - if err != nil { - return err - } - return nil - } - return wrapErrorWithUnsupportedHint(err) - } - case *tree.DropTable: - names := stmt.Names - - // If we find a table with the same name in the target DB we are importing - // into and same public schema, then we throw an error telling the user to - // drop the conflicting existing table to proceed. - // Otherwise, we silently ignore the drop statement and continue with the import. - for _, name := range names { - tableName := name.ToUnresolvedObjectName().String() - if err := sql.DescsTxn(ctx, p.ExecCfg(), func(ctx context.Context, txn isql.Txn, col *descs.Collection) error { - dbDesc, err := col.ByIDWithoutLeased(txn.KV()).Get().Database(ctx, parentID) - if err != nil { - return err - } - err = descs.CheckObjectNameCollision( - ctx, - col, - txn.KV(), - parentID, - dbDesc.GetSchemaID(catconstants.PublicSchemaName), - tree.NewUnqualifiedTableName(tree.Name(tableName)), - ) - if err != nil { - return errors.Wrapf(err, `drop table "%s" and then retry the import`, tableName) - } - return nil - }); err != nil { - return err - } - } - case *tree.BeginTransaction, *tree.CommitTransaction: - // Ignore transaction statements as they have no meaning during an IMPORT. - case *tree.Insert, *tree.CopyFrom, *tree.Delete, copyData: - // handled during the data ingestion pass. - case *tree.CreateExtension, *tree.CommentOnDatabase, *tree.CommentOnTable, - *tree.CommentOnIndex, *tree.CommentOnConstraint, *tree.CommentOnColumn, *tree.SetVar, *tree.Analyze, - *tree.CommentOnSchema: - // These are the statements that can be parsed by CRDB but are not - // supported, or are not required to be processed, during an IMPORT. - // - ignore txns. - // - ignore SETs and DMLs. - // - ANALYZE is syntactic sugar for CreateStatistics. It can be ignored - // because the auto stats stuff will pick up the changes and run if needed. - if ignoreUnsupportedStmts { - return unsupportedStmtLogger.log(fmt.Sprintf("%s", stmt), false /* isParseError */) - } - return wrapErrorWithUnsupportedHint(errors.Errorf("unsupported %T statement: %s", stmt, stmt)) - case *tree.CreateType: - return errors.New("IMPORT PGDUMP does not support user defined types; please" + - " remove all CREATE TYPE statements and their usages from the dump file") - case error: - if !errors.Is(stmt, errCopyDone) { - return stmt - } - default: - if ignoreUnsupportedStmts { - return unsupportedStmtLogger.log(fmt.Sprintf("%s", stmt), false /* isParseError */) - } - return wrapErrorWithUnsupportedHint(errors.Errorf("unsupported %T statement: %s", stmt, stmt)) - } - return nil -} - -func getSchemaName(sc *tree.ObjectNamePrefix) (string, error) { - if sc.ExplicitCatalog { - return "", unimplemented.Newf("import into database specified in dump file", - "explicit catalog schemas unsupported: %s", sc.CatalogName.String()+sc.SchemaName.String()) - } - return sc.SchemaName.String(), nil -} - -func getSchemaAndTableName(tn *tree.TableName) (schemaAndTableName, error) { - var ret schemaAndTableName - ret.schema = catconstants.PublicSchemaName - if tn.Schema() != "" { - ret.schema = tn.Schema() - } - ret.table = tn.Table() - return ret, nil -} - -// getTableName variant for UnresolvedObjectName. -func getSchemaAndTableName2(u *tree.UnresolvedObjectName) (schemaAndTableName, error) { - var ret schemaAndTableName - ret.schema = catconstants.PublicSchemaName - if u.NumParts >= 2 && u.Parts[1] != "" { - ret.schema = u.Parts[1] - } - ret.table = u.Parts[0] - return ret, nil -} - -type pgDumpReader struct { - tableDescs map[string]catalog.TableDescriptor - tables map[string]*row.DatumRowConverter - descs map[string]*execinfrapb.ReadImportDataSpec_ImportTable - kvCh chan row.KVBatch - opts roachpb.PgDumpOptions - walltime int64 - colMap map[*row.DatumRowConverter](map[string]int) - jobID int64 - unsupportedStmtLogger *unsupportedStmtLogger - evalCtx *eval.Context -} - -var _ inputConverter = &pgDumpReader{} - -// newPgDumpReader creates a new inputConverter for pg_dump files. -func newPgDumpReader( - ctx context.Context, - semaCtx *tree.SemaContext, - jobID int64, - kvCh chan row.KVBatch, - opts roachpb.PgDumpOptions, - walltime int64, - descs map[string]*execinfrapb.ReadImportDataSpec_ImportTable, - evalCtx *eval.Context, - db *kv.DB, -) (*pgDumpReader, error) { - tableDescs := make(map[string]catalog.TableDescriptor, len(descs)) - converters := make(map[string]*row.DatumRowConverter, len(descs)) - colMap := make(map[*row.DatumRowConverter](map[string]int)) - for name, table := range descs { - if table.Desc.IsTable() { - tableDesc := tabledesc.NewBuilder(table.Desc).BuildImmutableTable() - colSubMap := make(map[string]int, len(table.TargetCols)) - targetCols := make(tree.NameList, len(table.TargetCols)) - for i, colName := range table.TargetCols { - targetCols[i] = tree.Name(colName) - } - for i, col := range tableDesc.VisibleColumns() { - colSubMap[col.GetName()] = i - } - conv, err := row.NewDatumRowConverter( - ctx, semaCtx, tableDesc, targetCols, evalCtx, kvCh, - nil /* seqChunkProvider */, nil /* metrics */, db, - ) - if err != nil { - return nil, err - } - converters[name] = conv - colMap[conv] = colSubMap - tableDescs[name] = tableDesc - } else if table.Desc.IsSequence() { - seqDesc := tabledesc.NewBuilder(table.Desc).BuildImmutableTable() - tableDescs[name] = seqDesc - } - } - return &pgDumpReader{ - kvCh: kvCh, - tableDescs: tableDescs, - tables: converters, - descs: descs, - opts: opts, - walltime: walltime, - colMap: colMap, - jobID: jobID, - evalCtx: evalCtx, - }, nil -} - -func (m *pgDumpReader) readFiles( - ctx context.Context, - dataFiles map[int32]string, - resumePos map[int32]int64, - format roachpb.IOFileFormat, - makeExternalStorage cloud.ExternalStorageFactory, - user username.SQLUsername, -) error { - // Setup logger to handle unsupported DML statements seen in the PGDUMP file. - m.unsupportedStmtLogger = makeUnsupportedStmtLogger(ctx, user, - m.jobID, format.PgDump.IgnoreUnsupported, format.PgDump.IgnoreUnsupportedLog, dataIngestion, - makeExternalStorage) - - err := readInputFiles(ctx, dataFiles, resumePos, format, m.readFile, makeExternalStorage, user) - if err != nil { - return err - } - - return m.unsupportedStmtLogger.flush() -} - -func wrapErrorWithUnsupportedHint(err error) error { - return errors.WithHintf(err, - "To ignore unsupported statements and log them for review post IMPORT, see the options listed"+ - " in the docs: %s", "https://www.cockroachlabs.com/docs/stable/import.html#import-options") -} - -func (m *pgDumpReader) readFile( - ctx context.Context, input *fileReader, inputIdx int32, resumePos int64, rejected chan string, -) error { - tableNameToRowsProcessed := make(map[string]int64) - var inserts, count int64 - rowLimit := m.opts.RowLimit - ps := newPostgreStream(ctx, input, int(m.opts.MaxRowSize), m.unsupportedStmtLogger) - semaCtx := tree.MakeSemaContext(nil /* resolver */) - for _, conv := range m.tables { - conv.KvBatch.Source = inputIdx - conv.FractionFn = input.ReadFraction - conv.CompletedRowFn = func() int64 { - return count - } - } - - for { - stmt, err := ps.Next() - if err == io.EOF { - break - } - if err != nil { - return errors.Wrap(err, "postgres parse error") - } - switch i := stmt.(type) { - case *tree.Insert: - n, isTableName := i.Table.(*tree.TableName) - if !isTableName { - // We might have the table name wrapped in an AliasedTableExpr. - a, isAliasedTableExpr := i.Table.(*tree.AliasedTableExpr) - if !isAliasedTableExpr { - return errors.Errorf("unexpected: %T", i.Table) - } - n, isTableName = a.Expr.(*tree.TableName) - if !isTableName { - return errors.Errorf("unexpected: %T", a.Expr) - } - } - name, err := getSchemaAndTableName(n) - if err != nil { - return errors.Wrapf(err, "%s", i) - } - conv, ok := m.tables[name.String()] - if !ok { - // not importing this table. - continue - } - if ok && conv == nil { - return errors.Errorf("missing schema info for requested table %q", name) - } - expectedColLen := len(i.Columns) - if expectedColLen == 0 { - // Case where the targeted columns are not specified in the PGDUMP file, but in - // the command "IMPORT INTO table (targetCols) PGDUMP DATA (filename)" - expectedColLen = len(conv.VisibleCols) - } - timestamp := timestampAfterEpoch(m.walltime) - values, ok := i.Rows.Select.(*tree.ValuesClause) - if !ok { - if m.unsupportedStmtLogger.ignoreUnsupported { - logLine := fmt.Sprintf("%s: unsupported by IMPORT\n", - i.Rows.Select.String()) - err := m.unsupportedStmtLogger.log(logLine, false /* isParseError */) - if err != nil { - return err - } - continue - } - return wrapErrorWithUnsupportedHint(errors.Errorf("unsupported: %s", i.Rows.Select)) - } - inserts++ - startingCount := count - var targetColMapIdx []int - if len(i.Columns) != 0 { - targetColMapIdx = make([]int, len(i.Columns)) - conv.TargetColOrds = intsets.Fast{} - for j := range i.Columns { - colName := string(i.Columns[j]) - idx, ok := m.colMap[conv][colName] - if !ok { - return errors.Newf("targeted column %q not found", colName) - } - conv.TargetColOrds.Add(idx) - targetColMapIdx[j] = idx - } - // For any missing columns, fill those to NULL. - // These will get filled in with the correct default / computed expression - // provided conv.IsTargetCol is not set for the given column index. - for idx := range conv.VisibleCols { - if !conv.TargetColOrds.Contains(idx) { - conv.Datums[idx] = tree.DNull - } - } - } - for _, tuple := range values.Rows { - count++ - tableNameToRowsProcessed[name.String()]++ - if count <= resumePos { - continue - } - if rowLimit != 0 && tableNameToRowsProcessed[name.String()] > rowLimit { - break - } - if got := len(tuple); expectedColLen != got { - return errors.Errorf("expected %d values, got %d: %v", expectedColLen, got, tuple) - } - for j, expr := range tuple { - idx := j - if len(i.Columns) != 0 { - idx = targetColMapIdx[j] - } - typed, err := expr.TypeCheck(ctx, &semaCtx, conv.VisibleColTypes[idx]) - if err != nil { - return errors.Wrapf(err, "reading row %d (%d in insert statement %d)", - count, count-startingCount, inserts) - } - converted, err := eval.Expr(ctx, conv.EvalCtx, typed) - if err != nil { - return errors.Wrapf(err, "reading row %d (%d in insert statement %d)", - count, count-startingCount, inserts) - } - conv.Datums[idx] = converted - } - if err := conv.Row(ctx, inputIdx, count+int64(timestamp)); err != nil { - return err - } - } - case *tree.CopyFrom: - if !i.Stdin { - return errors.New("expected STDIN option on COPY FROM") - } - name, err := getSchemaAndTableName(&i.Table) - if err != nil { - return errors.Wrapf(err, "%s", i) - } - conv, importing := m.tables[name.String()] - if importing && conv == nil { - return errors.Errorf("missing schema info for requested table %q", name) - } - var targetColMapIdx []int - if conv != nil { - targetColMapIdx = make([]int, len(i.Columns)) - conv.TargetColOrds = intsets.Fast{} - for j := range i.Columns { - colName := string(i.Columns[j]) - idx, ok := m.colMap[conv][colName] - if !ok { - return errors.Newf("targeted column %q not found", colName) - } - conv.TargetColOrds.Add(idx) - targetColMapIdx[j] = idx - } - // For any missing columns, fill those to NULL. - // These will get filled in with the correct default / computed - // expression if there are any for these columns. - for idx := range conv.VisibleCols { - if !conv.TargetColOrds.Contains(idx) { - conv.Datums[idx] = tree.DNull - } - } - } - for { - row, err := ps.Next() - // We expect an explicit copyDone here. io.EOF is unexpected. - if err == io.EOF { - return makeRowErr(count, pgcode.ProtocolViolation, - "unexpected EOF") - } - if row == errCopyDone { - break - } - count++ - tableNameToRowsProcessed[name.String()]++ - if err != nil { - return wrapRowErr(err, count, pgcode.Uncategorized, "") - } - if !importing { - continue - } - if count <= resumePos { - continue - } - switch row := row.(type) { - case copyData: - if expected, got := conv.TargetColOrds.Len(), len(row); expected != got { - return makeRowErr(count, pgcode.Syntax, - "expected %d values, got %d", expected, got) - } - if rowLimit != 0 && tableNameToRowsProcessed[name.String()] > rowLimit { - break - } - for i, s := range row { - idx := targetColMapIdx[i] - if s == nil { - conv.Datums[idx] = tree.DNull - } else { - // We use ParseAndRequireString instead of ParseDatumStringAs - // because postgres dumps arrays in COPY statements using their - // internal string representation. - conv.Datums[idx], _, err = tree.ParseAndRequireString(conv.VisibleColTypes[idx], *s, conv.EvalCtx) - if err != nil { - col := conv.VisibleCols[idx] - return wrapRowErr(err, count, pgcode.Syntax, - "parse %q as %s", col.GetName(), col.GetType().SQLString()) - } - } - } - if err := conv.Row(ctx, inputIdx, count); err != nil { - return err - } - default: - return makeRowErr(count, pgcode.Uncategorized, - "unexpected: %v", row) - } - } - case *tree.Select: - // Look for something of the form "SELECT pg_catalog.setval(...)". Any error - // or unexpected value silently breaks out of this branch. We are silent - // instead of returning an error because we expect input to be well-formatted - // by pg_dump, and thus if it isn't, we don't try to figure out what to do. - sc, ok := i.Select.(*tree.SelectClause) - if !ok { - err := errors.Errorf("unsupported %T Select: %v", i.Select, i.Select) - if m.unsupportedStmtLogger.ignoreUnsupported { - err := m.unsupportedStmtLogger.log(err.Error(), false /* isParseError */) - if err != nil { - return err - } - continue - } - return wrapErrorWithUnsupportedHint(err) - } - if len(sc.Exprs) != 1 { - err := errors.Errorf("unsupported %d select args: %v", len(sc.Exprs), sc.Exprs) - if m.unsupportedStmtLogger.ignoreUnsupported { - err := m.unsupportedStmtLogger.log(err.Error(), false /* isParseError */) - if err != nil { - return err - } - continue - } - return wrapErrorWithUnsupportedHint(err) - } - fn, ok := sc.Exprs[0].Expr.(*tree.FuncExpr) - if !ok { - err := errors.Errorf("unsupported select arg %T: %v", sc.Exprs[0].Expr, sc.Exprs[0].Expr) - if m.unsupportedStmtLogger.ignoreUnsupported { - err := m.unsupportedStmtLogger.log(err.Error(), false /* isParseError */) - if err != nil { - return err - } - continue - } - return wrapErrorWithUnsupportedHint(err) - } - - switch funcName := strings.ToLower(fn.Func.String()); funcName { - case "search_path", "pg_catalog.set_config": - err := errors.Errorf("unsupported %d fn args in select: %v", len(fn.Exprs), fn.Exprs) - if m.unsupportedStmtLogger.ignoreUnsupported { - err := m.unsupportedStmtLogger.log(err.Error(), false /* isParseError */) - if err != nil { - return err - } - continue - } - return wrapErrorWithUnsupportedHint(err) - case "setval", "pg_catalog.setval": - if args := len(fn.Exprs); args < 2 || args > 3 { - err := errors.Errorf("unsupported %d fn args in select: %v", len(fn.Exprs), fn.Exprs) - if m.unsupportedStmtLogger.ignoreUnsupported { - err := m.unsupportedStmtLogger.log(err.Error(), false /* isParseError */) - if err != nil { - return err - } - continue - } - return err - } - seqname, ok := fn.Exprs[0].(*tree.StrVal) - if !ok { - if nested, nestedOk := fn.Exprs[0].(*tree.FuncExpr); nestedOk && nested.Func.String() == "pg_get_serial_sequence" { - // ogr2ogr dumps set the seq for the PK by a) looking up the seqname - // and then b) running an aggregate on the just-imported data to - // determine the max value. We're not going to do any of that, but - // we can just ignore all of this because we mapped their "serial" - // to our rowid anyway so there is no seq to maintain. - continue - } - return errors.Errorf("unsupported setval %T arg: %v", fn.Exprs[0], fn.Exprs[0]) - } - seqval, ok := fn.Exprs[1].(*tree.NumVal) - if !ok { - err := errors.Errorf("unsupported setval %T arg: %v", fn.Exprs[1], fn.Exprs[1]) - if m.unsupportedStmtLogger.ignoreUnsupported { - err := m.unsupportedStmtLogger.log(err.Error(), false /* isParseError */) - if err != nil { - return err - } - continue - } - return wrapErrorWithUnsupportedHint(err) - } - val, err := seqval.AsInt64() - if err != nil { - return errors.Wrap(err, "unsupported setval arg") - } - isCalled := false - if len(fn.Exprs) == 3 { - called, ok := fn.Exprs[2].(*tree.DBool) - if !ok { - err := errors.Errorf("unsupported setval %T arg: %v", fn.Exprs[2], fn.Exprs[2]) - if m.unsupportedStmtLogger.ignoreUnsupported { - err := m.unsupportedStmtLogger.log(err.Error(), false /* isParseError */) - if err != nil { - return err - } - continue - } - return err - } - isCalled = bool(*called) - } - name, err := parser.ParseTableName(seqname.RawString()) - if err != nil { - break - } - - seqName := name.Parts[0] - if name.Schema() != "" { - seqName = fmt.Sprintf("%s.%s", name.Schema(), name.Object()) - } - seq := m.tableDescs[seqName] - if seq == nil { - break - } - key, val, err := sql.MakeSequenceKeyVal(m.evalCtx.Codec, seq, val, isCalled) - if err != nil { - return wrapRowErr(err, count, pgcode.Uncategorized, "") - } - kv := roachpb.KeyValue{Key: key} - kv.Value.SetInt(val) - m.kvCh <- row.KVBatch{ - Source: inputIdx, KVs: []roachpb.KeyValue{kv}, Progress: input.ReadFraction(), - } - case "addgeometrycolumn": - // handled during schema extraction. - default: - err := errors.Errorf("unsupported function %s in stmt %s", funcName, i.Select.String()) - if m.unsupportedStmtLogger.ignoreUnsupported { - err := m.unsupportedStmtLogger.log(err.Error(), false /* isParseError */) - if err != nil { - return err - } - continue - } - return wrapErrorWithUnsupportedHint(err) - } - case *tree.CreateExtension, *tree.CommentOnDatabase, *tree.CommentOnTable, - *tree.CommentOnIndex, *tree.CommentOnConstraint, *tree.CommentOnColumn, *tree.AlterSequence, - *tree.CommentOnSchema: - // handled during schema extraction. - case *tree.SetVar, *tree.BeginTransaction, *tree.CommitTransaction, *tree.Analyze: - // handled during schema extraction. - case *tree.CreateTable, *tree.CreateSchema, *tree.AlterTable, *tree.AlterTableOwner, - *tree.CreateIndex, *tree.CreateSequence, *tree.DropTable: - // handled during schema extraction. - default: - err := errors.Errorf("unsupported %T statement: %v", i, i) - if m.unsupportedStmtLogger.ignoreUnsupported { - err := m.unsupportedStmtLogger.log(err.Error(), false /* isParseError */) - if err != nil { - return err - } - continue - } - return wrapErrorWithUnsupportedHint(err) - } - } - for _, conv := range m.tables { - if err := conv.SendBatch(ctx); err != nil { - return err - } - } - return nil -} - -func wrapWithLineTooLongHint(err error) error { - return errors.WithHintf( - err, - "use `max_row_size` to increase the maximum line limit (default: %s).", - humanizeutil.IBytes(defaultScanBuffer), - ) -} diff --git a/pkg/sql/row/row_converter.go b/pkg/sql/row/row_converter.go index cc09d1732ac9..a592c59cc7c0 100644 --- a/pkg/sql/row/row_converter.go +++ b/pkg/sql/row/row_converter.go @@ -444,6 +444,8 @@ func NewDatumRowConverter( // been identified now (e.g. "IMPORT PGDUMP...") and we want to // throw an error only at the "Row" stage when the targeted columns // have been identified. + // TODO(yuzefovich): can this check be now removed? PGDUMP is + // gone. c.defaultCache[i] = &unsafeErrExpr{ err: errors.Wrapf(err, "default expression %s unsafe for import", defaultExprs[i].String()), }