Skip to content

Unexpected result when using AND and IS NOT NULL #7430

Description

@suyZhong

Describe the bug
Consider the test cases below. It is unexpected that the third query returns empty result, since the second query returns true, which means that the WHERE clause in the third query should be evaluated to true and thus return the row in the table.

To Reproduce

DROP TABLE IF EXISTS t0 CASCADE;

CREATE TABLE t0(c0 BOOLEAN, c1 VARCHAR);
INSERT INTO t0 (c0, c1) VALUES (1, 1);
CREATE UNIQUE INDEX i0t0 ON t0(c0 , c1 );

SELECT t0.c0, t0.c1 FROM t0; -- true, 1
SELECT ((t0.c0)AND(((t0.c1) IS NOT NULL))) FROM t0; -- true
SELECT t0.c0, t0.c1 FROM t0 WHERE ((t0.c0)AND(((t0.c1) IS NOT NULL)));
-- Expected: true, 1
-- Actual:   empty

Expected behavior
As mentioned above

Screenshots
N/A

Software versions
Build from source:

root@035e0b00c896:/app# mserver5 --version --dbname=monetdb
MonetDB 5 server 11.50.0 (hg id: 3bb73c2) (64-bit, 128-bit integers)
This is an unreleased version
Copyright (c) 1993 - July 2008 CWI
Copyright (c) August 2008 - 2023 MonetDB B.V., all rights reserved
Visit https://www.monetdb.org/ for further information
Found 503.5GiB available memory, 128 available cpu cores
Libraries:
Compiled by: @897761d12f5d (x86_64-pc-linux-gnu)
Compilation: /usr/bin/cc 
Linking    : /usr/bin/ld

Issue labeling
Bug

Additional context
Add any other context about the problem here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions