Skip to content

Commit 02065f5

Browse files
craig[bot]cty123fqaziknzyuzefovich
committed
107863: sql: add bitwise operation for varbit with variable length r=rharding6373 a=cty123 As raised in #107821, the existing bitwise operations in CRDB follow the same standard as Postgresql that require the two operands of varbit type to have the same length. The restriction makes it easier for the implementation but harder for users. As of today, we need to apply casting and left padding to make sure the operands have the same length. Instead, it might be useful to have CRDB built-in functions that can handle this. Here I have implemented 2 basic bitwise operation functions that are tailored for varbit typed data of arbitrary length. 108525: sql: TestRandomSyntaxFunctions: skip function call and fix CREATE STATS use of span after finish r=fqazi a=fqazi Previously, this test could depending on the concurrency, could spawn a large number of schema telemetry jobs via (ctdb_internal.create_sql_schema_telemetry_job). This could lead to contention that will eventually cause this test to time out. To address this, this patch limits calling the telemetry job creation function. Fixes: #108153 Release note: None 108807: server,log: report tenant names in logging output r=stevendanna,abargainier a=knz Epic: CRDB-27982 Fixes #103406. Prior to this change, the tenant details reported in logging output were limited to just the tenant ID. This is because the original tenant server initialization code only had access to the tenant ID (provided as CLI argument). Since recently, the tenant name is also becoming known during tenant server initialization. This is currently done via the tenant connector. This commit expands on this foundation by injecting the tenant name into the logging output as soon as it is available. For example: ``` I230815 19:31:07.290757 922 sql/temporary_schema.go:554 ⋮ [T4,Vblah,n1] 148 found 0 temporary schemas ^^^^^ here ``` or using JSON: ``` {"channel_numeric":0,"channel":"DEV",...,"tenant_id":4,"tenant_name":"blah",...} ^^^^^^^^^^^^^^^^^^^^ here ``` Note: we are choosing to report the tenant name *in addition* to the tenant ID to preserve compatibilit with automation (eg. logspy) which needs to filter entries based on ID. Release note (cluster virtualization): The name of the virtual cluster (tenant), when known, is now reported in logging events. Refer to the documentation of individual logging format for details. 108823: row: remove no longer nil txn check r=yuzefovich a=yuzefovich I believe this non-nil txn check is no longer needed as of 8f7f2f4 (which fixed the only known place where we forgot to set the txn field on the FlowCtx). Epic: None Release note: None 108858: *: bump some core dependencies r=knz a=rickystewart Unfortunately we're still getting `nogo` crashes. Try bumping these dependencies even further. Informs #99988. Epic: none Release note: None 108866: storage: Write sstables in v4 format for shared ingestions r=RaduBerinde a=itsbilal We require sstables to be written with obsolete bits for shared sstable ingestion to work correctly. This change moves to writing sstables with the new format if the cluster version is high enough. Unblocks #107394. Epic: none Release note: None 108886: kvstreamer, row: adjust all tests to work with the test tenant r=yuzefovich a=yuzefovich Epic: CRDB-18499 Informs #76378 Release note: None 108924: logictest: avoid FATAL during cleanup r=rafiss a=rafiss This prevents the test from failing if there is an error closing a connection at the end of the test. There is no strong need for us to assert that closing the connection worked. fixes #108833 Release note: None 108925: streamingest: speed-up c2c cutover r=lidorcarmel a=lidorcarmel Each c2c processor checks the job info table every 30 seconds to see whether a cutover has started. Normally a cutover should take about 10 seconds. This pr changes the default to 10 seconds, to reduce the total time for cutting over. Epic: none Release note: None Co-authored-by: cty123 <[email protected]> Co-authored-by: Faizan Qazi <[email protected]> Co-authored-by: Raphael 'kena' Poss <[email protected]> Co-authored-by: Yahor Yuzefovich <[email protected]> Co-authored-by: Ricky Stewart <[email protected]> Co-authored-by: Bilal Akhtar <[email protected]> Co-authored-by: Rafi Shamim <[email protected]> Co-authored-by: Lidor Carmel <[email protected]>
10 parents 68a4c7b + fc0b06f + 8b60fec + 3169b2a + 46cebe9 + 54140f3 + ee5cce5 + 3a61d72 + 9d2c598 + ad7ea95 commit 02065f5

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+1357
-543
lines changed

