sql: Replace WITH BUCKET_COUNT with new bucket_count storage param.#76112
Conversation
WITH BUCKET_COUNT with new bucket_count storage param.
postamar
left a comment
There was a problem hiding this comment.
Reviewed 22 of 22 files at r1, all commit messages.
Reviewable status:complete! 0 of 0 LGTMs obtained (waiting on @ajwerner and @chengxiong-ruan)
pkg/sql/sem/tree/create.go, line 723 at r1 (raw file):
ctx.WriteString(" USING HASH WITH BUCKET_COUNT=") ctx.FormatNode(node.PrimaryKey.ShardBuckets) }
This seems dangerous. Couldn't you end up with USING HASH WITH BUCKET_COUNT=123 WITH (bucket_count=123) somehow? As I'm reviewing this, I can only feel that this doesn't happen because the tests are exercised with the default value for the most part. I may be wrong.
It feels like the logic for determining whether USING HASH is there should be separate from the logic determining whether to use the legacy WITH BUCKET_COUNT vs the new WITH (bucket_count.
This comment applies to other places that changed in the tree package.
|
pkg/sql/sem/tree/create.go, line 723 at r1 (raw file): Previously, postamar (Marius Posta) wrote…
You may already be aware of this, but wanted to mention that there are multiple formatting functions. This one formats the parsed AST, while another code path in A possible alternative is to always output the preferred full length format, whether the default was used or not: |
|
pkg/sql/sem/tree/create.go, line 723 at r1 (raw file): Previously, mgartner (Marcus Gartner) wrote…
Thanks for raising this! For descriptors, it should be safe since we have validations on application level to prevent that. Is there a way we can add such kind of validations during parsing? |
|
Assuming it's feasible and doesn't break anything, I completely agree with @mgartner 's suggestion. |
c11824d to
b84a3a9
Compare
a follow up of pr cockroachdb#76068 Release note (sql change): We have add support for the new `bucket_count` storage param syntax. We prefer it over the old `WITH BUCKET_COUNT=xxx` syntax. With this change, crdb outputs the new syntax for `SHOW CREATE`. Though for the AST tree formatting, we still respect the old syntax if user used it.
b84a3a9 to
9c2434a
Compare
postamar
left a comment
There was a problem hiding this comment.
Reviewed 6 of 6 files at r2, all commit messages.
Reviewable status:complete! 1 of 0 LGTMs obtained (waiting on @ajwerner)
|
thanks for the review! |
75560: sql: allow non-ALL privileges to be granted WITH GRANT OPTION r=rafiss a=ecwall 75762: sql,roachpb: add plan hash correct value to persisted stats r=maryliag a=maryliag Previously, we didn't have the plan hash/gist values, so a dummy value was being used instead. Now that we have the value, this commit uses those values to be corrected stored. The Plan Hash is saved on its own column and is part of a statement key. A plan gist is a string saved in the metadata and can later on converted back into a logical plan. Partially addresses #72129 Release note (sql change): Saving plan hash/gist to the Statements persisted stats. 75880: server: better error message for tsdump initialization r=liamgillies a=liamgillies Beforehand, the error message for tsdump initialization was unclear and didn't provide enough information to support engineers on how to fix it. To address this, the error message has been revamped with instructions and commands to get tsdump working. Release note (cli change): Added instructions to an error message when initializing tsdump. 76112: sql: Replace `WITH BUCKET_COUNT` with new `bucket_count` storage param. r=chengxiong-ruan a=chengxiong-ruan a follow up of pr #76068 Release note (sql change): We have add support for the new `bucket_count` storage param syntax. We prefer it over the old `WITH BUCKET_COUNT=xxx` syntax. With this change, crdb outputs the new syntax for `SHOW CREATE`. Though for the AST tree formatting, we still respect the old syntax if user used it. 76129: geo: add pgerror codes for errors.Newf r=rafiss a=otan Release note (sql change): Added PG error codes to the majority of spatial related functions. 76242: sql/logictest: fix flakey new_schema_changer r=ajwerner a=ajwerner IDs are not deterministic due to the non-transactional nature of the descriptor ID allocator sequence. The ID wasn't really adding value to the test anyway but rather the name was interesting. Fixes #76237 Release note: None Co-authored-by: Evan Wall <wall@cockroachlabs.com> Co-authored-by: Marylia Gutierrez <marylia@cockroachlabs.com> Co-authored-by: Liam Gillies <liam.gillies@cockroachlabs.com> Co-authored-by: Chengxiong Ruan <chengxiongruan@gmail.com> Co-authored-by: Oliver Tan <otan@cockroachlabs.com> Co-authored-by: Andrew Werner <awerner32@gmail.com>
|
Build failed (retrying...): |
|
Build failed (retrying...): |
|
Build succeeded: |
Previously, when displaying hash sharded indexes with STORING columns in pg_indexes, the STORING clause appeared after the WITH (bucket_count=...) clause. This produced invalid SQL that could not be re-executed: CREATE INDEX idx ON tbl USING btree (c1, c2) USING HASH WITH (bucket_count=16) STORING (c3) The SQL grammar requires STORING to come before storage parameters. This commit fixes the output order so that STORING appears before WITH (bucket_count=...): CREATE INDEX idx ON tbl USING btree (c1, c2) USING HASH STORING (c3) WITH (bucket_count=16) This matches the grammar and allows the statement to be re-executed. This bug was introduced in cockroachdb#76112. Fixes cockroachdb#161516 Release note (bug fix): Fixed a bug where the index definition shown in pg_indexes for hash sharded indexes with STORING columns was not valid SQL. The STORING clause now appears in the correct position.
161882: sql: fix STORING clause position for hash sharded indexes in pg_indexes r=rafiss a=rafiss
Previously, when displaying hash sharded indexes with STORING columns in pg_indexes, the STORING clause appeared after the WITH (bucket_count=...) clause. This produced invalid SQL that could not be re-executed:
CREATE INDEX idx ON tbl USING btree (c1, c2) USING HASH WITH (bucket_count=16) STORING (c3)
The SQL grammar requires STORING to come before storage parameters.
This commit fixes the output order so that STORING appears before WITH (bucket_count=...):
CREATE INDEX idx ON tbl USING btree (c1, c2) USING HASH STORING (c3) WITH (bucket_count=16)
This matches the grammar and allows the statement to be re-executed.
This bug was introduced in #76112.
Fixes #161516
Release note (bug fix): Fixed a bug where the index definition shown in pg_indexes for hash sharded indexes with STORING columns was not valid SQL. The STORING clause now appears in the correct position.
Co-authored-by: Rafi Shamim <rafi@cockroachlabs.com>
a follow up of pr #76068
Release note (sql change): We have add support for the new
bucket_countstorage param syntax. We prefer it over the old
WITH BUCKET_COUNT=xxxsyntax. With this change, crdb outputs the new syntax for
SHOW CREATE.Though for the AST tree formatting, we still respect the old syntax if
user used it.