Skip to content
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

Add 2.1 known limitations #3940

Merged
merged 2 commits into from
Oct 30, 2018
Merged

Add 2.1 known limitations #3940

merged 2 commits into from
Oct 30, 2018

Conversation

sploiselle
Copy link
Contributor

Create known limitations page for 2.1, as well as perform very minor cleanup on old issues. Descriptions provided by engineering in all cases except for the DISTINCT issue with JSON, which I worked with Justin on.

Adds docs-done to

Once merged, the following issues should have the docs-done label added

@cockroach-teamcity
Copy link
Member

This change is Reviewable

Copy link
Contributor

@jseldess jseldess left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:lgtm:, with a few nits. Thanks very much, @sploiselle!

Reviewable status: :shipit: complete! 0 of 0 LGTMs obtained (and 1 stale)


v2.1/known-limitations.md, line 37 at r1 (raw file):

The use of tables with very large primary or secondary index keys (>32KB) can result in excessive memory usage. Specifically, if the primary or secondary index key is larger than 32KB the default indexing scheme for RocksDB SSTables breaks down and causes the index to be excessively large. The index is pinned in memory by default for performance.

To work around this issue, we recommend limiting the size of primary and secondary keys to 4KB, which you must account for manually. Note that columns most columns are 8B (exceptions being `STRING` and `JSON`), which still allows for very complex key structures.

Remove first columns from columns most columns.


v2.1/known-limitations.md, line 49 at r1 (raw file):

### Using `LIKE...ESCAPE` in `WHERE` and `HAVING` constraints

CockroachDB tries to optimize most comparisons operators in `WHERE` and `HAVING` clauses into constraints on SQL indexes by only accessing selected rows. This is done for `LIKE` clauses when a common prefix for all selected rows can be determined in the search pattern (e.g. `... LIKE 'Joe%'`). However, this optimization is not yet available if the `ESCAPE` keyword is also used.

nit: e.g. > e.g.,


v2.1/known-limitations.md, line 55 at r1 (raw file):

### Using SQLAlchemy with CockroachDB

Users of the SQLAlchemy adapter provided by Cockroach Labs must [upgrade the adapter to the latest release](https://github.com/cockroachdb/cockroachdb-python) before they upgrade to CockroachDB 2.1.

Would you mind adding this note to the 2.1 SQLAlchemy tutorial as well?


v2.1/known-limitations.md, line 74 at r1 (raw file):

`TRUNCATE` is not a DML statement, but instead works as a DDL statement. Its limitations are the same as other DDL statements, which are outlined in [Online Schema Changes
: Limitations](https://www.cockroachlabs.com/docs/v2.1/online-schema-changes.html#limitations)

Let's use a relative link instead: [Online Schema Changes: Limitations](online-schema-changes.html#limitations)


v2.1/known-limitations.md, line 82 at r1 (raw file):
I think the sentence would read better with the examples in parentheses:

at the end of the GROUP BY list (e.g., SELECT...), or DISTINCT should be used (e.g., SELECT...).


v2.1/known-limitations.md, line 88 at r1 (raw file):

### Cannot `DELETE` multiple rows with self-referencing FKs

Because CockroachDB checks foreign keys eagerly (i.e. per row), it cannot trivially delete multiple rows from a table with a self-referencing foreign key.

nit: i.e.,


v2.1/known-limitations.md, line 98 at r1 (raw file):

CockroachDB does not currently key-encode JSON values, which prevents `DISTINCT` filters from working on them.

As a workaround, you can return the JSON field's values to a `string` using the `->>` operator, e.g. `SELECT DISTINCT col->>'field'...`.

nit: e.g.,


v2.1/known-limitations.md, line 110 at r1 (raw file):

### Using common table expressions in `VALUES` and `UNION` clauses

When the [cost-based optimizer](https://www.cockroachlabs.com/docs/v2.1/cost-based-optimizer.html) is disabled (which is the default), or when it does not support a query, a common table expression defined outside of a `VALUES` or `UNION `clause will not be available inside it. For example `...WITH a AS (...) SELECT ... FROM (VALUES(SELECT * FROM a))`.

Let's make the link relative: cost-based optimizer](cost-based-optimizer.html)


v2.1/known-limitations.md, line 118 at r1 (raw file):

### Conversion of integers to date/time values

CockroachDB supports an experimental extension to the SQL standard where an integer value can be converted to a `DATE`/`TIME`/`TIMESTAMP` value, taking the number as a number of seconds since the Unix epoch. This conversion is currently only well defined for a small range of integers and values that a large in magnitude will cause conversion errors.

Somethings off in the last sentence, but I can't quite figure out what.


v2.1/known-limitations.md, line 122 at r1 (raw file):

[Tracking GitHub Issue](https://github.com/cockroachdb/cockroach/issues/20136)

### Cannot decommission nodes

I'm surprised we want to call this out as a limitations. This feels like something we would never want to fix?


v2.1/known-limitations.md, line 132 at r1 (raw file):

### Importing data using the PostgreSQL COPY protocol

Currently the built-in SQL shell provided with CockroachDB (`cockroach sql` / `cockroach demo`) does not support importing data using the `COPY` statement. Users can use the `psql` client command provided with PostgreSQL to load this data into CockroachDB instead. For details see [Import from generic SQL dump](https://www.cockroachlabs.com/docs/stable/import-data.html#import-from-generic-sql-dump).

nits:

  • Currently,
  • For details, see

@sploiselle
Copy link
Contributor Author

@jseldess Getting clarification on INT->>DATE, but everything else is done.

@sploiselle sploiselle force-pushed the known-limitations-2.1 branch from 2296029 to d80f92f Compare October 30, 2018 14:14
@jseldess jseldess merged commit 6719106 into master Oct 30, 2018
@jseldess jseldess deleted the known-limitations-2.1 branch October 30, 2018 14:54
@jseldess jseldess mentioned this pull request Oct 30, 2018
2 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants