-
Notifications
You must be signed in to change notification settings - Fork 469
1.0 Release notes and known limitations #1381
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
v1.0-known-limitations.md
Outdated
|
||
As a workaround, [execute the file from the command line](use-the-built-in-sql-client.html#execute-sql-statements-from-a-file) instead of from within the interactive shell. | ||
|
||
## New values generated by `DEFAULT` expressions during `ALTER TABLE ADD COLUMN` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@knz, @andreimatei, the following is based on cockroachdb/cockroach#15633. Please check. If anything needs to be changed or added, I'd appreciate draft language.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
works for me
v1.0-known-limitations.md
Outdated
|
||
In the [built-in SQL shell](use-the-built-in-sql-client.html), each previously executed command is stored in the SQL shell history. In cases where identical commands are executed consecutively, this can make it incoventient to return to a command prior to the identical batch of commands. | ||
|
||
## Using `\|` to perform a large input in the SQL shell |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@knz, the following is based on cockroachdb/cockroach#15645. Please check and let me know if anything should be changed/expanded.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
v1.0-known-limitations.md
Outdated
|
||
The `unique_rowid()` [function](functions-and-operators.html) returns values that cannot be represented exactly by numbers in Javascript. For example, a `235191684988928001` value returned by `unique_rowid()` would get represented as `235191684988928000` in Javascript. Notice that the last digit is different. In such cases, if the Javascript application temporarily stores the value `235191684988928001` and queries using it, it won't match the value that actually got stored. | ||
|
||
## Repeated commands in the SQL shell history |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@knz, the following is based on cockroachdb/cockroach#14938. Please check and let me know if anything should be changed/expanded.
v1.0-known-limitations.md
Outdated
|
||
This limitations may be particularly relevant if you are using a simple SQL table of two columns to [simulate direct KV access](frequently-asked-questions.html#can-i-use-cockroachdb-as-a-key-value-store). In that case, be sure to use the `UPSERT` statement. | ||
|
||
## `unique_rowid()` values in Javascript |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@petermattis, the following is based on cockroachdb/cockroach#15721. Please let me know if we need more details, and if we have a specific suggested workaround.
v1.0-known-limitations.md
Outdated
|
||
<div id="toc"></div> | ||
|
||
## `INSERT ON CONFLICT` vs. `UPSERT` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@danhhz, the following is based on cockroachdb/cockroach#14482. We've documented this elsewhere already, but nonetheless, let me know if anything needs tweaking here.
I could use help adding more known limitations to this PR. If I've put your name next to one, I'd greatly appreciate it if you would add a comment to this PR with suggested language for explaining/describing the known limitation. If you don't have time to help, please suggest someone else.
|
220bf4c
to
90b910f
Compare
v1.0-known-limitations.md
Outdated
|
||
## `unique_rowid()` values in Javascript | ||
|
||
The `unique_rowid()` [function](functions-and-operators.html) returns values that cannot be represented exactly by numbers in Javascript. For example, a `235191684988928001` value returned by `unique_rowid()` would get represented as `235191684988928000` in Javascript. Notice that the last digit is different. In such cases, if the Javascript application temporarily stores the value `235191684988928001` and queries using it, it won't match the value that actually got stored. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The workaround is to ensure that the JavaScript code that uses a column initialized with unique_rowid converts the id value to a string server-side before inspecting/using it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done.
v1.0-known-limitations.md
Outdated
|
||
## Repeated commands in the SQL shell history | ||
|
||
In the [built-in SQL shell](use-the-built-in-sql-client.html), each previously executed command is stored in the SQL shell history. In cases where identical commands are executed consecutively, this can make it incoventient to return to a command prior to the identical batch of commands. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
incoventient -> inconvenient
Also, I have tried to reproduce #14938 and was unable to. It does not appear that we duplicate the history, as the issue implies. I would be more cautious with the phrasing, for example:
"In the built-in SQL shell, each previously executed command is stored in the SQL shell history. In some cases, commands are unexpectedly duplicated in the history."
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done.
v1.0-known-limitations.md
Outdated
|
||
In the [built-in SQL shell](use-the-built-in-sql-client.html), each previously executed command is stored in the SQL shell history. In cases where identical commands are executed consecutively, this can make it incoventient to return to a command prior to the identical batch of commands. | ||
|
||
## Using `\|` to perform a large input in the SQL shell |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
v1.0-known-limitations.md
Outdated
|
||
In the [built-in SQL shell](use-the-built-in-sql-client.html), using the [`\|`](use-the-built-in-sql-client.html#sql-shell-commands) operator to perform a large number of queries from a file can cause the server to close the connection. This is because `\|` sends the entire file as a single query to the server, which can exceed the upper bound on the size of a packet the server can accept from any client (16MB). | ||
|
||
As a workaround, [execute the file from the command line](use-the-built-in-sql-client.html#execute-sql-statements-from-a-file) instead of from within the interactive shell. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would be more concrete here and say [ execute ... ]( ... ) with "cat data.sql | cockroach sql", instead ...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done.
v1.0-known-limitations.md
Outdated
|
||
As a workaround, [execute the file from the command line](use-the-built-in-sql-client.html#execute-sql-statements-from-a-file) instead of from within the interactive shell. | ||
|
||
## New values generated by `DEFAULT` expressions during `ALTER TABLE ADD COLUMN` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
works for me
Some additional limitations:
|
The point about UUIDs is not a known limitation, it's rather a non-standard SQL feature which we have chosen not to implement yet. I'm not sure we want to make a list of every SQL feature under the sun that other RDBMs support but we don't. |
sql: roundtrip to string -- "queries with constant expressions that evaluate to 2**-63 may be incorrectly rejected". sql: improve overload resolution -- "many string operations are not properly overloaded for collated strings". |
Review status: 0 of 2 files reviewed at latest revision, 8 unresolved discussions. Comments from Reviewable |
90b910f
to
6976b3c
Compare
Review status: 0 of 2 files reviewed at latest revision, 9 unresolved discussions. v1.0-known-limitations.md, line 19 at r4 (raw file):
Comments from Reviewable |
@eisenstatdavid, can you please provide a concrete SQL example for each? These single sentences don't feel like quite enough.
|
@knz, thanks for adding those additional known limitations, but shouldn't there be cockroach issues with the |
roundtrip:
overloads:
|
storage: Load-based lease rebalancing performs poorly if localities are under-specified in uneven latency deployments. This isn't likely to effect most people, and I'm not sure how to make it clear without being pretty long-winded but here's a somewhat condensed explanation: If your cluster:
...then you might see increased latency caused by a continuously high rate of lease transfers between datacenters. You can tell whether this is happening by seeing whether the "Leases Transferred / second" line on the "Replication Queue" graph on the "Queues" dashboard of the admin UI is consistently larger than 0. If you're seeing this problem, you can fix it (thus improving request latency) by adding a second tier to each node's locality specification. In the example above where A and B are close together and C is far apart, you might change A and B's localities to |
@jseldess I have added the links to issues in my previous comment |
Thanks, @a-robinson. I reworked your explanation a bit. Please take a look. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The lease transfer limitation LGTM other than a minor clarification. Thanks Jesse!
v1.0-known-limitations.md
Outdated
- Each node was started with a single tier of `--locality`, e.g., `--locality=datacenter=a`. | ||
- Most client requests get sent to a single datacenter because that's where all your application traffic is. | ||
|
||
To detect that this is happening, open the [Admin UI](explore-the-admin-ui.html), select the **Queues** dashboard, hover over the **Replication Queue** graph, and check the **Leases Transferred / second** data point. If that data point is larger than 0, you should consider stopping and restarting each node with additional tiers of locality to improve request latency. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's not necessarily bad if the data point is larger than 0 once in a while. The issue is if it's continuously/consistently greater than 0, indicating that leases are constantly being transferred. The occasional transfer is fine.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done.
134444f
to
5e6f60e
Compare
@knz, that UUID issue is flagged as a known limitation. Should we remove the label? |
@jseldess Yes, the lack of UUID support doesn't fall under my definition of known-limitation. We can't document all of our missing functionality. I think known-limitation should be constrained to functionality that we're providing but which has significant limitations, surprises or bugs. |
Got it, @petermattis. I'll remove it from my list. |
@jseldess This is looking great. |
c59e086
to
a9aaa8d
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Don't forget to fill in the date (in two places) before pressing the button.
@vivekmenezes, can you write up the following known limitations for me please? |
5f82b45
to
fe1d852
Compare
@tamird, @eisenstatdavid, @jordanlewis: can one of you write up this know limitation for me, with any workarounds? cockroachdb/cockroach#15800 |
fe1d852
to
101ec4e
Compare
101ec4e
to
f41f87c
Compare
- A [`CREATE TABLE`](create-table.html) statement containing [`FOREIGN KEY`](foreign-key.html) or [`INTERLEAVE`](interleave-in-parent.html) clauses cannot be followed by statements that reference the new table. | ||
- A table cannot be dropped and then recreated with the same name. This is not possible within a single transaction because `DROP TABLE` does not immediately drop the name of the table. As a workaround, split the [`DROP TABLE`](drop-table.html) and [`CREATE TABLE`](create-table.html) statements into separate transactions. | ||
|
||
## Nodes need access to the first key-value range on startup |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@spencerkimball, @a-robinson, is this sufficient for documenting cockroachdb/cockroach#13027? If not, please help me revise/expand as necessary.
I think that the |
Indeed, rc2 is fine. |
Thanks, @eisenstatdavid. |
|
||
## Query planning for `OR` expressions | ||
|
||
Given a query like `SELECT * FROM foo WHERE a > 1 OR b > 2`, even if there are appropriate indexes to satisfy both `a > 1` and `b > 2`, the query planner will perform a full table or index scan because it can't use both conditions at once. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Review status: 0 of 6 files reviewed at latest revision, 20 unresolved discussions, some commit checks failed. known-limitations.md, line 29 at r11 (raw file): Previously, jseldess wrote…
First off, this only affects clusters that are being restarted with entirely new IP addresses. I'd frame the known limitation as only affecting situations in which you're restoring a backup onto a new set of machines that have different IP addresses. Second, I'm fairly confident that telling the first node to join itself won't actually fix the problem. Even if I did think that it would work, we never actually tested it so I'd still be a little hesitant to rely on recommending that. Instead, I'd either suggest including all node addresses in the join flags or including node (n-1)'s address (or n for the first node) when restoring from backup onto a new set of machines. Comments from Reviewable |
f41f87c
to
230bd90
Compare
Review status: 0 of 10 files reviewed at latest revision, 21 unresolved discussions. known-limitations.md, line 31 at r11 (raw file):
s/As show/As shown/ Comments from Reviewable |
1 similar comment
Reviewed 1 of 4 files at r8, 1 of 4 files at r9, 2 of 3 files at r10, 2 of 2 files at r11, 3 of 6 files at r12. Comments from Reviewable |
This change is