Closed imranur-rahman closed 4 months ago
I just ran this script on Postgres 15.4 with semver v0.32.1 with no error:
BEGIN;
CREATE EXTENSION semver;
CREATE TABLE relations (
system_name TEXT,
from_package_name TEXT,
from_version SEMVER,
to_package_name TEXT,
to_version SEMVER
);
CREATE TABLE versioninfo (
system_name TEXT,
package_name TEXT,
version_name SEMVER,
release_date TIMESTAMPTZ
);
INSERT INTO relations
VALUES ('sysname', 'from_name', '1.0.0', 'to_name', '1.2.0')
, ('sysname', 'from_name', '1.2.0', 'to_name', '1.3.0')
;
INSERT INTO versioninfo
VALUES ('sysname', 'from_name', '1.0.0', NOW())
, ('sysname', 'to_name', '1.2.0', NOW())
, ('sysname', 'from_name', '1.0.0', NOW())
, ('sysname', 'to_name', '1.2.0', NOW())
;
-- CREATE TABLE exclude_records AS
SELECT R2.system_name, R2.from_package_name, R2.from_version, R2.to_package_name, COUNT(*) AS count_no
FROM relations R2
INNER JOIN versioninfo V3
ON R2.from_package_name = V3.package_name AND R2.from_version = V3.version_name AND R2.system_name = V3.system_name
INNER JOIN versioninfo V4
ON R2.to_package_name = V4.package_name AND R2.to_version = V4.version_name AND R2.system_name = V4.system_name
GROUP BY R2.system_name, R2.from_package_name, R2.from_version, R2.to_package_name
HAVING COUNT(*) > 1;
ROLLBACK;
Can you modify it to reproduce the issue?
[I asked this question to stackoverflow: https://stackoverflow.com/q/76988029/3450691]
I have two tables in my postgres database, relations and versioninfo:
And I am joining them on some criteria:
But this query returns error:
The error was gone when I used
from_version
,to_version
, andversion_name
to text in my query, e.g. . . .AND R2.from_version::text = v3.version_name::text
. . . and again atR2.to_version::text = V4.version_name::text
.The person who commented on my post and I, both agreed that there might be some issues with the current implementation of
SEMVER
which is causing this error.What do you think?