Tom,
The dbschema output:
{ TABLE "db_user".employee row size = 1611 number of columns = 325 index size = 66 }
create table "db_user".employee
(
emp_num smallint,
lastname char(30),
firstname char(30),
middleinit char(30),
dob date,
age smallint,
inpay money(6,2),
intimes smallint,
inint smallint,
address char(35),
city char(30),
state char(2),
zip char(10),
ssn char(11),
freq char(1),
hourly char(1),
stat2 money(6,2),
retir char(1),
insur char(1),
adtime smallint,
merdis smallint,
fed_stat char(1),
fed_exemp decimal(3),
st_stat char(1),
st_exemp decimal(2),
flexcalc char(1),
addf money(6,2),
adds money(6,2),
aip decimal(4),
prognum char(6),
lastadvdate date,
nextadvdate date,
div char(5),
func char(15),
class char(5),
grade_step integer,
payplan char(1),
positnum char(8),
credun char(8),
hlth char(2),
dis char(1),
hours decimal(6),
hourlyrate money(4,2),
ovthours decimal(4),
suphrlyrate money(4,2),
supp money(6,2),
normalgros money(8,2),
gross money(8,2),
totf money(6,2),
totf2 money(6,2),
fica money(6,2),
fed money(6,2),
fed2 integer,
stat money(6,2),
wh5 money(6,2),
wh6 money(6,2),
wh7 money(6,2),
wh8 money(6,2),
wh9 money(6,2),
wh10 money(10,2),
wh11 money(6,2),
wh12 money(6,2),
wh13 money(6,2),
wh14 money(6,2),
wh15 money(6,2),
wh16 money(6,2),
wh17 money(6,2),
wh18 money(6,2),
wh19 money(6,2),
wh20 money(6,2),
wh21 money(6,2),
wh22 money(6,2),
wh23 money(6,2),
wh24 money(6,2),
wh25 money(6,2),
net money(8,2),
net2 money(10,2),
calcmon money(10,2),
calcsix decimal(8),
calcthir decimal(8),
calcbucket integer,
fedwhcalc money(10,2),
statwhcalc money(10,2),
totflexcalc money(6,2),
newretwh money(6,2),
oldretwh money(6,2),
calcretir money(8,2),
swtch char(1),
checkdate date,
checknum integer,
banknum char(2),
percent smallint,
acct1 decimal(10),
amt1 money(8,2),
per1 decimal(4),
acct2 decimal(10),
amt2 money(8,2),
per2 decimal(4),
acct3 decimal(10),
amt3 money(8,2),
per3 decimal(4),
acct4 decimal(10),
amt4 money(8,2),
per4 decimal(4),
acct5 decimal(10),
amt5 money(8,2),
per5 decimal(4),
amt6 money(8,2),
suppind char(1),
suppamt money(5,2),
tract1 decimal(10),
nmil1 smallint,
ratem1 decimal(3,3),
milamt1 money(6,2),
pdamt1 money(6,2),
totamt1 money(8,2),
tract2 decimal(10),
nmil2 smallint,
ratem2 decimal(3,3),
milamt2 money(6,2),
pdamt2 money(6,2),
totamt2 money(8,2),
tract3 decimal(10),
nmil3 smallint,
ratem3 decimal(3,3),
milamt3 money(6,2),
pdamt3 money(6,2),
totamt3 money(8,2),
tottrav money(8,2),
ledgerno char(3),
empe_ficapct decimal(4),
medic_ficapct decimal(4),
supovtpay money(6,2),
ovtpay money(6,2),
insurtax char(1),
dentaltype char(1),
taxfc money(6,2),
flexdate date,
countyno smallint,
tips money(6,2),
pager char(1),
overfica char(1),
banknam char(20),
bankid char(8),
bankck char(1),
bankacct char(17),
prenotcod char(2),
dirdep char(1),
lastdddat date,
wh5t money(6,2),
wh6t money(6,2),
wh7t money(6,2),
wh8t money(6,2),
wh9t money(6,2),
wh11t money(6,2),
wh13t money(6,2),
wh26 money(6,2),
wh27 money(6,2),
wh28 money(6,2),
wh29 money(6,2),
wh30 money(6,2),
transt money(6,2),
visiont money(6,2),
wh10t money(6,2),
wh12t money(6,2),
wh14t money(6,2),
wh15t money(6,2),
wh16t money(6,2),
wh17t money(6,2),
wh18t money(6,2),
wh19t money(6,2),
wh20t money(6,2),
splitind char(1),
wh31 money(6,2),
wh32 money(6,2),
wh33 money(6,2),
wh34 money(6,2),
wh35 money(6,2),
wh36 money(6,2),
wh37 money(6,2),
wh38 money(6,2),
wh39 money(6,2),
wh40 money(6,2),
wh41 money(6,2),
wh42 money(6,2),
wh43 money(6,2),
wh44 money(6,2),
wh45 money(6,2),
wh46 money(6,2),
wh47 money(6,2),
wh48 money(6,2),
wh49 money(6,2),
wh50 money(6,2),
wh21t money(6,2),
wh22t money(6,2),
wh23t money(6,2),
wh24t money(6,2),
wh25t money(6,2),
wh26t money(6,2),
wh27t money(6,2),
wh28t money(6,2),
wh29t money(6,2),
wh30t money(6,2),
wh31t money(6,2),
wh32t money(6,2),
wh33t money(6,2),
wh34t money(6,2),
wh35t money(6,2),
wh36t money(6,2),
wh37t money(6,2),
wh38t money(6,2),
wh39t money(6,2),
wh40t money(6,2),
wh41t money(6,2),
wh42t money(6,2),
wh43t money(6,2),
wh44t money(6,2),
wh45t money(6,2),
wh46t money(6,2),
wh47t money(6,2),
wh48t money(6,2),
wh49t money(6,2),
wh50t money(6,2),
wh4 money(6,2),
wh4t money(6,2),
totcheck money(10,2),
retamtset money(8,2),
otherearn money(10,2),
dirdepcode char(2),
lvsort char(5),
legl char(1),
medc money(6,2),
overmedc char(1),
lwophrs decimal(6,2),
talhrs decimal(6,2),
stdhrs decimal(6,2),
rounder decimal(12,4),
eic money(6,2),
incre smallint,
dkflag char(2),
trans money(6,2),
vision money(8,2),
visiontype char(2),
depend char(2),
termdate date,
education char(1),
child_life char(2),
spend_type char(2),
std_wait char(2),
dfc2 money(8,2),
spa2 money(8,2),
dl2 money(8,2),
ltc money(8,2),
dfc2t money(8,2),
spa2t money(8,2),
dl2t money(8,2),
ltct money(8,2),
ltctype char(1),
basepay money(10,2),
salsupp money(8,2),
deptid char(10),
ers_num char(8),
hiredate date,
specill money(8,2),
spcicode char(2),
wspit money(8,2),
mvsupp money(8,2),
mvsuppann money(8,2),
totperpay money(8,2),
gender char(1),
rectype char(4),
rectypdat date,
nsf char(1),
pullflag char(1),
suffix char(3),
add2 char(35),
erschandat date,
erscode char(2),
interadd char(50),
internafl char(1),
ersperc decimal(4),
paytype char(2),
erseffdat date,
jobcode char(2),
shbpelig char(1),
spci2code char(2),
specill2 money(8,2),
spa3 money(8,2),
hltsav money(8,2),
spi2t money(8,2),
spa3t money(8,2),
hltsat money(8,2),
division char(3),
tdirdep char(1),
banknum2 char(2),
banknam2 char(20),
bankid2 char(8),
bankck2 char(1),
bankacct2 char(17),
prenotcod2 char(2),
lastdddat2 date,
ograde_step char(5),
furpay money(10,2),
furcode integer,
tra char(1),
gsepper decimal(5,2),
cktype char(1),
per457 decimal(5,2),
per401 decimal(5,2),
ddapprove char(1),
ddappr_date date,
ddctrycode char(3),
tddapprove char(1),
tddappr_date date,
tddctrycode char(3),
email char(72),
rehire_date date,
rehire char(1),
jobstat char(1),
origbasepay money(16,2),
origsalsupp money(16,2),
ppsup money(6,2),
eict money(6,2),
flsa money(8,2),
gsepded char(1)
) extent size 2000 next size 150 lock mode row;
revoke all on "db_user".employee from "public" as "db_user";
create index "db_user".emp_calc on "db_user".employee (calcretir)
using btree in indexdbs;
create index "db_user".emp_ers on "db_user".employee (ers_num)
using btree in indexdbs;
create index "db_user".emp_grad on "db_user".employee (grade_step)
using btree in indexdbs;
create index "db_user".emp_incre on "db_user".employee (incre)
using btree in indexdbs;
create index "db_user".emp_prog on "db_user".employee (prognum)
using btree in indexdbs;
create index "db_user".emp_ssn on "db_user".employee (ssn) using
btree in indexdbs;
create trigger "db_user".empl_reg_usr_ins insert on "db_user".employee
referencing new as n
for each row
(
execute procedure user_audit_db:"db_user".empl_reg_usr_ins_spl(n.ers_num
,"db_user".curr_region(),n.ssn ,n.lastname ,n.firstname ,n.middleinit
,n.suffix ,n.email ,n.freq ));
create trigger "db_user".empl_reg_usr_upd update of ers_num,ssn,
lastname,firstname,middleinit,suffix,email,freq on "db_user"
.employee referencing old as o new as n
for each row
(
execute procedure user_audit_db:"db_user".empl_reg_usr_upd_spl(n.ers_num
,"db_user".curr_region(),n.ssn ,n.lastname ,n.firstname ,n.middleinit
,n.suffix ,n.email ,n.freq ));
create trigger "db_user".empl_reg_usr_del delete on "db_user".employee
referencing old as o
for each row
(
execute procedure user_audit_db:"db_user".empl_reg_usr_del_spl(o.ers_num
,"db_user".curr_region(),o.ssn ));
I have confirmed that the procedures empl_reg_usr_del_spl, empl_reg_usr_ins_spl, and empl_reg_usr_upd_spl all are present in the user_audit_db, and all are owned by user "db_user". Also, "public" has execute permission on all three of these procedures.
------------------------------
Mark Collins
------------------------------
Original Message:
Sent: Mon February 01, 2021 09:48 AM
From: TOM GIRSCH
Subject: -999 Not implemented yet.
Paul's suggestion -- onmode -I 999 -- (capital-eye) was also going to be my suggestion, too.
One other thing I'd check is that the executables are branded correctly, setuid root where they need to be, correct ownerships, etc.
I'd also be curious about what's shown in a dbschema -d [db] -t employee -ss
------------------------------
TOM GIRSCH
Original Message:
Sent: Fri January 29, 2021 04:58 PM
From: Mark Collins
Subject: -999 Not implemented yet.
RHEL 8.2
IDS 14.10.FC4W1DE
I'm working on a sandbox database, trying to learn some of the new features of 14.10. I've created the instance, created a couple of databases, and loaded some tables into those databases. Now, I'm trying simple SQL statements just to insure that everything looks normal.
I can run the following query and get the results shown:
select emp_num, firstname, lastnamefrom employee where emp_num = 63;emp_num 63firstname Adamlastname Adams
But if I try to do a simple UPDATE statement, I get this:
UPDATE employee SET firstname = "Ansel" WHERE emp_num = 63;#^# 999: Not implemented yet.#
But wait, it gets even weirder. If I repeat the SELECT after receiving the error message above, I get:
select emp_num, firstname, lastnamefrom employee where emp_num = 63;emp_num 63firstname Ansellastname Adams
So it seems that the UPDATE worked, despite the -999 error. I even exited from dbaccess and started a new dbaccess session just to confirm that the updated value is still in the table. It is.
Looking at another employee:
select emp_num, firstname, lastnamefrom employee where emp_num = 3;emp_num 3firstname Margaretlastname Bourke-White
If I execute a simple DELETE statement, I get:
DELETE FROM employee WHERE emp_num = 3;#^# 999: Not implemented yet.#
Repeating the SELECT for this employee:
select emp_num, firstname, lastnamefrom employee where emp_num = 3;No rows found.
So it did execute the DELETE, even though it returned the -999 error. Once again, I exited dbaccess and started a new dbaccess session, repeating the above SELECT statement, just to confirm that the DELETE executed and the results were committed to the database.
What is the cause of this? I've looked in the online.log file, there's nothing there (didn't expect anything, but ...). This is a very simple table, with no opaque data types, no triggers, no foreign keys, and no other table references it as a foreign key. There are five indexes on the table, all btree, all non-unique, non-clustering. I'm directly connected to it, with the dbaccess session running on the same host as the instance, and $INFORMIXSERVER set to the correct value for the instance.
------------------------------
Mark Collins
------------------------------