DEPS.bzl

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -11160,10 +11160,10 @@ def go_deps():
1116011160
name = "org_golang_x_crypto",
1116111161
build_file_proto_mode = "disable_global",
1116211162
importpath = "golang.org/x/crypto",
11163-
sha256 = "672ebc916740a040d5f5472b477e1d1898e06b0c6c0a5a820b65495bbb133e82",
11164-
strip_prefix = "golang.org/x/crypto@v0.9.0",
11163+
sha256 = "2e4f9b72df6f480a744483b14d6b8cbad98ff066399979ac74ff1dc5b74e9bec",
11164+
strip_prefix = "golang.org/x/crypto@v0.10.0",
1116511165
urls = [
11166-
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/crypto/org_golang_x_crypto-v0.9.0.zip",
11166+
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/crypto/org_golang_x_crypto-v0.10.0.zip",
1116711167
],
1116811168
)
1116911169
go_repository(
@@ -11230,10 +11230,10 @@ def go_deps():
1123011230
name = "org_golang_x_net",
1123111231
build_file_proto_mode = "disable_global",
1123211232
importpath = "golang.org/x/net",
11233-
sha256 = "f92f9b2655226a6d015af7a76279a11fb55678e410b851b158fc846546f80733",
11234-
strip_prefix = "golang.org/x/net@v0.10.0",
11233+
sha256 = "5d97db0b34367452949b1b04194b47a663cbb0852f40d119ba5d910ccc124657",
11234+
strip_prefix = "golang.org/x/net@v0.11.0",
1123511235
urls = [
11236-
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/net/org_golang_x_net-v0.10.0.zip",
11236+
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/net/org_golang_x_net-v0.11.0.zip",
1123711237
],
1123811238
)
1123911239
go_repository(
@@ -11260,40 +11260,40 @@ def go_deps():
1126011260
name = "org_golang_x_sync",
1126111261
build_file_proto_mode = "disable_global",
1126211262
importpath = "golang.org/x/sync",
11263-
sha256 = "f510bec6009e19882d19953e7273137d34df86c65949345d72f123a255c2ecd2",
11264-
strip_prefix = "golang.org/x/sync@v0.1.0",
11263+
sha256 = "1870e7a196f7119d4c6edba7de9cdfc49ee13c8cb7921f3a947568171c6152e0",
11264+
strip_prefix = "golang.org/x/sync@v0.3.0",
1126511265
urls = [
11266-
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/sync/org_golang_x_sync-v0.1.0.zip",
11266+
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/sync/org_golang_x_sync-v0.3.0.zip",
1126711267
],
1126811268
)
1126911269
go_repository(
1127011270
name = "org_golang_x_sys",
1127111271
build_file_proto_mode = "disable_global",
1127211272
importpath = "golang.org/x/sys",
11273-
sha256 = "2588b3a645838390e341f1007f8679f5e1117b5d5ac9467ef832d148b2219a38",
11274-
strip_prefix = "golang.org/x/sys@v0.8.0",
11273+
sha256 = "3b37c87534ebabf9d1a60ef03da16805f1293408bcaf8b7cbba9d646eda07d7f",
11274+
strip_prefix = "golang.org/x/sys@v0.9.0",
1127511275
urls = [
11276-
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/sys/org_golang_x_sys-v0.8.0.zip",
11276+
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/sys/org_golang_x_sys-v0.9.0.zip",
1127711277
],
1127811278
)
1127911279
go_repository(
1128011280
name = "org_golang_x_term",
1128111281
build_file_proto_mode = "disable_global",
1128211282
importpath = "golang.org/x/term",
11283-
sha256 = "1961dfea59ce531e2d6e6a3228781f5958b27c6d9d9c09932f5ffc54c4d9cdf9",
11284-
strip_prefix = "golang.org/x/term@v0.8.0",
11283+
sha256 = "b4e6d2ac97732625eee581f47fe4a2125dd8668fe285794bac1a9a1a7fd3f1e3",
11284+
strip_prefix = "golang.org/x/term@v0.9.0",
1128511285
urls = [
11286-
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/term/org_golang_x_term-v0.8.0.zip",
11286+
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/term/org_golang_x_term-v0.9.0.zip",
1128711287
],
1128811288
)
1128911289
go_repository(
1129011290
name = "org_golang_x_text",
1129111291
build_file_proto_mode = "disable_global",
1129211292
importpath = "golang.org/x/text",
11293-
sha256 = "c1cbe684eaf01c053bf1232738697d1040327a5c8ad62dadfc950b585d1b4caa",
11294-
strip_prefix = "golang.org/x/text@v0.9.0",
11293+
sha256 = "53e4f1af4371e78ec717fa1a2919eb9fbfb1b24c743554cfd005ee436388cee2",
11294+
strip_prefix = "golang.org/x/text@v0.10.0",
1129511295
urls = [
11296-
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/text/org_golang_x_text-v0.9.0.zip",
11296+
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/text/org_golang_x_text-v0.10.0.zip",
1129711297
],
1129811298
)
1129911299
go_repository(
@@ -11314,10 +11314,10 @@ def go_deps():
1131411314
patches = [
1131511315
"@com_github_cockroachdb_cockroach//build/patches:org_golang_x_tools.patch",
1131611316
],
11317-
sha256 = "e43c6cc63a85dc30cd1794846ae96a44e81e458e88e436474c3bbbdbef80941a",
11318-
strip_prefix = "golang.org/x/tools@v0.7.0",
11317+
sha256 = "562f25e674aab49f00a23ec1fcb46a57b0a9d27287ea9a885886c994306d9c14",
11318+
strip_prefix = "golang.org/x/tools@v0.10.0",
1131911319
urls = [
11320-
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/tools/org_golang_x_tools-v0.7.0.zip",
11320+
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/tools/org_golang_x_tools-v0.10.0.zip",
1132111321
],
1132211322
)
1132311323
go_repository(

build/bazelutil/distdir_files.bzl

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1051,21 +1051,21 @@ DISTDIR_FILES = {
10511051
"https://storage.googleapis.com/cockroach-godeps/gomod/go.uber.org/zap/org_uber_go_zap-v1.19.0.zip": "6437824258873fed421b7975b8e4cafd1be80cdc15e553beaa887b499dd01420",
10521052
"https://storage.googleapis.com/cockroach-godeps/gomod/goji.io/io_goji-v2.0.2+incompatible.zip": "1ea69b28e356cb91381ce2339004fcf144ad1b268c9e3497c9ef304751ae0bb3",
10531053
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/arch/org_golang_x_arch-v0.0.0-20180920145803-b19384d3c130.zip": "9f67b677a3fefc503111d9aa7df8bacd2677411b0fcb982eb1654aa6d14cc3f8",
1054-
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/crypto/org_golang_x_crypto-v0.9.0.zip": "672ebc916740a040d5f5472b477e1d1898e06b0c6c0a5a820b65495bbb133e82",
1054+
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/crypto/org_golang_x_crypto-v0.10.0.zip": "2e4f9b72df6f480a744483b14d6b8cbad98ff066399979ac74ff1dc5b74e9bec",
10551055
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/exp/org_golang_x_exp-v0.0.0-20230626212559-97b1e661b5df.zip": "af32025a065aa599a3e5b01048602a53e2b6e3938b12d33fa2a5f057be9759fa",
10561056
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/exp/typeparams/org_golang_x_exp_typeparams-v0.0.0-20221208152030-732eee02a75a.zip": "9bd73f186851c6229484f486981f608d16e2b86acbbef6f4f7cc0480a508a4a4",
10571057
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/image/org_golang_x_image-v0.0.0-20210628002857-a66eb6448b8d.zip": "70cf423fad9be160a88fbf01bc1897efd888f915a6d7ba0dd41ca7085f75e06e",
10581058
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/lint/org_golang_x_lint-v0.0.0-20210508222113-6edffad5e616.zip": "0a4a5ebd2b1d79e7f480cbf5a54b45a257ae1ec9d11f01688efc5c35268d4603",
10591059
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/mobile/org_golang_x_mobile-v0.0.0-20190719004257-d2bd2a29d028.zip": "6b946c7da47acf3b6195336fd071bfc73d543cefab73f2d27528c5dc1dc829ec",
10601060
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/mod/org_golang_x_mod-v0.11.0.zip": "364198930cc7f46ba5bb1c0987d089a557aa0b406f8efec0490744a454df00a5",
1061-
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/net/org_golang_x_net-v0.10.0.zip": "f92f9b2655226a6d015af7a76279a11fb55678e410b851b158fc846546f80733",
1061+
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/net/org_golang_x_net-v0.11.0.zip": "5d97db0b34367452949b1b04194b47a663cbb0852f40d119ba5d910ccc124657",
10621062
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/oauth2/org_golang_x_oauth2-v0.5.0.zip": "4d9d9ce8d2f55b7d2ffb3697ed811a54606e881bb7fbbd84d3d9c42fc404ae3c",
10631063
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/perf/org_golang_x_perf-v0.0.0-20230113213139-801c7ef9e5c5.zip": "bc1b902e645fdd5d210b7db8f3280833af225b131dab5842d7a6d32a676f80f5",
1064-
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/sync/org_golang_x_sync-v0.1.0.zip": "f510bec6009e19882d19953e7273137d34df86c65949345d72f123a255c2ecd2",
1065-
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/sys/org_golang_x_sys-v0.8.0.zip": "2588b3a645838390e341f1007f8679f5e1117b5d5ac9467ef832d148b2219a38",
1066-
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/term/org_golang_x_term-v0.8.0.zip": "1961dfea59ce531e2d6e6a3228781f5958b27c6d9d9c09932f5ffc54c4d9cdf9",
1067-
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/text/org_golang_x_text-v0.9.0.zip": "c1cbe684eaf01c053bf1232738697d1040327a5c8ad62dadfc950b585d1b4caa",
1068-
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/tools/org_golang_x_tools-v0.7.0.zip": "e43c6cc63a85dc30cd1794846ae96a44e81e458e88e436474c3bbbdbef80941a",
1064+
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/sync/org_golang_x_sync-v0.3.0.zip": "1870e7a196f7119d4c6edba7de9cdfc49ee13c8cb7921f3a947568171c6152e0",
1065+
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/sys/org_golang_x_sys-v0.9.0.zip": "3b37c87534ebabf9d1a60ef03da16805f1293408bcaf8b7cbba9d646eda07d7f",
1066+
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/term/org_golang_x_term-v0.9.0.zip": "b4e6d2ac97732625eee581f47fe4a2125dd8668fe285794bac1a9a1a7fd3f1e3",
1067+
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/text/org_golang_x_text-v0.10.0.zip": "53e4f1af4371e78ec717fa1a2919eb9fbfb1b24c743554cfd005ee436388cee2",
1068+
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/tools/org_golang_x_tools-v0.10.0.zip": "562f25e674aab49f00a23ec1fcb46a57b0a9d27287ea9a885886c994306d9c14",
10691069
"https://storage.googleapis.com/cockroach-godeps/gomod/golang.org/x/xerrors/org_golang_x_xerrors-v0.0.0-20220907171357-04be3eba64a2.zip": "b9c481db33c4b682ba8ba348018ddbd2155bd227cc38ff9f6b4cb2b74bbc3c14",
10701070
"https://storage.googleapis.com/cockroach-godeps/gomod/gonum.org/v1/gonum/org_gonum_v1_gonum-v0.11.0.zip": "abdfee15ce7c9d2cd96b66468d3ae28d6054add4efbfc1b15fadfe3613f3d362",
10711071
"https://storage.googleapis.com/cockroach-godeps/gomod/gonum.org/v1/netlib/org_gonum_v1_netlib-v0.0.0-20190331212654-76723241ea4e.zip": "ed4dca5026c9ab5410d23bbe21c089433ca58a19bd2902311c6a91791142a687",

docs/generated/logformats.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -325,8 +325,9 @@ Additionally, the following fields are conditionally present:
325325
|-------|-------|-------------|
326326
| `N` | `node_id` | The node ID where the event was generated, once known. Only reported for single-tenant or KV servers. |
327327
| `x` | `cluster_id` | The cluster ID where the event was generated, once known. Only reported for single-tenant of KV servers. |
328-
| `q` | `instance_id` | The SQL instance ID where the event was generated, once known. Only reported for multi-tenant SQL servers. |
329-
| `T` | `tenant_id` | The SQL tenant ID where the event was generated, once known. Only reported for multi-tenant SQL servers. |
328+
| `q` | `instance_id` | The SQL instance ID where the event was generated, once known. |
329+
| `T` | `tenant_id` | The SQL tenant ID where the event was generated, once known. |
330+
| `V` | `tenant_name` | The SQL virtual cluster where the event was generated, once known. |
330331
| `tags` | `tags` | The logging context tags for the entry, if there were context tags. |
331332
| `message` | `message` | For unstructured events, the flat text payload. |
332333
| `event` | `event` | The logging event, if structured (see below for details). |

docs/generated/sql/functions.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2685,6 +2685,30 @@ The swap_ordinate_string parameter is a 2-character string naming the ordinates
26852685
</span></td><td>Immutable</td></tr>
26862686
<tr><td><a name="bit_length"></a><code>bit_length(val: varbit) &rarr; <a href="int.html">int</a></code></td><td><span class="funcdesc"><p>Calculates the number of bits used to represent <code>val</code>.</p>
26872687
</span></td><td>Immutable</td></tr>
2688+
<tr><td><a name="bitmask_and"></a><code>bitmask_and(a: <a href="string.html">string</a>, b: <a href="string.html">string</a>) &rarr; varbit</code></td><td><span class="funcdesc"><p>Calculates bitwise AND value of unsigned bit arrays ‘a’ and ‘b’ that may have different lengths.</p>
2689+
</span></td><td>Immutable</td></tr>
2690+
<tr><td><a name="bitmask_and"></a><code>bitmask_and(a: <a href="string.html">string</a>, b: varbit) &rarr; varbit</code></td><td><span class="funcdesc"><p>Calculates bitwise AND value of unsigned bit arrays ‘a’ and ‘b’ that may have different lengths.</p>
2691+
</span></td><td>Immutable</td></tr>
2692+
<tr><td><a name="bitmask_and"></a><code>bitmask_and(a: varbit, b: <a href="string.html">string</a>) &rarr; varbit</code></td><td><span class="funcdesc"><p>Calculates bitwise AND value of unsigned bit arrays ‘a’ and ‘b’ that may have different lengths.</p>
2693+
</span></td><td>Immutable</td></tr>
2694+
<tr><td><a name="bitmask_and"></a><code>bitmask_and(a: varbit, b: varbit) &rarr; varbit</code></td><td><span class="funcdesc"><p>Calculates bitwise AND value of unsigned bit arrays ‘a’ and ‘b’ that may have different lengths.</p>
2695+
</span></td><td>Immutable</td></tr>
2696+
<tr><td><a name="bitmask_or"></a><code>bitmask_or(a: <a href="string.html">string</a>, b: <a href="string.html">string</a>) &rarr; varbit</code></td><td><span class="funcdesc"><p>Calculates bitwise OR value of unsigned bit arrays ‘a’ and ‘b’ that may have different lengths.</p>
2697+
</span></td><td>Immutable</td></tr>
2698+
<tr><td><a name="bitmask_or"></a><code>bitmask_or(a: <a href="string.html">string</a>, b: varbit) &rarr; varbit</code></td><td><span class="funcdesc"><p>Calculates bitwise OR value of unsigned bit arrays ‘a’ and ‘b’ that may have different lengths.</p>
2699+
</span></td><td>Immutable</td></tr>
2700+
<tr><td><a name="bitmask_or"></a><code>bitmask_or(a: varbit, b: <a href="string.html">string</a>) &rarr; varbit</code></td><td><span class="funcdesc"><p>Calculates bitwise OR value of unsigned bit arrays ‘a’ and ‘b’ that may have different lengths.</p>
2701+
</span></td><td>Immutable</td></tr>
2702+
<tr><td><a name="bitmask_or"></a><code>bitmask_or(a: varbit, b: varbit) &rarr; varbit</code></td><td><span class="funcdesc"><p>Calculates bitwise OR value of unsigned bit arrays ‘a’ and ‘b’ that may have different lengths.</p>
2703+
</span></td><td>Immutable</td></tr>
2704+
<tr><td><a name="bitmask_xor"></a><code>bitmask_xor(a: <a href="string.html">string</a>, b: <a href="string.html">string</a>) &rarr; varbit</code></td><td><span class="funcdesc"><p>Calculates bitwise XOR value of unsigned bit arrays ‘a’ and ‘b’ that may have different lengths.</p>
2705+
</span></td><td>Immutable</td></tr>
2706+
<tr><td><a name="bitmask_xor"></a><code>bitmask_xor(a: <a href="string.html">string</a>, b: varbit) &rarr; varbit</code></td><td><span class="funcdesc"><p>Calculates bitwise XOR value of unsigned bit arrays ‘a’ and ‘b’ that may have different lengths.</p>
2707+
</span></td><td>Immutable</td></tr>
2708+
<tr><td><a name="bitmask_xor"></a><code>bitmask_xor(a: varbit, b: <a href="string.html">string</a>) &rarr; varbit</code></td><td><span class="funcdesc"><p>Calculates bitwise XOR value of unsigned bit arrays ‘a’ and ‘b’ that may have different lengths.</p>
2709+
</span></td><td>Immutable</td></tr>
2710+
<tr><td><a name="bitmask_xor"></a><code>bitmask_xor(a: varbit, b: varbit) &rarr; varbit</code></td><td><span class="funcdesc"><p>Calculates bitwise XOR value of unsigned bit arrays ‘a’ and ‘b’ that may have different lengths.</p>
2711+
</span></td><td>Immutable</td></tr>
26882712
<tr><td><a name="btrim"></a><code>btrim(input: <a href="string.html">string</a>, trim_chars: <a href="string.html">string</a>) &rarr; <a href="string.html">string</a></code></td><td><span class="funcdesc"><p>Removes any characters included in <code>trim_chars</code> from the beginning or end of <code>input</code> (applies recursively).</p>
26892713
<p>For example, <code>btrim('doggie', 'eod')</code> returns <code>ggi</code>.</p>
26902714
</span></td><td>Immutable</td></tr>

go.mod

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,17 @@ require (
1616
github.com/google/btree v1.0.1
1717
github.com/google/pprof v0.0.0-20210827144239-02619b876842
1818
github.com/google/uuid v1.3.0
19-
golang.org/x/crypto v0.9.0
19+
golang.org/x/crypto v0.10.0
2020
golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df
2121
golang.org/x/exp/typeparams v0.0.0-20221208152030-732eee02a75a // indirect
2222
golang.org/x/mod v0.11.0 // indirect
23-
golang.org/x/net v0.10.0
23+
golang.org/x/net v0.11.0
2424
golang.org/x/oauth2 v0.5.0
25-
golang.org/x/sync v0.1.0
26-
golang.org/x/sys v0.8.0
27-
golang.org/x/text v0.9.0
25+
golang.org/x/sync v0.3.0
26+
golang.org/x/sys v0.9.0
27+
golang.org/x/text v0.10.0
2828
golang.org/x/time v0.1.0
29-
golang.org/x/tools v0.7.0
29+
golang.org/x/tools v0.10.0
3030
google.golang.org/api v0.110.0
3131
google.golang.org/genproto v0.0.0-20230227214838-9b19f0bdc514
3232
google.golang.org/grpc v1.53.0
@@ -227,7 +227,7 @@ require (
227227
go.opentelemetry.io/otel/sdk v1.3.0
228228
go.opentelemetry.io/otel/trace v1.3.0
229229
golang.org/x/perf v0.0.0-20230113213139-801c7ef9e5c5
230-
golang.org/x/term v0.8.0
230+
golang.org/x/term v0.9.0
231231
gopkg.in/yaml.v2 v2.4.0
232232
gopkg.in/yaml.v3 v3.0.1
233233
honnef.co/go/tools v0.4.3

0 commit comments

Comments
 (0)