The Wayback Machine - https://web.archive.org/web/20190531113323/https://github.com/cockroachdb/cockroach
Skip to content
CockroachDB - the open source, cloud-native SQL database.
Branch: master
Clone or download
craig[bot] and mjibson Merge #37901
37901: sql/distsqlrun: don't inspect encoding output during distinct r=mjibson a=mjibson

In the beginning of times a commit was added to teach DISTINCT about
the difference between filter columns and selected columns. In that
commit a check was added [1] such that the seen marker would only be
added if the encoded version of the column contained > 0 bytes. That
commit doesn't suggest a reason for the addition of that check, and it
is unclear to me now why it was added. (Note that I don't have experience
in the distsql directories, so I may be missing some history.) This file
has been improved since then, but the diligently check remained.

That check caused a GROUP BY with two rows each of empty arrays to not
consider those arrays equal (again, since the seen marker was avoided). A
experiment removing the check showed that no existing tests failed as
a result. And in addition, this new failing test now passed. I can't
find any evidence that this check was necessary, or why it was present
in the first place. I conclude that it is safe to remove until we find
a counter example.

Fixes #37544

[1]: 965107f#diff-6a63b13f6fae0ef7417b27292db3f04aR130

Release note (bug fix): Fix GROUP BY for empty arrays.

Co-authored-by: Matt Jibson <matt.jibson@gmail.com>
Latest commit a059c2e May 30, 2019

README.md

CockroachDB

CockroachDB is a cloud-native SQL database for building global, scalable cloud services that survive disasters.

TeamCity CI GoDoc

What is CockroachDB?

CockroachDB is a distributed SQL database built on a transactional and strongly-consistent key-value store. It scales horizontally; survives disk, machine, rack, and even datacenter failures with minimal latency disruption and no manual intervention; supports strongly-consistent ACID transactions; and provides a familiar SQL API for structuring, manipulating, and querying data.

For more details, see our FAQ or architecture document.

Here’s a quick explainer video:

Status

CockroachDB is production-ready. See our Roadmap for a list of features planned or in development.

Docs

For guidance on installation, development, deployment, and administration, see our User Documentation.

Quickstart

  1. Install CockroachDB.

  2. Start a local cluster and talk to it via the built-in SQL client.

  3. Learn more about CockroachDB SQL.

  4. Use a PostgreSQL-compatible driver or ORM to build an app with CockroachDB.

  5. Explore core features, such as data replication, automatic rebalancing, and fault tolerance and recovery.

Client Drivers

CockroachDB supports the PostgreSQL wire protocol, so you can use any available PostgreSQL client drivers to connect from various languages.

Deployment

  • Test Deployment - Easiest way to test an insecure, multi-node CockroachDB cluster.
  • Production Deployments
    • Manual - Steps to deploy a CockroachDB cluster manually on multiple machines.
    • Cloud - Guides for deploying CockroachDB on various cloud platforms.
    • Orchestration - Guides for running CockroachDB with popular open-source orchestration systems.

Need Help?

Contributing

We're an open source project and welcome contributions. See our Contributing Guide for more details.

Engineering discussion takes place on our public mailing list, cockroach-db@googlegroups.com.

Design

For an in-depth discussion of the CockroachDB architecture, see our Architecture Guide.

For the original design motivation, see our design doc.

Comparison with Other Databases

To see how key features of CockroachDB stack up against other databases, visit the CockroachDB in Comparison page on our website.

See Also

You can’t perform that action at this time.