Skip to content

Unexpected result when using SIGN #7458

@suyZhong

Description

@suyZhong

Describe the bug
Consider the test case below. It is unexpected that the third query returns no row, since the second query returns true, which means that the predicate t0.c0 >= SIGN(t0.c0) should be evaluated to true and thus return all the rows in the table.

To Reproduce

DROP TABLE IF EXISTS t0 CASCADE;

CREATE TABLE t0(c0 INTEGER);
INSERT INTO t0 (c0) VALUES (0);

SELECT * FROM t0; -- 0
SELECT (t0.c0 >= SIGN(t0.c0)) FROM t0; -- true
SELECT * FROM t0 WHERE (t0.c0 >= SIGN(t0.c0));
-- Expected: 0 
-- Actual: Empty result

Expected behavior
As mentioned above

Screenshots
N/A

Software versions
Build from source:

> docker exec monetdb-test mserver5 --version --dbname=monetdb                                 
MonetDB 5 server 11.50.0 (hg id: 67c6941) (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: @581bd6d184aa (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

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions