> ## Documentation Index
> Fetch the complete documentation index at: https://cockroachlabs.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# What's New in v24.3

export const InternalLink = ({version, path = "", children, ...props}) => {
  let detectedVersion = version || "stable";
  if (typeof window !== 'undefined' && !version) {
    const match = window.location.pathname.match(/\/docs\/([^/]+)/);
    if (match) {
      detectedVersion = match[1];
    }
  }
  const normalizedPath = path.startsWith("/") ? path.slice(1) : path;
  return <a href={`/docs/${detectedVersion}/${normalizedPath}`} {...props}>
      {children}
    </a>;
};

export const MarketoEmailForm = ({successMessage = "Thanks!"}) => {
  useEffect(() => {
    function initializeReleaseNotesSignup() {
      if (window.__cockroachReleaseNotesSignupInitialized) {
        if (window.__cockroachReleaseNotesRefresh) {
          window.__cockroachReleaseNotesRefresh();
        }
        return;
      }
      window.__cockroachReleaseNotesSignupInitialized = true;
      const MARKETO_BASE_URL = "https://go.cockroachlabs.com";
      const MARKETO_MUNCHKIN_ID = "350-QIN-827";
      const MARKETO_FORMS_SCRIPT = "https://go.cockroachlabs.com/js/forms2/js/forms2.min.js";
      const RELEASE_NOTES_FORM_ID = 1083;
      const EMAIL_ERROR = "Enter a valid email address.";
      const FORM_LOAD_ERROR = "Unable to load the release notes form. Disable content blockers and try again.";
      const LOCALHOST_ERROR = "Marketo rejects submissions from localhost. Test this form on a deployed preview URL.";
      const SUCCESS_MESSAGE = "Thanks!";
      const WIDGET_SELECTOR = "[data-release-notes-signup]";
      const FORM_MOUNT_ID = "cockroachReleaseNotesFormMount";
      const SUBMIT_FRAME_NAME = "cockroachReleaseNotesSubmitFrame";
      const widgetState = new WeakMap();
      let marketoScriptPromise;
      let marketoFormPromise;
      let activeWidget = null;
      function toSecureMarketoUrl(url) {
        if (typeof url !== "string") {
          return url;
        }
        return url.replace("http://go.cockroachlabs.com", "https://go.cockroachlabs.com");
      }
      function patchMarketoFrameTransport() {
        if (window.__cockroachReleaseNotesFrameTransportPatched || typeof HTMLIFrameElement === "undefined") {
          return;
        }
        const iframeProto = HTMLIFrameElement.prototype;
        const originalSetAttribute = iframeProto.setAttribute;
        iframeProto.setAttribute = function (name, value) {
          if (name === "src") {
            value = toSecureMarketoUrl(value);
          }
          return originalSetAttribute.call(this, name, value);
        };
        const srcDescriptor = Object.getOwnPropertyDescriptor(iframeProto, "src");
        if (srcDescriptor && typeof srcDescriptor.get === "function" && typeof srcDescriptor.set === "function") {
          try {
            Object.defineProperty(iframeProto, "src", {
              configurable: true,
              enumerable: srcDescriptor.enumerable,
              get: function () {
                return srcDescriptor.get.call(this);
              },
              set: function (value) {
                srcDescriptor.set.call(this, toSecureMarketoUrl(value));
              }
            });
          } catch (error) {}
        }
        window.__cockroachReleaseNotesFrameTransportPatched = true;
      }
      function getState(widget) {
        let state = widgetState.get(widget);
        if (!state) {
          state = {
            error: "",
            isSubmitted: false,
            isSubmitting: false,
            successMessage: widget.getAttribute("data-success-message") || SUCCESS_MESSAGE,
            submitTimeoutId: null
          };
          widgetState.set(widget, state);
        }
        return state;
      }
      function getElements(widget) {
        return {
          emailInput: widget.querySelector("[data-release-notes-email]"),
          error: widget.querySelector("[data-release-notes-error]"),
          errorText: widget.querySelector("[data-release-notes-error-text]"),
          submitButton: widget.querySelector("[data-release-notes-submit]"),
          success: widget.querySelector("[data-release-notes-success]"),
          successText: widget.querySelector("[data-release-notes-success-text]")
        };
      }
      function ensureFormMount() {
        let mount = document.getElementById(FORM_MOUNT_ID);
        if (mount) {
          return mount;
        }
        mount = document.createElement("div");
        mount.id = FORM_MOUNT_ID;
        mount.setAttribute("aria-hidden", "true");
        mount.style.display = "none";
        document.body.appendChild(mount);
        return mount;
      }
      function getDomForm(form) {
        const formElement = typeof form.getFormElem === "function" ? form.getFormElem() : null;
        return formElement && formElement[0] ? formElement[0] : formElement;
      }
      function mountMarketoForm(form) {
        const domForm = getDomForm(form);
        if (!domForm || domForm.isConnected) {
          return domForm;
        }
        ensureFormMount().appendChild(domForm);
        return domForm;
      }
      function applyFormValues(form, values) {
        if (typeof form.setValues === "function") {
          form.setValues(values);
          return;
        }
        if (typeof form.vals === "function") {
          form.vals(values);
        }
      }
      function ensureSubmitFrame() {
        let frame = document.querySelector('iframe[name="' + SUBMIT_FRAME_NAME + '"]');
        if (frame) {
          return frame;
        }
        frame = document.createElement("iframe");
        frame.name = SUBMIT_FRAME_NAME;
        frame.setAttribute("aria-hidden", "true");
        frame.tabIndex = -1;
        frame.style.display = "none";
        document.body.appendChild(frame);
        return frame;
      }
      function clearSubmitTimeout(widget) {
        const state = getState(widget);
        if (state.submitTimeoutId) {
          window.clearTimeout(state.submitTimeoutId);
          state.submitTimeoutId = null;
        }
      }
      function forceSecureMarketoFrame() {
        const frame = document.querySelector("#MktoForms2XDIframe");
        if (!frame) {
          return;
        }
        const currentSrc = frame.getAttribute("src") || frame.src;
        if (!currentSrc) {
          return;
        }
        const secureSrc = toSecureMarketoUrl(currentSrc);
        if (secureSrc !== currentSrc) {
          frame.setAttribute("src", secureSrc);
        }
      }
      function ensureSecureMarketoFrame() {
        patchMarketoFrameTransport();
        forceSecureMarketoFrame();
        if (window.__cockroachReleaseNotesFrameObserverInitialized || typeof MutationObserver === "undefined") {
          return;
        }
        const observer = new MutationObserver(function () {
          forceSecureMarketoFrame();
        });
        observer.observe(document.documentElement, {
          childList: true,
          subtree: true,
          attributes: true,
          attributeFilter: ["src"]
        });
        window.__cockroachReleaseNotesFrameObserverInitialized = true;
        window.__cockroachReleaseNotesFrameObserver = observer;
      }
      function render(widget) {
        if (!widget || !document.contains(widget)) {
          return;
        }
        const state = getState(widget);
        const elements = getElements(widget);
        if (elements.submitButton) {
          elements.submitButton.disabled = state.isSubmitting;
        }
        if (elements.emailInput) {
          elements.emailInput.setAttribute("aria-invalid", state.error ? "true" : "false");
        }
        if (elements.error) {
          elements.error.hidden = !state.error;
          elements.error.style.display = state.error ? "block" : "none";
        }
        if (elements.errorText) {
          elements.errorText.textContent = state.error;
        }
        if (elements.success) {
          elements.success.hidden = !state.isSubmitted;
          elements.success.style.display = state.isSubmitted ? "block" : "none";
        }
        if (elements.successText) {
          elements.successText.textContent = state.successMessage || SUCCESS_MESSAGE;
        }
      }
      function hideMarketoForm(form) {
        const formElement = form && typeof form.getFormElem === "function" ? form.getFormElem() : null;
        if (!formElement) {
          return;
        }
        if (typeof formElement.hide === "function") {
          formElement.hide();
          return;
        }
        if (formElement[0] && formElement[0].style) {
          formElement[0].style.display = "none";
          return;
        }
        if (formElement.style) {
          formElement.style.display = "none";
        }
      }
      function isValidEmail(value) {
        return (/^[^\s@]+@[^\s@]+\.[^\s@]+$/).test(value);
      }
      function isFormLoadError(error) {
        return Boolean(error && typeof error === "object" && (error.code === "marketo_load_failed" || error.code === "marketo_not_available" || error.code === "marketo_form_init_failed"));
      }
      function isLocalhost() {
        return window.location.hostname === "localhost" || window.location.hostname === "127.0.0.1";
      }
      function loadMarketoForms() {
        ensureSecureMarketoFrame();
        if (window.MktoForms2) {
          return Promise.resolve(window.MktoForms2);
        }
        if (!marketoScriptPromise) {
          marketoScriptPromise = new Promise(function (resolve, reject) {
            function finalizeLoad() {
              if (window.MktoForms2) {
                forceSecureMarketoFrame();
                resolve(window.MktoForms2);
                return;
              }
              marketoScriptPromise = null;
              const error = new Error("MktoForms2 did not load.");
              error.code = "marketo_not_available";
              reject(error);
            }
            function handleError() {
              marketoScriptPromise = null;
              const error = new Error("Failed to load Marketo forms.");
              error.code = "marketo_load_failed";
              reject(error);
            }
            const existingScript = document.querySelector('script[src="' + MARKETO_FORMS_SCRIPT + '"]');
            if (existingScript) {
              existingScript.addEventListener("load", finalizeLoad, {
                once: true
              });
              existingScript.addEventListener("error", handleError, {
                once: true
              });
              return;
            }
            const script = document.createElement("script");
            script.src = MARKETO_FORMS_SCRIPT;
            script.async = true;
            script.addEventListener("load", finalizeLoad, {
              once: true
            });
            script.addEventListener("error", handleError, {
              once: true
            });
            document.body.appendChild(script);
          });
        }
        return marketoScriptPromise;
      }
      function attachFormCallbacks(form) {
        if (form.__releaseNotesCallbacksAttached) {
          return;
        }
        form.__releaseNotesCallbacksAttached = true;
        form.onSuccess(function () {
          if (!activeWidget || !document.contains(activeWidget)) {
            return false;
          }
          const state = getState(activeWidget);
          clearSubmitTimeout(activeWidget);
          state.isSubmitting = false;
          state.isSubmitted = true;
          state.error = "";
          state.successMessage = activeWidget.getAttribute("data-success-message") || SUCCESS_MESSAGE;
          render(activeWidget);
          return false;
        });
        form.onValidate(function (isValid) {
          if (isValid || !activeWidget || !document.contains(activeWidget)) {
            return;
          }
          const state = getState(activeWidget);
          clearSubmitTimeout(activeWidget);
          state.isSubmitting = false;
          state.error = EMAIL_ERROR;
          render(activeWidget);
        });
      }
      function ensureForm() {
        if (!marketoFormPromise) {
          marketoFormPromise = loadMarketoForms().then(function (MktoForms2) {
            const existingForm = typeof MktoForms2.getForm === "function" ? MktoForms2.getForm(RELEASE_NOTES_FORM_ID) : null;
            if (existingForm) {
              forceSecureMarketoFrame();
              mountMarketoForm(existingForm);
              hideMarketoForm(existingForm);
              attachFormCallbacks(existingForm);
              ensureSubmitFrame();
              return existingForm;
            }
            return new Promise(function (resolve, reject) {
              MktoForms2.loadForm(MARKETO_BASE_URL, MARKETO_MUNCHKIN_ID, RELEASE_NOTES_FORM_ID, function (form) {
                if (!form) {
                  const error = new Error("Marketo form failed to initialize.");
                  error.code = "marketo_form_init_failed";
                  reject(error);
                  return;
                }
                forceSecureMarketoFrame();
                mountMarketoForm(form);
                hideMarketoForm(form);
                attachFormCallbacks(form);
                ensureSubmitFrame();
                resolve(form);
              });
            });
          }).catch(function (error) {
            marketoFormPromise = null;
            throw error;
          });
        }
        return marketoFormPromise;
      }
      function handleEmailInput(target) {
        const widget = target.closest(WIDGET_SELECTOR);
        if (!widget) {
          return;
        }
        const state = getState(widget);
        if (!state.error) {
          return;
        }
        state.error = "";
        render(widget);
      }
      function handleSubmit(button) {
        const widget = button.closest(WIDGET_SELECTOR);
        if (!widget) {
          return;
        }
        const state = getState(widget);
        const elements = getElements(widget);
        if (!elements.emailInput) {
          return;
        }
        const email = elements.emailInput.value.trim();
        if (!email) {
          state.error = EMAIL_ERROR;
          render(widget);
          return;
        }
        state.error = "";
        state.isSubmitted = false;
        state.isSubmitting = true;
        state.successMessage = widget.getAttribute("data-success-message") || SUCCESS_MESSAGE;
        render(widget);
        if (!isValidEmail(email)) {
          state.isSubmitting = false;
          state.error = EMAIL_ERROR;
          render(widget);
          return;
        }
        if (isLocalhost()) {
          state.isSubmitting = false;
          state.error = LOCALHOST_ERROR;
          render(widget);
          return;
        }
        activeWidget = widget;
        ensureForm().then(function (form) {
          const formValues = {
            Email: email,
            Send_me_product_and_feature_updates__c: "TRUE",
            subscriptionProductUpdates: "TRUE",
            optin: "TRUE"
          };
          applyFormValues(form, formValues);
          if (typeof form.validate === "function" && !form.validate()) {
            state.isSubmitting = false;
            state.error = EMAIL_ERROR;
            render(widget);
            return;
          }
          clearSubmitTimeout(widget);
          state.submitTimeoutId = window.setTimeout(function () {
            state.isSubmitting = false;
            state.error = EMAIL_ERROR;
            render(widget);
          }, 10000);
          if (typeof form.submit !== "function") {
            throw new Error("marketo_submit_missing");
          }
          form.submit();
        }).catch(function (error) {
          clearSubmitTimeout(widget);
          state.isSubmitting = false;
          state.error = isFormLoadError(error) ? FORM_LOAD_ERROR : EMAIL_ERROR;
          render(widget);
        });
      }
      document.addEventListener("click", function (event) {
        const submitButton = event.target.closest("[data-release-notes-submit]");
        if (!submitButton) {
          return;
        }
        event.preventDefault();
        handleSubmit(submitButton);
      });
      document.addEventListener("input", function (event) {
        if (!(event.target instanceof HTMLInputElement) || !event.target.matches("[data-release-notes-email]")) {
          return;
        }
        handleEmailInput(event.target);
      });
      window.__cockroachReleaseNotesRefresh = function () {
        ensureSecureMarketoFrame();
        const widgets = document.querySelectorAll(WIDGET_SELECTOR);
        widgets.forEach(render);
        if (widgets.length > 0) {
          ensureForm().catch(function () {});
        }
      };
      window.__cockroachReleaseNotesRefresh();
    }
    initializeReleaseNotesSignup();
  }, []);
  return <div data-release-notes-signup data-success-message={successMessage} className="not-prose my-4 max-w-xl">
      <div className="flex flex-col gap-3 sm:flex-row sm:items-start">
        <input data-release-notes-email type="email" inputMode="email" autoComplete="email" placeholder="Email*" aria-label="Email" className="min-w-0 flex-1 rounded-2xl border border-gray-300 bg-white px-4 py-3 text-sm text-gray-900 shadow-sm outline-none transition focus:border-primary dark:border-gray-700 dark:bg-gray-950 dark:text-white" />
        <button data-release-notes-submit type="button" className="inline-flex items-center justify-center rounded-2xl bg-primary px-5 py-3 text-sm font-semibold text-white transition hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-70">
          Submit
        </button>
      </div>

      <div data-release-notes-error hidden className="mt-3 rounded-2xl border border-red-200 bg-red-50 px-4 py-3 text-sm text-red-700 dark:border-red-900/50 dark:bg-red-950/40 dark:text-red-300">
        <span data-release-notes-error-text />
      </div>

      <div data-release-notes-success hidden className="mt-3 rounded-2xl border border-green-200 bg-green-50 px-4 py-3 text-sm font-medium text-green-800 dark:border-green-900/50 dark:bg-green-950/40 dark:text-green-200">
        <span data-release-notes-success-text>{successMessage}</span>
      </div>
    </div>;
};

export const InlineImage = ({src, alt = "", height = "1.6em"}) => {
  return <img noZoom src={src} alt={alt} style={{
    display: "inline",
    verticalAlign: "start",
    height: height,
    margin: "0"
  }} />;
};

export const SearchLink = ({term, children}) => {
  const handleClick = e => {
    e.preventDefault();
    const searchButton = document.querySelector("button#search-bar-entry");
    if (!searchButton) return;
    searchButton.click();
    requestAnimationFrame(() => {
      const input = document.querySelector("input#search-input");
      if (!input) return;
      const nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, "value")?.set;
      nativeInputValueSetter?.call(input, term);
      input.dispatchEvent(new Event("input", {
        bubbles: true
      }));
      input.dispatchEvent(new KeyboardEvent("keydown", {
        key: "Enter",
        bubbles: true
      }));
    });
  };
  return <a href="#" onClick={handleClick}>
      {children}
    </a>;
};

CockroachDB v24.3 <InternalLink path="release-support-policy#support-types">(LTS)</InternalLink> is a required <InternalLink path="index#major-versions">Regular release</InternalLink>. This page contains a complete list of features and changes in v24.3.

