opt: remove lax constant functional dependencies#43532
Merged
craig[bot] merged 1 commit intocockroachdb:masterfrom Dec 25, 2019
Merged
opt: remove lax constant functional dependencies#43532craig[bot] merged 1 commit intocockroachdb:masterfrom
craig[bot] merged 1 commit intocockroachdb:masterfrom
Conversation
Before, the FuncDepSet allowed lax constant functional dependencies like: ()~~>(1,2) These were columns that always had a constant value, or were NULL-valued. However, this fails the definition for a lax dependency given in the header comment in func_dep.go: (A(r1) = A(r2)) IS True ==> B(r1) NULL= B(r2) While we know of know bugs caused by this discrepancy, it's safer to just remove support for lax constants. It turns out that none of our test scenarios require them; when removed, all transformations still work just as they did. Release note: None
Member
RaduBerinde
approved these changes
Dec 25, 2019
Member
RaduBerinde
left a comment
There was a problem hiding this comment.
Great that this wasn't very useful, I'm happy with the cleaner semantics :)
Reviewable status:
complete! 1 of 0 LGTMs obtained (waiting on @justinj, @RaduBerinde, and @rytaft)
Contributor
Author
|
bors r+ |
craig bot
pushed a commit
that referenced
this pull request
Dec 25, 2019
43532: opt: remove lax constant functional dependencies r=andy-kimball a=andy-kimball Before, the FuncDepSet allowed lax constant functional dependencies like: ()~~>(1,2) These were columns that always had a constant value, or were NULL-valued. However, this fails the definition for a lax dependency given in the header comment in func_dep.go: (A(r1) = A(r2)) IS True ==> B(r1) NULL= B(r2) While we know of no bugs caused by this discrepancy, it's safer to just remove support for lax constants. It turns out that none of our test scenarios require them; when removed, all transformations still work just as they did. Release note: None Co-authored-by: Andrew Kimball <andyk@cockroachlabs.com>
Contributor
Build succeeded |
RaduBerinde
added a commit
to RaduBerinde/cockroach
that referenced
this pull request
Jan 4, 2020
PR cockroachdb#43532 removed the concept of lax constant functional dependencies. There is a left-over case when we downgrade a key: if we had a strong empty key, the result is a lax empty key which is no longer a concept. This change fixes this by removing the key altogether in this case. Fixes cockroachdb#43532. Release note (bug fix): fixes "expected constant FD to be strict" internal error.
RaduBerinde
added a commit
to RaduBerinde/cockroach
that referenced
this pull request
Jan 6, 2020
PR cockroachdb#43532 removed the concept of lax constant functional dependencies. There is a left-over case when we downgrade a key: if we had a strong empty key, the result is a lax empty key which is no longer a concept. This change fixes this by removing the key altogether in this case. Fixes cockroachdb#43651. Release note (bug fix): fixes "expected constant FD to be strict" internal error.
craig bot
pushed a commit
that referenced
this pull request
Jan 6, 2020
43703: storage/batcheval/result: perform various cleanup on LocalResult struct r=nvanbenschoten a=nvanbenschoten This PR contains a series of cleanups to the `result.LocalResult` struct. It leaves the structure in a good position to be extended to include information about newly written, updated, and removed intents, which are hooked into the `concurrency` package in future commits the same way that `UpdatedTxns` is currently hooked into the TxnWaitQueue. The changes are broken into a series of incremental steps to make them easier to review in isolation. 43722: opt: fix assertion failure due to lax empty key r=RaduBerinde a=RaduBerinde PR #43532 removed the concept of lax constant functional dependencies. There is a left-over case when we downgrade a key: if we had a strong empty key, the result is a lax empty key which is no longer a concept. This change fixes this by removing the key altogether in this case. Fixes #43651. Release note (bug fix): fixes "expected constant FD to be strict" internal error. 43734: pgwire: deflake TestAuthenticationAndHBARules r=knz a=knz Fixes #43733. This was my mistake to fix, I had forgotten that cluster settings propagate asynchronously. Release note: None Co-authored-by: Nathan VanBenschoten <nvanbenschoten@gmail.com> Co-authored-by: Radu Berinde <radu@cockroachlabs.com> Co-authored-by: Raphael 'kena' Poss <knz@thaumogen.net>
Azhng
pushed a commit
to Azhng/cockroach
that referenced
this pull request
Jan 8, 2020
PR cockroachdb#43532 removed the concept of lax constant functional dependencies. There is a left-over case when we downgrade a key: if we had a strong empty key, the result is a lax empty key which is no longer a concept. This change fixes this by removing the key altogether in this case. Fixes cockroachdb#43651. Release note (bug fix): fixes "expected constant FD to be strict" internal error.
Member
I found the other day that (before this PR) if we have a lax empty key and happen to call |
RaduBerinde
added a commit
to RaduBerinde/cockroach
that referenced
this pull request
Jan 31, 2020
PR cockroachdb#43532 removed the concept of lax constant functional dependencies. There is a left-over case when we downgrade a key: if we had a strong empty key, the result is a lax empty key which is no longer a concept. This change fixes this by removing the key altogether in this case. Fixes cockroachdb#43651. Release note (bug fix): fixes "expected constant FD to be strict" internal error.
RaduBerinde
added a commit
to RaduBerinde/cockroach
that referenced
this pull request
Jan 31, 2020
PR cockroachdb#43532 removed the concept of lax constant functional dependencies. There is a left-over case when we downgrade a key: if we had a strong empty key, the result is a lax empty key which is no longer a concept. This change fixes this by removing the key altogether in this case. Fixes cockroachdb#43651. Release note (bug fix): fixes "expected constant FD to be strict" internal error.
RaduBerinde
added a commit
to RaduBerinde/cockroach
that referenced
this pull request
Feb 3, 2020
PR cockroachdb#43532 removed the concept of lax constant functional dependencies. There is a left-over case when we downgrade a key: if we had a strong empty key, the result is a lax empty key which is no longer a concept. This change fixes this by removing the key altogether in this case. Fixes cockroachdb#43651. Release note (bug fix): fixes "expected constant FD to be strict" internal error.
RaduBerinde
added a commit
to RaduBerinde/cockroach
that referenced
this pull request
Feb 3, 2020
PR cockroachdb#43532 removed the concept of lax constant functional dependencies. There is a left-over case when we downgrade a key: if we had a strong empty key, the result is a lax empty key which is no longer a concept. This change fixes this by removing the key altogether in this case. Fixes cockroachdb#43651. Release note (bug fix): fixes "expected constant FD to be strict" internal error.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Before, the FuncDepSet allowed lax constant functional dependencies like:
()~~>(1,2)
These were columns that always had a constant value, or were NULL-valued.
However, this fails the definition for a lax dependency given in the
header comment in func_dep.go:
(A(r1) = A(r2)) IS True ==> B(r1) NULL= B(r2)
While we know of no bugs caused by this discrepancy, it's safer to just
remove support for lax constants. It turns out that none of our test
scenarios require them; when removed, all transformations still work just
as they did.
Release note: None