From 6fa65f5b2c5fb7ec796c103b5e8c8cdfccb8886e Mon Sep 17 00:00:00 2001 From: Khushi Kathuria Date: Tue, 14 Apr 2026 10:54:48 +0530 Subject: [PATCH] impl(bq_driver): Update client library version --- bazel/deps.bzl | 16 +-- bazel/remove_upb_c_rules.patch | 124 ++++++++++++++++++ .../dockerfiles/ubuntu-22.04-full.Dockerfile | 31 ++++- .../ubuntu-22.04-install.Dockerfile | 1 + .../dockerfiles/ubuntu-msan.Dockerfile | 4 +- google/cloud/odbc/BUILD.bazel | 3 +- google/cloud/odbc/CMakeLists.txt | 34 ++--- .../odbc/bq_client_interface/projects.cc | 2 +- .../odbc/bq_client_interface/projects_test.cc | 2 +- .../bq_apis/insert_job_test.cc | 2 +- .../client_library_utils/common_functions.cc | 2 +- 11 files changed, 177 insertions(+), 44 deletions(-) create mode 100644 bazel/remove_upb_c_rules.patch diff --git a/bazel/deps.bzl b/bazel/deps.bzl index 803415adf4..c732cc5956 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -47,24 +47,12 @@ def cpp_bigquery_odbc_development_deps(name = None): http_archive, name = "rules_cc", urls = [ - "https://storage.googleapis.com/cloud-cpp-community-archive/rules_cc/rules_cc-0.0.15.tar.gz", "https://github.com/bazelbuild/rules_cc/releases/download/0.0.15/rules_cc-0.0.15.tar.gz", ], sha256 = "f4aadd8387f381033a9ad0500443a52a0cea5f8ad1ede4369d3c614eb7b2682e", strip_prefix = "rules_cc-0.0.15", ) - # Load Abseil - maybe( - http_archive, - name = "com_google_absl", - urls = [ - "https://github.com/abseil/abseil-cpp/archive/20240722.0.tar.gz", - ], - sha256 = "f50e5ac311a81382da7fa75b97310e4b9006474f9560ac46f54a9967f07d4ae3", - strip_prefix = "abseil-cpp-20240722.0", - ) - def cpp_bigquery_odbc_deps(name = None): """Loads dependencies need to compile the cpp-bigquery-odbc libraries. @@ -92,7 +80,7 @@ def cpp_bigquery_odbc_deps(name = None): http_archive, name = "com_google_cloud_cpp", urls = [ - "https://github.com/googleapis/google-cloud-cpp/archive/refs/tags/v2.47.0.tar.gz", + "https://github.com/googleapis/google-cloud-cpp/archive/f6e2b3105d68fa6aaa82d9f8d556263dddb169a0.tar.gz", ], - strip_prefix = "google-cloud-cpp-2.47.0", + strip_prefix = "google-cloud-cpp-f6e2b3105d68fa6aaa82d9f8d556263dddb169a0", ) diff --git a/bazel/remove_upb_c_rules.patch b/bazel/remove_upb_c_rules.patch new file mode 100644 index 0000000000..4bb73df856 --- /dev/null +++ b/bazel/remove_upb_c_rules.patch @@ -0,0 +1,124 @@ +diff --git google/api/expr/v1alpha1/BUILD.bazel google/api/expr/v1alpha1/BUILD.bazel +index 9bed46809..197e5249c 100644 +--- google/api/expr/v1alpha1/BUILD.bazel ++++ google/api/expr/v1alpha1/BUILD.bazel +@@ -233,32 +233,32 @@ cc_proto_library( + ############################################################################## + # upb + ############################################################################## +-load( +- "@com_google_googleapis_imports//:imports.bzl", +- "upb_c_proto_library", +-) +- +-upb_c_proto_library( +- name = "checked_upb_proto", +- deps = [":checked_proto"], +-) +- +-upb_c_proto_library( +- name = "eval_upb_proto", +- deps = [":eval_proto"], +-) +- +-upb_c_proto_library( +- name = "explain_upb_proto", +- deps = [":explain_proto"], +-) +- +-upb_c_proto_library( +- name = "syntax_upb_proto", +- deps = [":syntax_proto"], +-) +- +-upb_c_proto_library( +- name = "value_upb_proto", +- deps = [":value_proto"], +-) ++#load( ++ #"@com_google_googleapis_imports//:imports.bzl", ++ #"upb_c_proto_library", ++#) ++# ++#upb_c_proto_library( ++ #name = "checked_upb_proto", ++ #deps = [":checked_proto"], ++#) ++# ++#upb_c_proto_library( ++ #name = "eval_upb_proto", ++ #deps = [":eval_proto"], ++#) ++# ++#upb_c_proto_library( ++ #name = "explain_upb_proto", ++ #deps = [":explain_proto"], ++#) ++# ++#upb_c_proto_library( ++ #name = "syntax_upb_proto", ++ #deps = [":syntax_proto"], ++#) ++# ++#upb_c_proto_library( ++ #name = "value_upb_proto", ++ #deps = [":value_proto"], ++#) +diff --git google/rpc/BUILD.bazel google/rpc/BUILD.bazel +index 31fd6457d..c38f00c46 100644 +--- google/rpc/BUILD.bazel ++++ google/rpc/BUILD.bazel +@@ -11,7 +11,7 @@ load( + "php_proto_library", + "py_gapic_assembly_pkg", + "py_proto_library", +- "upb_c_proto_library", ++ #"upb_c_proto_library", + ) + load("@rules_proto//proto:defs.bzl", "proto_library") + +@@ -104,15 +104,15 @@ cc_proto_library( + deps = [":status_proto"], + ) + +-upb_c_proto_library( +- name = "code_upb_proto", +- deps = [":code_proto"], +-) ++#upb_c_proto_library( ++ #name = "code_upb_proto", ++ #deps = [":code_proto"], ++#) + +-upb_c_proto_library( +- name = "status_upb_proto", +- deps = [":status_proto"], +-) ++#upb_c_proto_library( ++ #name = "status_upb_proto", ++ #deps = [":status_proto"], ++#) + + py_proto_library( + name = "code_py_proto", +diff --git repository_rules.bzl repository_rules.bzl +index 2f87ad682..2ab3bd054 100644 +--- repository_rules.bzl ++++ repository_rules.bzl +@@ -224,11 +224,11 @@ def switched_rules_by_language( + # + # upb + # +- rules["upb_c_proto_library"] = _switch( +- upb, +- "@com_google_protobuf//bazel:upb_c_proto_library.bzl", +- "upb_c_proto_library", +- ) ++ #rules["upb_c_proto_library"] = _switch( ++ # upb, ++ # "@com_google_protobuf//bazel:upb_c_proto_library.bzl", ++ # "upb_c_proto_library", ++ #) + + # + # PHP \ No newline at end of file diff --git a/ci/cloudbuild/dockerfiles/ubuntu-22.04-full.Dockerfile b/ci/cloudbuild/dockerfiles/ubuntu-22.04-full.Dockerfile index a8d847d099..715dd2c749 100644 --- a/ci/cloudbuild/dockerfiles/ubuntu-22.04-full.Dockerfile +++ b/ci/cloudbuild/dockerfiles/ubuntu-22.04-full.Dockerfile @@ -87,13 +87,13 @@ RUN pip3 install --require-hashes --no-deps -r /var/tmp/ci/requirements.txt # image smaller (and with fewer layers) WORKDIR /var/tmp/build/abseil-cpp -RUN curl -fsSL https://github.com/abseil/abseil-cpp/archive/20240116.3.tar.gz | \ +RUN curl -fsSL https://github.com/abseil/abseil-cpp/archive/20250512.0.tar.gz | \ tar -xzf - --strip-components=1 && \ cmake \ -DCMAKE_BUILD_TYPE="Release" \ -DABSL_BUILD_TESTING=OFF \ -DABSL_PROPAGATE_CXX_STD=ON \ - -DCMAKE_CXX_STANDARD=17 \ + -DCMAKE_CXX_STANDARD=17 \ -DBUILD_SHARED_LIBS=yes \ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ -S . -B cmake-out -GNinja && \ @@ -156,7 +156,7 @@ RUN curl -fsSL https://github.com/nlohmann/json/archive/v3.11.2.tar.gz | \ cd /var/tmp && rm -fr build WORKDIR /var/tmp/build/protobuf -RUN curl -fsSL https://github.com/protocolbuffers/protobuf/archive/v29.3.tar.gz | \ +RUN curl -fsSL https://github.com/protocolbuffers/protobuf/archive/v31.1.tar.gz | \ tar -xzf - --strip-components=1 && \ cmake \ -DCMAKE_BUILD_TYPE=Release \ @@ -196,7 +196,7 @@ RUN curl -fsSL https://github.com/google/re2/archive/2024-07-02.tar.gz | \ cd /var/tmp && rm -fr build WORKDIR /var/tmp/build/grpc -RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.66.0.tar.gz | \ +RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.71.2.tar.gz | \ tar -xzf - --strip-components=1 && \ cmake \ -DCMAKE_BUILD_TYPE=Release \ @@ -216,6 +216,25 @@ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.66.0.tar.gz | \ ldconfig && \ cd /var/tmp && rm -fr build +RUN curl -fsSL https://github.com/open-telemetry/opentelemetry-cpp/archive/refs/tags/v1.24.0.tar.gz | \ + tar -xzf - --strip-components=1 && \ + cmake \ + -DCMAKE_CXX_STANDARD=17 \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE \ + -DBUILD_SHARED_LIBS=ON \ + -DWITH_EXAMPLES=OFF \ + -DWITH_STL=CXX17 \ + -DBUILD_TESTING=OFF \ + -DOPENTELEMETRY_INSTALL=ON \ + -DOPENTELEMETRY_ABI_VERSION_NO=2 \ + -DWITH_TEST=OFF \ + -GNinja \ + -S . -B cmake-out && \ + cmake --build cmake-out --target install && \ + ldconfig && \ + cd /var/tmp && rm -fr build + # Install ctcache to speed up our clang-tidy build WORKDIR /var/tmp/build RUN curl -fsSL https://github.com/matus-chochlik/ctcache/archive/0ad2e227e8a981a9c1a6060ee6c8ec144bb976c6.tar.gz | \ @@ -233,13 +252,13 @@ RUN curl -fsSL https://github.com/mozilla/sccache/releases/download/v0.5.4/sccac chmod +x /usr/local/bin/sccache WORKDIR /var/tmp/google-cloud-cpp -RUN curl -fsSL https://github.com/googleapis/google-cloud-cpp/archive/refs/tags/v2.47.0.tar.gz | \ +RUN curl -fsSL https://github.com/googleapis/google-cloud-cpp/archive/f6e2b3105d68fa6aaa82d9f8d556263dddb169a0.tar.gz | \ tar -zxf - --strip-components=1 && \ cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DGOOGLE_CLOUD_CPP_ENABLE_CTYPE_CORD_WORKAROUND=ON \ -DBUILD_TESTING=OFF \ - -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ + -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ -DGOOGLE_CLOUD_CPP_ENABLE_EXAMPLES=OFF \ -DGOOGLE_CLOUD_CPP_ENABLE=experimental-bigquery_rest,oauth2,bigquery,resourcemanager,serviceusage \ -S . -B cmake-out -GNinja && \ diff --git a/ci/cloudbuild/dockerfiles/ubuntu-22.04-install.Dockerfile b/ci/cloudbuild/dockerfiles/ubuntu-22.04-install.Dockerfile index b468c5bc7b..05fed3782b 100644 --- a/ci/cloudbuild/dockerfiles/ubuntu-22.04-install.Dockerfile +++ b/ci/cloudbuild/dockerfiles/ubuntu-22.04-install.Dockerfile @@ -173,3 +173,4 @@ RUN echo 'Verifying glibc version...' RUN dpkg -l libc6 RUN if [ $(ldd --version | grep GLIBC | awk '{print $5}') -lt 2.17 ] ; \ then echo 'glibc version is < 2.17: exiting...' ; exit 1 ; fi + diff --git a/ci/cloudbuild/dockerfiles/ubuntu-msan.Dockerfile b/ci/cloudbuild/dockerfiles/ubuntu-msan.Dockerfile index d767ab3d0e..279f6ef565 100644 --- a/ci/cloudbuild/dockerfiles/ubuntu-msan.Dockerfile +++ b/ci/cloudbuild/dockerfiles/ubuntu-msan.Dockerfile @@ -98,7 +98,7 @@ RUN cmake --install build # use `absl::any`, `absl::string_view`, and `absl::variant`. See # [abseil/abseil-cpp#696] for more information. WORKDIR /var/tmp/build/abseil-cpp -RUN curl -fsSL https://github.com/abseil/abseil-cpp/archive/20230802.0.tar.gz | \ +RUN curl -fsSL https://github.com/abseil/abseil-cpp/archive/20250512.0.tar.gz | \ tar -xzf - --strip-components=1 && \ cmake \ -DCMAKE_BUILD_TYPE="Release" \ @@ -209,7 +209,7 @@ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.55.0.tar.gz | \ # Install google-cloud-cpp to get bigquery rest client WORKDIR /var/tmp/google-cloud-cpp -RUN curl -fsSL https://github.com/googleapis/google-cloud-cpp/archive/refs/tags/v2.47.0.tar.gz | \ +RUN curl -fsSL https://github.com/googleapis/google-cloud-cpp/archive/f6e2b3105d68fa6aaa82d9f8d556263dddb169a0.tar.gz | \ tar -zxf - --strip-components=1 && \ cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local \ diff --git a/google/cloud/odbc/BUILD.bazel b/google/cloud/odbc/BUILD.bazel index bb4ecf9312..4fe59cbe5f 100644 --- a/google/cloud/odbc/BUILD.bazel +++ b/google/cloud/odbc/BUILD.bazel @@ -53,7 +53,7 @@ cc_library( "//google/cloud/odbc/bq_client_interface:odbc_bq_client_interface", "//google/cloud/odbc/internal:odbc_internal", "@com_google_absl//absl/base:core_headers", - "@com_google_absl//absl/log", + "@com_google_absl//absl/log:log", "@com_google_absl//absl/log:initialize", "@com_google_absl//absl/log:log_sink", "@com_google_absl//absl/strings", @@ -116,5 +116,6 @@ cc_test( "//google/cloud/odbc/testing:google_cloud_odbc_testing_bq_driver_utils", "//google/cloud/odbc/testing:google_cloud_odbc_testing_utils", "@com_google_googletest//:gtest_main", + "@com_google_absl//absl/log:log", ], ) diff --git a/google/cloud/odbc/CMakeLists.txt b/google/cloud/odbc/CMakeLists.txt index b06babc006..0219d3dfc1 100644 --- a/google/cloud/odbc/CMakeLists.txt +++ b/google/cloud/odbc/CMakeLists.txt @@ -60,23 +60,23 @@ endif () find_package(absl CONFIG REQUIRED) -if (ODBC_UNIT_TESTING) - FetchContent_Declare( - fuzztest - URL "https://github.com/google/fuzztest/archive/refs/tags/2024-10-28.tar.gz" - ) - set(FUZZTEST_USE_EXTERNAL_ABSL - ON - CACHE BOOL "" FORCE) - set(FUZZTEST_USE_EXTERNAL_RE2 - ON - CACHE BOOL "" FORCE) - set(FUZZTEST_USE_EXTERNAL_GTEST - ON - CACHE BOOL "" FORCE) - - FetchContent_MakeAvailable(fuzztest) -endif () +# if (ODBC_UNIT_TESTING) +# FetchContent_Declare( +# fuzztest +# URL "https://github.com/google/fuzztest/archive/refs/tags/2024-10-28.tar.gz" +# ) +# set(FUZZTEST_USE_EXTERNAL_ABSL +# ON +# CACHE BOOL "" FORCE) +# set(FUZZTEST_USE_EXTERNAL_RE2 +# ON +# CACHE BOOL "" FORCE) +# set(FUZZTEST_USE_EXTERNAL_GTEST +# ON +# CACHE BOOL "" FORCE) + +# FetchContent_MakeAvailable(fuzztest) +# endif () # Arrow is not supported on 32-bit systems if (CMAKE_SIZEOF_VOID_P EQUAL 8 AND NOT NO_ARROW) diff --git a/google/cloud/odbc/bq_client_interface/projects.cc b/google/cloud/odbc/bq_client_interface/projects.cc index eb34fe472b..233f8eaf4d 100644 --- a/google/cloud/odbc/bq_client_interface/projects.cc +++ b/google/cloud/odbc/bq_client_interface/projects.cc @@ -16,7 +16,7 @@ #include "google/cloud/odbc/bq_client_interface/datasets.h" #include "google/cloud/odbc/internal/sql_state_constants.h" #include "google/cloud/odbc/internal/status_record_or.h" -#include +#include "google/cloud/resourcemanager/v3/projects.pb.h" #include namespace google::cloud::odbc_bigquery_client_interface { diff --git a/google/cloud/odbc/bq_client_interface/projects_test.cc b/google/cloud/odbc/bq_client_interface/projects_test.cc index 40dec62583..8f0556e474 100644 --- a/google/cloud/odbc/bq_client_interface/projects_test.cc +++ b/google/cloud/odbc/bq_client_interface/projects_test.cc @@ -20,7 +20,7 @@ #include "google/cloud/resourcemanager/v3/mocks/mock_projects_connection.h" #include "google/cloud/resourcemanager/v3/projects_client.h" #include "google/cloud/serviceusage/v1/mocks/mock_service_usage_connection.h" -#include +#include "google/cloud/resourcemanager/v3/projects.pb.h" #include namespace google::cloud::odbc_bigquery_client_interface { diff --git a/google/cloud/odbc/integration_tests/bq_apis/insert_job_test.cc b/google/cloud/odbc/integration_tests/bq_apis/insert_job_test.cc index fb3899d55f..0c1e735741 100644 --- a/google/cloud/odbc/integration_tests/bq_apis/insert_job_test.cc +++ b/google/cloud/odbc/integration_tests/bq_apis/insert_job_test.cc @@ -19,7 +19,7 @@ #include "google/cloud/odbc/testing/utils/env_vars.h" #include "google/cloud/odbc/testing/utils/status_matchers.h" #include "google/cloud/bigquery/v2/minimal/internal/job_client.h" -#include "google/cloud/internal/absl_str_cat_quiet.h" +#include "absl/strings/str_cat.h" #include namespace google::cloud::odbc_integration_tests_apis { diff --git a/google/cloud/odbc/testing/client_library_utils/common_functions.cc b/google/cloud/odbc/testing/client_library_utils/common_functions.cc index 78d8826763..27c3618f7f 100644 --- a/google/cloud/odbc/testing/client_library_utils/common_functions.cc +++ b/google/cloud/odbc/testing/client_library_utils/common_functions.cc @@ -13,7 +13,7 @@ // limitations under the License. #include "google/cloud/bigquery/v2/minimal/internal/job_client.h" -#include "google/cloud/internal/absl_str_cat_quiet.h" +#include "absl/strings/str_cat.h" #include "google/cloud/internal/getenv.h" #include