* For a summary of the most significant changes in v24.3, refer to [Feature highlights](#feature-highlights).
* Before <InternalLink version="v24.3" path="upgrade-cockroach-version">upgrading to CockroachDB v24.3</InternalLink>, review the [backward-incompatible changes](#v24-3-0-backward-incompatible-changes), including [key cluster setting changes](#v24-3-0-cluster-settings) and [deprecations](#v24-3-0-deprecations); as well as newly identified [known limtiations](#v24-3-0-known-limitations).
* For details about the support window for this release type, review the <InternalLink path="release-support-policy">Release Support Policy</InternalLink>.
* For details about all supported releases, the release schedule, and licenses, refer to <InternalLink path="index">CockroachDB Releases Overview</InternalLink>.
* After downloading a supported CockroachDB binary, learn how to <InternalLink version="stable" path="install-cockroachdb">install CockroachDB</InternalLink> or <InternalLink version="stable" path="upgrade-cockroach-version">upgrade your cluster</InternalLink>.

Get future release notes emailed to you:

<MarketoEmailForm />

## v24.3.34

Release Date: June 26, 2026

### Downloads

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.34.linux-amd64.tgz">cockroach-v24.3.34.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.34.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.34.linux-amd64.tgz">cockroach-sql-v24.3.34.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.34.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.34.linux-arm64.tgz">cockroach-v24.3.34.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.34.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.34.linux-arm64.tgz">cockroach-sql-v24.3.34.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.34.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.34.darwin-10.9-amd64.tgz">cockroach-v24.3.34.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.34.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.34.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.34.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.34.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.34.darwin-11.0-arm64.tgz">cockroach-v24.3.34.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.34.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.34.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.34.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.34.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.34.windows-6.2-amd64.zip">cockroach-v24.3.34.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.34.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.34.windows-6.2-amd64.zip">cockroach-sql-v24.3.34.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.34.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach:v24.3.34
```

### Security updates

* Security: Fixed an issue where a tenant-scoped client certificate could bypass tenant-scope checks and gain cluster-wide RPC access if its subject distinguished name (DN) matched the configured root or node DN.

### Bug fixes

* Fixed a bug where setting `--advertise-sql-addr` to the same value across multiple SQL instances could cause changefeeds with `execution_locality` filters to fail with "no instances found matching locality filter".
* Fixed a bug that could cause an infinite loop in the optimizer when a query used a `LIMIT` value larger than `4294967295` with a join.

## v24.3.33

Release Date: May 25, 2026

### Downloads

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.33.linux-amd64.tgz">cockroach-v24.3.33.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.33.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.33.linux-amd64.tgz">cockroach-sql-v24.3.33.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.33.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.33.linux-arm64.tgz">cockroach-v24.3.33.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.33.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.33.linux-arm64.tgz">cockroach-sql-v24.3.33.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.33.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.33.darwin-10.9-amd64.tgz">cockroach-v24.3.33.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.33.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.33.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.33.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.33.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.33.darwin-11.0-arm64.tgz">cockroach-v24.3.33.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.33.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.33.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.33.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.33.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.33.windows-6.2-amd64.zip">cockroach-v24.3.33.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.33.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.33.windows-6.2-amd64.zip">cockroach-sql-v24.3.33.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.33.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach:v24.3.33
```

### Bug fixes

* Fixed a bug where transient I/O errors reading from the `AbortSpan` were misidentified as replica corruption, causing the node to crash. These errors are now returned to the caller as regular errors.

## v24.3.32

Release Date: May 1, 2026

### Downloads

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.32.linux-amd64.tgz">cockroach-v24.3.32.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.32.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.32.linux-amd64.tgz">cockroach-sql-v24.3.32.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.32.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.32.linux-arm64.tgz">cockroach-v24.3.32.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.32.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.32.linux-arm64.tgz">cockroach-sql-v24.3.32.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.32.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.32.darwin-10.9-amd64.tgz">cockroach-v24.3.32.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.32.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.32.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.32.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.32.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.32.darwin-11.0-arm64.tgz">cockroach-v24.3.32.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.32.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.32.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.32.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.32.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.32.windows-6.2-amd64.zip">cockroach-v24.3.32.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.32.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.32.windows-6.2-amd64.zip">cockroach-sql-v24.3.32.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.32.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach:v24.3.32
```

### Bug fixes

* Fixed a bug where the view owner's privileges on underlying tables were not checked when selecting from a view. A view would continue to work even after the owner lost access to the underlying tables. To enforce privilege checks on underlying tables, set the `sql.auth.skip_underlying_view_privilege_checks.enabled` cluster setting to `false`. This setting defaults to `true` to prevent backward-incompatible behavior.
* Fixed a bug where `IMPORT` error messages could include unredacted cloud storage credentials from the source URI. Credentials are now stripped from URIs before they appear in error messages.

## v24.3.31

Release Date: April 20, 2026

### Downloads

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.31.linux-amd64.tgz">cockroach-v24.3.31.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.31.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.31.linux-amd64.tgz">cockroach-sql-v24.3.31.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.31.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.31.linux-arm64.tgz">cockroach-v24.3.31.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.31.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.31.linux-arm64.tgz">cockroach-sql-v24.3.31.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.31.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.31.darwin-10.9-amd64.tgz">cockroach-v24.3.31.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.31.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.31.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.31.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.31.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.31.darwin-11.0-arm64.tgz">cockroach-v24.3.31.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.31.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.31.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.31.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.31.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.31.windows-6.2-amd64.zip">cockroach-v24.3.31.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.31.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.31.windows-6.2-amd64.zip">cockroach-sql-v24.3.31.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.31.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach:v24.3.31
```

### Bug fixes

* Fixed a bug where concurrent updates to a table using multiple column families during a partial index creation could result in data loss, incorrect `NULL` values, or validation failures in the resulting index.

## v24.3.30

Release Date: April 3, 2026

### Downloads

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.30.linux-amd64.tgz">cockroach-v24.3.30.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.30.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.30.linux-amd64.tgz">cockroach-sql-v24.3.30.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.30.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.30.linux-arm64.tgz">cockroach-v24.3.30.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.30.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.30.linux-arm64.tgz">cockroach-sql-v24.3.30.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.30.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.30.darwin-10.9-amd64.tgz">cockroach-v24.3.30.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.30.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.30.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.30.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.30.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.30.darwin-11.0-arm64.tgz">cockroach-v24.3.30.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.30.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.30.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.30.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.30.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.30.windows-6.2-amd64.zip">cockroach-v24.3.30.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.30.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.30.windows-6.2-amd64.zip">cockroach-sql-v24.3.30.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.30.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach:v24.3.30
```

### Bug fixes

* Fixed a bug where CockroachDB did not always promptly respond to the statement timeout when performing a hash join with an `ON` filter that is mostly `false`.
* Fixed a bug that could cause row sampling for table statistics to crash a node due to a data race when processing a collated string column with values larger than 400 bytes. This bug has existed since before v23.1.

## v24.3.29

Release Date: March 9, 2026

### Downloads

<Note>
  This version is currently available only for select CockroachDB Cloud clusters. To request to upgrade a CockroachDB self-hosted cluster to this version, [contact support](https://support.cockroachlabs.com/hc/requests/new).
</Note>

### Bug fixes

* Fixed a bug where AVRO file imports of data with JSON or binary records could hang indefinitely when encountering stream errors from cloud storage (such as `HTTP/2` `CANCEL` errors). Import jobs will now properly fail with an error instead of hanging.
* Fixed a bug that, in rare cases, could cause a node to crash when using a changefeed with the `end_time` option.
* Fixed a bug that could cause changefeeds using Kafka v1 sinks to hang when the changefeed was cancelled.
* Fixed a bug where generating a debug zip could trigger an out-of-memory (OOM) condition on a node if malformed log entries were present in logs using `json` or `json-compact` formatting. This bug was introduced in v24.1.

### Miscellaneous

* Fixed a bug where import rollback could incorrectly revert data in a table that was already online. This could only occur if an import job was cancelled or failed after the import had already succeeded and the table was made available for use.

## v24.3.28

Release Date: March 5, 2026

### Downloads

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.28.linux-amd64.tgz">cockroach-v24.3.28.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.28.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.28.linux-amd64.tgz">cockroach-sql-v24.3.28.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.28.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.28.linux-arm64.tgz">cockroach-v24.3.28.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.28.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.28.linux-arm64.tgz">cockroach-sql-v24.3.28.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.28.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.28.darwin-10.9-amd64.tgz">cockroach-v24.3.28.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.28.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.28.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.28.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.28.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.28.darwin-11.0-arm64.tgz">cockroach-v24.3.28.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.28.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.28.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.28.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.28.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.28.windows-6.2-amd64.zip">cockroach-v24.3.28.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.28.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.28.windows-6.2-amd64.zip">cockroach-sql-v24.3.28.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.28.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach:v24.3.28
```

### Bug fixes

* Fixed a bug where an internal context structure could grow unboundedly over time. In rare cases, on nodes running continuously for several months or more, this could cause the `cockroach` process to appear stalled when a CPU profile was requested.​​​​​​​​​​​​​​​​

## v24.3.27

Release Date: February 19, 2026

### Downloads

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.27.linux-amd64.tgz">cockroach-v24.3.27.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.27.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.27.linux-amd64.tgz">cockroach-sql-v24.3.27.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.27.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.27.linux-arm64.tgz">cockroach-v24.3.27.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.27.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.27.linux-arm64.tgz">cockroach-sql-v24.3.27.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.27.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.27.darwin-10.9-amd64.tgz">cockroach-v24.3.27.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.27.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.27.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.27.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.27.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.27.darwin-11.0-arm64.tgz">cockroach-v24.3.27.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.27.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.27.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.27.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.27.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.27.windows-6.2-amd64.zip">cockroach-v24.3.27.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.27.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.27.windows-6.2-amd64.zip">cockroach-sql-v24.3.27.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.27.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach:v24.3.27
```

### Bug fixes

* Fixed a rare race condition between range splits and MVCC garbage collection where a GCRequest could target keys outside its declared span. In rare cases, this could result in data on the post-split right-hand side (RHS) being incorrectly garbage collected, potentially leading to lost writes. The system now detects and rejects such malformed GC requests.
* Fixed a bug where generating a debug zip could trigger an out-of-memory (OOM) condition on a node if malformed log entries were present in logs using json or json-compact formatting. Debug zip generation now safely handles malformed log lines and prevents excessive memory consumption.

## v24.3.26

Release Date: February 11, 2026

### Downloads

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.26.linux-amd64.tgz">cockroach-v24.3.26.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.26.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.26.linux-amd64.tgz">cockroach-sql-v24.3.26.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.26.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.26.linux-arm64.tgz">cockroach-v24.3.26.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.26.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.26.linux-arm64.tgz">cockroach-sql-v24.3.26.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.26.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.26.darwin-10.9-amd64.tgz">cockroach-v24.3.26.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.26.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.26.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.26.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.26.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.26.darwin-11.0-arm64.tgz">cockroach-v24.3.26.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.26.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.26.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.26.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.26.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.26.windows-6.2-amd64.zip">cockroach-v24.3.26.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.26.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.26.windows-6.2-amd64.zip">cockroach-sql-v24.3.26.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.26.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach:v24.3.26
```

### Bug fixes

* Fixed a bug where `IMPORT` with Avro data using `OCF` format could silently lose data if the underlying storage (e.g., S3) returned an error during read. Such errors are now properly reported. Other formats (specified via `data_as_binary_records` and `data_as_json_records` options) are unaffected. The bug has been present since approximately v20.1.

## v24.3.25

Release Date: January 9, 2026

### Downloads

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.25.linux-amd64.tgz">cockroach-v24.3.25.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.25.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.25.linux-amd64.tgz">cockroach-sql-v24.3.25.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.25.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.25.linux-arm64.tgz">cockroach-v24.3.25.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.25.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.25.linux-arm64.tgz">cockroach-sql-v24.3.25.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.25.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.25.darwin-10.9-amd64.tgz">cockroach-v24.3.25.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.25.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.25.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.25.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.25.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.25.darwin-11.0-arm64.tgz">cockroach-v24.3.25.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.25.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.25.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.25.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.25.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.25.windows-6.2-amd64.zip">cockroach-v24.3.25.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.25.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.25.windows-6.2-amd64.zip">cockroach-sql-v24.3.25.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.25.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach:v24.3.25
```

### Bug fixes

* Fixed a bug that could cause incorrect query results when using prepared statements with *NULL* placeholders. The bug has existed since v21.2 and violated SQL *NULL* -equality semantics by returning rows with *NULL* values when the result set should have been empty. From v21.2 to v25.3, the bug occurred when all of the following were true:
  * The query was run with an explicit or implicit prepared statement
  * The query had an equality filter on a placeholder and a `UNIQUE` column
  * The column contained *NULL* values
  * The placeholder was assigned to *NULL* during execution
  * Starting in v25.4, the requirements to trigger the bug were loosened: the column no longer needed to be `UNIQUE`, and the bug could be reproduced if the column was included in any index.
* Fixed a race condition that could occur during context cancellation of an incoming snapshot.
* Fixed a bug causing a query predicate to be ignored when the predicate was on a column following one or more `ENUM` columns in an index, the predicate constrained the column to multiple values, and a lookup join to the index was chosen for the query plan. This bug was introduced in 24.3.0 and has been present in all versions since.

## v24.3.24

Release Date: December 12, 2025

### Downloads

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.24.linux-amd64.tgz">cockroach-v24.3.24.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.24.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.24.linux-amd64.tgz">cockroach-sql-v24.3.24.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.24.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.24.linux-arm64.tgz">cockroach-v24.3.24.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.24.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.24.linux-arm64.tgz">cockroach-sql-v24.3.24.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.24.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.24.darwin-10.9-amd64.tgz">cockroach-v24.3.24.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.24.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.24.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.24.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.24.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.24.darwin-11.0-arm64.tgz">cockroach-v24.3.24.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.24.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.24.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.24.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.24.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.24.windows-6.2-amd64.zip">cockroach-v24.3.24.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.24.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.24.windows-6.2-amd64.zip">cockroach-sql-v24.3.24.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.24.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach:v24.3.24
```

### Bug fixes

* A mechanism that prevents unsafe replication changes from causing loss of quorum now functions correctly. An internal function has been fixed to properly return errors, enhancing the reliability of replication safeguards.

## v24.3.23

Release Date: November 14, 2025

### Downloads

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.23.linux-amd64.tgz">cockroach-v24.3.23.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.23.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.23.linux-amd64.tgz">cockroach-sql-v24.3.23.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.23.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.23.linux-arm64.tgz">cockroach-v24.3.23.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.23.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.23.linux-arm64.tgz">cockroach-sql-v24.3.23.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.23.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.23.darwin-10.9-amd64.tgz">cockroach-v24.3.23.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.23.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.23.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.23.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.23.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.23.darwin-11.0-arm64.tgz">cockroach-v24.3.23.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.23.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.23.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.23.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.23.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.23.windows-6.2-amd64.zip">cockroach-v24.3.23.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.23.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.23.windows-6.2-amd64.zip">cockroach-sql-v24.3.23.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.23.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach:v24.3.23
```

### SQL language changes

* Added the `sql.statements.bytes_read.count` metric that counts the number of bytes scanned by SQL statements.
* Added the `sql.statements.index_rows_written.count` metric that counts the number of primary and secondary index rows modified by SQL statements.
* Added the `sql.statements.index_bytes_written.count` metric that counts the number of primary and secondary index bytes modified by SQL statements.
* Added the `sql.statements.rows_read.count` metric that counts the number of index rows read by SQL statements.

### Bug fixes

* Fixed a bug where the job responsible for compacting stats for the SQL activity state could enter an unschedulable state.
* Fixed a bug where changefeeds using CDC queries could sometimes unexpectedly fail after a schema change with a descriptor retrieval error.

## v24.3.22

Release Date: October 30, 2025

### Downloads

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.22.linux-amd64.tgz">cockroach-v24.3.22.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.22.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.22.linux-amd64.tgz">cockroach-sql-v24.3.22.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.22.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.22.linux-arm64.tgz">cockroach-v24.3.22.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.22.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.22.linux-arm64.tgz">cockroach-sql-v24.3.22.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.22.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.22.darwin-10.9-amd64.tgz">cockroach-v24.3.22.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.22.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.22.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.22.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.22.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.22.darwin-11.0-arm64.tgz">cockroach-v24.3.22.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.22.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.22.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.22.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.22.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.22.windows-6.2-amd64.zip">cockroach-v24.3.22.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.22.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.22.windows-6.2-amd64.zip">cockroach-sql-v24.3.22.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.22.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach:v24.3.22
```

### Bug fixes

* Fixed a bug in the `cockroach node drain` command where draining a node using virtual clusters (such as clusters running Physical Cluster Replication (PCR)) could return before the drain was complete, possibly resulting in shutting down the node while it still had active SQL clients and range leases.

## v24.3.21

Release Date: October 17, 2025

### Downloads

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.21.linux-amd64.tgz">cockroach-v24.3.21.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.21.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.21.linux-amd64.tgz">cockroach-sql-v24.3.21.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.21.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.21.linux-arm64.tgz">cockroach-v24.3.21.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.21.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.21.linux-arm64.tgz">cockroach-sql-v24.3.21.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.21.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.21.darwin-10.9-amd64.tgz">cockroach-v24.3.21.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.21.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.21.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.21.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.21.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.21.darwin-11.0-arm64.tgz">cockroach-v24.3.21.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.21.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.21.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.21.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.21.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.21.windows-6.2-amd64.zip">cockroach-v24.3.21.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.21.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.21.windows-6.2-amd64.zip">cockroach-sql-v24.3.21.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.21.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach:v24.3.21
```

### Bug fixes

* Fixed a bug where an `INSERT` statement could fail with a type checking error while adding a `BIT(n)` column.
* Fixed a bug that caused panics when executing `COPY` into a table with hidden columns and expression indexes. The panic only occurred when the session setting `expect_and_ignore_not_visible_columns_in_copy` was enabled. This bug was introduced with `expect_and_ignore_not_visible_columns_in_copy` in v22.1.0.
* Fixed a bug where the presence of duplicate temporary tables in a backup caused the restore to fail with an error containing the text `restoring table desc and namespace entries: table already exists`.

## v24.3.20

Release Date: September 22, 2025

### Downloads

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.20.linux-amd64.tgz">cockroach-v24.3.20.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.20.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.20.linux-amd64.tgz">cockroach-sql-v24.3.20.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.20.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.20.linux-arm64.tgz">cockroach-v24.3.20.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.20.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.20.linux-arm64.tgz">cockroach-sql-v24.3.20.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.20.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.20.darwin-10.9-amd64.tgz">cockroach-v24.3.20.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.20.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.20.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.20.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.20.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.20.darwin-11.0-arm64.tgz">cockroach-v24.3.20.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.20.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.20.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.20.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.20.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.20.windows-6.2-amd64.zip">cockroach-v24.3.20.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.20.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.20.windows-6.2-amd64.zip">cockroach-sql-v24.3.20.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.20.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach:v24.3.20
```

### SQL language changes

* When `sql_safe_updates` is enabled, the `ALTER TABLE... LOCALITY` statement will be blocked when trying to convert an existing table to `REGIONAL BY ROW`, unless a region column has been added to the table. This protects against undesired behavior that caused `UPDATE` or `DELETE` statements to fail against the table while the locality change was in progress.

### Bug fixes

* Fixed a bug where invalid default expressions could cause backfilling schema changes to retry forever.
* Fixed a bug that could cause excessive memory allocations when compacting timeseries keys.
* Fixed a bug where updating column default expressions would incorrectly remove sequence ownerships for the affected column.
* Fixed a bug that allowed foreign-key violations to result from some combinations of concurrent `READ COMMITTED` and `SERIALIZABLE` transactions. If both `SERIALIZABLE` and weaker-isolation transactions will concurrently modify rows involved in foreign-key relationships, the `SERIALIZABLE` transactions must have the following session variables set in order to prevent any possible foreign-key violations:
  * `SET enable_implicit_fk_locking_for_serializable = on;`
  * `SET enable_shared_locking_for_serializable = on;`
  * `SET enable_durable_locking_for_serializable = on;`
* Added an automatic repair for dangling or invalid entries in the `system.comments` table.
* Fixed a bug where views could not reference the `crdb_region` column from their underlying tables in expressions.

### Performance improvements

* Lookup joins can now be used on tables with virtual columns even if the type of the search argument is not identical to the column type referenced in the virtual column.

### Miscellaneous

* Tunes S3 client retry behavior to be more reliable in the presence of correlated errors.

## v24.3.19

Release Date: August 22, 2025

### Downloads

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.19.linux-amd64.tgz">cockroach-v24.3.19.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.19.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.19.linux-amd64.tgz">cockroach-sql-v24.3.19.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.19.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.19.linux-arm64.tgz">cockroach-v24.3.19.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.19.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.19.linux-arm64.tgz">cockroach-sql-v24.3.19.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.19.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.19.darwin-10.9-amd64.tgz">cockroach-v24.3.19.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.19.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.19.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.19.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.19.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.19.darwin-11.0-arm64.tgz">cockroach-v24.3.19.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.19.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.19.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.19.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.19.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.19.windows-6.2-amd64.zip">cockroach-v24.3.19.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.19.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.19.windows-6.2-amd64.zip">cockroach-sql-v24.3.19.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.19.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach:v24.3.19
```

### General changes

* Backporting detailed error logging logic gated behind a cluster setting. The cluster setting enables detailed error logging for messages exceeding Kafka v2 size limit.
* Changefeeds emitting to Kafka sinks that were created in CockroachDB v24.2.1+, or v23.2.10+ and v24.1.4+ with the `changefeed.new_kafka_sink.enabled` cluster setting enabled now include the message key, size, and MVCC timestamp in "message too large" error logs.

### Operational changes

* Introduced a cluster setting, `sql.stats.error_on_concurrent_create_stats.enabled`, which modifies how CockroachDB reacts to concurrent auto stats jobs. The default, `true`, maintains the previous behavior. Setting `sql.stats.error_on_concurrent_create_stats.enabled` to `false` will cause the concurrent auto stats job to be skipped with just a log entry and no increased error counters.
* Updated TTL job replanning to be less sensitive by focusing specifically on detecting when nodes become unavailable rather than reacting to all plan differences. The cluster setting `sql.ttl.replan_flow_threshold` may have been set to `0` to work around the TTL replanner being too sensitive; this fix will alleviate that and any instance that had set `replan_flow_threshold` to `0` can be reset back to the default.

### Bug fixes

* Fixed an issue where the `mvcc_timestamp` field was incorrectly returning zero values when used with CDC queries. The timestamp is now emitted correctly.
* Fixed a bug that would allow a race condition in foreign key cascades under `READ COMMITTED` and `REPEATABLE READ` isolation levels.
* Fixed a bug that could cause some errors returned by attempts to upload backup data to external storage providers to be undetected, potentially causing incomplete backups.
* Fixed a memory accounting issue in the client certificate cache that caused multiple allocations to be reported for the same certificate. The cache now accurately tracks memory usage and includes a safeguard to prevent it from negatively affecting SQL operations.
* Fixed a bug where `debug.zip` files collected from clusters with `disallow_full_table_scans` enabled were missing system table data.

### Build changes

* Upgrade Go to consume security fixes

### Miscellaneous

* Restore will now re-attempt `AdminSplit` KV requests instead of immediately failing and pausing the job.

## v24.3.18

Release Date: August 8, 2025

### Downloads

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.18.linux-amd64.tgz">cockroach-v24.3.18.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.18.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.18.linux-amd64.tgz">cockroach-sql-v24.3.18.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.18.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.18.linux-arm64.tgz">cockroach-v24.3.18.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.18.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.18.linux-arm64.tgz">cockroach-sql-v24.3.18.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.18.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.18.darwin-10.9-amd64.tgz">cockroach-v24.3.18.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.18.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.18.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.18.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.18.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.18.darwin-11.0-arm64.tgz">cockroach-v24.3.18.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.18.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.18.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.18.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.18.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.18.windows-6.2-amd64.zip">cockroach-v24.3.18.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.18.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.18.windows-6.2-amd64.zip">cockroach-sql-v24.3.18.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.18.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach:v24.3.18
```

### Bug fixes

* Fixed a memory accounting issue in the client certificate cache that caused multiple allocations to be reported for the same certificate. The cache now accurately tracks memory usage and includes a safeguard to prevent it from negatively affecting SQL operations.

## v24.3.17

Release Date: August 1, 2025

### Downloads

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.17.linux-amd64.tgz">cockroach-v24.3.17.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.17.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.17.linux-amd64.tgz">cockroach-sql-v24.3.17.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.17.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.17.linux-arm64.tgz">cockroach-v24.3.17.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.17.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.17.linux-arm64.tgz">cockroach-sql-v24.3.17.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.17.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.17.darwin-10.9-amd64.tgz">cockroach-v24.3.17.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.17.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.17.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.17.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.17.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.17.darwin-11.0-arm64.tgz">cockroach-v24.3.17.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.17.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.17.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.17.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.17.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.17.windows-6.2-amd64.zip">cockroach-v24.3.17.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.17.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.17.windows-6.2-amd64.zip">cockroach-sql-v24.3.17.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.17.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach:v24.3.17
```

### Bug fixes

* Fixed a bug that could cause some errors returned by attempts to upload backup data to external storage providers to be undetected, potentially causing incomplete backups.

## v24.3.16

Release Date: July 28, 2025

### Downloads

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.16.linux-amd64.tgz">cockroach-v24.3.16.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.16.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.16.linux-amd64.tgz">cockroach-sql-v24.3.16.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.16.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.16.linux-arm64.tgz">cockroach-v24.3.16.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.16.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.16.linux-arm64.tgz">cockroach-sql-v24.3.16.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.16.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.16.darwin-10.9-amd64.tgz">cockroach-v24.3.16.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.16.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.16.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.16.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.16.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.16.darwin-11.0-arm64.tgz">cockroach-v24.3.16.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.16.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.16.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.16.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.16.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.16.windows-6.2-amd64.zip">cockroach-v24.3.16.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.16.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.16.windows-6.2-amd64.zip">cockroach-sql-v24.3.16.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.16.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach:v24.3.16
```

### SQL language changes

* Added a session variable `initial_retry_backoff_for_read_committed` that controls the initial backoff duration when retrying an individual statement in an explicit `READ COMMITTED` transaction. A duration of `0` disables exponential backoff. If a statement in an explicit `READ COMMITTED` transaction is failing with the `40001` error `ERROR: restart transaction: read committed retry limit exceeded; set by max_retries_for_read_committed=...`, then you should set `initial_retry_backoff_for_read_committed` to a duration proportional to the typical execution time of the statement (in addition to also increasing `max_retries_for_read_committed` ).
* Added the metrics `sql.txn.auto_retry.count` and `sql.statements.auto_retry.count`, which count the number of automatic retries of SQL transactions and statements, respectively, within the database. These metrics differ from the related `txn.restarts.*` metrics, which count retryable errors emitted by the KV layer that must be retried. The new `sql.txn.auto_retry.count` and `sql.statements.auto_retry.count` metrics count auto-retry actions taken by the SQL layer in response to some of those retryable errors.

### Operational changes

* Introduced a cluster setting, `sql.stats.error_on_concurrent_create_stats.enabled`, which modifies how CockroachDB reacts to concurrent auto stats jobs. The default, `true`, maintains the previous behavior. Setting `sql.stats.error_on_concurrent_create_stats.enabled` to `false` will cause the concurrent auto stats job to be skipped with just a log entry and no increased error counters.

### Bug fixes

* Fixed a data race in the `cloudstorage` sink.
* Fixed an error in `crdb_internal.table_spans` that could occur when a table's schema had been dropped.
* Fixed a bug where `libpq` clients using the async API could hang with large result sets (Python: psycopg; Ruby: ActiveRecord, ruby-pg).
* The `RESET ALL` statement no longer affects the following session variables:
  * `is_superuser`
  * `role`
  * `session_authorization`
  * `transaction_isolation`
  * `transaction_priority`
  * `transaction_status`
  * `transaction_read_only`

    This better matches PostgreSQL behavior for `RESET ALL`. In addition, the `DISCARD ALL` statement no longer errors when `default_transaction_use_follower_reads` is enabled.
* Fixed a bug that would allow a race condition in foreign key cascades under `READ COMMITTED` and `REPEATABLE READ` isolation levels.

## v24.3.15

Release Date: June 25, 2025

### Downloads

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.15.linux-amd64.tgz">cockroach-v24.3.15.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.15.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.15.linux-amd64.tgz">cockroach-sql-v24.3.15.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.15.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.15.linux-arm64.tgz">cockroach-v24.3.15.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.15.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.15.linux-arm64.tgz">cockroach-sql-v24.3.15.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.15.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.15.darwin-10.9-amd64.tgz">cockroach-v24.3.15.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.15.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.15.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.15.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.15.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.15.darwin-11.0-arm64.tgz">cockroach-v24.3.15.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.15.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.15.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.15.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.15.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.15.windows-6.2-amd64.zip">cockroach-v24.3.15.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.15.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.15.windows-6.2-amd64.zip">cockroach-sql-v24.3.15.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.15.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach:v24.3.15
```

### SQL language changes

* Added the metrics `sql.txn.auto_retry.count` and `sql.statements.auto_retry.count`, which count the number of automatic retries of SQL transactions and statements, respectively, within the database. These metrics differ from the related `txn.restarts.*` metrics, which count retryable errors emitted by the KV layer that must be retried. The new `sql.txn.auto_retry.count` and `sql.statements.auto_retry.count` metrics count auto-retry actions taken by the SQL layer in response to some of those retryable errors.
* Added a session variable `initial_retry_backoff_for_read_committed` that controls the initial backoff duration when retrying an individual statement in an explicit `READ COMMITTED` transaction. A duration of `0` disables exponential backoff. If a statement in an explicit `READ COMMITTED` transaction is failing with the `40001` error `ERROR: restart transaction: read committed retry limit exceeded; set by max_retries_for_read_committed=...`, then you should set `initial_retry_backoff_for_read_committed` to a duration proportional to the typical execution time of the statement (in addition to also increasing `max_retries_for_read_committed` ).

### Bug fixes

* Fixed a bug that could cause an `AFTER` trigger to fail with `client already committed or rolled back the transaction` if the query also contained foreign-key cascades. The bug had existed since `AFTER` triggers were introduced in v24.3.
* Fixed a bug that could potentially cause a changefeed to complete erroneously when one of its watched tables encounters a schema change.
* Fixed a bug that caused the SQL Activity > Statement Fingerprint page to fail to load details for statements run with application names containing a `#` character.
* Fixed a bug that could cause the `cockroach` process to `segfault` when collecting runtime execution traces (typically collected via the **Advanced Debug** page in the Console).
* Fixed a bug that caused the optimizer to ignore index hints when optimizing some forms of prepared statements. This could result in one of two unexpected behaviors: a query errors with the message `index cannot be used for this query` when the index can actually be used; or a query uses an index that does not adhere to the hint. The hints relevant to this bug are regular index hints, e.g., `SELECT * FROM tab@index`, `FORCE_INVERTED_INDEX`, and `FORCE_ZIGZAG`.
* Fixed the database filter in the DB Console's Hot Ranges page, which was broken in v24.3.3, and updated the locality filter to remove duplicate entries.
* Fixed a bug that could cause stable expressions to be folded in cached query plans. The bug could cause stable expressions like `current_setting` to return the wrong result if used in a prepared statement. The bug was introduced in v23.2.22, v24.1.14, v24.3.9, v25.1.2, and the v25.2 alpha.
* Fixed a bug where prepared statements on schema changes could fail with runtime errors.
* Fixed a bug where `ALTER TABLE` was modifying identity attributes on columns not backed by a sequence.
* Fixed an issue with logical data replication (LDR) where the presence of a unique index could have caused spurious dead-letter queue (DLQ) entries if the unique index had a smaller index ID than the primary key index.

### Performance improvements

* TTL jobs now respond to cluster topology changes by restarting and rebalancing across available nodes.

## v24.3.14

Release Date: May 28, 2025

### Downloads

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.14.linux-amd64.tgz">cockroach-v24.3.14.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.14.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.14.linux-amd64.tgz">cockroach-sql-v24.3.14.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.14.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.14.linux-arm64.tgz">cockroach-v24.3.14.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.14.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.14.linux-arm64.tgz">cockroach-sql-v24.3.14.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.14.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.14.darwin-10.9-amd64.tgz">cockroach-v24.3.14.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.14.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.14.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.14.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.14.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.14.darwin-11.0-arm64.tgz">cockroach-v24.3.14.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.14.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.14.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.14.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.14.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.14.windows-6.2-amd64.zip">cockroach-v24.3.14.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.14.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.14.windows-6.2-amd64.zip">cockroach-sql-v24.3.14.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.14.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach:v24.3.14
```

### Operational changes

* Changed the default value of the cluster setting `admission.l0_file_count_overload_threshold` to `4000`.
* SQL queries run on the source cluster by logical data replication (LDR) and physical cluster replication (PCR) will account to internal metrics like `sql.statements.active.internal` instead of the metrics like `sql.statements.active` that are used to monitor application workload.

### DB Console changes

* Schema insights that recommend replacing an index were previously a two-statement command consisting of a `CREATE INDEX` and a `DROP INDEX` statement. When these two DDL statements were run as a single batched command, it was possible for one statement to succeed and one to fail. This is because DDL statements do not have the same atomicity guarantees as other SQL statements in CockroachDB. Index-replacement insights are now a single `CREATE INDEX` statement followed by a comment with additional DDL statements to be run manually: an `ALTER INDEX... NOT VISIBLE` statement, which makes the old index invisible to the optimizer, followed by a `DROP INDEX` statement that should only be run after making the old index invisible and verifying that workload performance is satisfactory.

### Bug fixes

* Fixed a bug where using values `changefeed.aggregator.flush_jitter` and `min_checkpoint_frequency` such that `changefeed.aggregator.flush_jitter * min_checkpoint_frequency < 1` would cause a panic. Jitter will now be disabled in this case.
* Fixed a bug in the DB Console where the **Drop unused index** tag appeared multiple times for an index on the **Indexes** tab of the table details page.
* Fixed the following bugs in the **Schedules** page of the DB Console:
  * Fixed a bug where the **Schedules** page displayed only a subset of a cluster's schedules. The **Schedules** page now correctly displays all schedules.
  * Fixed a bug where manually updating the `show` or `status` parameters in the URL (e.g., `http://127.0.0.1:8080/#/schedules?status=ACTIVE&show=50` ) caused the **Schedules** page to fail to load.
* Fixed a bug in the **SQL Activity Statements** page where filtering by **Statement Type** returned no results. The filter now works as expected.
* Improved the performance of `SHOW CREATE TABLE` on multi-region databases with large numbers of objects.
* Fixed a bug where running `DROP INDEX` on a hash-sharded index did not properly detect dependencies from functions and procedures on the shard column. This caused the `DROP INDEX` statement to fail with an internal validation error. Now the statement returns a correct error message, and using `DROP INDEX... CASCADE` works as expected by dropping the dependent functions and procedures.
* Fixed a bug where a node that was drained as part of decommissioning may have interrupted SQL connections that were still active during drain (and for which drain would have been expected to wait).
* Fixed a bug that could lead to schema changes hanging after a cluster recovered from availability issues.
* Previously, on a table with multiple column families, CockroachDB could encounter a `Non-nullable column "‹×›:‹×›" with no value` error in rare cases during table statistics collection. The bug was present since v19.2 and is now fixed.
* Fixed a bug that could cause a row-level TTL job to fail with the error "comparison of two different versions of enum" if an `ENUM` type referenced by the table experienced a schema change.
* Fixed a bug where the physical cluster replication (PCR) reader catalog job could hit validation errors when schema objects had dependencies between them (for example, when a sequence's default expression was being removed).
* Fixed a bug where orphaned leases were not properly cleaned up.
* Fixed an internal assertion failure that could occur during operations like `ALTER TYPE` or `ALTER DATABASE... ADD REGION` when temporary tables were present.
* Fixed a bug that could cause queries that perform work in parallel to ignore the requested quality-of-service level. Affected operations include lookup joins, DistSQL execution, and foreign-key checks.
* Fixed a bug that prevented `TRUNCATE` from succeeding if any indexes on the table had back-reference dependencies, such as from a view or function referencing the index.
* Fixed a bug where an invalid comment in the `system.comment` table for a schema object could make it inaccessible.
* Fixed a bug in the rangefeed restarts metric that was introduced in v23.2.
* Fixed a rare corruption bug that impacts import and materialized views.

## v24.3.13

Release Date: May 15, 2025

### Downloads

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.13.linux-amd64.tgz">cockroach-v24.3.13.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.13.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.13.linux-amd64.tgz">cockroach-sql-v24.3.13.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.13.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.13.linux-arm64.tgz">cockroach-v24.3.13.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.13.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.13.linux-arm64.tgz">cockroach-sql-v24.3.13.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.13.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.13.darwin-10.9-amd64.tgz">cockroach-v24.3.13.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.13.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.13.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.13.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.13.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.13.darwin-11.0-arm64.tgz">cockroach-v24.3.13.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.13.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.13.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.13.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.13.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.13.windows-6.2-amd64.zip">cockroach-v24.3.13.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.13.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.13.windows-6.2-amd64.zip">cockroach-sql-v24.3.13.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.13.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach:v24.3.13
```

### Operational changes

* The default value of the `admission.l0_file_count_overload_threshold` cluster setting is now `4000`. This change improves stability under high write load and during Write-Ahead Log (WAL) failover by addressing token exhaustion.

## v24.3.12

Release Date: April 30, 2025

### Downloads

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.12.linux-amd64.tgz">cockroach-v24.3.12.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.12.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.12.linux-amd64.tgz">cockroach-sql-v24.3.12.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.12.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.12.linux-arm64.tgz">cockroach-v24.3.12.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.12.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.12.linux-arm64.tgz">cockroach-sql-v24.3.12.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.12.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.12.darwin-10.9-amd64.tgz">cockroach-v24.3.12.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.12.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.12.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.12.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.12.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.12.darwin-11.0-arm64.tgz">cockroach-v24.3.12.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.12.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.12.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.12.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.12.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.12.windows-6.2-amd64.zip">cockroach-v24.3.12.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.12.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.12.windows-6.2-amd64.zip">cockroach-sql-v24.3.12.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.12.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach:v24.3.12
```

### General changes

* CockroachDB v24.3.12 and subsequent v24.3 releases are eligible for <InternalLink version="v24.3" path="releases/release-support-policy#support-types">long term support (LTS)</InternalLink>.

### SQL language changes

* Added the `WITH IGNORE_FOREIGN_KEYS` option to `SHOW CREATE TABLE` which omits foreign key constraints from the output schema. This option is also allowed in `SHOW CREATE VIEW`, but has no effect. It cannot be combined with the `WITH REDACT` option.
* `EXPLAIN ANALYZE` statements now display the number of transaction retries and time spent retrying, if non-zero, in the plan output.
* A new `execution time` statistic is now reported on `EXPLAIN ANALYZE` output for most operators. Previously, this statistic was only available on the DistSQL diagrams in `EXPLAIN ANALYZE (DISTSQL)` output.

### Operational changes

* Added the cluster setting `server.child_metrics.include_aggregate.enabled` (default: `true` ) that controls the behavior of Prometheus child metrics reporting ( `/_status/vars` ). When set to `true`, child metrics include an aggregate time series, maintaining the existing behavior. When set to `false`, it stops reporting the aggregate time series, preventing double counting when querying metrics.
* The `sys.cpu.host.combined.percent-normalized` metric has been updated to include additional counters for more accurate host CPU measurement and to reduce underreporting. It now accounts for time spent processing hardware ( `irq` ) and software ( `softirq` ) interrupts, as well as `nice` time, which represents low-priority user-mode activity.
* The `server.client_cert_expiration_cache.capacity` cluster setting has been removed. The `security.certificate.expiration.client` and `security.certificate.ttl.client` metrics now report the lowest value observed for a user in the last 24 hours.
* SQL queries run on the source cluster by logical data replication (LDR) and physical cluster replication (PCR) will account to internal metrics like `sql.statements.active.internal` instead of the metrics like `sql.statements.active` that are used to monitor application workload.

### Bug fixes

* Fixed a bug in client certificate expiration metrics, `security.certificate.expiration.client` and `security.certificate.ttl.client`.
* Fast failback could succeed even if the standby cluster protected timestamp had been removed, causing the reverse physical cluster replication (PCR) stream to enter a crashing loop. This patch ensures the failback command fast fails.
* Fixed a bug that caused changefeeds to fail on startup when scanning a single key.
* MVCC garbage collection is now fully subject to IO admission control. Previously, it was possible for MVCC GC to cause store overload (such as LSM inversion) when a large amount of data would become eligible for garbage collection. Should any issues arise from subjecting MVCC GC to admission control, the `kv.mvcc_gc.queue_kv_admission_control.enabled` cluster setting can be set to `false` to restore the previous behavior.
* Fixed a bug where calling a stored procedure could drop the procedure if it had `OUT` parameters that were not used by the calling routine. This bug had existed since PL/pgSQL `CALL` statements were introduced in v24.1.
* Fixed a bug where CockroachDB would encounter an internal error when decoding the gists of plans with `CALL` statements. The bug had been present since v23.2.
* The reader virtual cluster now starts if the user begins a physical cluster replication (PCR) stream from a cursor via `ALTER VIRTUAL CLUSTER virtual_cluster START REPLICATION OF virtual_cluster ON pgurl_physical_cluster WITH READ VIRTUAL CLUSTER`.
* Fixed a crash due to "use of enum metadata before hydration" when using logical data replication (LDR) with user-defined types (UDTs).
* Fixed a potential deadlock that could occur during client certificate updates while metrics were being collected. This issue affected the reliability of certificate expiration reporting.
* Fixed a bug in v24.1.14, v24.3.7, v24.3.8, and v25.1 that could cause a nil-pointer error when a column's default expression contained a volatile expression (like `nextval` ) as a UDF argument.
* Previously, the fields `maximum memory usage` and `max sql temp disk usage` in the `EXPLAIN ANALYZE` output could be under-reported for distributed plans when memory-intensive operations were fully performed on the remote nodes. This is now fixed. The bug existed in v22.1 and later.
* The `ALTER VIRTUAL CLUSTER SET REPLICATION READ VIRTUAL CLUSTER` syntax is now supported for adding a reader virtual cluster for an existing PCR standby.
* Previously, whenever CockroachDB collected a statement bundle when plan-gist-based matching was used, `plan.txt` would be incomplete. This is now fixed. The bug had been present since the introduction of plan-gist-based matching in v23.1, and was partially addressed in v24.2.
* Fixed a bug where CockroachDB could encounter a `cannot specify timestamp older than...` error during table statistics collection in some cases (e.g., when the cluster is overloaded). The bug was present since v19.1.
* Fixed a bug that could cause a stack overflow during execution of a prepared statement that invoked a PL/pgSQL routine with a loop. The bug existed in versions v23.2.22, v24.1.15, v24.3.9, v25.1.2, v25.1.3, and pre-release versions of v25.2 prior to v25.2.0-alpha.3.
* Fixed a rare corruption bug that impacts `IMPORT` and materialized views.

## v24.3.11

Release Date: April 28, 2025

### Downloads

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.11.linux-amd64.tgz">cockroach-v24.3.11.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.11.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.11.linux-amd64.tgz">cockroach-sql-v24.3.11.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.11.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.11.linux-arm64.tgz">cockroach-v24.3.11.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.11.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.11.linux-arm64.tgz">cockroach-sql-v24.3.11.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.11.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.11.darwin-10.9-amd64.tgz">cockroach-v24.3.11.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.11.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.11.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.11.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.11.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.11.darwin-11.0-arm64.tgz">cockroach-v24.3.11.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.11.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.11.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.11.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.11.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.11.windows-6.2-amd64.zip">cockroach-v24.3.11.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.11.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.11.windows-6.2-amd64.zip">cockroach-sql-v24.3.11.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.11.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach:v24.3.11
```

### Bug fixes

* Fixed a rare corruption bug that impacts import and materialized views.

## v24.3.10

Release Date: April 9, 2025

### Downloads

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.10.linux-amd64.tgz">cockroach-v24.3.10.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.10.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.10.linux-amd64.tgz">cockroach-sql-v24.3.10.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.10.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.10.linux-arm64.tgz">cockroach-v24.3.10.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.10.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.10.linux-arm64.tgz">cockroach-sql-v24.3.10.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.10.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.10.darwin-10.9-amd64.tgz">cockroach-v24.3.10.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.10.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.10.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.10.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.10.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.10.darwin-11.0-arm64.tgz">cockroach-v24.3.10.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.10.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.10.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.10.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.10.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.10.windows-6.2-amd64.zip">cockroach-v24.3.10.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.10.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.10.windows-6.2-amd64.zip">cockroach-sql-v24.3.10.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.10.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach:v24.3.10
```

### Bug fixes

* Fixed a bug that could cause a stack overflow during execution of a prepared statement that invoked a PL/pgSQL routine with a loop. The bug existed in versions v23.2.22, v24.1.15, v24.3.9, v25.1.2, v25.1.3, and pre-release versions of v25.2 prior to v25.2.0-alpha.3.

## v24.3.9

Release Date: April 2, 2025

### Downloads

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.9.linux-amd64.tgz">cockroach-v24.3.9.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.9.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.9.linux-amd64.tgz">cockroach-sql-v24.3.9.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.9.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.9.linux-arm64.tgz">cockroach-v24.3.9.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.9.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.9.linux-arm64.tgz">cockroach-sql-v24.3.9.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.9.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.9.darwin-10.9-amd64.tgz">cockroach-v24.3.9.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.9.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.9.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.9.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.9.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.9.darwin-11.0-arm64.tgz">cockroach-v24.3.9.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.9.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.9.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.9.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.9.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.9.windows-6.2-amd64.zip">cockroach-v24.3.9.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.9.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.9.windows-6.2-amd64.zip">cockroach-sql-v24.3.9.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.9.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach:v24.3.9
```

### SQL language changes

* Added the `WITH IGNORE_FOREIGN_KEYS` option to `SHOW CREATE TABLE`, which omits foreign key constraints from the output schema. This option is also allowed in `SHOW CREATE VIEW`, but has no effect. It cannot be combined with the `WITH REDACT` option.

### Operational changes

* Added the `sql.transaction_timeout.count` metric to track the number of SQL statements that fail due to exceeding the transaction timeout.
* Added the `sql.statement_timeout.count` to track the number of SQL statements that fail due to exceeding the statement timeout.
* The `server.client_cert_expiration_cache.capacity` cluster setting has been removed. The `security.certificate.expiration.client` and `security.certificate.ttl.client` metrics now report the lowest value observed for a user in the last 24 hours.

### Bug fixes

* Fixed a bug that prevented starting multi-table Logical Data Replication (LDR) streams on tables that used user-defined types.
* The TTL deletion job now includes a retry mechanism that progressively reduces the batch size when encountering contention. This improves the chances of successful deletion without requiring manual adjustments to TTL knobs. Also added the `jobs.row_level_ttl.num_delete_batch_retries` metric to track the number of times the TTL job had to reduce the batch size and try again.
* Fixed a bug when running with the `autocommit_before_ddl` session setting that could cause a runtime error when binding a previously prepared DDL statement.
* Fixed a bug where CockroachDB could incorrectly evaluate casts to some OID types (like `REGCLASS` ) in some cases. The bug had been present since at least v22.1.
* Fixed a bug that could cause gateway nodes to panic when performing an `UPSERT` on a table with a `BOOL` primary key column and a partial index with the primary key column as the predicate expression.
* Fixed a bug that would prevent the `CREATE TRIGGER` and `DROP TRIGGER` statements from working if the `autocommit_before_ddl` setting was enabled, and if the statement was either sent as a prepared statement or as part of a batch of multiple statements.
* Fixed a bug that could cause `SHOW TABLES` and other introspection operations to encounter a `batch timestamp must be after replica GC threshold` error.
* Fixed a bug where Physical Cluster Replication (PCR) reader catalogs could have orphaned rows in `system.namespace` after an object is renamed.
* Fixed a bug that could cause `nil pointer dereference` errors when executing statements with user-defined functions (UDFs). The error could also occur when executing statements with some built-in functions, like `obj_description`.
* Fixed a bug in `v24.1.14`, `v24.3.7`, `v24.3.8`, and `v25.1` that could cause a nil-pointer error when a column's default expression contained a volatile expression (like `nextval` ) as a UDF argument.
* Fixed a bug that could prevent `SHOW CREATE TABLE` from working if a database was offline (e.g., due to a `RESTORE` on that database).
* Fixed an issue where dropping a database with triggers could fail due to an undropped backreference to a trigger function.
* Fixed a bug where the declarative schema changer allowed `CREATE SEQUENCE` operations to proceed even while a `DROP SCHEMA` or `DROP DATABASE` was in progress. Such operations now retry if the parent object has a schema change in progress, preventing new child objects from being created under deleted parent objects.
* Fixed a potential deadlock that could occur during client certificate updates while metrics were being collected. This issue affected the reliability of certificate expiration reporting.
* Fixed a bug where the fraction completed and internal checkpoints during an index backfill operation would stop getting written if any of the periodic fraction/checkpoint write operations failed. Progress is now logged in addition to being written to the job record. This bug affected schema change operations such as creating an index or adding a non-nullable column to a table.
* Fixed a crash due to `use of enum metadata before hydration` when using logical data replication (LDR) with user-defined types.

### Miscellaneous

* When configuring the `sql.ttl.default_delete_rate_limit` cluster setting, a notice is now displayed informing the user that the TTL rate limit is per leaseholder per table with a <InternalLink version="v24.3" path="row-level-ttl">link to the docs</InternalLink>.
* Improved S3 credential caching for AWS Security Token Service (STS) credentials.

## v24.3.8

Release Date: March 12, 2025

### Downloads

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.8.linux-amd64.tgz">cockroach-v24.3.8.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.8.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.8.linux-amd64.tgz">cockroach-sql-v24.3.8.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.8.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.8.linux-arm64.tgz">cockroach-v24.3.8.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.8.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.8.linux-arm64.tgz">cockroach-sql-v24.3.8.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.8.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.8.darwin-10.9-amd64.tgz">cockroach-v24.3.8.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.8.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.8.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.8.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.8.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.8.darwin-11.0-arm64.tgz">cockroach-v24.3.8.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.8.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.8.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.8.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.8.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.8.windows-6.2-amd64.zip">cockroach-v24.3.8.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.8.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.8.windows-6.2-amd64.zip">cockroach-sql-v24.3.8.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.8.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach:v24.3.8
```

### Bug fixes

* Improved S3 credential caching for STS credentials to avoid exceeding the Amazon metadata service rate limit and encountering errors related to AssumeRole API calls when accessing large numbers of files in larger clusters.

## v24.3.7

Release Date: March 6, 2025

### Downloads

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.7.linux-amd64.tgz">cockroach-v24.3.7.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.7.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.7.linux-amd64.tgz">cockroach-sql-v24.3.7.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.7.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.7.linux-arm64.tgz">cockroach-v24.3.7.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.7.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.7.linux-arm64.tgz">cockroach-sql-v24.3.7.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.7.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.7.darwin-10.9-amd64.tgz">cockroach-v24.3.7.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.7.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.7.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.7.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.7.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.7.darwin-11.0-arm64.tgz">cockroach-v24.3.7.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.7.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.7.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.7.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.7.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.7.windows-6.2-amd64.zip">cockroach-v24.3.7.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.7.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.7.windows-6.2-amd64.zip">cockroach-sql-v24.3.7.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.7.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach:v24.3.7
```

### SQL language changes

* Added support for a new index hint, `AVOID_FULL_SCAN`, which will prevent the optimizer from planning a full scan for the specified table if any other plan is possible. The hint can be used in the same way as other existing index hints. For example, `SELECT * FROM table_name@{AVOID_FULL_SCAN};`. This hint is similar to `NO_FULL_SCAN`, but will not error if a full scan cannot be avoided. Note that a full scan of a partial index would not normally be considered a "full scan" for the purposes of the `AVOID_FULL_SCAN` and `NO_FULL_SCAN` hints, but if the user has explicitly forced the partial index via `FORCE_INDEX=index_name`, it is considered a full scan.
* Added the `optimizer_prefer_bounded_cardinality` session setting, which instructs the optimizer to prefer query plans where every expression has a guaranteed upper-bound on the number of rows it will process. This may help the optimizer produce better query plans in some cases. This setting is disabled by default.
* Added the `optimizer_check_input_min_row_count` session setting to control the minimum row count estimate for buffer scans of foreign key and uniqueness checks. It defaults to `0`.
* Since v23.2, table statistics histograms have been collected for non-indexed JSON columns. Histograms are no longer collected for these columns if the `sql.stats.non_indexed_json_histograms.enabled` cluster setting is set to `false`. This reduces memory usage during table statistics collection, for both automatic and manual collection via `ANALYZE` and `CREATE STATISTICS`.
* Fixed a bug that could cause unexpected errors with SQL `VALUES` clauses that contain function calls with multiple overloads. This bug existed only in pre-release versions of v25.1.
* Added the `optimizer_min_row_count` session setting. This setting sets a lower bound on row count estimates for relational expressions during query planning. A value of `0` (default) indicates no lower bound. If set to a value greater than `0`, a row count of zero can still be estimated for expressions with a cardinality of zero, e.g., for a contradictory filter. Setting this to a value greater than `0`, such as `1`, may yield better query plans in some cases, such as when statistics are frequently stale and inaccurate.

### Operational changes

* Reduced noise in dynamically provisioned logging sinks by logging flush errors at most once per minute.
* The `cockroach node decommission` CLI command now waits until the target node is drained before marking it as fully decommissioned. Previously, it would start the drain but not wait, leaving the target node briefly in a state where it would be unable to communicate with the cluster but would still accept client requests (which would then hang or hit unexpected errors).

### Command-line changes

* Improved the performance of the `cockroachd debug zip` command when retrieving data from `crdb_internal.transaction_contention_events`, reducing the likelihood of `memory budget exceeded` or `query execution canceled due to statement timeout` errors.

### Bug fixes

* Previously, in changefeeds using CDC queries and the Parquet format, the output would include duplicate columns when it contained a user-defined primary key. Now, the columns are de-duplicated columns in the output when writing to Parquet.
* Fixed a bug where dropping a table with a trigger using the legacy schema changer could leave an orphaned reference in the descriptor. This occurred when two tables were dependent on each other via a trigger, and the table containing the trigger was dropped.
* Fixed a bug that could cause `SHOW TABLES` and other introspection operations to encounter a `"batch timestamp must be after replica GC threshold"` error.
* The Data Distribution and Zone Configs report on the DB Console Advanced Debug page will no longer crash if there are `NULL` values for the `raw_sql_config` column in the `crdb_internal.zones` table.
* Fixed possible index corruption caused by triggers that could occur when the following conditions were satisfied:
  1. A query calls a user-defined function (UDF) or stored procedure, and also performs a mutation on a table.
  2. The UDF/stored procedure contains a statement that either fires an `AFTER` trigger, or fires a cascade that itself fires a trigger.
  3. The trigger modifies the same row as the outer statement.
  4. Either the outer or inner mutation is something other than an `INSERT` without an `ON CONFLICT` clause.
* Fixed a bug where activating statement diagnostics sometimes appeared unresponsive, with no state or status update. The status now always indicates whether diagnostics are active or a statement bundle is available for download.
* Fixed a memory leak that could previously occur when evaluating some memory-intensive queries via the vectorized engine in CockroachDB. The leak had been present since v20.2.
* Fixed a bug that could cause `SHOW TABLES` and other introspection operations to encounter a `"batch timestamp must be after replica GC threshold"` error.
* Fixed a bug in the `kafka_sink_config` option for changefeeds where users were previously unable to set negative GZIP compression levels. Users can now configure the `CompressionLevel` field in the range of `[-2, 9]` where `-2` enables Huffman encoding and `-1` sets the default compression.
* Fixed a bug that would cause an internal error when the result of a `RECORD` -returning user-defined function (UDF) was wrapped by another expression (such as `COALESCE` ) within a `VALUES` clause.
* Fixed a rare bug in which a query could fail with the error `could not find computed column expression for column in table` while dropping a virtual computed column from a table. This bug was introduced in v23.2.4.

## v24.3.6

Release Date: February 19, 2025

### Downloads

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.6.linux-amd64.tgz">cockroach-v24.3.6.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.6.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.6.linux-amd64.tgz">cockroach-sql-v24.3.6.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.6.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.6.linux-arm64.tgz">cockroach-v24.3.6.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.6.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.6.linux-arm64.tgz">cockroach-sql-v24.3.6.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.6.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.6.darwin-10.9-amd64.tgz">cockroach-v24.3.6.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.6.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.6.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.6.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.6.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.6.darwin-11.0-arm64.tgz">cockroach-v24.3.6.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.6.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.6.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.6.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.6.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.6.windows-6.2-amd64.zip">cockroach-v24.3.6.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.6.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.6.windows-6.2-amd64.zip">cockroach-sql-v24.3.6.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.6.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach:v24.3.6
```

### Bug fixes

* Fixed a bug that could cause `SHOW TABLES` and other introspection operations to encounter a `"batch timestamp... must be after replica GC threshold"` error.

<Danger>
  This fix is present in [v24.3.4](#v24-3-4) and v24.3.6, but was **not** released in [v24.3.5](#v24-3-5).
</Danger>

## v24.3.5

Release Date: February 6, 2025

### Downloads

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.5.linux-amd64.tgz">cockroach-v24.3.5.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.5.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.5.linux-amd64.tgz">cockroach-sql-v24.3.5.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.5.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.5.linux-arm64.tgz">cockroach-v24.3.5.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.5.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.5.linux-arm64.tgz">cockroach-sql-v24.3.5.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.5.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.5.darwin-10.9-amd64.tgz">cockroach-v24.3.5.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.5.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.5.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.5.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.5.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.5.darwin-11.0-arm64.tgz">cockroach-v24.3.5.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.5.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.5.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.5.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.5.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.5.windows-6.2-amd64.zip">cockroach-v24.3.5.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.5.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.5.windows-6.2-amd64.zip">cockroach-sql-v24.3.5.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.5.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach:v24.3.5
```

### General changes

* The protected timestamp records of running changefeeds are now updated when the set of targets changes, such as when system tables are added to the protected tables list.

### Backward-incompatible changes

* In [v24.3.4](#v24-3-4-bug-fixes), a bug was fixed that could cause `SHOW TABLES` and other introspection operations to encounter a `"batch timestamp... must be after replica GC threshold"` error. This fix is **not** present in v24.3.5, but has been released in [v24.3.6](#v24-3-6).

### SQL language changes

* Since v23.2 table statistics histograms have been collected for non-indexed JSON columns. Histograms are no longer collected for these columns if the `sql.stats.non_indexed_json_histograms.enabled` cluster setting is set to `false`. This reduces memory usage during table statistics collection, for both automatic and manual collection via `ANALYZE` and `CREATE STATISTICS`.
* Added support for a new index hint, `AVOID_FULL_SCAN`, which will prevent the optimizer from planning a full scan for the specified table if any other plan is possible. The hint can be used in the same way as other existing index hints. For example, `SELECT * FROM table_name@{AVOID_FULL_SCAN};`. This hint is similar to `NO_FULL_SCAN`, but will not error if a full scan cannot be avoided. Note that normally a full scan of a partial index would not be considered a "full scan" for the purposes of the `NO_FULL_SCAN` and `AVOID_FULL_SCAN` hints, but if the user has explicitly forced the partial index via `FORCE_INDEX=index_name`, CockroachDB does consider it a full scan.
* Added the `optimizer_prefer_bounded_cardinality` session setting, which instructs the optimizer to prefer query plans where every expression has a guaranteed upper-bound on the number of rows it will process. This may help the optimizer produce better query plans in some cases. This setting is disabled by default.
* Added the `optimizer_min_row_count` session setting, which sets a lower bound on row count estimates for relational expressions during query planning. A value of zero, which is the default, indicates no lower bound. Note that if this is set to a value greater than zero, a row count of zero can still be estimated for expressions with a cardinality of zero, e.g., for a contradictory filter. Setting this to a value higher than `0`, such as `1`, may yield better query plans in some cases, such as when statistics are frequently stale and inaccurate.

### Operational changes

* Schema object identifiers (e.g., database names, schema names, table names, and function names) are no longer redacted when logging statements in the `EXEC` or `SQL_SCHEMA` channels. If redaction of these names is required, then the new cluster setting `sql.log.redact_names.enabled` can be set to `true`. The default value of the setting is `false`.
* Schema object identifiers (e.g., table names, schema names, function names, and type names) are no longer redacted in the `SQL_SCHEMA` log channel.
* Added the metric `sql.schema_changer.object_count`, which counts the number of objects in the cluster.
* The `changefeed.max_behind_nanos` metric now supports scoping with metrics labels.

### DB Console changes

* Added the `/debug/pprof/fgprof` endpoint to capture off-CPU stack traces. Use of this endpoint will have a noticable impact to performance while the endpoint is being triggered.

### Bug fixes

* `CLOSE CURSOR` statements are now allowed in read-only transactions, similar to PostgreSQL. The bug had been present since at least v23.1.
* `ALTER BACKUP SCHEDULE` no longer fails on schedules whose collection URI contains a space.
* Previously, `SHOW CREATE TABLE` was showing incorrect data for inverted indexes. It now shows the correct data that can be input to CockroachDB to recreate the same table.
* Fixed a timing issue between `ALTER VIEW.. RENAME` and `DROP VIEW` that caused repeated failures in the `DROP VIEW` job.
* Fixed a bug where querying the `pg_catalog.pg_constraint` table while the schema changer was dropping a constraint could result in a query error.
* On the **Databases** page, users should no longer see console errors when visiting the **Databases** page directly after node/SQL pod startup.
* In the **Databases** > **Tables** page, the `CREATE` statement will now show up as expected for tables with custom schema names.
* Queries that perform a cast from the string representation of an array containing `GEOMETRY` or `GEOGRAPHY` types to a SQL `ARRAY` type will now succeed.
* Previously, cluster backups taken in a multi-region cluster that had configured the system database with a region configuration could not be restored into a non-multi-region cluster. This is now fixed.
* Fixed a bug that disregarded tuple labels in some cases. This could cause unexpected behavior, such as when converting a tuple to JSON with `to_jsonb`. See #136167 for more details. The incorrect removal of tuple labels bug was introduced in v22.1.0, and changes in v24.3.0 made unexpected behavior due to the bug more likely.
* Previously, CockroachDB could encounter an internal error `comparison of two different versions of enum` in some cases when a user-defined type was modified within a transaction and the following statements read the column of that user-defined type. The bug was introduced in v24.2 and is now fixed.
* Secondary tenants will no longer fatal when issuing HTTP requests during tenant startup.
* Fixed a bug where columns created with `GENERATED... AS IDENTITY` with the `SERIAL` type could incorrectly fail internal validations.
* When the session variable `allow_role_memberships_to_change_during_transaction` is set, it is now possible to create and drop users quickly even when there are contending transactions on the `system.users` and `system.role_options` system tables.
* Fixed a bug where the error `batch timestamp... must be after replica GC threshold` could occur during a schema change backfill operation, and cause the schema change job to retry infinitely. Now this error is treated as permanent, and will cause the job to enter the `failed` state.
* Fixed a bug that prevented the `CREATE` statement for a routine from being shown in a statement bundle. This happened when the routine was created on a schema other than `public`. The bug had existed since v23.1.

## v24.3.4

Release Date: January 31, 2025

### Downloads

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.4.linux-amd64.tgz">cockroach-v24.3.4.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.4.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.4.linux-amd64.tgz">cockroach-sql-v24.3.4.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.4.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.4.linux-arm64.tgz">cockroach-v24.3.4.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.4.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.4.linux-arm64.tgz">cockroach-sql-v24.3.4.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.4.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.4.darwin-10.9-amd64.tgz">cockroach-v24.3.4.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.4.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.4.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.4.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.4.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.4.darwin-11.0-arm64.tgz">cockroach-v24.3.4.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.4.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.4.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.4.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.4.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.4.windows-6.2-amd64.zip">cockroach-v24.3.4.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.4.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.4.windows-6.2-amd64.zip">cockroach-sql-v24.3.4.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.4.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach:v24.3.4
```

### Bug fixes

* Fixed a bug that could cause `SHOW TABLES` and other introspection operations to encounter a `"batch timestamp... must be after replica GC threshold"` error.

<Danger>
  This fix is present in v24.3.4 and [v24.3.6](#v24-3-6), but was **not** released in [v24.3.5](#v24-3-5).
</Danger>

## v24.3.3

Release Date: January 9, 2025

### Downloads

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.3.linux-amd64.tgz">cockroach-v24.3.3.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.3.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.3.linux-amd64.tgz">cockroach-sql-v24.3.3.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.3.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.3.linux-arm64.tgz">cockroach-v24.3.3.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.3.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.3.linux-arm64.tgz">cockroach-sql-v24.3.3.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.3.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.3.darwin-10.9-amd64.tgz">cockroach-v24.3.3.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.3.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.3.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.3.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.3.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.3.darwin-11.0-arm64.tgz">cockroach-v24.3.3.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.3.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.3.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.3.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.3.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.3.windows-6.2-amd64.zip">cockroach-v24.3.3.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.3.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.3.windows-6.2-amd64.zip">cockroach-sql-v24.3.3.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.3.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach:v24.3.3
```

### General changes

* To improve the granularity of changefeed pipeline metrics, the changefeed metrics `changefeed.admit_latency` and `changefeed.commit_latency` have histogram buckets from `5ms` to `60m` (previously `500ms` to `5m` ). The following changefeed metrics have histogram buckets from `5ms` to `10m` (previously `500ms` to `5m` ):
  * `changefeed.parallel_io_queue_nanos`
  * `changefeed.parallel_io_result_queue_nanos`
  * `changefeed.sink_batch_hist_nanos`
  * `changefeed.flush_hist_nanos`
  * `changefeed.kafka_throttling_hist_nanos`
* Added support for multiple seed brokers in the new Kafka sink.
* Added a new metric `distsender.rangefeed.catchup_ranges_waiting_client_side` that counts how many rangefeeds are waiting on the client-side limiter to start performing catchup scans.
* Added support for a new `AWS_USE_PATH_STYLE` parameter in S3 URI parsing.

### SQL language changes

* Added support for `SHOW TRIGGERS`, which displays the names of all triggers on a table, and whether each trigger is enabled. The user must have any privilege on the table, or be its owner.
* Added support for `SHOW CREATE TRIGGER`, which displays the CREATE statement for a trigger. The user must have any privilege on the table, or be its owner.
* The names of `BEFORE` triggers fired by a mutation are now included in the `EXPLAIN` output, with the trigger-function invocations also visible in the output of verbose `EXPLAIN`.
* `AFTER` triggers are now included in the output of `EXPLAIN` and `EXPLAIN ANALYZE`.
* Added the `legacy_varchar_typing` session setting, which reverts the changes of that causes the change in typing behavior described in. Specifically, it makes type-checking and overload resolution ignore the newly added "unpreferred" overloads. This setting defaults to `on`.

### Operational changes

* Removed the `sql.auth.resolve_membership_single_scan.enabled` cluster setting. This was added out of precaution in case it was necessary to revert back to the old behavior for looking up role memberships, but this escape hatch has never been needed in practice since this was added in v23.1.
* Telemetry delivery is now considered successful even in cases of a network timeout. This will prevent throttling in cases outside an operator's control.
* When a schema change job is completed, rolls back, or encounters a failure, the time taken since the job began is now logged in a structured log in the `SQL_SCHEMA` log channel.
* Added a new configurable parameter `kv.transaction.max_intents_and_locks` that will prevent transactions from creating too many intents.
* Added the metric `txn.count_limit_rejected`, which tracks the KV transactions that have been aborted because they exceeded the max number of writes and locking reads allowed.
* Added the metric `txn.count_limit_on_response`, which tracks the number of KV transactions that have exceeded the count limit on a response.

### DB Console changes

* The link on the Plan Details page to the legacy Table page has been removed.

### Bug fixes

* Previously, CockroachDB would encounter an internal error when evaluating `FETCH ABSOLUTE 0` statements, and this is now fixed. The bug has been present since v22.1.
* Fixed an issue where corrupted table statistics could cause the `cockroach` process to crash.
* A table that is participating in a logical replication stream can no longer be dropped. Previously this was allowed, which would cause all the replicated rows to end up in the dead-letter queue.
* `ALTER COLUMN SET NOT NULL` was not enforced consistently when the table was created in the same transaction.
* Fixed a bug where `CREATE RELATION / TYPE` could leave dangling namespace entries if the schema was concurrently being dropped.
* `security.certificate.*` metrics will now be updated if a node loads new certificates while running.
* The `idle_in_session_timeout` setting now excludes the time spent waiting for schema changer jobs to complete, preventing unintended session termination during schema change operations.
* Fixed a bug that causes the optimizer to use stale table statistics after altering an `ENUM` type used in the table.
* Changes the table, index contents of the hot ranges page in DB console.
* Table statistics collection in CockroachDB could previously run into `no bytes in account to release` errors in some edge cases (when the SQL memory budget, configured via `--max-sql-memory` flag, was close to being exhausted). The bug has been present since v21.2 and is now fixed.
* CockroachDB now better respects `statement_timeout` limit on queries involving the top K sort and merge join operations.
* Fixed an issue where license enforcement was not consistently disabled for single-node clusters started with `cockroach start-single-node`. The fix ensures proper behavior on cluster restarts.
* Fixed a bug that caused queries against tables with user-defined types to sometimes fail with errors after restoring those tables.
* Fixed a bug that causes an incorrect filesystem to be logged as part of the store information.
* Fixed a bug affecting uniqueness enforcement in regional by row tables when using read-committed isolation. The bug, introduced in v24.3.0, could cause internal errors or incorrect uniqueness enforcement in tables that had both non-unique and unique indexes when the region column was not part of the uniqueness constraints.
* Fixed a bug that has existed since v24.1 that would cause a set-returning UDF with `OUT` parameters to return a single row.
* Fixed an issue where adding an existing column with the `IF NOT EXISTS` option could exit too early, skipping necessary handling of the abstract syntax tree (AST). This could lead to failure of the `ALTER` statement.
* An issue where a schema change could incorrectly cause a changefeed to fail with an assertion error like `received boundary timestamp... of type... before reaching existing boundary of type...` has now been fixed.
* Internal scans are now exempt from the `sql.defaults.disallow_full_table_scans.enabled` setting, allowing index creation even when the cluster setting is active.
* The `pg_catalog.pg_type` table no longer contains `NULL` values for the columns `typinput`, `typoutput`, `typreceive`, and `typsend`. `NULL` values were erroneously added for these columns for the `trigger` type in v24.3.0. This could cause unexpected errors with some client libraries.

### Performance improvements

* Improved the internal caching logic for role membership information. This reduces the latency impact of commands such as `DROP ROLE`, `CREATE ROLE`, and `GRANT role TO user`, which cause the role membership cache to be invalidated.

## v24.3.2

Release Date: December 26, 2024

### Downloads

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.2.linux-amd64.tgz">cockroach-v24.3.2.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.2.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.2.linux-amd64.tgz">cockroach-sql-v24.3.2.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.2.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.2.linux-arm64.tgz">cockroach-v24.3.2.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.2.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.2.linux-arm64.tgz">cockroach-sql-v24.3.2.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.2.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.2.darwin-10.9-amd64.tgz">cockroach-v24.3.2.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.2.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.2.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.2.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.2.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.2.darwin-11.0-arm64.tgz">cockroach-v24.3.2.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.2.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.2.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.2.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.2.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.2.windows-6.2-amd64.zip">cockroach-v24.3.2.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.2.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.2.windows-6.2-amd64.zip">cockroach-sql-v24.3.2.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.2.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach:v24.3.2
```

### SQL language changes

* Added the `legacy_varchar_typing` session setting. When set to `on`, type-checking comparisons involving `VARCHAR` columns behave as they did in all previous versions. When set to `off`, type-checking of these comparisons is more strict and queries that previously succeeded may now error with the message `unsupported comparison operator`. These errors can be fixed by adding explicit type casts. The `legacy_varchar_typing` session setting is on by default.

## v24.3.1

Release Date: December 12, 2024

### Downloads

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.1.linux-amd64.tgz">cockroach-v24.3.1.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.1.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.1.linux-amd64.tgz">cockroach-sql-v24.3.1.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.1.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.1.linux-arm64.tgz">cockroach-v24.3.1.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.1.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.1.linux-arm64.tgz">cockroach-sql-v24.3.1.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.1.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.1.darwin-10.9-amd64.tgz">cockroach-v24.3.1.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.1.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.1.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.1.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.1.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.1.darwin-11.0-arm64.tgz">cockroach-v24.3.1.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.1.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.1.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.1.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.1.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.1.windows-6.2-amd64.zip">cockroach-v24.3.1.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.1.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.1.windows-6.2-amd64.zip">cockroach-sql-v24.3.1.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.1.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach:v24.3.1
```

### SQL language changes

* When triggers fire one another cyclically, the new `recursion_depth_limit` setting now limits the depth of the recursion. By default, the limit is `1000` nested trigger executions.

### Operational changes

* The metrics scrape HTTP endpoint at `/ _status/vars` will now truncate HELP text at the first sentence, reducing the metadata for metrics with large descriptions. Customers can still access these descriptions via our docs.
* The row-level TTL job now periodically updates the progress meter in the jobs introspection interfaces, including `SHOW JOBS` and the Jobs page in the DB console.
* Telemetry delivery is now considered successful even in cases where we experience a network timeout. This will prevent throttling in cases outside an operator's control.

### DB Console changes

* When activating statement diagnostics in the DB Console, users now have the option to produce a redacted bundle as output. This bundle will omit sensitive data.

### Other changes

* Protected timestamp records for changefeeds now include the `system.users` table. This ensures that user information remains available when running CDC queries against historical data.

### Bug fixes

* Fixed a bug that could cause `DELETE` triggers not to fire on cascading delete, and which could cause `INSERT` triggers to match incorrectly in the same scenario.
* Reduced the duration of partitions in the gossip network when a node crashes in order to eliminate false positives in the `ranges.unavailable` metric.
* When a non-admin user runs `DROP ROLE IF EXISTS` on a user that does not exist, an error is no longer returned.
* Fixed a bug that could cause incorrect query results when the optimizer planned a lookup join on an index containing a column of type `CHAR(N)`, `VARCHAR(N)`, `BIT(N)`, `VARBIT(N)`, or `DECIMAL(M, N)`, and the query held that column constant to a single value (e.g. with an equality filter).
* Fixed an unhandled error that would occur if `DROP SCHEMA` was executed on the `public` schema of the `system` database, or on an internal schema like `pg_catalog` or `information_schema`.
* A bug has been fixed that caused incorrect evaluation of some binary expressions involving `CHAR(N)` values and untyped string literals with trailing whitespace characters. For example, the expression `'f'::CHAR = 'f '` now correctly evaluates to `true`.
* Prevent `ALTER DATABASE` operations that modify the zone config from hanging if an invalid zone config already exists.
* `CREATE SCHEMA` now returns the correct error if a schema name is missing.
* `percentile_cont` and `percentile_disc` aggregate functions now support `float4` data type inputs. Previously, these functions would return an error when used with `float4` values.
* `security.certificate.*` metrics now update correctly when certificates are reloaded during node runtime. Previously, these metrics would not reflect changes to certificates after node startup.
* SQL roles created from LDAP groups that contain periods (.) or hyphens (-) in their Common Names (CN) no longer result in authorization failures.
* LDAP authorization now supports partial group mapping, allowing users to authenticate even when some LDAP groups do not have corresponding CockroachDB roles. Previously, authentication would fail if any LDAP group lacked a matching database role.
* Regional by row tables with uniqueness constraints where the region is not part of those uniqueness constraints and which also contain non-unique indices will now have those constraints properly enforced when modified at `READ COMMITTED` isolation. This bug was introduced in v24.3.0.

### Performance improvements

* The `_status/nodes_ui` API no longer returns unnecessary metrics in its response. This decreases the payload size of the API and improves the load time of various DB Console pages and components.
* PL/pgSQL loops now execute up to 3-4x faster through improved optimization, particularly when they contain subqueries. This enhancement improves performance for routines with many iterations or nested operations.

## v24.3.0

Release Date: November 18, 2024

With the release of CockroachDB v24.3, we've added new capabilities to help you migrate, build, and operate more efficiently. Refer to our summary of the most significant user-facing changes under [Feature Highlights](#v24-3-0-feature-highlights).

### Downloads

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.0.linux-amd64.tgz">cockroach-v24.3.0.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.0.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0.linux-amd64.tgz">cockroach-sql-v24.3.0.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.0.linux-arm64.tgz">cockroach-v24.3.0.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.0.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0.linux-arm64.tgz">cockroach-sql-v24.3.0.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.0.darwin-10.9-amd64.tgz">cockroach-v24.3.0.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.0.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.0.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.0.darwin-11.0-arm64.tgz">cockroach-v24.3.0.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.0.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.0.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.0.windows-6.2-amd64.zip">cockroach-v24.3.0.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.0.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0.windows-6.2-amd64.zip">cockroach-sql-v24.3.0.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach:v24.3.0
```

### Feature highlights

This section summarizes the most significant user-facing changes in v24.3.0 and other features recently made available to CockroachDB users across versions. For a complete list of features and changes in v24.3, including bug fixes and performance improvements, refer to the release notes for previous v24.3 testing releases. You can also search the docs for sections labeled <SearchLink term="new in v24.3">New in v24.3</SearchLink>.

* **Feature categories**
  * [CockroachDB Licensing](#v24-3-0-licensing)
  * [CockroachDB Cloud](#v24-3-0-cloud)
  * [Change Data Capture](#v24-3-0-change-data-capture)
  * [Disaster Recovery](#v24-3-0-disaster-recovery)
  * [SQL](#v24-3-0-sql)
  * [Security](#v24-3-0-security)
  * [Observability](#v24-3-0-observability)
* **Additional information**
  * [Backward-incompatible changes](#v24-3-0-backward-incompatible-changes)
  * [Key cluster setting changes](#v24-3-0-key-cluster-setting-changes)
  * [Deprecations](#v24-3-0-deprecations)
  * [Known limitations](#v24-3-0-known-limitations)
  * [Additional resources](#v24-3-0-additional-resources)

#### CockroachDB Licensing

<table><thead><tr><th class="center-align" colspan="1" rowspan="2">Feature</th><th class="center-align" colspan="5" rowspan="1">Availability</th></tr><tr><th colspan="1" rowspan="1">Ver.</th><th colspan="1" rowspan="1">Self-hosted</th><th colspan="1" rowspan="1">Advanced</th><th colspan="1" rowspan="1">Standard</th><th colspan="1" rowspan="1">Basic</th></tr></thead><tbody><tr><td>Licensing changes<br /><br />All versions of CockroachDB starting from the release date of 24.3.0 onward, including patch fixes for versions 23.1-24.2, are made available under the <a href="https://www.cockroachlabs.com/cockroachdb-software-license">CockroachDB Software License</a>.<br /><br />See below for a summary of license options for self-hosted deployments. All Cloud deployments automatically have a valid Enterprise license.<br /><br />- Enterprise: This paid license allows usage of all CockroachDB features in accordance with the terms specified in the <a href="https://www.cockroachlabs.com/cockroachdb-software-license">CockroachDB Software License</a>.<br /><br />- Enterprise Free: Same functionality as Enterprise, but free of charge for businesses with less than \$10M in annual revenue. Clusters will be throttled after 7 days without sending telemetry. License must be renewed annually.<br /><br />- Enterprise Trial: A 30 day self-service trial license. Telemetry is required during the trial. Clusters will be throttled after 7 days without sending telemetry. Telemetry can be disabled once the cluster is upgraded to a paid Enterprise license.<br /><br />See the <a href="http://cockroachlabs.com/docs/stable/licensing-faqs">Licensing FAQs page</a> for more details on the CockroachDB Software License and license options. You may acquire CockroachDB licenses through the <a href="https://cockroachlabs.cloud/signup?experience=enterprise">CockroachDB Cloud console</a>.</td><td>24.3</td><td class="icon-center"><InlineImage alt="Green checkmark (Yes)" src="https://upload.wikimedia.org/wikipedia/commons/3/3b/Eo_circle_green_checkmark.svg" /></td><td class="icon-center"><InlineImage alt="Green checkmark (Yes)" src="https://upload.wikimedia.org/wikipedia/commons/3/3b/Eo_circle_green_checkmark.svg" /></td><td class="icon-center"><InlineImage alt="Green checkmark (Yes)" src="https://upload.wikimedia.org/wikipedia/commons/3/3b/Eo_circle_green_checkmark.svg" /></td><td class="icon-center"><InlineImage alt="Green checkmark (Yes)" src="https://upload.wikimedia.org/wikipedia/commons/3/3b/Eo_circle_green_checkmark.svg" /></td></tr></tbody></table>

#### CockroachDB Cloud

<table><thead><tr><th class="center-align" colspan="1" rowspan="2">Feature</th><th class="center-align" colspan="5" rowspan="1">Availability</th></tr><tr><th colspan="1" rowspan="1">Ver.</th><th colspan="1" rowspan="1">Self-hosted</th><th colspan="1" rowspan="1">Advanced</th><th colspan="1" rowspan="1">Standard</th><th colspan="1" rowspan="1">Basic</th></tr></thead><tbody><tr><td>Free trial on CockroachDB Cloud<br /><br />New CockroachDB Cloud organizations can benefit from a 30-day free trial that enables you to consume up to \$400 worth of free credits. Get started by signing up for <a href="https://cockroachlabs.cloud/signup">CockroachDB Cloud</a></td><td>All <sup>★</sup></td><td class="icon-center"><InlineImage alt="Gray circle with horizontal white line (No)" src="https://upload.wikimedia.org/wikipedia/commons/b/b9/Eo_circle_grey_white_no-entry.svg" /></td><td class="icon-center"><InlineImage alt="Gray circle with horizontal white line (No)" src="https://upload.wikimedia.org/wikipedia/commons/b/b9/Eo_circle_grey_white_no-entry.svg" /></td><td class="icon-center"><InlineImage alt="Green checkmark (Yes)" src="https://upload.wikimedia.org/wikipedia/commons/3/3b/Eo_circle_green_checkmark.svg" /></td><td class="icon-center"><InlineImage alt="Green checkmark (Yes)" src="https://upload.wikimedia.org/wikipedia/commons/3/3b/Eo_circle_green_checkmark.svg" /></td></tr></tbody></table>

#### Change Data Capture

<table><thead><tr><th class="center-align" colspan="1" rowspan="2">Feature</th><th class="center-align" colspan="5" rowspan="1">Availability</th></tr><tr><th colspan="1" rowspan="1">Ver.</th><th colspan="1" rowspan="1">Self-hosted</th><th colspan="1" rowspan="1">Advanced</th><th colspan="1" rowspan="1">Standard</th><th colspan="1" rowspan="1">Basic</th></tr></thead><tbody><tr><td>IAM authentication support for Amazon MSK Serverless<br /><br /><InternalLink path="change-data-capture-overview">Changefeeds</InternalLink> support IAM Authentication with Amazon MSK Serverless clusters (Amazon Managed Streaming for Apache Kafka). This feature is generally available.</td><td>24.3</td><td class="icon-center"><InlineImage alt="Green checkmark (Yes)" src="https://upload.wikimedia.org/wikipedia/commons/3/3b/Eo_circle_green_checkmark.svg" /></td><td class="icon-center"><InlineImage alt="Green checkmark (Yes)" src="https://upload.wikimedia.org/wikipedia/commons/3/3b/Eo_circle_green_checkmark.svg" /></td><td class="icon-center"><InlineImage alt="Green checkmark (Yes)" src="https://upload.wikimedia.org/wikipedia/commons/3/3b/Eo_circle_green_checkmark.svg" /></td><td class="icon-center"><InlineImage alt="Green checkmark (Yes)" src="https://upload.wikimedia.org/wikipedia/commons/3/3b/Eo_circle_green_checkmark.svg" /></td></tr></tbody></table>

#### Disaster Recovery

<table><thead><tr><th class="center-align" colspan="1" rowspan="2">Feature</th><th class="center-align" colspan="5" rowspan="1">Availability</th></tr><tr><th colspan="1" rowspan="1">Ver.</th><th colspan="1" rowspan="1">Self-hosted</th><th colspan="1" rowspan="1">Advanced</th><th colspan="1" rowspan="1">Standard</th><th colspan="1" rowspan="1">Basic</th></tr></thead><tbody><tr><td>SELECT now supported on PCR standby clusters<br /><br /><a href="https://cockroachlabs.com/docs/v24.3/physical-cluster-replication-overview">Physical cluster replication (PCR)</a> has been enhanced to support <code>SELECT</code> operations on standby clusters. This enables you to scale read performance by running, for example, non-critical workloads on standby clusters.</td><td>24.3</td><td class="icon-center"><InlineImage alt="Green checkmark (Yes)" src="https://upload.wikimedia.org/wikipedia/commons/3/3b/Eo_circle_green_checkmark.svg" /></td><td class="icon-center"><InlineImage alt="Gray circle with horizontal white line (No)" src="https://upload.wikimedia.org/wikipedia/commons/b/b9/Eo_circle_grey_white_no-entry.svg" /></td><td class="icon-center"><InlineImage alt="Gray circle with horizontal white line (No)" src="https://upload.wikimedia.org/wikipedia/commons/b/b9/Eo_circle_grey_white_no-entry.svg" /></td><td class="icon-center"><InlineImage alt="Gray circle with horizontal white line (No)" src="https://upload.wikimedia.org/wikipedia/commons/b/b9/Eo_circle_grey_white_no-entry.svg" /></td></tr><tr><td>Logical Data Replication in Preview<br /><br /><a href="https://cockroachlabs.com/docs/v24.3/logical-data-replication-overview">Logical data replication (LDR)</a> continuously replicates tables between an active source CockroachDB cluster to an active destination CockroachDB cluster. Both source and destination can receive application reads and writes, and participate in bidirectional LDR replication for eventual consistency in the replicating tables.<br /><br />The active-active setup between clusters can provide protection against cluster, datacenter, or region failure while still achieving single-region low latency reads and writes in the individual CockroachDB clusters. Each cluster in an LDR job still benefits individually from multi-active availability with CockroachDB's built-in Raft replication providing data consistency across nodes, zones, and regions.<br /><br />This feature is in Preview.</td><td>24.3</td><td class="icon-center"><InlineImage alt="Green checkmark (Yes)" src="https://upload.wikimedia.org/wikipedia/commons/3/3b/Eo_circle_green_checkmark.svg" /></td><td class="icon-center"><InlineImage alt="Gray circle with horizontal white line (No)" src="https://upload.wikimedia.org/wikipedia/commons/b/b9/Eo_circle_grey_white_no-entry.svg" /></td><td class="icon-center"><InlineImage alt="Gray circle with horizontal white line (No)" src="https://upload.wikimedia.org/wikipedia/commons/b/b9/Eo_circle_grey_white_no-entry.svg" /></td><td class="icon-center"><InlineImage alt="Gray circle with horizontal white line (No)" src="https://upload.wikimedia.org/wikipedia/commons/b/b9/Eo_circle_grey_white_no-entry.svg" /></td></tr></tbody></table>

#### SQL

<table><thead><tr><th class="center-align" colspan="1" rowspan="2">Feature</th><th class="center-align" colspan="5" rowspan="1">Availability</th></tr><tr><th colspan="1" rowspan="1">Ver.</th><th colspan="1" rowspan="1">Self-hosted</th><th colspan="1" rowspan="1">Advanced</th><th colspan="1" rowspan="1">Standard</th><th colspan="1" rowspan="1">Basic</th></tr></thead><tbody><tr><td>User-defined functions and stored procedures support SECURITY DEFINER<br /><br />You can create or alter a <a href="https://cockroachlabs.com/docs/v24.3/user-defined-functions">user-defined function (UDF)</a> or <a href="https://cockroachlabs.com/docs/v24.3/stored-procedures">stored procedure</a> with <code>\[EXTERNAL] SECURITY DEFINER</code> instead of the default <code>\[EXTERNAL] SECURITY INVOKER</code>. With <a href="https://cockroachlabs.com/docs/v24.3/create-function#create-a-security-definer-function"><code>\[SECURITY DEFINER]</code></a>, the privileges of the owner are checked when the UDF or stored procedure is executed, rather than the privileges of the executor. The <code>EXTERNAL</code> keyword is optional and exists for SQL language conformity.</td><td>24.3</td><td class="icon-center"><InlineImage alt="Green checkmark (Yes)" src="https://upload.wikimedia.org/wikipedia/commons/3/3b/Eo_circle_green_checkmark.svg" /></td><td class="icon-center"><InlineImage alt="Green checkmark (Yes)" src="https://upload.wikimedia.org/wikipedia/commons/3/3b/Eo_circle_green_checkmark.svg" /></td><td class="icon-center"><InlineImage alt="Green checkmark (Yes)" src="https://upload.wikimedia.org/wikipedia/commons/3/3b/Eo_circle_green_checkmark.svg" /></td><td class="icon-center"><InlineImage alt="Green checkmark (Yes)" src="https://upload.wikimedia.org/wikipedia/commons/3/3b/Eo_circle_green_checkmark.svg" /></td></tr><tr><td>CockroachDB now supports triggers in Preview<br /><br />CockroachDB now supports <a href="https://cockroachlabs.com/docs/v24.3/triggers">triggers</a>. Triggers allow automatic execution of specified functions in response to specified events on a particular table or view. They can be used for automating tasks, enforcing business rules, and maintaining data integrity. This feature is in Preview.</td><td>24.3</td><td class="icon-center"><InlineImage alt="Green checkmark (Yes)" src="https://upload.wikimedia.org/wikipedia/commons/3/3b/Eo_circle_green_checkmark.svg" /></td><td class="icon-center"><InlineImage alt="Green checkmark (Yes)" src="https://upload.wikimedia.org/wikipedia/commons/3/3b/Eo_circle_green_checkmark.svg" /></td><td class="icon-center"><InlineImage alt="Green checkmark (Yes)" src="https://upload.wikimedia.org/wikipedia/commons/3/3b/Eo_circle_green_checkmark.svg" /></td><td class="icon-center"><InlineImage alt="Green checkmark (Yes)" src="https://upload.wikimedia.org/wikipedia/commons/3/3b/Eo_circle_green_checkmark.svg" /></td></tr></tbody></table>

#### Security

<table><thead><tr><th class="center-align" colspan="1" rowspan="2">Feature</th><th class="center-align" colspan="5" rowspan="1">Availability</th></tr><tr><th colspan="1" rowspan="1">Ver.</th><th colspan="1" rowspan="1">Self-hosted</th><th colspan="1" rowspan="1">Advanced</th><th colspan="1" rowspan="1">Standard</th><th colspan="1" rowspan="1">Basic</th></tr></thead><tbody><tr><td>LDAP support in Preview<br /><br />CockroachDB supports <InternalLink path="ldap-authentication">authentication and authorization using LDAP-compatible directory services</InternalLink>, such as Active Directory and Microsoft Entra ID. This allows you to integrate CockroachDB clusters with your organization's existing identity infrastructure for centralized user management and access control. This feature is available in Preview.</td><td>24.3</td><td class="icon-center"><InlineImage alt="Green checkmark (Yes)" src="https://upload.wikimedia.org/wikipedia/commons/3/3b/Eo_circle_green_checkmark.svg" /></td><td class="icon-center"><InlineImage alt="Gray circle with horizontal white line (No)" src="https://upload.wikimedia.org/wikipedia/commons/b/b9/Eo_circle_grey_white_no-entry.svg" /></td><td class="icon-center"><InlineImage alt="Gray circle with horizontal white line (No)" src="https://upload.wikimedia.org/wikipedia/commons/b/b9/Eo_circle_grey_white_no-entry.svg" /></td><td class="icon-center"><InlineImage alt="Gray circle with horizontal white line (No)" src="https://upload.wikimedia.org/wikipedia/commons/b/b9/Eo_circle_grey_white_no-entry.svg" /></td></tr></tbody></table>

#### Observability

<table><thead><tr><th class="center-align" colspan="1" rowspan="2">Feature</th><th class="center-align" colspan="5" rowspan="1">Availability</th></tr><tr><th colspan="1" rowspan="1">Ver.</th><th colspan="1" rowspan="1">Self-hosted</th><th colspan="1" rowspan="1">Advanced</th><th colspan="1" rowspan="1">Standard</th><th colspan="1" rowspan="1">Basic</th></tr></thead><tbody><tr><td>Improved usability for the DB Console Metrics page<br /><br />Introduced several enhancements to the DB Console Metrics page to support large scale clusters, including the following:<br /><br />- Added on-hover cursor support that will display the closest time-series value and highlight the node in the legend to allow users to quickly pinpoint outliers.<br /><br />- Improved legend visibillity and made legends scrollable to improve usability and reduce vertical scrolling.</td><td>24.3</td><td class="icon-center"><InlineImage alt="Green checkmark (Yes)" src="https://upload.wikimedia.org/wikipedia/commons/3/3b/Eo_circle_green_checkmark.svg" /></td><td class="icon-center"><InlineImage alt="Green checkmark (Yes)" src="https://upload.wikimedia.org/wikipedia/commons/3/3b/Eo_circle_green_checkmark.svg" /></td><td class="icon-center"><InlineImage alt="Gray circle with horizontal white line (No)" src="https://upload.wikimedia.org/wikipedia/commons/b/b9/Eo_circle_grey_white_no-entry.svg" /></td><td class="icon-center"><InlineImage alt="Gray circle with horizontal white line (No)" src="https://upload.wikimedia.org/wikipedia/commons/b/b9/Eo_circle_grey_white_no-entry.svg" /></td></tr><tr><td>Improved peformance and scalability for the DB Console Databases pages<br /><br />CockroachDB now caches the data that is surfaced in the Databases page. This enhances the performance and scalability of the Databases page for large-scale clusters.</td><td>24.3</td><td class="icon-center"><InlineImage alt="Green checkmark (Yes)" src="https://upload.wikimedia.org/wikipedia/commons/3/3b/Eo_circle_green_checkmark.svg" /></td><td class="icon-center"><InlineImage alt="Green checkmark (Yes)" src="https://upload.wikimedia.org/wikipedia/commons/3/3b/Eo_circle_green_checkmark.svg" /></td><td class="icon-center"><InlineImage alt="Gray circle with horizontal white line (No)" src="https://upload.wikimedia.org/wikipedia/commons/b/b9/Eo_circle_grey_white_no-entry.svg" /></td><td class="icon-center"><InlineImage alt="Gray circle with horizontal white line (No)" src="https://upload.wikimedia.org/wikipedia/commons/b/b9/Eo_circle_grey_white_no-entry.svg" /></td></tr><tr><td>Improved admission control observability<br /><br />The DB Console Overload page now provides additional metrics to help identify overload in the system. Graphs and metrics on this page provide quick signals on which resource is exhausted and whether it is due to background activity or foreground.<br /><br />There are now 4 graphs for admission queue delay:<br /><br />1. Foreground (regular) CPU work<br /><br />2. Store (IO) work<br /><br />3. Background (elastic) CPU work<br /><br />4. Replication admission control (store overload on replicas)</td><td>24.3</td><td class="icon-center"><InlineImage alt="Green checkmark (Yes)" src="https://upload.wikimedia.org/wikipedia/commons/3/3b/Eo_circle_green_checkmark.svg" /></td><td class="icon-center"><InlineImage alt="Green checkmark (Yes)" src="https://upload.wikimedia.org/wikipedia/commons/3/3b/Eo_circle_green_checkmark.svg" /></td><td class="icon-center"><InlineImage alt="Gray circle with horizontal white line (No)" src="https://upload.wikimedia.org/wikipedia/commons/b/b9/Eo_circle_grey_white_no-entry.svg" /></td><td class="icon-center"><InlineImage alt="Gray circle with horizontal white line (No)" src="https://upload.wikimedia.org/wikipedia/commons/b/b9/Eo_circle_grey_white_no-entry.svg" /></td></tr></tbody></table>

<table><thead><tr><th colspan="2" id="feature-detail-key">Feature detail key</th></tr></thead><tbody><tr><td>★</td><td>Features marked "All\*" were recently made available in the CockroachDB Cloud platform. They are available for all supported versions of CockroachDB, under the deployment methods specified in their row under Availability.</td></tr><tr><td>★★</td><td>Features marked "All\*\*" were recently made available via tools maintained outside of the CockroachDB binary. They are available to use with all supported versions of CockroachDB, under the deployment methods specified in their row under Availability.</td></tr><tr><td><InlineImage alt="Green checkmark (Yes)" src="https://upload.wikimedia.org/wikipedia/commons/3/3b/Eo_circle_green_checkmark.svg" /></td><td>Feature is available for this deployment method of CockroachDB as specified in the icon’s column: CockroachDB Self-hosted, CockroachDB Advanced, CockroachDB Standard, or CockroachDB Basic.</td></tr><tr><td><InlineImage alt="Gray circle with horizontal white line (No)" src="https://upload.wikimedia.org/wikipedia/commons/b/b9/Eo_circle_grey_white_no-entry.svg" /></td><td>Feature is not available for this deployment method of CockroachDB as specified in the icon’s column: CockroachDB Self-hosted, CockroachDB Advanced, CockroachDB Standard, or CockroachDB Basic.</td></tr></tbody></table>

#### Backward-incompatible changes

Before <InternalLink version="v24.3" path="upgrade-cockroach-version">upgrading to CockroachDB v24.3</InternalLink>, be sure to review the following backward-incompatible changes, as well as [key cluster setting changes](#v24-3-0-cluster-settings), and adjust your deployment as necessary.

If you plan to upgrade to v24.3 directly from v24.1 and skip v24.2, be sure to also review the <InternalLink version="v24.3" path="releases/v24.2">v24.2 release notes</InternalLink> for backward-incompatible changes from v24.1.

* Upgrading to v24.3 is blocked if no <InternalLink version="v24.3" path="licensing-faqs">license</InternalLink> is installed, or if a trial/free license is installed with telemetry disabled.

#### Features that Require Upgrade Finalization

During a major-version upgrade, certain features and performance improvements may not be available until the upgrade is finalized.

* A cluster must have an <InternalLink version="v24.3" path="licensing-faqs#set-a-license">Enterprise license</InternalLink> or a <InternalLink version="v24.3" path="licensing-faqs#obtain-a-license">trial license</InternalLink> set before an upgrade to v24.3 can be finalized.
* New clusters that are initialized for the first time on v24.3, and clusters that are upgraded to v24.3 will now have a <InternalLink version="v24.3" path="configure-replication-zones">zone config</InternalLink> defined for the `timeseries` range if it does not already exist, which specifies the value for `gc.ttlseconds`, but inherits all other attributes from the zone config for the `default` range.

#### Key Cluster Setting Changes

Changes to <InternalLink version="v24.3" path="cluster-settings">cluster settings</InternalLink> should be reviewed prior to upgrading. New default cluster setting values will be used unless you have manually set a value for a setting. This can be confirmed by running the SQL statement `SELECT * FROM system.settings` to view the non-default settings.

* [Settings added](#v24-3-0-settings-added)
* [Settings with changed defaults](#v24-3-0-settings-with-changed-defaults)
* [Settings with changed visibility](#v24-3-0-settings-with-changed-visibility)
* [Additional setting changes](#v24-3-0-additional-cluster-setting-changes)

##### Settings added

* `goschedstats.always_use_short_sample_period.enabled`: when set to `true`, helps to prevent unnecessary queueing due to CPU <InternalLink version="v24.3" path="admission-control">admission control</InternalLink> by forcing `1ms` sampling of runnable queue lengths. The default value is `false`.

* `kv.range.range_size_hard_cap`: allows you to limit how large a <InternalLink version="v24.3" path="architecture/overview">range</InternalLink> can grow before <InternalLink version="v24.3" path="common-errors#split-failed-while-applying-backpressure-are-rows-updated-in-a-tight-loop">backpressure</InternalLink> is applied. This can help to mitigate against a situation where a range cannot be split, such as when a range is comprised of a single key due to an issue with the schema or workload pattern, or a bug in client application code. The default is `8 GiB`, 16 times the default maximum range size. If you have changed the maximum range size, you may need to adjust this cluster setting or reduce the range size.

* `kvadmission.flow_controller.token_reset_epoch`: can be used to refill replication <InternalLink version="v24.3" path="admission-control">admission control</InternalLink> v2 tokens. This setting is marked as `reserved`, as it is not supported for tuning, by default. Use it only after consultation with your account team.

* `kvadmission.store.snapshot_ingest_bandwidth_control.enabled`: enables a new <InternalLink version="v24.3" path="admission-control">Admission Control</InternalLink> integration for pacing snapshot ingest traffic based on disk bandwidth. It requires provisioned bandwidth to be set for the store, or the cluster through the setting `kvadmission.store.provisioned_bandwidth`, for it to take effect.

* Settings have been added which control the refresh behavior for the cached data in the Databases page of the <InternalLink version="v24.3" path="ui-overview">DB Console</InternalLink>:
  * `obs.tablemetadatacache.data_valid_duration`: the duration for which the data in `system.table_metadata` is considered valid before a cache reset will occur. Default: 20 minutes.
  * `obs.tablemetadatacache.automatic_updates.enabled`: whether to automatically update the cache according the validity interval. Default: `false`.

* `server.jwt_authentication.client.timeout`: the HTTP client timeout for external calls made during <InternalLink version="v24.3" path="sso-sql">JWT authentication</InternalLink>.

* Partial <InternalLink version="v24.3" path="cost-based-optimizer#table-statistics">statistics</InternalLink> can now be automatically collected at the extremes of indexes when a certain fraction and minimum number of rows are stale (by default 5% and 100%, respectively). These can be configured with new <InternalLink version="v24.3" path="alter-table#set-and-reset-storage-parameters">table storage parameters</InternalLink> and <InternalLink version="v24.3" path="cluster-settings">cluster settings</InternalLink>:
  * `sql.stats.automatic_partial_collection.enabled` (table parameter `sql_stats_automatic_partial_collection_enabled` ) - both default to `false`.
  * `sql.stats.automatic_partial_collection.min_stale_rows` (table parameter `sql_stats_automatic_partial_collection_min_stale_rows` ) - both default to `100`.
  * `sql.stats.automatic_partial_collection.fraction_stale_rows` (table parameter `sql_stats_automatic_partial_collection_fraction_stale_rows` ) - both default to `0.05`.

* `sql.stats.histogram_buckets.include_most_common_values.enabled`: controls whether common values are included in <InternalLink version="v24.3" path="cost-based-optimizer#control-histogram-collection">histogram collection</InternalLink> for use by the <InternalLink version="v24.3" path="cost-based-optimizer">optimizer</InternalLink>. When enabled, histogram buckets will represent the most common sampled values as upper bounds.

* `sql.stats.histogram_buckets.max_fraction_most_common_values`: controls the fraction of buckets that can be adjusted to include common values. Defaults to `0.1`.

* `sql.txn.repeatable_read_isolation.enabled`: defaults to `false`. When set to `true`, the following statements configure transactions to run under `REPEATABLE READ` isolation, rather than being automatically interpreted as <InternalLink version="v24.3" path="demo-serializable">`SERIALIZABLE`</InternalLink>:
  * `BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ`
  * `SET TRANSACTION ISOLATION LEVEL REPEATABLE READ`
  * `SET default_transaction_isolation = 'repeatable read'`
  * `SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL REPEATABLE READ`

##### Settings with changed defaults

* The default for `sql.defaults.large_full_scan_rows` is now `0`. If a user is using session var values inherited from these settings, when `sql.defaults.disallow_full_table_scans.enabled` is set to `true`: all full table scans are now disallowed by default, even full scans on very small tables, but if `sql.defaults.large_full_scan_rows` is set to a number greater than `0`, full scans are allowed if they are estimated to read fewer than that number of rows.
  * **Note:** All `sql.defaults` settings are maintained for backward compatibility. We recommend using `ALTER ROLE`, instead, to set the corresponding session vars for users (in this case, `large_full_scan_rows` and `disallow_full_table_scans` ). For more information, see the note on the <InternalLink version="v24.3" path="cluster-settings#settings">Cluster Settings table</InternalLink>.

* Increased the per-vCPU concurrency limits for KV operations:
  * The default for `kv.dist_sender.concurrency_limit` (reserved) has changed from `64` per vCPU to `384` per vCPU. (In v24.3, it is possible to estimate the current concurrency level using the new metric `distsender.batches.async.in_progress`.)
  * The default for `kv.streamer.concurrency_limit` (reserved) has changed from `8` per vCPU to `96` per vCPU.
  * These are `reserved` settings, not intended for tuning by customers.
  * When running `SHOW CLUSTER SETTING`, the displayed setting values will depend on the node's number of vCPUs.
  * Contact Support if the number of `distsender.batches.async.throttled` requests is persistently greater than zero.

* The default for `server.oidc_authentication.client.timeout`, which sets the client timeout for external calls made during OIDC authentication, has changed from `30s` to `15s`.

##### Settings with changed visibility

The following settings are now marked `public` after previously being `reserved`. Reserved settings are not documented and their tuning by customers is not supported.

* Cluster settings for configuring <InternalLink version="v24.3" path="backup#cluster-settings-for-cloud-storage">rate limiting for traffic to cloud storage</InternalLink> are now public.
  * These settings have the prefix `cloudstorage` followed by:
    1. a provider or protocol ( `azure`, `gs`, `s3`, `http`, `nodelocal`, `userfile`, or `nullsink` )
    2. `read` or `write`
    3. `node_burst_limit` or `node_rate_limit`
  * For example, `cloudstorage.s3.write.node_burst_limit`.
* JWT authentication have been made `public`.
  * `server.jwt_authentication.audience`
  * `server.jwt_authentication.claim`
  * `server.jwt_authentication.enabled`
  * `server.jwt_authentication.issuers.custom_ca`
  * `server.jwt_authentication.jwks`
  * `server.jwt_authentication.jwks_auto_fetch.enabled`
* Settings with the prefix `server.ldap_authentication` have been made `public` with the Preview release of LDAP support:
  * `server.ldap_authentication.client.tls_certificate`
  * `server.ldap_authentication.client.tls_key`
  * `server.ldap_authentication.domain.custom_ca`

##### Additional cluster setting changes

* The setting `server.host_based_authentication.configuration` now supports LDAP configuration, and its value is now redacted for non-admin users when the `server.redact_sensitive_settings.enabled` is set to `true`.
* The settings <InternalLink version="v24.3" path="cluster-settings">`enterprise.license`</InternalLink> and <InternalLink version="v24.3" path="cluster-settings">`diagnostics.reporting.enabled`</InternalLink> now have additional validation. To disable diagnostics reporting, the cluster must also have a license that is not an <InternalLink version="v24.3" path="licensing-faqs">Enterprise Trial or Enterprise Free license</InternalLink>. Additionally, to set one of these licenses, the cluster must already be submitting diagnostics information.
* `sql.defaults.vectorize` now supports the value `1` (in addition to `0` and `2`) to indicate `on`, to address a bug that could cause new connections to fail after an upgrade with a message referencing an `invalid value for parameter "vectorize": "unknown(1)"`.
* The description of the setting <InternalLink version="v24.3" path="cluster-settings">`changefeed.sink_io_workers`</InternalLink> has been updated to reflect all of the <InternalLink version="v24.3" path="changefeed-sinks">sinks</InternalLink> that support the setting: the batching versions of webhook, pubsub, and kafka sinks that are enabled by `changefeed.new_<sink type>_sink_enabled`.

#### Deprecations

The following deprecations are announced in v24.3. If you plan to upgrade to v24.3 directly from v24.1 and skip v24.2, be sure to also review the <InternalLink version="v24.3" path="releases/v24.2">v24.2 release notes</InternalLink> for deprecations.

* The session variable <InternalLink version="v24.3" path="session-variables">`enforce_home_region_follower_reads_enabled`</InternalLink> is now deprecated, and will be removed in a future release. The related session variable <InternalLink version="v24.3" path="session-variables">`enforce_home_region`</InternalLink> is **not** deprecated.

#### Known limitations

For information about new and unresolved limitations in CockroachDB v24.3, with suggested workarounds where applicable, refer to <InternalLink version="v24.3" path="known-limitations">Known Limitations</InternalLink>.

#### Additional resources

<table><thead><tr><th>Resource</th><th>Topic</th><th>Description</th></tr></thead><tbody><tr><td>Cockroach University</td><td><a href="https://university.cockroachlabs.com/courses/course-v1:crl+intro-to-distributed-sql-and-cockroachdb+self-paced/about">Introduction to Distributed SQL and CockroachDB</a></td><td>This course introduces the core concepts behind distributed SQL databases and describes how CockroachDB fits into this landscape. You will learn what differentiates CockroachDB from both legacy SQL and NoSQL databases and how CockroachDB ensures consistent transactions without sacrificing scale and resiliency. You'll learn about CockroachDB's seamless horizontal scalability, distributed transactions with strict ACID guarantees, and high availability and resilience.</td></tr><tr><td>Cockroach University</td><td><a href="https://university.cockroachlabs.com/courses/course-v1:crl+practical-first-steps-with-crdb+self-paced/about">Practical First Steps with CockroachDB</a></td><td>This course will give you the tools you need to get started with CockroachDB. During the course, you will learn how to spin up a cluster, use the Admin UI to monitor cluster activity, and use SQL shell to solve a set of hands-on exercises.</td></tr><tr><td>Cockroach University</td><td><a href="https://university.cockroachlabs.com/courses/course-v1:crl+client-side-txn-handling+self-paced/about">Enterprise Application Development with CockroachDB</a></td><td>This course is the first in a series designed to equip you with best practices for mastering application-level (client-side) transaction management in CockroachDB. We'll dive deep on common differences between CockroachDB and legacy SQL databases and help you sidestep challenges you might encounter when migrating to CockroachDB from Oracle, PostgreSQL, and MySQL.</td></tr><tr><td>Cockroach University</td><td><a href="https://university.cockroachlabs.com/courses/course-v1:crl+intro-to-resilience-in-multi-region+self-paced/about">Building a Highly Resilient Multi-region Database using CockroachDB</a></td><td>This course is part of a series introducing solutions to running low-latency, highly resilient applications for data-intensive workloads on CockroachDB. In this course we focus on surviving large-scale infrastructure failures like losing an entire cloud region without losing data during recovery. We'll show you how to use CockroachDB survival goals in a multi-region cluster to implement a highly resilient database that survives node or network failures across multiple regions with zero data loss.</td></tr><tr><td>Docs</td><td><InternalLink version="molt" path="migration-overview">Migration Overview</InternalLink></td><td>This page summarizes the steps of migrating a database to CockroachDB, which include testing and updating your schema to work with CockroachDB, moving your data into CockroachDB, and testing and updating your application.</td></tr><tr><td>Docs</td><td><InternalLink path="architecture/overview">Architecture Overview</InternalLink></td><td>This page provides a starting point for understanding the architecture and design choices that enable CockroachDB's scalability and consistency capabilities.</td></tr><tr><td>Docs</td><td><InternalLink path="sql-feature-support">SQL Feature Support</InternalLink></td><td>The page summarizes the standard SQL features CockroachDB supports as well as common extensions to the standard.</td></tr><tr><td>Docs</td><td><InternalLink path="change-data-capture-overview">Change Data Capture Overview</InternalLink></td><td>This page summarizes CockroachDB's data streaming capabilities. Change data capture (CDC) provides efficient, distributed, row-level changefeeds into a configurable sink for downstream processing such as reporting, caching, or full-text indexing.</td></tr><tr><td>Docs</td><td><InternalLink path="backup-architecture">Backup Architecture</InternalLink></td><td>This page describes the backup job workflow with a high-level overview, diagrams, and more details on each phase of the job.</td></tr></tbody></table>

## v24.3.0-rc.1

Release Date: November 18, 2024

### Downloads

<Danger>
  CockroachDB v24.3.0-rc.1 is a testing release. Testing releases are intended for testing and experimentation only, and are not qualified for production environments and not eligible for support or uptime SLA commitments.
</Danger>

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-rc.1.linux-amd64.tgz">cockroach-v24.3.0-rc.1.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-rc.1.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-rc.1.linux-amd64.tgz">cockroach-sql-v24.3.0-rc.1.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-rc.1.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-rc.1.linux-arm64.tgz">cockroach-v24.3.0-rc.1.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-rc.1.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-rc.1.linux-arm64.tgz">cockroach-sql-v24.3.0-rc.1.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-rc.1.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-rc.1.darwin-10.9-amd64.tgz">cockroach-v24.3.0-rc.1.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-rc.1.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-rc.1.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.0-rc.1.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-rc.1.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-rc.1.darwin-11.0-arm64.tgz">cockroach-v24.3.0-rc.1.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-rc.1.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-rc.1.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.0-rc.1.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-rc.1.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-rc.1.windows-6.2-amd64.zip">cockroach-v24.3.0-rc.1.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-rc.1.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-rc.1.windows-6.2-amd64.zip">cockroach-sql-v24.3.0-rc.1.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-rc.1.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach-unstable:v24.3.0-rc.1
```

### Security updates

* All cluster settings that accept strings are now fully redacted when transmitted as part of CockroachDB's diagnostics telemetry. This payload includes a record of modified cluster settings and their values when they are not strings. Customers who previously applied the mitigations in Technical Advisory 133479 can safely set the value of cluster setting `server.redact_sensitive_settings.enabled` to false and turn on diagnostic reporting via the `diagnostics.reporting.enabled` cluster setting without leaking sensitive cluster settings values.

### SQL language changes

* Row-level `AFTER` triggers can now be executed in response to mutations on a table. Row-level `AFTER` triggers fire after checks and cascades have completed for the query.
* Cascades can now execute row-level `BEFORE` triggers. By default, attempting to modify or eliminate the cascading `UPDATE` or `DELETE` operation results in a `Triggered Data Change Violation` error. To bypass this error, you can set the `unsafe_allow_triggers_modifying_cascades` query option to `true`. This could result in constraint violations.
* String constants can now be compared with collated strings.

### Operational changes

* The `kvadmission.low_pri_read_elastic_control.enabled` cluster setting has been removed, because all bulk requests are now subject to elastic admission control admission by default.
* The following metrics have been added for Logic Data Replication (LDR):
  * `logical_replication.catchup_ranges`: the number of source side ranges conducting catchup scans.
  * `logical_replication.scanning_ranges`: the number source side ranges conducting initial scans.
  * In the DB Console, these metrics may not be accurate if multiple LDR jobs are running. The metrics are accurate when exported from the Prometheus endpoint.
* The backup and restore syntax update of `cockroach workload` which was introduced in #has been reverted.

### DB Console changes

* After finalizing an upgrade to v24.3, an updated version of the **Databases** page will be available.
* Users with the `CONNECT` privilege can now access the **Databases** page.

### Bug fixes

* Fixed a bug where an LDAP connection would be closed by the server and would not be retried by CockroachDB.
* Fixed a bug that prevented LDAP authorization from successfully assigning CockroachDB roles to users when the source group name contained periods or hyphens.
* Fixed a bug introduced in v22.2 that could cause significantly increased query latency while executing queries with index or lookup joins when the ordering needs to be maintained
* Fixed a bug where `UPSERT` statements on regional by row tables under non-serializable isolations would not display show uniqueness constraints in `EXPLAIN` output. Even when not displayed, the constraints were enforced.
* Fixed a bug where uniqueness constraints constraints enforced with tombstone writes were not shown in the output of `EXPLAIN (OPT)`.
* Fixed a bug where `DISCARD ALL` statements were erroneously counted under the `sql.ddl.count` metric instead of the `sql.misc.count` metric.
* Fixed a bug that could cause a backup or restore operation on AWS to fail with a KMS error due to a missing `default` shared config.
* Fixed a bug that could prevent a user from running schema change operations on a restored table that was previously apart of a Logic Data Replication (LDR) stream.

### Performance improvements

* The optimizer now generates more efficient query plans involving inverted indexes for queries with a conjunctive filter on the same JSON or ARRAY column. For example:

  ```sql theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
  SELECT * FROM t WHERE j->'a' = '10' AND j->'b' = '20'
  ```

### Build changes

* Upgraded to Go 1.22.8

## v24.3.0-beta.3

Release Date: November 5, 2024

### Downloads

<Danger>
  CockroachDB v24.3.0-beta.3 is a testing release. Testing releases are intended for testing and experimentation only, and are not qualified for production environments and not eligible for support or uptime SLA commitments.
</Danger>

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-beta.3.linux-amd64.tgz">cockroach-v24.3.0-beta.3.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-beta.3.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-beta.3.linux-amd64.tgz">cockroach-sql-v24.3.0-beta.3.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-beta.3.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-beta.3.linux-arm64.tgz">cockroach-v24.3.0-beta.3.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-beta.3.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-beta.3.linux-arm64.tgz">cockroach-sql-v24.3.0-beta.3.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-beta.3.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-beta.3.darwin-10.9-amd64.tgz">cockroach-v24.3.0-beta.3.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-beta.3.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-beta.3.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.0-beta.3.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-beta.3.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-beta.3.darwin-11.0-arm64.tgz">cockroach-v24.3.0-beta.3.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-beta.3.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-beta.3.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.0-beta.3.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-beta.3.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-beta.3.windows-6.2-amd64.zip">cockroach-v24.3.0-beta.3.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-beta.3.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-beta.3.windows-6.2-amd64.zip">cockroach-sql-v24.3.0-beta.3.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-beta.3.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach-unstable:v24.3.0-beta.3
```

### Security updates

* Client authentication errors using LDAP now log more details to help with troubleshooting authentication and authorization issues.

### SQL changes

* <InternalLink version="v24.3" path="physical-cluster-replication-overview">Physical Cluster Replication</InternalLink> reader catalogs now bypass AOST timestamps using the `bypass_pcr_reader_catalog_aost` session variable, which can be used to modify cluster settings within the reader.

### Operational changes

* Added a timer for inner <InternalLink version="v24.3" path="changefeed-sinks">changefeed sink</InternalLink> client flushes.
* Rows replicated by Logical Data Replication in `immediate` mode are now considered in the decision to recompute SQL table statistics.
* The new cluster setting `kvadmission.flow_controller.token_reset_epoch` can be used to refill replication <InternalLink version="v24.3" path="admission-control">admission control</InternalLink> v2 tokens. This is an advanced setting. Use it only after consultation with your account team.
* The new cluster setting `goschedstats.always_use_short_sample_period.enabled`, when set to `true`, helps to prevent unnecessary queueing due to CPU <InternalLink version="v24.3" path="admission-control">admission control</InternalLink>s.

### DB Console changes

* In <InternalLink version="v24.3" path="ui-databases-page">Database</InternalLink> pages, the **Refresh** tooltip now includes details about the progress of cache updates and when the job started.

### Bug fixes

* Fixed a bug where <InternalLink version="v24.3" path="changefeed-sinks">changefeed sink</InternalLink> ) timers were not correctly registered with the metric system.
* Fixed a bug that could cause new connections to fail with the following error after upgrading: `ERROR: invalid value for parameter "vectorize": "unknown(1)" SQLSTATE: 22023 HINT: Available values: off,on,experimental_always`. To encounter this bug, the cluster must have:
  1. Run on version v21.1 at some point in the past
  2. Run `SET CLUSTER SETTING sql.defaults.vectorize = 'on';` while running v21.1.
  3. **Not** set `sql.defaults.vectorize` after upgrading past v21.1 4.
  4. Subsequently upgraded to v24.2.upgraded all the way to v24.2.

     To detect this bug, run the following query:

     ```sql theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
     SELECT * FROM system.settings WHERE name = 'sql.defaults.vectorize
     ```

     If the command returns `1` instead of `on`, run the following statement before upgrading.

     ```sql theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
     RESET CLUSTER SETTING sql.defaults.vectorize;
     ```

     `1` is now allowed as a value for this setting, and is equivalent to `on`.
* Fixed a bug in v22.2.13+, v23.1.9+, and v23.2 that could cause the internal error `interface conversion: coldata.Column is` in an edge case.
* Fixed a bug introduced in v20.1.0 that could cause erroneous `NOT NULL` constraint violation errors to be logged during `UPSERT` and `INSERT` statements with the `ON CONFLICT...DO UPDATE` clause that update an existing row and a subset of columns that did not include a `NOT NULL` column of the table.
* Fixed a that could cache and reuse a non-reusable query plan, such as a plan for a DDL or `SHOW` statement, when `plan_cache_mode` was set to `auto` or `force_generic_plan`, which are not the default options.
* Fixed an unhandled error that could occur while running the command `REVOKE... ON SEQUENCE FROM... {user}` on an object that is not a sequence.
* Fixed a panic that could occur while running a `CREATE TABLE AS` statement that included a <InternalLink version="v24.3" path="create-sequence">sequence</InternalLink> with an invalid function overload.

## v24.3.0-beta.2

Release Date: October 28, 2024

### Downloads

<Danger>
  CockroachDB v24.3.0-beta.2 is a testing release. Testing releases are intended for testing and experimentation only, and are not qualified for production environments and not eligible for support or uptime SLA commitments.
</Danger>

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-beta.2.linux-amd64.tgz">cockroach-v24.3.0-beta.2.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-beta.2.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-beta.2.linux-amd64.tgz">cockroach-sql-v24.3.0-beta.2.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-beta.2.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-beta.2.linux-arm64.tgz">cockroach-v24.3.0-beta.2.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-beta.2.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-beta.2.linux-arm64.tgz">cockroach-sql-v24.3.0-beta.2.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-beta.2.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-beta.2.darwin-10.9-amd64.tgz">cockroach-v24.3.0-beta.2.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-beta.2.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-beta.2.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.0-beta.2.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-beta.2.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-beta.2.darwin-11.0-arm64.tgz">cockroach-v24.3.0-beta.2.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-beta.2.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-beta.2.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.0-beta.2.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-beta.2.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-beta.2.windows-6.2-amd64.zip">cockroach-v24.3.0-beta.2.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-beta.2.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-beta.2.windows-6.2-amd64.zip">cockroach-sql-v24.3.0-beta.2.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-beta.2.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach-unstable:v24.3.0-beta.2
```

### SQL language changes

* If a table is the destination of a logical data replication stream, then only schema change statements that are deemed safe are allowed on the table. Safe statements are those that do not result in a rebuild of the primary <InternalLink version="v24.3" path="indexes">index</InternalLink> and do not create an index on a virtual <InternalLink version="v24.3" path="computed-columns">computed column</InternalLink>.

### Operational changes

* The two new metrics `sql.crud_query.count` and `sql.crud_query.started.count` measure the number of <InternalLink version="v24.3" path="insert">`INSERT`</InternalLink> / <InternalLink version="v24.3" path="update">`UPDATE`</InternalLink> / <InternalLink version="v24.3" path="delete">`DELETE`</InternalLink> / <InternalLink version="v24.3" path="selection-queries">`SELECT`</InternalLink> queries executed and started respectively.
* When creating a logical data replication stream, any <InternalLink version="v24.3" path="create-type">user-defined types</InternalLink> in the source and destination are now checked for equivalency. This allows for creating a stream that handles user-defined types without needing to use the `WITH SKIP SCHEMA CHECK` option as long as the stream uses `mode = immediate`.
* Logical data replication streams that reference tables with <InternalLink version="v24.3" path="create-type">user-defined types</InternalLink> can now be created with the `mode = immediate` option.

### DB Console changes

* The **SQL Statements** graph on the <InternalLink version="v24.3" path="ui-overview-dashboard">**Overview**</InternalLink> and <InternalLink version="v24.3" path="ui-sql-dashboard">**SQL**</InternalLink> dashboard pages in DB Console has been renamed <InternalLink version="v24.3" path="ui-overview-dashboard#sql-queries-per-second">**SQL Queries Per Second**</InternalLink> and now shows **Total Queries** as a general Queries Per Second (QPS) metric.
* Due to the inaccuracy of the **Range Count** column on the <InternalLink version="v24.3" path="ui-databases-page">**Databases** page</InternalLink> and the cost incurred to fetch the correct range count for every database in a cluster, this data will no longer be visible. This data is still available via a <InternalLink version="v24.3" path="show-ranges">`SHOW RANGES`</InternalLink> query.

### Bug fixes

* Users with the <InternalLink version="v24.3" path="security-reference/authorization#admin-role">`admin` role</InternalLink> can now run <InternalLink version="v24.3" path="alter-default-privileges">`ALTER DEFAULT PRIVILEGES FOR target_role...`</InternalLink> on any `target_role`. Previously, this could result in a privilege error, which is incorrect as `admin` s are allowed to perform any operation.
* <InternalLink version="v24.3" path="reassign-owned">`REASSIGN OWNED BY current_owner_role...`</InternalLink> will now transfer ownership of the `public` schema. Previously, it would always skip over the `public` schema even if it was owned by the `current_owner_role`.

## v24.3.0-beta.1

Release Date: October 24, 2024

### Downloads

<Danger>
  CockroachDB v24.3.0-beta.1 is a testing release. Testing releases are intended for testing and experimentation only, and are not qualified for production environments and not eligible for support or uptime SLA commitments.
</Danger>

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-beta.1.linux-amd64.tgz">cockroach-v24.3.0-beta.1.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-beta.1.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-beta.1.linux-amd64.tgz">cockroach-sql-v24.3.0-beta.1.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-beta.1.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-beta.1.linux-arm64.tgz">cockroach-v24.3.0-beta.1.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-beta.1.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-beta.1.linux-arm64.tgz">cockroach-sql-v24.3.0-beta.1.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-beta.1.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-beta.1.darwin-10.9-amd64.tgz">cockroach-v24.3.0-beta.1.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-beta.1.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-beta.1.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.0-beta.1.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-beta.1.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-beta.1.darwin-11.0-arm64.tgz">cockroach-v24.3.0-beta.1.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-beta.1.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-beta.1.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.0-beta.1.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-beta.1.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-beta.1.windows-6.2-amd64.zip">cockroach-v24.3.0-beta.1.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-beta.1.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-beta.1.windows-6.2-amd64.zip">cockroach-sql-v24.3.0-beta.1.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-beta.1.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach-unstable:v24.3.0-beta.1
```

### General changes

* The cluster setting <InternalLink version="v24.3" path="cluster-settings">`diagnostics.reporting.enabled`</InternalLink> is now ignored if the cluster has a <InternalLink version="v24.3" path="licensing-faqs">Enterprise Trial or Enterprise Free license</InternalLink>, or if the reporting job is unable to load any license at all.

### Enterprise edition changes

* This change ensures authorization with LDAP only works when the `ldapgrouplistfilter` option is present in the <InternalLink version="v24.3" path="security-reference/authentication#hba-configuration-syntax">HBA configuration</InternalLink>, otherwise authentication will proceed with the provided LDAP auth method options in the HBA configuration. This change is to ensure external authorization with LDAP is opt-in rather than enabled by default.
* Added a <InternalLink version="v24.3" path="changefeed-sinks">changefeed sink</InternalLink> error metric `changefeed.sink_errors`, and expanded reporting of the internal retries metric `changefeed.internal_retry_message_count` to all sinks that perform internal retries.

### SQL language changes

* Implemented `DROP TRIGGER` statements. The `CASCADE` option for dropping a <InternalLink version="v24.3" path="sql-feature-support">trigger</InternalLink> is not supported.
* Added support for `CREATE TRIGGER`. The `OR REPLACE` syntax is not supported. Also, <InternalLink version="v24.3" path="sql-feature-support">triggers</InternalLink> cannot be executed, so creation is a no-op.
* <InternalLink version="v24.3" path="table-localities#regional-by-row-tables">`REGIONAL BY ROW`</InternalLink> and <InternalLink version="v24.3" path="partitioning">`PARTITION ALL BY`</InternalLink> tables can now be inserted into under <InternalLink version="v24.3" path="read-committed">non-`SERIALIZABLE` isolation levels</InternalLink> as long as there is no `ON CONFLICT` clause in the statement. Also, <InternalLink version="v24.3" path="table-localities#regional-by-row-tables">`REGIONAL BY ROW`</InternalLink> and <InternalLink version="v24.3" path="partitioning">`PARTITION ALL BY`</InternalLink> tables can now be updated under non- `SERIALIZABLE` isolation levels.
* Attempting to add <InternalLink version="v24.3" path="foreign-key">foreign keys</InternalLink> referencing a table with <InternalLink version="v24.3" path="row-level-ttl">row-level TTL</InternalLink> enabled will generate a notice informing the user about potential impact on the row-level TTL deletion job. Similarly, a notice is generated while attempting to enable row-level TTL on a table that has inbound foreign key references.
* It is now possible to assign to an element of a composite typed variable in <InternalLink version="v24.3" path="plpgsql">PL/pgSQL</InternalLink>. For example, given a variable `foo` with two integer elements `x` and `y`, the following assignment statement is allowed: `foo.x:= 100;`.
* <InternalLink version="v24.3" path="backup">Backup</InternalLink> and <InternalLink version="v24.3" path="restore">restore</InternalLink> now work for tables with triggers. When the <InternalLink version="v24.3" path="restore">`skip_missing_udfs` option</InternalLink> is applied, triggers with missing trigger functions are removed from the table.
* `UPSERT and INSERT... ON CONFLICT` statements are now supported on <InternalLink version="v24.3" path="table-localities#regional-by-row-tables">`REGIONAL BY ROW`</InternalLink> tables under <InternalLink version="v24.3" path="read-committed">`READ COMMITTED` isolation</InternalLink>.
* Added support for row-level `BEFORE` triggers. A row-level trigger executes the trigger function for each row that is being mutated. `BEFORE` triggers fire before the mutation operation.
* Added support for <InternalLink version="v24.3" path="plpgsql">PL/pgSQL</InternalLink> integer `FOR` loops, which iterate over a range of integer values.

### Operational changes

* <InternalLink version="v24.3" path="admission-control">Admission Control</InternalLink> now has an integration for pacing snapshot ingest traffic based on disk bandwidth. `kvadmission.store.snapshot_ingest_bandwidth_control.enabled` is used to turn on this integration. It requires provisioned bandwidth to be set for the store (or cluster through the <InternalLink version="v24.3" path="cluster-settings">cluster setting</InternalLink> ) for it to take effect.
* Added validation to check whether <InternalLink version="v24.3" path="configure-logs">audit logging</InternalLink> and <InternalLink version="v24.3" path="configure-logs#log-buffering-for-network-sinks">buffering configurations</InternalLink> are both present in the <InternalLink version="v24.3" path="configure-logs#configure-log-sinks">file log sink</InternalLink>. Audit logging and buffering configuration should not both exist in the file log sink.
* Updated the <InternalLink version="v24.3" path="configure-logs#configure-log-sinks">file log sink</InternalLink> validation message. This would give clear indication to the user about the expected valid configuration.

### DB Console changes

* The value of the automatic <InternalLink version="v24.3" path="cost-based-optimizer#table-statistics">statistics</InternalLink> collection cluster setting <InternalLink version="v24.3" path="cluster-settings">`sql.stats.automatic_collection.enabled`</InternalLink> is now in the top right corner of the <InternalLink version="v24.3" path="ui-databases-page">**Databases**</InternalLink> overview page.
* In the new <InternalLink version="v24.3" path="ui-databases-page">**Databases**</InternalLink> and <InternalLink version="v24.3" path="ui-databases-page#tables-list-tab">**Tables**</InternalLink> pages, when cached data is being refreshed, the refresh button will be disabled and its tooltip text will display, `Data is currently refreshing`.

### Bug fixes

* Addressed a rare bug that could prevent <InternalLink version="v24.3" path="backup">backups</InternalLink> taken during a <InternalLink version="v24.3" path="alter-table#drop-column">`DROP COLUMN`</InternalLink> operation with a <InternalLink version="v24.3" path="create-sequence">sequence</InternalLink> owner from <InternalLink version="v24.3" path="restore">restoring</InternalLink> with the error: `rewriting descriptor ids: missing rewrite for <id> in SequenceOwner...`.
* Fixed a bug existing since before v23.1 that could lead to incorrect results in rare cases. The bug requires a <InternalLink version="v24.3" path="joins">join</InternalLink> between two tables with an equality between columns with equivalent, but not identical <InternalLink version="v24.3" path="data-types">types</InternalLink> (e.g., `OID` and `REGCLASS` ). In addition, the join must lookup into an <InternalLink version="v24.3" path="indexes">index</InternalLink> that includes a <InternalLink version="v24.3" path="computed-columns">computed column</InternalLink> that references one of the equivalent columns.
* Fixed a bug existing since before v23.1 that could lead to incorrect results in rare cases. The bug requires a lookup <InternalLink version="v24.3" path="joins">join</InternalLink> into a table with a computed <InternalLink version="v24.3" path="indexes">index</InternalLink> column, where the <InternalLink version="v24.3" path="computed-columns">computed column</InternalLink> expression is composite sensitive. A composite sensitive expression can compare differently if supplied non-identical but equivalent input values (e.g., `2.0::DECIMAL` versus `2.00::DECIMAL` ).
* Fixed a bug that caused quotes around the name of a routine to be dropped when it was called within another <InternalLink version="v24.3" path="user-defined-functions">routine</InternalLink>. This could prevent the correct routine from being resolved if the nested routine name was case-sensitive. The bug has existed since v24.1 when nested routines were introduced.
* Fixed a bug where the <InternalLink version="v24.3" path="cockroach-sql">SQL shell</InternalLink> would print out the previous error message when executing the `quit` command.
* Fixed a bug where a <InternalLink version="v24.3" path="show-ranges#span-statistics">span statistics</InternalLink> request on a mixed-version cluster resulted in a null pointer exception.
* Fixed an issue where <InternalLink version="v24.3" path="change-data-capture-overview">changefeeds</InternalLink> would fail to update <InternalLink version="v24.3" path="protect-changefeed-data">protected timestamp records</InternalLink> in the face of <InternalLink version="v24.3" path="monitor-and-debug-changefeeds">retryable errors</InternalLink>.
* The [`franz-go`](https://github.com/twmb/franz-go) library has been updated to fix a potential deadlock on <InternalLink version="v24.3" path="change-data-capture-overview">changefeed</InternalLink> restarts.
* Fixed a bug that in rare cases could cause incorrect evaluation of <InternalLink version="v24.3" path="scalar-expressions">scalar expressions</InternalLink> involving `NULL` values.
* Fixed a bug in the query <InternalLink version="v24.3" path="cost-based-optimizer">optimizer</InternalLink> that in rare cases could cause CockroachDB nodes to crash. The bug could occur when a query contains a filter in the form `col IN (elem0, elem1,..., elemN)` only when `N` is very large, (e.g., 1.6+ million), and when `col` exists in a <InternalLink version="v24.3" path="hash-sharded-indexes">hash-sharded index</InternalLink>, or exists a table with an indexed, <InternalLink version="v24.3" path="computed-columns">computed column</InternalLink> dependent on `col`.
* The `proretset` column of the <InternalLink version="v24.3" path="pg-catalog">`pg_catalog.pg_proc`</InternalLink> table is now properly set to `true` for set-returning built-in functions.
* Fixed an error that could be caused by using an <InternalLink version="v24.3" path="as-of-system-time">`AS OF SYSTEM TIME`</InternalLink> expression that references a user-defined (or unknown) type name. These kinds of expressions are invalid, but previously the error was not handled properly. Now, a correct error message is returned.

### Build changes

* Upgraded to Go v1.23.2.

## v24.3.0-alpha.2

Release Date: October 14, 2024

### Downloads

<Danger>
  CockroachDB v24.3.0-alpha.2 is a testing release. Testing releases are intended for testing and experimentation only, and are not qualified for production environments and not eligible for support or uptime SLA commitments.
</Danger>

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-alpha.2.linux-amd64.tgz">cockroach-v24.3.0-alpha.2.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-alpha.2.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-alpha.2.linux-amd64.tgz">cockroach-sql-v24.3.0-alpha.2.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-alpha.2.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-alpha.2.linux-arm64.tgz">cockroach-v24.3.0-alpha.2.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-alpha.2.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-alpha.2.linux-arm64.tgz">cockroach-sql-v24.3.0-alpha.2.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-alpha.2.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-alpha.2.darwin-10.9-amd64.tgz">cockroach-v24.3.0-alpha.2.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-alpha.2.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-alpha.2.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.0-alpha.2.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-alpha.2.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-alpha.2.darwin-11.0-arm64.tgz">cockroach-v24.3.0-alpha.2.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-alpha.2.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-alpha.2.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.0-alpha.2.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-alpha.2.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-alpha.2.windows-6.2-amd64.zip">cockroach-v24.3.0-alpha.2.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-alpha.2.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-alpha.2.windows-6.2-amd64.zip">cockroach-sql-v24.3.0-alpha.2.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-alpha.2.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach-unstable:v24.3.0-alpha.2
```

### Security updates

* The parameters for an <InternalLink version="v24.3" path="security-reference/authentication#hba-configuration-syntax">HBA config entry</InternalLink> for LDAP are now validated when the entry is created or amended, in addition to the validation that happens during an authentication attempt.
* Added automatic cleanup and validation for <InternalLink version="v24.3" path="security-reference/authorization#default-privileges">default privileges</InternalLink> that reference dropped roles after a major-version upgrade to v24.3.

### General changes

* Changed the license `cockroach` is distributed under to the new CockroachDB Software License (CSL).

### Enterprise edition changes

* You can now <InternalLink version="v24.3" path="ui-overview#authentication">authenticate to the DB console API</InternalLink> by supplying a Java Web Token (JWT) as a Bearer token in the Authorization header.

### SQL language changes

* To view comments on a type, you can use the new <InternalLink version="v24.3" path="show-types">`SHOW TYPES WITH COMMENT`</InternalLink> command. Comments can be added using <InternalLink version="v24.3" path="comment-on">`COMMENT ON`</InternalLink>.
* You can create or alter a <InternalLink version="v24.3" path="user-defined-functions">user-defined function (UDF)</InternalLink> or <InternalLink version="v24.3" path="stored-procedures">stored procedure (SP)</InternalLink> with `[EXTERNAL] SECURITY DEFINER` instead of the default `[EXTERNAL] SECURITY INVOKER`. With `SECURITY DEFINER`, the privileges of the owner are checked when the UDF or SP is executed, rather than the privileges of the executor. The `EXTERNAL` keyword is optional and exists for SQL language conformity.

### Operational changes

* The following new <InternalLink version="v24.3" path="metrics">metrics</InternalLink> show details about <InternalLink version="v24.3" path="architecture/replication-layer">replication</InternalLink> flow control send queue when the <InternalLink version="v24.3" path="cluster-settings">cluster setting</InternalLink> `kvadmission.flow_control.enabled` is set to `true` and the cluster setting `kvadmission.flow_control.mode` is set to `apply_to_all`.
  * `kvflowcontrol.tokens.send.regular.deducted.prevent_send_queue`
  * `kvflowcontrol.tokens.send.elastic.deducted.prevent_send_queue`
  * `kvflowcontrol.tokens.send.elastic.deducted.force_flush_send_queue`
  * `kvflowcontrol.range_controller.count`
  * `kvflowcontrol.send_queue.bytes`
  * `kvflowcontrol.send_queue.count`
  * `kvflowcontrol.send_queue.prevent.count`
  * `kvflowcontrol.send_queue.scheduled.deducted_bytes`
  * `kvflowcontrol.send_queue.scheduled.force_flush`

* The following <InternalLink version="v24.3" path="metrics">metrics</InternalLink> have been renamed:

  <table><thead><tr><th>Previous name</th><th>New name-</th></tr></thead><tbody><tr><td><code>kvflowcontrol.tokens.eval.regular.disconnected</code></td><td><code>kvflowcontrol.tokens.eval.regular.returned.disconnect</code></td></tr><tr><td><code>kvflowcontrol.tokens.eval.elastic.disconnected</code></td><td><code>kvflowcontrol.tokens.eval.elastic.returned.disconnect</code></td></tr><tr><td><code>kvflowcontrol.tokens.send.regular.disconnected</code></td><td><code>kvflowcontrol.tokens.send.regular.returned.disconnect</code></td></tr><tr><td><code>kvflowcontrol.tokens.send.elastic.disconnected</code></td><td><code>kvflowcontrol.tokens.send.elastic.returned.disconnect</code></td></tr></tbody></table>

### Cluster virtualization changes

* The `_status/ranges/` endpoint on DB Console <InternalLink version="v24.3" path="ui-debug-pages">Advanced debug pages</InternalLink> is now enabled for non-system virtual clusters, where it returns the ranges only for the tenant you are logged into. For the system virtual cluster, the `_status/ranges/` endpoint continues to return ranges for the specified node across all virtual clusters.

### DB Console changes

* Improved performance in the **Databases**, **Tables View**, and **Table Details** sections of the <InternalLink version="v24.3" path="ui-databases-page">**Databases page**</InternalLink>

### Bug fixes

* Fixed a bug where JSON values returned by `cockroach` commands using the `--format=sql` flag were not correctly escaped if they contained double quotes within a string.
* Fixed an error that could happen if an <InternalLink version="v24.3" path="functions-and-operators#aggregate-functions">aggregate function</InternalLink> was used as the value in a `SET` command.
* Fixed a rare bug introduced in v22.2 in which an update of a <InternalLink version="v24.3" path="primary-key">primary key</InternalLink> column could fail to update the primary index if it is also the only column in a separate column family.
* Fixed a rare bug where dropping a column of `FLOAT4`, `FLOAT8`, `DECIMAL`, `JSON`, `ARRAY`, or collate `STRING` type stored in a single <InternalLink version="v24.3" path="column-families">column family</InternalLink> could prevent subsequent reading of the table if the column family was not the first column family.
* Fixed an `unimplemented` internal error that could occur when ordering by a <InternalLink version="v24.3" path="vector">`VECTOR`</InternalLink> column.

### Performance improvements

* Efficiency has been improved when writing string-like values over the PostgreSQL wire protocol.
* Error handling during periodic table history polling has been improved when the `schema_locked` <InternalLink version="v24.3" path="with-storage-parameter#table-parameters">table parameter</InternalLink> is not used.

## v24.3.0-alpha.1

Release Date: October 9, 2024

### Downloads

<Danger>
  CockroachDB v24.3.0-alpha.1 is a testing release. Testing releases are intended for testing and experimentation only, and are not qualified for production environments and not eligible for support or uptime SLA commitments.
</Danger>

<Note>
  Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
</Note>

<table><thead><tr><th>Operating System</th><th>Architecture</th><th>Full executable</th><th>SQL-only executable</th></tr></thead><tbody><tr><td rowspan="2">Linux</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-alpha.1.linux-amd64.tgz">cockroach-v24.3.0-alpha.1.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-alpha.1.linux-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-alpha.1.linux-amd64.tgz">cockroach-sql-v24.3.0-alpha.1.linux-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-alpha.1.linux-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-alpha.1.linux-arm64.tgz">cockroach-v24.3.0-alpha.1.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-alpha.1.linux-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-alpha.1.linux-arm64.tgz">cockroach-sql-v24.3.0-alpha.1.linux-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-alpha.1.linux-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td rowspan="2">Mac<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-alpha.1.darwin-10.9-amd64.tgz">cockroach-v24.3.0-alpha.1.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-alpha.1.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-alpha.1.darwin-10.9-amd64.tgz">cockroach-sql-v24.3.0-alpha.1.darwin-10.9-amd64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-alpha.1.darwin-10.9-amd64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>ARM</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-alpha.1.darwin-11.0-arm64.tgz">cockroach-v24.3.0-alpha.1.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-alpha.1.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-alpha.1.darwin-11.0-arm64.tgz">cockroach-sql-v24.3.0-alpha.1.darwin-11.0-arm64.tgz</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-alpha.1.darwin-11.0-arm64.tgz.sha256sum">SHA256</a>)</td></tr><tr><td>Windows<br />(Experimental)</td><td>Intel</td><td><a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-alpha.1.windows-6.2-amd64.zip">cockroach-v24.3.0-alpha.1.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-v24.3.0-alpha.1.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td><td><a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-alpha.1.windows-6.2-amd64.zip">cockroach-sql-v24.3.0-alpha.1.windows-6.2-amd64.zip</a><br />(<a href="https://binaries.cockroachdb.com/cockroach-sql-v24.3.0-alpha.1.windows-6.2-amd64.zip.sha256sum">SHA256</a>)</td></tr></tbody></table>

### Docker image

[Multi-platform images](https://docs.docker.com/build/building/multi-platform) include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host.

Within the multi-platform image, both Intel and ARM images are **generally available** for production use.

To download the Docker image:

```shell theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
docker pull cockroachdb/cockroach-unstable:v24.3.0-alpha.1
```

### Security updates

* URLs in the <InternalLink version="v24.3" path="create-changefeed">`CREATE CHANGEFEED`</InternalLink> and <InternalLink version="v24.3" path="create-schedule-for-changefeed">`CREATE SCHEDULE FOR CHANGEFEED`</InternalLink> SQL statements are now sanitized of any secrets before being written to unredacted <InternalLink version="v24.3" path="logging">logs</InternalLink>.
* The LDAP <InternalLink version="v24.3" path="cluster-settings">cluster settings</InternalLink> `server.ldap_authentication.client.tls_certificate` and `server.ldap_authentication.client.tls_key` did not have callbacks installed to reload the settings value for LDAP authManager. This change fixes this by adding the necessary callbacks.
* <InternalLink version="v24.3" path="cluster-settings">Cluster settings</InternalLink> for <InternalLink version="v24.3" path="security-reference/authentication#authentication-configuration">host-based authentication</InternalLink> configuration ( <InternalLink version="v24.3" path="cluster-settings">`server.host_based_authentication.configuration`</InternalLink> ) and identity map configuration ( <InternalLink version="v24.3" path="cluster-settings">`server.identity_map.configuration`</InternalLink> ) need to be redacted as they can be configured to contain LDAP bind usernames, passwords, and mapping of external identities to SQL users that are sensitive. These cluster settings can be configured for redaction via the `server.redact_sensitive_settings.enabled` cluster setting.
* Added support for configuring authorization using LDAP. During login, the list of groups that a user belongs to are fetched from the LDAP server. These groups are mapped to <InternalLink version="v24.3" path="create-role">SQL roles</InternalLink> by extracting the common name (CN) from the group. After authenticating the user, the login flow grants these roles to the user, and revokes any other roles that are not returned by the LDAP server. The groups given by the LDAP server are treated as the sole source of truth for role memberships, so any roles that were manually granted to the user will not remain in place.
* Previously, the <InternalLink version="v24.3" path="security-reference/authentication#authentication-configuration">host-based authentication</InternalLink> (HBA) configuration cluster setting <InternalLink version="v24.3" path="cluster-settings">`server.host_based_authentication.configuration`</InternalLink> was unable to handle double quotes in authentication method option values. For example, for the following entry:

  ```text theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
  host all all all ldap ldapserver=ldap.example.com ldapport=636 ldapbasedn="ou=users,dc=example,dc=com" ldapbinddn="cn=readonly,dc=example,dc=com" ldapbindpasswd=readonly_password ldapsearchattribute=uid ldapsearchfilter="(memberof=cn=cockroachdb_users,ou=groups,dc=example,dc=com)"
  ```

  The HBA parser would fail after incorrectly determining `ldapbinddn="cn=readonly,dc=example,dc=com"` as 2 separate options (`ldapbinddn=and cn=readonly,dc=example,dc=com`). Now, the 2 tokens are set as key and value respectively for the same HBA configuration option.

### General changes

* CockroachDB will now avoid <InternalLink version="v24.3" path="logging">logging</InternalLink> unnecessary stack traces while executing <InternalLink version="v24.3" path="show-jobs">scheduled jobs</InternalLink>.
* Upgrading to 24.3 is blocked if no <InternalLink version="v24.3" path="licensing-faqs">license</InternalLink> is installed, or if a trial/free license is installed with telemetry disabled.
* Attempting to install a second Enterprise trial license on the same cluster will now fail.
* Changed the license `cockroach` is distributed under to the new CockroachDB Software License (CSL).

### Enterprise edition changes

* Added a `CompressionLevel` field to the changefeed <InternalLink version="v24.3" path="changefeed-sinks#kafka-sink-configuration">`kafka_sink_config`</InternalLink> option. <InternalLink version="v24.3" path="change-data-capture-overview">Changefeeds</InternalLink> will use this compression level when emitting events to a <InternalLink version="v24.3" path="changefeed-sinks#kafka">Kafka sink</InternalLink>. The possible values depend on a compression codec. The `CompressionLevel` field optimizes for faster or stronger level of <InternalLink version="v24.3" path="changefeed-sinks#kafka-sink-configuration">compression</InternalLink>.
* The updated version of the <InternalLink version="v24.3" path="changefeed-sinks#kafka">CockroachDB changefeed Kafka sink implementation</InternalLink> now supports specifying compression levels.
* Introduced the cluster setting <InternalLink version="v24.3" path="cluster-settings">`server.jwt_authentication.client.timeout`</InternalLink> to capture the HTTP client timeout for external calls made during <InternalLink version="v24.3" path="sso-sql">JWT authentication</InternalLink>.
* The JWT authentication <InternalLink version="v24.3" path="cluster-settings">cluster settings</InternalLink> have been made `public`.
* Updated certain error messages to refer to the `stable` docs tree rather than an explicit version.
* Disambiguated <InternalLink version="v24.3" path="essential-metrics-self-hosted">metrics</InternalLink> and logs for the two buffers used by the KV feed. The affected metrics now have a suffix indicating which buffer they correspond to: `changefeed.buffer_entries.*`, `changefeed.buffer_entries_mem.*`, `changefeed.buffer_pushback_nanos.*`. The previous versions are still supported for backward compatibility, though using the new format is recommended.
* Added support for authorization to a CockroachDB cluster via LDAP, retrieving AD groups membership information for LDAP user. The new <InternalLink version="v24.3" path="security-reference/authentication#authentication-configuration">HBA configuration</InternalLink> cluster setting option `ldapgrouplistfilter` performs filtered search query on LDAP for matching groups. An example HBA configuration entry to support LDAP authZ configuration:

  ```sql theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
  # TYPE    DATABASE      USER           ADDRESS             METHOD             OPTIONS
  # Allow all users to connect to using LDAP authentication with search and bind    host    all           all            all                 ldap               ldapserver=ldap.example.com ldapport=636 "ldapbasedn=ou=users,dc=example,dc=com" "ldapbinddn=cn=readonly,dc=example,dc=com" ldapbindpasswd=readonly_password ldapsearchattribute=uid "ldapsearchfilter=(memberof=cn=cockroachdb_users,ou=groups,dc=example,dc=com)" "ldapgrouplistfilter=(objectClass=groupOfNames)"
  # Fallback to password authentication for the root user
  host    all           root           0.0.0.0/0          password
  ```

  For example, to use for an Azure AD server:

  ```sql theme={"theme":{"light":"catppuccin-mocha","dark":"catppuccin-mocha"}}
  SET cluster setting server.host_based_authentication.configuration = 'host    all           all            all                 ldap ldapserver=azure.dev ldapport=636 "ldapbasedn=OU=AADDC Users,DC=azure,DC=dev" "ldapbinddn=CN=Some User,OU=AADDC Users,DC=azure,DC=dev" ldapbindpasswd=my_pwd ldapsearchattribute=sAMAccountName "ldapsearchfilter=(memberOf=CN=azure-dev-domain-sync-users,OU=AADDC Users,DC=crlcloud,DC=dev)" "ldapgrouplistfilter=(objectCategory=CN=Group,CN=Schema,CN=Configuration,DC=crlcloud,DC=dev)"
  host    all           root           0.0.0.0/0          password';
  ```

  Post configuration, the CockroachDB cluster should be able to authorize users via LDAP server if:

  1. Users LDAP authentication attempt is successful, and it has the user's DN for the LDAP server.
  2. `ldapgrouplistfilter` is properly configured, and it successfully syncs groups of the user.
* Added changefeed support for the <InternalLink version="v24.3" path="create-changefeed">`mvcc_timestamp`</InternalLink> option when the changefeed is emitting in <InternalLink version="v24.3" path="changefeed-messages#avro">`avro`</InternalLink> format. If both options are specified, the Avro schema includes an `mvcc_timestamp` metadata field and emits the row's <InternalLink version="v24.3" path="architecture/storage-layer#mvcc">MVCC timestamp</InternalLink> with the row data.
* Updated the cluster setting <InternalLink version="v24.3" path="cluster-settings">`changefeed.sink_io_workers`</InternalLink> with all the <InternalLink version="v24.3" path="changefeed-sinks">sinks</InternalLink> that support the setting.
* Added a LDAP authentication method to complement password-based login for the <InternalLink version="v24.3" path="ui-overview">DB Console</InternalLink> if HBA configuration has an entry for LDAP for the user attempting login, along with other matching criteria (like the requests originating IP address) for authentication to the DB Console.
* Added timers around key parts of the <InternalLink version="v24.3" path="change-data-capture-overview">changefeed</InternalLink> pipeline to help debug feeds experiencing issues. The `changefeed.stage.<stage>.latency` metrics now emit latency histograms for each stage. The metric respects the <InternalLink version="v24.3" path="monitor-and-debug-changefeeds#using-changefeed-metrics-labels">changefeed `scope` label</InternalLink> for debugging specific feeds.
* For <InternalLink version="v24.3" path="how-does-a-changefeed-work">enterprise changefeeds</InternalLink>, <InternalLink version="v24.3" path="eventlog">events</InternalLink> `changefeed_failed` and `create_changefeed` now include a `JobId` field.
* The new <InternalLink version="v24.3" path="metrics">metric</InternalLink> `seconds_until_license_expiry` allows you to monitor the status of a cluster's Enterprise license..
* Added the `changefeed.total_ranges` metric, which <InternalLink version="v24.3" path="monitor-and-debug-changefeeds">monitors</InternalLink> the number of <InternalLink version="v24.3" path="architecture/overview">ranges</InternalLink> that are watched by <InternalLink version="v24.3" path="how-does-a-changefeed-work">changefeed aggregators</InternalLink>. It shares the same polling interval as <InternalLink version="v24.3" path="advanced-changefeed-configuration#lagging-ranges">`changefeed.lagging_ranges`</InternalLink>, which is controlled by the existing `lagging_ranges_polling_interval` option.

### SQL language changes

* Added a session setting, <InternalLink version="v24.3" path="session-variables">`optimizer_use_merged_partial_statistics`</InternalLink> which defaults to `false`. When set to `true`, it enables usage of existing partial <InternalLink version="v24.3" path="cost-based-optimizer#table-statistics">statistics</InternalLink> merged with full statistics when <InternalLink version="v24.3" path="cost-based-optimizer">optimizing</InternalLink> a query.
* The <InternalLink version="v24.3" path="session-variables">`enable_create_stats_using_extremes`</InternalLink> session setting is now `true` by default. Partial statistics at extremes can be collected using the <InternalLink version="v24.3" path="create-statistics">`CREATE STATISTICS <stat_name> ON <column_name> FROM <table_name> USING EXTREMES`</InternalLink> syntax.
* Added <InternalLink version="v24.3" path="show-schemas">`SHOW SCHEMAS WITH COMMENT`</InternalLink> and `SHOW SCHEMAS FROM database_name WITH COMMENT` functionality similar to <InternalLink version="v24.3" path="show-tables">`SHOW TABLES`</InternalLink> and <InternalLink version="v24.3" path="show-databases">`SHOW DATABASES`</InternalLink>.
* The <InternalLink version="v24.3" path="session-variables">`deadlock_timeout` session variable</InternalLink> is now supported. The configuration can be used to specify the time to wait on a lock before pushing the lock holder for deadlock detection. It can be set at session granularity.
* Partial statistics at extremes can now be collected on all valid columns of a table using the <InternalLink version="v24.3" path="create-statistics">`CREATE STATISTICS <stat_name>` `FROM <table_name> USING EXTREMES`</InternalLink> syntax, without an `ON <col_name>` clause. Valid columns are all single column prefixes of a forward <InternalLink version="v24.3" path="indexes">index</InternalLink> excluding partial, sharded, and implicitly partitioned indexes.
* Partial <InternalLink version="v24.3" path="cost-based-optimizer#table-statistics">statistics</InternalLink> can now be automatically collected at the extremes of indexes when a certain fraction and minimum number of rows are stale (by default 5% and 100 respectively). These can be configured with new <InternalLink version="v24.3" path="alter-table#set-and-reset-storage-parameters">table storage parameters</InternalLink> and <InternalLink version="v24.3" path="cluster-settings">cluster settings</InternalLink>, and the feature is disabled by default. The new cluster settings and table parameters are:
  * `sql.stats.automatic_partial_collection.enabled` / `sql_stats_automatic_partial_collection_enabled`, defaults to `false`.
  * `sql.stats.automatic_partial_collection.min_stale_rows` / `sql_stats_automatic_partial_collection_min_stale_rows`, defaults to `100`.
  * `sql.stats.automatic_partial_collection.fraction_stale_rows` / `sql_stats_automatic_partial_collection_fraction_stale_rows`, Defaults to `0.05`.
* The session variable <InternalLink version="v24.3" path="session-variables">`enforce_home_region_follower_reads_enabled`</InternalLink> is now deprecated, and will be removed in a future release. The related session variable <InternalLink version="v24.3" path="session-variables">`enforce_home_region`</InternalLink> is **not** deprecated.
* Added a new <InternalLink version="v24.3" path="cluster-settings">cluster setting</InternalLink> to control whether most common values are collected as part of <InternalLink version="v24.3" path="cost-based-optimizer#control-histogram-collection">histogram collection</InternalLink> for use by the <InternalLink version="v24.3" path="cost-based-optimizer">optimizer</InternalLink>. The setting is called `sql.stats.histogram_buckets.include_most_common_values.enabled`. When enabled, the histogram collection logic will ensure that the most common sampled values are represented as histogram bucket upper bounds. Since histograms in CockroachDB track the number of elements equal to the upper bound in addition to the number of elements less, this allows the optimizer to identify the most common values in the histogram and better estimate the rows processed by a query plan. To set the number of most common values to include in a histogram, a second setting `sql.stats.histogram_buckets.max_fraction_most_common_values` was added. Currently, the default is `0.1`, or `10%` of the number of buckets. With a 200 bucket histogram, by default, at most 20 buckets may be adjusted to include a most common value as the upper bound.
* Added a new column to <InternalLink version="v24.3" path="crdb-internal#tables">`crdb_internal.table_spans`</InternalLink> to indicate whether a table is <InternalLink version="v24.3" path="drop-table">dropped</InternalLink>. Rows for dropped tables will be removed once they are <InternalLink version="v24.3" path="architecture/storage-layer#garbage-collection">garbage collected</InternalLink>.
* Added the <InternalLink version="v24.3" path="cluster-settings">cluster setting</InternalLink> `sql.txn.repeatable_read_isolation.enabled`, which defaults to`false`. When set to `true`, the following statements will configure transactions to run under `REPEATABLE READ` isolation, rather than being automatically interpreted as <InternalLink version="v24.3" path="demo-serializable">`SERIALIZABLE`</InternalLink>:
  * `BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ`
  * `SET TRANSACTION ISOLATION LEVEL REPEATABLE READ`
  * `SET default_transaction_isolation = 'repeatable read'`
  * `SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL REPEATABLE READ`

    This setting was added since <InternalLink version="v24.3" path="transactions#comparison-to-ansi-sql-isolation-levels">`REPEATABLE READ` transactions</InternalLink> is a <InternalLink version="v24.3" path="cockroachdb-feature-availability">preview</InternalLink> feature, so usage of it is opt-in for v24.3. In a future CockroachDB major version, this setting will change to default to `true`.
* Previously, <InternalLink version="v24.3" path="show-jobs#show-changefeed-jobs">`SHOW CHANGEFEED JOBS`</InternalLink> showed the changefeed jobs for the last 14 days by default. Now, it uses the same age filter for <InternalLink version="v24.3" path="show-jobs">`SHOW JOBS`</InternalLink>, which shows jobs from the last 12 hours by default.
* Set the default for session variable <InternalLink version="v24.3" path="session-variables">`large_full_scan_rows`</InternalLink> to `0`. This means that by default, <InternalLink version="v24.3" path="session-variables">`disallow_full_table_scans`</InternalLink> will disallow **all** <InternalLink version="v24.3" path="show-full-table-scans">full table scans</InternalLink>, even full scans on very small tables. If `large_full_scan_rows` is set > 0, `disallow_full_table_scans` will allow full scans estimated to read fewer than `large_full_scan_rows`.
* It is now possible to create <InternalLink version="v24.3" path="plpgsql">PL/pgSQL</InternalLink> trigger functions, which can be executed by a trigger in response to table mutation events. Note that this patch does not add support for triggers, only trigger functions.
* Cluster settings <InternalLink version="v24.3" path="cluster-settings">`enterprise.license`</InternalLink> and <InternalLink version="v24.3" path="cluster-settings">`diagnostics.reporting.enabled`</InternalLink> now have additional validation.
* The <InternalLink version="v24.3" path="show-sessions">`SHOW SESSIONS`</InternalLink> command was changed to include an `authentication_method` column in the result. This column will show the method used to authenticate the session, for example, `password`, `cert`, `LDAP`, etc.

### Operational changes

* <InternalLink version="v24.3" path="eventlog">Events</InternalLink> `DiskSlownessDetected` and `DiskSlownessCleared` are now logged when disk slowness is detected and cleared on a store.

* Several <InternalLink version="v24.3" path="cluster-settings">cluster settings</InternalLink> allow you to configure rate-limiting traffic to cloud storage over various protocols. These settings begin with `cloudstorage`.

* The new <InternalLink version="v24.3" path="cluster-settings">cluster setting</InternalLink> `kv.range.range_size_hard_cap` allows you to limit how large a <InternalLink version="v24.3" path="architecture/overview">range</InternalLink> can grow before <InternalLink version="v24.3" path="common-errors#split-failed-while-applying-backpressure-are-rows-updated-in-a-tight-loop">backpressure</InternalLink> is applied. This can help to mitigate against a situation where a range cannot be split, such as when a range is comprised of a single key due to an issue with the schema or workload pattern or a bug in client application code. The default is 8 GiB, which is 16 times the default max range size. If you have changed the max range size, you may need to adjust this cluster setting or reduce the range size.

* The following `kvflowcontrol` <InternalLink version="v24.3" path="metrics">metrics</InternalLink> have been renamed. After a cluster is finalized on v24.3, old and new metrics will be populated. The previous metrics under `kvasdmission.flow_controller` will be removed.

  <table><thead><tr><th>Old metric names</th><th>New metric names</th></tr></thead><tbody><tr><td><code>kvadmission.flow\_controller.regular\_tokens\_available</code></td><td><code>kvflowcontrol.tokens.eval.regular.available</code></td></tr><tr><td><code>kvadmission.flow\_controller.elastic\_tokens\_available</code></td><td><code>kvflowcontrol.tokens.eval.elastic.available</code></td></tr><tr><td><code>kvadmission.flow\_controller.regular\_tokens\_deducted</code></td><td><code>kvflowcontrol.tokens.eval.regular.deducted</code></td></tr><tr><td><code>kvadmission.flow\_controller.elastic\_tokens\_deducted</code></td><td><code>kvflowcontrol.tokens.eval.elastic.deducted</code></td></tr><tr><td><code>kvadmission.flow\_controller.regular\_tokens\_returned</code></td><td><code>kvflowcontrol.tokens.eval.regular.returned</code></td></tr><tr><td><code>kvadmission.flow\_controller.elastic\_tokens\_returned</code></td><td><code>kvflowcontrol.tokens.eval.elastic.returned</code></td></tr><tr><td><code>kvadmission.flow\_controller.regular\_tokens\_unaccounted</code></td><td><code>kvflowcontrol.tokens.eval.regular.unaccounted</code></td></tr><tr><td><code>kvadmission.flow\_controller.elastic\_tokens\_unaccounted</code></td><td><code>kvflowcontrol.tokens.eval.elastic.unaccounted</code></td></tr><tr><td><code>kvadmission.flow\_controller.regular\_stream\_count</code></td><td><code>kvflowcontrol.streams.eval.regular.total\_count</code></td></tr><tr><td><code>kvadmission.flow\_controller.elastic\_stream\_count</code></td><td><code>kvflowcontrol.streams.eval.elastic.total\_count</code></td></tr><tr><td><code>kvadmission.flow\_controller.regular\_requests\_waiting</code></td><td><code>kvflowcontrol.eval\_wait.regular.requests.waiting</code></td></tr><tr><td><code>kvadmission.flow\_controller.elastic\_requests\_waiting</code></td><td><code>kvflowcontrol.eval\_wait.elastic.requests.waiting</code></td></tr><tr><td><code>kvadmission.flow\_controller.regular\_requests\_admitted</code></td><td><code>kvflowcontrol.eval\_wait.regular.requests.admitted</code></td></tr><tr><td><code>kvadmission.flow\_controller.elastic\_requests\_admitted</code></td><td><code>kvflowcontrol.eval\_wait.elastic.requests.admitted</code></td></tr><tr><td><code>kvadmission.flow\_controller.regular\_requests\_errored</code></td><td><code>kvflowcontrol.eval\_wait.regular.requests.errored</code></td></tr><tr><td><code>kvadmission.flow\_controller.elastic\_requests\_errored</code></td><td><code>kvflowcontrol.eval\_wait.elastic.requests.errored</code></td></tr><tr><td><code>kvadmission.flow\_controller.regular\_requests\_bypassed</code></td><td><code>kvflowcontrol.eval\_wait.regular.requests.bypassed</code></td></tr><tr><td><code>kvadmission.flow\_controller.elastic\_requests\_bypassed</code></td><td><code>kvflowcontrol.eval\_wait.elastic.requests.bypassed</code></td></tr><tr><td><code>kvadmission.flow\_controller.regular\_wait\_duration</code></td><td><code>kvflowcontrol.eval\_wait.regular.duration</code></td></tr><tr><td><code>kvadmission.flow\_controller.elastic\_wait\_duration</code></td><td><code>kvflowcontrol.eval\_wait.elastic.duration</code></td></tr></tbody></table>

* The new `ranges.decommissioning` <InternalLink version="v24.3" path="metrics">metric</InternalLink> shows the number of ranges with a replica on a <InternalLink version="v24.3" path="node-shutdown">decommissioning</InternalLink> node.

* New <InternalLink version="v24.3" path="cluster-settings">cluster settings</InternalLink> have been added which control the refresh behavior for the cached data in the **Databases** page of the <InternalLink version="v24.3" path="ui-overview">DB Console</InternalLink>:
  * `obs.tablemetadatacache.data_valid_duration`: the duration for which the data in `system.table_metadata` is considered valid before a cache reset will occur. Default: 20 minutes.
  * `obs.tablemetadatacache.automatic_updates.enabled`: whether to automatically update the cache according the validity interval. Default: `false`.

* New gauge <InternalLink version="v24.3" path="metrics">metrics</InternalLink> `security.certificate.expiration.{cert-type}` and `security.certificate.ttl.{cert-type}` show the expiration and TTL for a certificate.

* To set the <InternalLink version="v24.3" path="log-formats">logging format</InternalLink> for `stderr`, you can now set the `format` field to any valid format, rather than only `crdb-v2-tty`.

* The following new <InternalLink version="v24.3" path="metrics">metrics</InternalLink> show connection latency for each SQL authentication method:

  <table><thead><tr><th>Authentication method</th><th>Metric</th></tr></thead><tbody><tr><td>Certificate</td><td><code>auth\_cert\_conn\_latency</code></td></tr><tr><td>Java Web Token (JWT)</td><td><code>auth\_jwt\_conn\_latency</code></td></tr><tr><td>Kerberos GSS</td><td><code>auth\_gss\_conn\_latency</code></td></tr><tr><td>LDAP</td><td><code>auth\_ldap\_conn\_latency</code></td></tr><tr><td>Password</td><td><code>auth\_password\_conn\_latency</code></td></tr><tr><td>SCRAM SHA-256</td><td><code>auth\_scram\_conn\_latency</code></td></tr></tbody></table>

* Verbose logging of slow <InternalLink version="v24.3" path="architecture/storage-layer#pebble">Pebble</InternalLink> reads can no longer be enabled via the shorthand flag `--vmodule=pebble_logger_and_tracer=2`, where `pebble_logger_and_tracer` contains the CockroachDB implementation of the logger needed by Pebble. Instead, you must list the Pebble files that contain the log statements. For example `--vmodule=reader=2,table=2`.

* The lowest <InternalLink version="v24.3" path="admission-control">admission control</InternalLink> priority for the storage layer has been renamed from `ttl-low-pri` to `bulk-low-pri`.

* New clusters will now have a <InternalLink version="v24.3" path="show-zone-configurations">zone configuration</InternalLink> defined for the `timeseries` range, which specifies `gc.ttlseconds` and inherits all other attributes from the zone config of the `default` range. This zone config will also be added to a cluster that is <InternalLink version="v24.3" path="upgrade-cockroach-version">upgraded</InternalLink> to v24.3 if it does not already have a zone config defined.#128032

### Command-line changes

* <InternalLink version="v24.3" path="cockroach-debug-tsdump">`cockroach debug tsdump`</InternalLink> now includes all the available resolutions in the time range supplied by the user.
* Added the flag `--tenant-name-scope` to the <InternalLink version="v24.3" path="cockroach-cert#create-the-certificate-and-key-pair-for-a-client">`cert create-client`</InternalLink> command. This allows users to generate tenant-scoped <InternalLink version="v24.3" path="authentication#client-authentication">client certificates</InternalLink> using tenant names in addition to tenant IDs.

### DB Console changes

* If a <InternalLink version="v24.3" path="architecture/overview">range</InternalLink> is larger than twice the max range size, it will now display in the <InternalLink version="v24.3" path="ui-debug-pages">**Problem Ranges** page</InternalLink> in the DB Console.
* Updated some metric charts on the <InternalLink version="v24.3" path="ui-overview-dashboard">Overview</InternalLink> and <InternalLink version="v24.3" path="ui-replication-dashboard">Replication</InternalLink> dashboards to omit verbose details in the legends for easier browsing.
* Updated the icon for notification alerts to use the new CockroachDB logo.
* The `txn.restarts.writetoooldmulti` metric was rolled into the `txn.restarts.writetooold` metric in the v24.1.0-alpha.1 release. `txn.restarts.writetoooldmulti` has now been removed altogether.
* The grants table in the <InternalLink version="v24.3" path="ui-databases-page">DB Details</InternalLink> page will now show the database level grants. For example, when clicking a database in the databases list. Previously, it showed grants per table in the database.
* Added new database pages that are available from the side navigation **Databases** link.
* The <InternalLink version="v24.3" path="ui-overview">DB Console</InternalLink> will reflect any throttling behavior from the cluster due to an expired license or missing telemetry data. Enterprise licenses are not affected.
* Users can hover over the node/region cell in multi-region deployments to view a list of nodes the database or table is on.
* The <InternalLink version="v24.3" path="ui-databases-page">**Databases** pages</InternalLink> in the DB console have been updated to read cached metadata about database and table storage statistics. The cache update time is now displayed in the top right-hand corner of the database and tables list pages. Users may trigger a cache refresh with the **refresh** icon next to the last updated time. The cache will also update automatically when users visit a **Databases** page and the cache is older than or equal to 20 minutes.

### Bug fixes

* Fixed a bug where CockroachDB could incorrectly evaluate an `IS NOT NULL` <InternalLink version="v24.3" path="select-clause#filter-rows">filter</InternalLink> if it was applied to non- `NULL` tuples that had `NULL` elements (like `(1, NULL)` or `(NULL, NULL)` ). The bug was present since v20.2.
* Fixed a bug related to displaying the names of composite types in the <InternalLink version="v24.3" path="show-create">`SHOW CREATE TABLES`</InternalLink> command. The names are now shown as two-part names, which disambiguates the output and makes it more portable to other databases.
* The `CONCAT()` <InternalLink version="v24.3" path="functions-and-operators">built-in function</InternalLink> now accepts arguments of any data type.
* Fixed a bug that prevented merged <InternalLink version="v24.3" path="cost-based-optimizer#table-statistics">statistics</InternalLink> from being created after injecting statistics or recreating <InternalLink version="v24.3" path="explain-analyze">statement bundles</InternalLink>. This would occur when the injected statistics or statement bundle contained related full and partial statistics.
* Fixed a bug where CockroachDB could encounter spurious `(error encountered after some results were delivered)` `ERROR: context canceled` errors in rare cases when evaluating some queries. The bug was present since v22.2. The conditions that triggered the bug were queries that:
  * Had to be executed locally.
  * Had a <InternalLink version="v24.3" path="limit-offset">`LIMIT`</InternalLink>.
  * Have at least two <InternalLink version="v24.3" path="selection-queries#union-combine-two-queries">`UNION`</InternalLink> clauses.
  * Have some lookup or index <InternalLink version="v24.3" path="joins">joins</InternalLink> in the `UNION` branches.
* Updated the restore <InternalLink version="v24.3" path="show-jobs">job</InternalLink> description from `RESTORE... FROM` to `RESTORE FROM {backup} IN {collectionURI}` to reflect the new <InternalLink version="v24.3" path="restore">`RESTORE`</InternalLink> syntax.
* Fixed a bug that could cause a `CASE` statement with multiple <InternalLink version="v24.3" path="subqueries">subqueries</InternalLink> to produces the side effects of one of the subqueries even if that subquery shouldn't have been evaluated.
* Changed the <InternalLink version="v24.3" path="online-schema-changes">schema changer</InternalLink> ’s merge process so that it can detect <InternalLink version="v24.3" path="transaction-retry-error-reference">contention errors</InternalLink> and automatically retry with a smaller batch size. This makes the merge process more likely to succeed without needing to manually tune settings.
* <InternalLink version="v24.3" path="show-create">`SHOW CREATE ALL TYPES`</InternalLink> now shows corresponding type comments in its output.
* Enforce the <InternalLink version="v24.3" path="session-variables">`statement_timeout` session setting</InternalLink> when waiting for <InternalLink version="v24.3" path="show-jobs">jobs</InternalLink> after a <InternalLink version="v24.3" path="online-schema-changes">schema change</InternalLink> in an <InternalLink version="v24.3" path="transactions#individual-statements">implicit transaction</InternalLink>.
* Fixed a bug where certain dropdowns in the <InternalLink version="v24.3" path="ui-overview">DB Console</InternalLink> appeared to be empty (with no options to select from) for users of the Safari browser.
* Fixed a bug that would cause the <InternalLink version="v24.3" path="functions-and-operators">`hlc_to_timestamp` function</InternalLink> to return an incorrect <InternalLink version="v24.3" path="timestamp">timestamp</InternalLink> for some input <InternalLink version="v24.3" path="decimal">decimals</InternalLink>.
* Fixed a memory leak where <InternalLink version="v24.3" path="ui-statements-page">statement insight</InternalLink> objects could leak if the session was closed without the <InternalLink version="v24.3" path="transactions">transaction</InternalLink> finishing.
* Fixed a bug in the public preview <InternalLink version="v24.3" path="cockroach-start#write-ahead-log-wal-failover">WAL failover</InternalLink> feature that could prevent a node from starting if it crashed during a failover.
* Fixed a bug where `'infinity'::TIMESTAMP` returned a different result than PostgreSQL.
* Fixed a spurious error log from the <InternalLink version="v24.3" path="ui-queues-dashboard#replication-queue">replication queue</InternalLink> involving the text `" needs lease, not adding"`.
* Using more than one <InternalLink version="v24.3" path="plpgsql#structure">`DECLARE`</InternalLink> statement in the definition of a <InternalLink version="v24.3" path="user-defined-functions">user-defined function</InternalLink> now correctly declares additional variables.
* Fixed a bug in which some <InternalLink version="v24.3" path="select-for-update">`SELECT FOR UPDATE`</InternalLink> or <InternalLink version="v24.3" path="select-for-update">`SELECT FOR SHARE`</InternalLink> queries using `NOWAIT` could still block on locked rows when using the `optimizer_use_lock_op_for_serializable` <InternalLink version="v24.3" path="session-variables">session setting</InternalLink> under <InternalLink version="v24.3" path="demo-serializable">serializable</InternalLink> isolation. This bug was introduced with `optimizer_use_lock_op_for_serializable` in v23.2.0.
* Fixed a bug in the <InternalLink version="v24.3" path="upgrade-cockroach-version">upgrade</InternalLink> pre-condition for repairing descriptor corruption that could lead to finalization being stuck.
* Fixed a bug that caused the optimizer to plan unnecessary post-query uniqueness checks during <InternalLink version="v24.3" path="insert">`INSERT`</InternalLink>, <InternalLink version="v24.3" path="upsert">`UPSERT`</InternalLink>, and <InternalLink version="v24.3" path="update">`UPDATE`</InternalLink> statements on tables with partial, unique, <InternalLink version="v24.3" path="hash-sharded-indexes">hash-sharded indexes</InternalLink>. These unnecessary checks added overhead to execution of these statements, and caused the statements to error when executed under <InternalLink version="v24.3" path="read-committed">`READ COMMITTED` isolation</InternalLink>.
* Fixed a bug that caused incorrect evaluation of `CASE`, <InternalLink version="v24.3" path="functions-and-operators#conditional-and-function-like-operators">`COALESCE`</InternalLink>, and <InternalLink version="v24.3" path="functions-and-operators#conditional-and-function-like-operators">`IF`</InternalLink> expressions with branches producing fixed-width string-like types, such as <InternalLink version="v24.3" path="string">`CHAR`</InternalLink>. In addition, the `BPCHAR` type no longer incorrectly imposes a length limit of `1`.
* Fixed a bug where <InternalLink version="v24.3" path="configure-replication-zones">zone configuration</InternalLink> changes issued by the <InternalLink version="v24.3" path="online-schema-changes">declarative schema changer</InternalLink> were not blocked if a table had the `schema_locked` <InternalLink version="v24.3" path="with-storage-parameter">storage parameter</InternalLink> set.
* Fixed a bug that could prevent a <InternalLink version="v24.3" path="changefeed-examples">`CHANGEFEED`</InternalLink> from being able to resume after being paused for a prolonged period of time.
* Fixed a bug where if a client connection was attempting a <InternalLink version="v24.3" path="online-schema-changes">schema change</InternalLink> while the same <InternalLink version="v24.3" path="schema-design-overview">schema objects</InternalLink> were being dropped, it was possible for the connection to be incorrectly dropped.
* Fixed a bug introduced in v23.1 that could cause incorrect results when:
  1. The query contained a <InternalLink version="v24.3" path="subqueries#correlated-subqueries">correlated subquery</InternalLink>.
  2. The correlated subquery had a <InternalLink version="v24.3" path="select-clause#group-by-an-alias">`GROUP BY`</InternalLink> or <InternalLink version="v24.3" path="performance-best-practices-overview#avoid-select-distinct-for-large-tables">`DISTINCT`</InternalLink> operator with an outer-column reference in its input.
  3. The correlated subquery was in the input of a <InternalLink version="v24.3" path="select-clause">`SELECT`</InternalLink> or <InternalLink version="v24.3" path="joins">`JOIN`</InternalLink> operator.
  4. The `SELECT` or `JOIN` had a filter that set the outer-column reference from (2) equal to a non-outer column in the input of the grouping operator.
  5. The grouping column set did not include the replacement column, and functionally determined the replacement column.
* Fixed a bug which could cause errors with the message `"internal error: Non-nullable column..."` when executing statements under <InternalLink version="v24.3" path="read-committed">`READ COMMITTED`</InternalLink> isolation that involved tables with `NOT NULL` <InternalLink version="v24.3" path="computed-columns#create-a-virtual-computed-column-using-jsonb-data">virtual columns</InternalLink>.
* Fixed a bug that could cause a very rare internal error `"lists in SetPrivate are not all the same length"` when executing queries.
* Fixed a bug that could cause incorrect evaluation of <InternalLink version="v24.3" path="scalar-expressions">scalar expressions</InternalLink> involving `NULL` values in rare cases.
* <InternalLink version="v24.3" path="show-create">`SHOW CREATE ALL SCHEMAS`</InternalLink> now shows corresponding schema comments in its output.
* Fixed a bug, introduced in v23.2.0, where creating a new <InternalLink version="v24.3" path="take-full-and-incremental-backups#incremental-backups">incremental schedule</InternalLink> (using <InternalLink version="v24.3" path="alter-backup-schedule">`ALTER BACKUP SCHEDULE`</InternalLink> ) on a <InternalLink version="v24.3" path="take-full-and-incremental-backups#full-backups">full backup schedule</InternalLink> created on an older version would fail.
* Fixed a bug that could cause an internal error if a table with an implicit ( `rowid` ) <InternalLink version="v24.3" path="primary-key">primary key</InternalLink> was locked from within a <InternalLink version="v24.3" path="subqueries">subquery</InternalLink> like `SELECT * FROM (SELECT * FROM foo WHERE x = 2) FOR UPDATE;`. The error could occur either under <InternalLink version="v24.3" path="read-committed">`READ COMMITTED`</InternalLink> isolation, or with the `optimizer_use_lock_op_for_serializable` <InternalLink version="v24.3" path="session-variables">session setting</InternalLink> enabled.
* Fixed a bug where <InternalLink version="v24.3" path="show-jobs">jobs</InternalLink> created in a session with non-zero session <InternalLink version="v24.3" path="set-vars#set-time-zone">timezone offsets</InternalLink> could hang before starting, or report incorrect creation times when viewed in <InternalLink version="v24.3" path="show-jobs">`SHOW JOBS`</InternalLink> and the <InternalLink version="v24.3" path="ui-overview">DB Console</InternalLink>.
* Fixed a bug which could result in <InternalLink version="v24.3" path="create-schedule-for-changefeed#create-a-scheduled-changefeed-with-cdc-queries">changefeeds using CDC queries</InternalLink> failing due to a system table being <InternalLink version="v24.3" path="architecture/storage-layer#garbage-collection">garbage collected</InternalLink>.
* <InternalLink version="v24.3" path="alter-table#convert-to-a-different-data-type">`ALTER COLUMN TYPE`</InternalLink> now errors out when there is a <InternalLink version="v24.3" path="partial-indexes">partial index</InternalLink> that is dependent on the column being altered.
* Fixed a bug that prevented buffered file sinks from being included when iterating over all file sinks. This led to problems such as the `debug zip` command not being able to fetch logs for a cluster where buffering was enabled.
* Fixed a bug where backup schedules could advance a protected timestamp too early, which caused incremental backups to fail.

### Performance improvements

* <InternalLink version="v24.3" path="architecture/replication-layer#raft-logs">Raft log</InternalLink> sync callback handling is now parallelized, which can improve write-heavy workload performance on large, single-store nodes.
* <InternalLink version="v24.3" path="cost-based-optimizer">Planning time</InternalLink> for complex queries has been reduced.
* Reduced the <InternalLink version="v24.3" path="architecture/storage-layer">write-amplification</InternalLink> impact of <InternalLink version="v24.3" path="architecture/replication-layer">rebalances</InternalLink> by splitting snapshot SSTable files into smaller ones before ingesting them into <InternalLink version="v24.3" path="architecture/storage-layer#pebble">Pebble</InternalLink>.
* Improved the performance of <InternalLink version="v24.3" path="show-jobs">job-system</InternalLink> related queries.
* The <InternalLink version="v24.3" path="cost-based-optimizer">query optimizer</InternalLink> now plans limited, <InternalLink version="v24.3" path="partial-indexes">partial-index scans</InternalLink> in more cases.
* The initialization of the execution engine for a query is now more efficient when the <InternalLink version="v24.3" path="cost-based-optimizer">query plan</InternalLink> contains <InternalLink version="v24.3" path="functions-and-operators#aggregate-functions">aggregate functions</InternalLink>.
* Enabled multi-level <InternalLink version="v24.3" path="architecture/storage-layer#compaction">compactions</InternalLink> that moderately reduce <InternalLink version="v24.3" path="architecture/storage-layer">write amplification</InternalLink> within the <InternalLink version="v24.3" path="architecture/storage-layer">storage engine</InternalLink>.
* Increased the per-vCPU concurrency limits for KV operations. Specifically, increased the `kv.dist_sender.concurrency_limit` <InternalLink version="v24.3" path="cluster-settings">cluster setting</InternalLink> to 384/vCPU (up from 64/vCPU) and `kv.streamer.concurrency_limit` to 96/vCPU (up from 8/vCPU).
* The <InternalLink version="v24.3" path="cost-based-optimizer">optimizer</InternalLink> now plans more efficient <InternalLink version="v24.3" path="joins#lookup-joins">lookup joins</InternalLink> in some cases.

### Build changes

* Changed the AWS SDK version used for interactions with external storage from v1 to v2.
