Sorry, CEP-42

On Tue, Feb 18, 2025 at 8:54 PM Štefan Miklošovič <smikloso...@apache.org>
wrote:

> Hi list,
>
> We are doing good progress together with Bernardo when it comes to
> constraints which were merged recently (CEP-24).
>
> What I do now is that I try to "harden" it a little bit. If you think
> about that, a user could do something like this (currently)
>
> ALTER TABLE ks.tb ALTER column1 CHECK column1 > 10 AND column1 < 5
>
> If you take a look at this, this constraint is not satisfiable. There is
> no such value for "column1" which would pass both checks. That means that
> whatever a user would try to put there, such an insertion would fail.
>
> I have a POC which covers the most obvious cases so it fails when a
> constraint is obviously not satisfiable, so we are not storing a check
> which is impossible to pass.
>
> However, we are not completely sure how far we should go with this.
>
> The problem here is that, in theory, we could also support OR, for example
>
> ALTER TABLE ks.tb ALTER column1 CHECK (column1 > 5 AND column < 10) OR
> (column1 > 1000)
>
> You got it.
>
> The problem with this is that, when it is generalized, I can not check if
> this is satisfiable, because this is basically a variation of SAT problem,
> which is ... NP-complete. Right? In its most general form, is not this a
> NP-complete problem? Or am I wrong?
>
> I do not think that we are going to solve NP-completeness of SAT here :D
> so I just want to make sure that we are on the same page when it comes to
> this and all we will ever support is just a simple AND (that is complicated
> enough to verify if it is satisfiable already).
>
> What do you think about this? Is this all OK for you?
>
> Regards
>
> (1) https://en.wikipedia.org/wiki/Boolean_satisfiability_problem
>

Reply via email to