Skip to content

[#25] POINTER fields are inconsistent, and cause problems with some clients

As reported by an end user, it seems that there is a bug due to the inconsistent data types for POINTERS in the DDL mapper:

Pointers produce "INTEGER", as in

`PATIENT` INTEGER GLOBAL "^BPST(keys(""BPS_TRANSACTION_ID""),0)" PIECE 6

But the definition of the field is:

`PATIENT_ID` NUMERIC PRIMARY KEY START 0 ENDPOINT '$CHAR(0)'

Pointers needs to be NUMERIC as well.

This seems to be a regression in commit a52d81ed.

Upon investigation, I found that SQLI has a bug where it says that all Pointers are Integers, which is not correct. NEW PERSON has .5 and .6 IENs, and about 10 files have a .001 of a Date, which may have a decimal point. See 3^DMSQD and 13^DMSQD for the incorrect SQLI code.

Right now, we don't plan on trying to maintain the SQLI package, so we will work around it by hardcoding the type NUMERIC for Pointers.

Merge request reports