ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/branches/journaling/testsuite/FB4reference.log
(Generate patch)

Comparing:
ibx/trunk/testsuite/FB4reference.log (file contents), Revision 319 by tony, Thu Feb 25 12:05:40 2021 UTC vs.
ibx/branches/journaling/testsuite/FB4reference.log (file contents), Revision 363 by tony, Tue Dec 7 13:30:05 2021 UTC

# Line 3 | Line 3 | Copyright MWA Software 2016-2021
3  
4   Starting Tests
5   Client API Version = 4.0
6 < Firebird Environment Variable = /opt/firebird4rc1
7 < Firebird Bin Directory = /opt/firebird4rc1/bin
8 < Firebird Conf Directory = /opt/firebird4rc1/
9 < Firebird Client Library Path = /opt/firebird4rc1/lib/libfbclient.so
6 > Firebird Environment Variable = /opt/firebird4.0.0
7 > Firebird Bin Directory = /opt/firebird4.0.0/bin
8 > Firebird Conf Directory = /opt/firebird4.0.0/
9 > Firebird Client Library Path = /opt/firebird4.0.0/lib/libfbclient.so
10   Running Test 01: Open and read from Employee Database
11   Read dataset unidirectional buffering
12   Row No = 1
# Line 641 | Line 641 | DEPT_KEY_PATH = 000;900 (Charset = UTF8
641  
642   Rows printed = 42
643  
644 < Current memory = 19,670,464
644 > Current memory = 19,689,072
645   Delta memory = 16,384
646 < Max memory = 19,765,360
647 < Elapsed time= 0.027 sec
646 > Max memory = 19,783,712
647 > Elapsed time= 0.021 sec
648   Cpu = 0.010 sec
649   Buffers = 2048
650   Reads = 2
# Line 1445 | Line 1445 | DPB: Item Count = 3
1445    isc_dpb_lc_ctype = UTF8
1446  
1447   Before Disconnect
1448 < inet://localhost/employee Disconnected after 16 ms
1448 > inet://localhost/employee Disconnected after 32 ms
1449   Before Connect
1450   Connected to inet://localhost/employee
1451   DPB: Item Count = 3
# Line 1454 | Line 1454 | DPB: Item Count = 3
1454    isc_dpb_lc_ctype = UTF8
1455  
1456   Before Disconnect
1457 < inet://localhost/employee Disconnected after 4023 ms
1457 > inet://localhost/employee Disconnected after 4066 ms
1458   Idle Timer Expired for Test_Database_02
1459   Database Closed
1460   Transaction Events
# Line 1477 | Line 1477 | TPB: Item Count = 3
1477    isc_tpb_read
1478  
1479   Transaction Ending
1480 < Transaction Ended after 1 ms
1480 > Transaction Ended after 0 ms
1481   Transaction idle timer test
1482   Requested TPB: Item Count = 3
1483    isc_tpb_concurrency
# Line 1494 | Line 1494 | Transaction Ending
1494   Transaction Ended after 2001 ms
1495   Idle Timer Expired for Test_Transaction_02
1496   Before Disconnect
1497 < inet://localhost/employee Disconnected after 2042 ms
1497 > inet://localhost/employee Disconnected after 2045 ms
1498   SQL Dialect Downgrade test
1499   Before Connect
1500   Connected to inet://localhost//tmp/ibx-testsuite/testsuite1.fdb
# Line 1506 | Line 1506 | DPB: Item Count = 4
1506  
1507   inet://localhost//tmp/ibx-testsuite/testsuite1.fdb created
1508   Before Disconnect
1509 < inet://localhost//tmp/ibx-testsuite/testsuite1.fdb Disconnected after 26 ms
1509 > inet://localhost//tmp/ibx-testsuite/testsuite1.fdb Disconnected after 20 ms
1510   Before Connect
1511   Warning: SQL Dialect Downgrade of inet://localhost//tmp/ibx-testsuite/testsuite1.fdb
1512   Connected to inet://localhost//tmp/ibx-testsuite/testsuite1.fdb
# Line 1516 | Line 1516 | DPB: Item Count = 3
1516    isc_dpb_lc_ctype = UTF8
1517  
1518   Before Disconnect
1519 < inet://localhost//tmp/ibx-testsuite/testsuite1.fdb Disconnected after 22 ms
1519 > inet://localhost//tmp/ibx-testsuite/testsuite1.fdb Disconnected after 16 ms
1520  
1521  
1522   ------------------------------------------------------
# Line 1524 | Line 1524 | Running Test 03: Database Information
1524   Authentication Method = Srp256
1525   Remote Protocol = TCPv4
1526   Attachment SQLDialect = 3
1527 < Firebird/Linux/AMD/Intel/x64 (access method), version "LI-V4.0.0.2353 Firebird 4.0 Release Candidate 1"
1528 < Firebird/Linux/AMD/Intel/x64 (remote server), version "LI-V4.0.0.2353 Firebird 4.0 Release Candidate 1/tcp (zeus)/P16:CZ"
1529 < Firebird/Linux/AMD/Intel/x64 (remote interface), version "LI-V4.0.0.2353 Firebird 4.0 Release Candidate 1/tcp (zeus)/P16:CZ"
1527 > Firebird/Linux/AMD/Intel/x64 (access method), version "LI-V4.0.0.2496 Firebird 4.0"
1528 > Firebird/Linux/AMD/Intel/x64 (remote server), version "LI-V4.0.0.2496 Firebird 4.0/tcp (zeus)/P16:CZ"
1529 > Firebird/Linux/AMD/Intel/x64 (remote interface), version "LI-V4.0.0.2496 Firebird 4.0/tcp (zeus)/P16:CZ"
1530   on disk structure version 13.0
1531 < FB Version: Firebird/Linux/AMD/Intel/x64 (access method), version "LI-V4.0.0.2353 Firebird 4.0 Release Candidate 1", Firebird/Linux/AMD/Intel/x64 (remote server), version "LI-V4.0.0.2353 Firebird 4.0 Release Candidate 1/tcp (zeus)/P16:CZ", Firebird/Linux/AMD/Intel/x64 (remote interface), version "LI-V4.0.0.2353 Firebird 4.0 Release Candidate 1/tcp (zeus)/P16:CZ", on disk structure version 13.0
1532 < Firebird Library Pathname = /opt/firebird4rc1/lib/libfbclient.so
1531 > FB Version: Firebird/Linux/AMD/Intel/x64 (access method), version "LI-V4.0.0.2496 Firebird 4.0", Firebird/Linux/AMD/Intel/x64 (remote server), version "LI-V4.0.0.2496 Firebird 4.0/tcp (zeus)/P16:CZ", Firebird/Linux/AMD/Intel/x64 (remote interface), version "LI-V4.0.0.2496 Firebird 4.0/tcp (zeus)/P16:CZ", on disk structure version 13.0
1532 > Firebird Library Pathname = /opt/firebird4.0.0/lib/libfbclient.so
1533   DB SQLDialect = 3
1534 < Allocation = 346
1534 > Allocation = 1075
1535   Base Level = 4
1536 < DB File Name = /opt/firebird4rc1/examples/empbuild/employee.fdb
1536 > DB File Name = /opt/firebird4.0.0/examples/empbuild/employee.fdb
1537   DB Site Name = zeus
1538   DB Implementation No = 7
1539 < Database Created: 01/2/2021 14:57:08
1539 > Database Created: 29/5/2021 16:47:30
1540   DB Implementation Class = 0
1541   Space is Reserved
1542   ODS Minor Version = 0
1543   ODS Major Version = 13
1544   Page Size = 8192
1545 < Version = LI-V6.3.0.2353 Firebird 4.0 Release Candidate 1
1546 < Current Memory = 19485440
1545 > Version = LI-V6.3.0.2496 Firebird 4.0
1546 > Current Memory = 19503760
1547   Forced Writes Enabled
1548 < Max Memory = 19612048
1548 > Max Memory = 19630368
1549   Number of Buffers = 2048
1550   Sweep Interval = 20000
1551   User Names: SYSDBA
1552 < Fetches = 1840
1552 > Fetches = 1860
1553   Marks = 8
1554 < Reads = 99
1554 > Reads = 100
1555   Writes = 2
1556 < Pages Free = 310
1557 < Pages Used = 36
1556 > Pages Free = 313
1557 > Pages Used = 762
1558   Transaction Count = 1
1559  
1560   Read Idx Count
# Line 1565 | Line 1565 | Read Idx Count
1565    RDB$SECURITY_CLASSES = 8
1566    RDB$TYPES = 2
1567    RDB$TRIGGERS = 25
1568 <  RDB$USER_PRIVILEGES = 805
1568 >  RDB$USER_PRIVILEGES = 821
1569    RDB$GENERATORS = 5
1570    RDB$CHARACTER_SETS = 2
1571    RDB$COLLATIONS = 2
1572    RDB$ROLES = 1
1573  
1574   Read Seq Count
1575 <  RDB$PAGES = 98
1575 >  RDB$PAGES = 100
1576    RDB$DATABASE = 25
1577 <  RDB$RELATIONS = 65
1577 >  RDB$RELATIONS = 66
1578  
1579   Database is Read/Write
1580   Hex Dump of Database Page 100:
# Line 2411 | Line 2411 | ALTER DATABASE SET DEFAULT SQL SECURITY
2411  
2412   /* Table: IBXTEST, Owner: SYSDBA */
2413  
2414 < CREATE TABLE IBXTEST
2414 > CREATE TABLE IBXTEST
2415   (
2416          TABLEKEY        INTEGER NOT NULL,
2417          F1      TIMESTAMP WITH TIME ZONE,
2418          F2      TIME WITH TIME ZONE,
2419          F3      DECFLOAT(16),
2420          F4      DECFLOAT(34),
2421 <        F5      NUMERIC(24, 6),
2421 >        F5      NUMERIC(24,6),
2422          F6      INT128,
2423   PRIMARY KEY (TABLEKEY)
2424   ) SQL SECURITY DEFINER;
# Line 3297 | Line 3297 | SALARY = 32,000.00
3297   FULL_NAME = Guckenheimer, Mark
3298   DEPT_PATH = Corporate Headquarters / Engineering / Software Products Div. / Quality Assurance (Charset Id = 4 Codepage = 65001)
3299   DEPT_KEY_PATH = 000;600;620;622 (Charset Id = 4 Codepage = 65001)
3300 < Current memory = 19,651,184
3300 > Current memory = 19,669,792
3301   Delta memory = 16,416
3302 < Max memory = 19,746,848
3303 < Elapsed time= 0.024 sec
3304 < Cpu = 0.000 sec
3302 > Max memory = 19,765,200
3303 > Elapsed time= 0.023 sec
3304 > Cpu = 0.010 sec
3305   Buffers = 2048
3306   Reads = 2
3307   Writes = 0
# Line 3543 | Line 3543 | Terminated with Exception:exception 2
3543   -Reassign the sales records before deleting this employee.
3544   -At procedure 'DELETE_EMPLOYEE' line: 19, col: 3
3545  
3546 <
3546 > Scollable Cursors
3547 > Do Fetch Next:
3548 > EMP_NO = 2
3549 > FIRST_NAME = Robert
3550 > LAST_NAME = Nelson
3551 > PHONE_EXT = 250
3552 > HIRE_DATE = 1988/12/28 00:00:00.0000
3553 > DEPT_NO = 600
3554 > JOB_CODE = VP
3555 > JOB_GRADE = 2
3556 > JOB_COUNTRY = USA
3557 > SALARY = 105,900.00
3558 > FULL_NAME = Nelson, Robert
3559 > Do Fetch Last:
3560 > Test Completed with Error: feature is not supported
3561   ------------------------------------------------------
3562   Running Test 08: TIBDataset: Locate, Bookmark and Lookup
3563   Field No 1 Name = EMP_NO DataType = ftSmallint
# Line 3902 | Line 3916 | SET AUTODDL ON;
3916   /* Domain definitions */
3917  
3918   CREATE DOMAIN ADDRESSLINE AS VARCHAR(30);
3919 < CREATE DOMAIN BUDGET AS DECIMAL(12, 2)
3919 > CREATE DOMAIN BUDGET AS DECIMAL(12,2)
3920           DEFAULT 50000;
3921   CREATE DOMAIN COUNTRYNAME AS VARCHAR(15);
3922   CREATE DOMAIN CUSTNO AS INTEGER;
# Line 3917 | Line 3931 | CREATE DOMAIN PONUMBER AS CHAR(8);
3931   CREATE DOMAIN PRODTYPE AS VARCHAR(12)
3932           DEFAULT 'software' NOT NULL;
3933   CREATE DOMAIN PROJNO AS CHAR(5);
3934 < CREATE DOMAIN SALARY AS NUMERIC(10, 2)
3934 > CREATE DOMAIN SALARY AS NUMERIC(10,2)
3935           DEFAULT 0;
3936  
3937   /* Table: COUNTRY, Owner: SYSDBA */
3938  
3939 < CREATE TABLE COUNTRY
3939 > CREATE TABLE COUNTRY
3940   (
3941          COUNTRY COUNTRYNAME NOT NULL,
3942          CURRENCY        VARCHAR(10) NOT NULL,
# Line 3931 | Line 3945 | PRIMARY KEY (COUNTRY)
3945  
3946   /* Table: CUSTOMER, Owner: SYSDBA */
3947  
3948 < CREATE TABLE CUSTOMER
3948 > CREATE TABLE CUSTOMER
3949   (
3950          CUST_NO CUSTNO NOT NULL,
3951          CUSTOMER        VARCHAR(25) NOT NULL,
# Line 3950 | Line 3964 | PRIMARY KEY (CUST_NO)
3964  
3965   /* Table: DEPARTMENT, Owner: SYSDBA */
3966  
3967 < CREATE TABLE DEPARTMENT
3967 > CREATE TABLE DEPARTMENT
3968   (
3969          DEPT_NO DEPTNO NOT NULL,
3970          DEPARTMENT      VARCHAR(25) NOT NULL,
# Line 3965 | Line 3979 | PRIMARY KEY (DEPT_NO)
3979  
3980   /* Table: EMPLOYEE, Owner: SYSDBA */
3981  
3982 < CREATE TABLE EMPLOYEE
3982 > CREATE TABLE EMPLOYEE
3983   (
3984          EMP_NO  EMPNO NOT NULL,
3985          FIRST_NAME      FIRSTNAME NOT NULL,
# Line 3983 | Line 3997 | PRIMARY KEY (EMP_NO)
3997  
3998   /* Table: EMPLOYEE_PROJECT, Owner: SYSDBA */
3999  
4000 < CREATE TABLE EMPLOYEE_PROJECT
4000 > CREATE TABLE EMPLOYEE_PROJECT
4001   (
4002          EMP_NO  EMPNO NOT NULL,
4003          PROJ_ID PROJNO NOT NULL,
4004   PRIMARY KEY (EMP_NO, PROJ_ID)
4005   );
4006  
4007 + /* Table: IBX$JOURNALS, Owner: SYSDBA */
4008 +
4009 + CREATE TABLE IBX$JOURNALS
4010 + (
4011 +        IBX$SESSIONID   INTEGER NOT NULL,
4012 +        IBX$TRANSACTIONID       INTEGER NOT NULL,
4013 +        IBX$USER        VARCHAR(32) Default CURRENT_USER,
4014 +        IBX$TIMESTAMP   TIMESTAMP Default CURRENT_TIMESTAMP,
4015 + PRIMARY KEY (IBX$SESSIONID, IBX$TRANSACTIONID)
4016 + );
4017 +
4018   /* Table: JOB, Owner: SYSDBA */
4019  
4020 < CREATE TABLE JOB
4020 > CREATE TABLE JOB
4021   (
4022          JOB_CODE        JOBCODE NOT NULL,
4023          JOB_GRADE       JOBGRADE NOT NULL,
# Line 4007 | Line 4032 | PRIMARY KEY (JOB_CODE, JOB_GRADE, JOB_CO
4032  
4033   /* Table: PROJECT, Owner: SYSDBA */
4034  
4035 < CREATE TABLE PROJECT
4035 > CREATE TABLE PROJECT
4036   (
4037          PROJ_ID PROJNO NOT NULL,
4038          PROJ_NAME       VARCHAR(20) NOT NULL,
# Line 4020 | Line 4045 | PRIMARY KEY (PROJ_ID)
4045  
4046   /* Table: PROJ_DEPT_BUDGET, Owner: SYSDBA */
4047  
4048 < CREATE TABLE PROJ_DEPT_BUDGET
4048 > CREATE TABLE PROJ_DEPT_BUDGET
4049   (
4050          FISCAL_YEAR     INTEGER NOT NULL,
4051          PROJ_ID PROJNO NOT NULL,
# Line 4032 | Line 4057 | PRIMARY KEY (FISCAL_YEAR, PROJ_ID, DEPT_
4057  
4058   /* Table: SALARY_HISTORY, Owner: SYSDBA */
4059  
4060 < CREATE TABLE SALARY_HISTORY
4060 > CREATE TABLE SALARY_HISTORY
4061   (
4062          EMP_NO  EMPNO NOT NULL,
4063          CHANGE_DATE     TIMESTAMP DEFAULT 'NOW' NOT NULL,
# Line 4045 | Line 4070 | PRIMARY KEY (EMP_NO, CHANGE_DATE, UPDATE
4070  
4071   /* Table: SALES, Owner: SYSDBA */
4072  
4073 < CREATE TABLE SALES
4073 > CREATE TABLE SALES
4074   (
4075          PO_NUMBER       PONUMBER NOT NULL,
4076          CUST_NO CUSTNO NOT NULL,
# Line 4056 | Line 4081 | CREATE TABLE SALES
4081          DATE_NEEDED     TIMESTAMP,
4082          PAID    CHAR(1) DEFAULT 'n',
4083          QTY_ORDERED     INTEGER DEFAULT 1 NOT NULL,
4084 <        TOTAL_VALUE     DECIMAL(9, 2) NOT NULL,
4084 >        TOTAL_VALUE     DECIMAL(9,2) NOT NULL,
4085          DISCOUNT        FLOAT DEFAULT 0 NOT NULL,
4086          ITEM_TYPE       PRODTYPE,
4087          AGED COMPUTED BY (ship_date - order_date),
# Line 4094 | Line 4119 | ALTER TABLE SALES ADD FOREIGN KEY (SALES
4119  
4120   CREATE SEQUENCE CUST_NO_GEN;
4121   CREATE SEQUENCE EMP_NO_GEN;
4122 + CREATE SEQUENCE IBX$SESSIONS;
4123  
4124   /* View: PHONE_LIST, Owner: SYSDBA */
4125  
4126   CREATE VIEW PHONE_LIST (
4127 <  EMP_NO,
4128 <  FIRST_NAME,
4129 <  LAST_NAME,
4130 <  PHONE_EXT,
4131 <  LOCATION,
4127 >  EMP_NO,
4128 >  FIRST_NAME,
4129 >  LAST_NAME,
4130 >  PHONE_EXT,
4131 >  LOCATION,
4132    PHONE_NO
4133   ) AS
4134   SELECT
# Line 4200 | Line 4226 | CREATE EXCEPTION REASSIGN_SALES 'Reassig
4226   CREATE EXCEPTION UNKNOWN_EMP_ID 'Invalid employee number or project id.';
4227   COMMIT WORK;
4228   SET AUTODDL OFF;
4229 < SET TERM ^ ;
4229 > SET TERM ^;
4230  
4231   /* Stored procedures Definitions*/
4232  
4233 < CREATE PROCEDURE SHOW_LANGS
4233 > CREATE PROCEDURE SHOW_LANGS
4234   (
4235    CODE VARCHAR(5) CHARACTER SET NONE,
4236    GRADE SMALLINT,
# Line 4216 | Line 4242 | RETURNS
4242   )
4243   AS
4244   BEGIN SUSPEND; EXIT; END
4219
4245   ^
4246  
4247 < CREATE PROCEDURE ADD_EMP_PROJ
4247 > CREATE PROCEDURE ADD_EMP_PROJ
4248   (
4249    EMP_NO SMALLINT,
4250    PROJ_ID CHAR(5) CHARACTER SET NONE
4251   )
4252   AS
4253   BEGIN EXIT; END
4229
4254   ^
4255  
4256 < CREATE PROCEDURE ALL_LANGS
4256 > CREATE PROCEDURE ALL_LANGS
4257   RETURNS
4258   (
4259    CODE VARCHAR(5) CHARACTER SET NONE,
# Line 4239 | Line 4263 | RETURNS
4263   )
4264   AS
4265   BEGIN SUSPEND; EXIT; END
4242
4266   ^
4267  
4268 < CREATE PROCEDURE DELETE_EMPLOYEE
4268 > CREATE PROCEDURE DELETE_EMPLOYEE
4269   (
4270    EMP_NUM INTEGER
4271   )
4272   AS
4273   BEGIN EXIT; END
4251
4274   ^
4275  
4276 < CREATE PROCEDURE DEPT_BUDGET
4276 > CREATE PROCEDURE DEPT_BUDGET
4277   (
4278    DNO CHAR(3) CHARACTER SET NONE
4279   )
4280   RETURNS
4281   (
4282 <  TOT DECIMAL(12, 2)
4282 >  TOT DECIMAL(12,2)
4283   )
4284   AS
4285   BEGIN SUSPEND; EXIT; END
4264
4286   ^
4287  
4288 < CREATE PROCEDURE GET_EMP_PROJ
4288 > CREATE PROCEDURE GET_EMP_PROJ
4289   (
4290    EMP_NO SMALLINT
4291   )
# Line 4274 | Line 4295 | RETURNS
4295   )
4296   AS
4297   BEGIN SUSPEND; EXIT; END
4277
4298   ^
4299  
4300 < CREATE PROCEDURE MAIL_LABEL
4300 > CREATE PROCEDURE MAIL_LABEL
4301   (
4302    CUST_NO INTEGER
4303   )
# Line 4292 | Line 4312 | RETURNS
4312   )
4313   AS
4314   BEGIN SUSPEND; EXIT; END
4295
4315   ^
4316  
4317 < CREATE PROCEDURE ORG_CHART
4317 > CREATE PROCEDURE ORG_CHART
4318   RETURNS
4319   (
4320    HEAD_DEPT CHAR(25) CHARACTER SET NONE,
# Line 4306 | Line 4325 | RETURNS
4325   )
4326   AS
4327   BEGIN SUSPEND; EXIT; END
4309
4328   ^
4329  
4330 < CREATE PROCEDURE SHIP_ORDER
4330 > CREATE PROCEDURE SHIP_ORDER
4331   (
4332    PO_NUM CHAR(8) CHARACTER SET NONE
4333   )
4334   AS
4335   BEGIN EXIT; END
4318
4336   ^
4337  
4338 < CREATE PROCEDURE SUB_TOT_BUDGET
4338 > CREATE PROCEDURE SUB_TOT_BUDGET
4339   (
4340    HEAD_DEPT CHAR(3) CHARACTER SET NONE
4341   )
4342   RETURNS
4343   (
4344 <  TOT_BUDGET DECIMAL(12, 2),
4345 <  AVG_BUDGET DECIMAL(12, 2),
4346 <  MIN_BUDGET DECIMAL(12, 2),
4347 <  MAX_BUDGET DECIMAL(12, 2)
4344 >  TOT_BUDGET DECIMAL(12,2),
4345 >  AVG_BUDGET DECIMAL(12,2),
4346 >  MIN_BUDGET DECIMAL(12,2),
4347 >  MAX_BUDGET DECIMAL(12,2)
4348   )
4349   AS
4350   BEGIN SUSPEND; EXIT; END
4334
4351   ^
4352  
4353 < SET TERM ; ^
4353 > SET TERM ;^
4354   COMMIT WORK;
4355   SET AUTODDL ON;
4356 < SET TERM ^ ;
4356 > SET TERM ^;
4357  
4358  
4359   /* Triggers only will work for SQL triggers */
# Line 4349 | Line 4365 | BEGIN
4365      if (new.cust_no is null) then
4366      new.cust_no = gen_id(cust_no_gen, 1);
4367   END
4368 < ^
4368 > ^
4369 >
4370   CREATE TRIGGER SET_EMP_NO FOR EMPLOYEE
4371   ACTIVE BEFORE INSERT POSITION 0
4372   AS
# Line 4357 | Line 4374 | BEGIN
4374      if (new.emp_no is null) then
4375      new.emp_no = gen_id(emp_no_gen, 1);
4376   END
4377 < ^
4377 > ^
4378 >
4379   CREATE TRIGGER SAVE_SALARY_CHANGE FOR EMPLOYEE
4380   ACTIVE AFTER UPDATE POSITION 0
4381   AS
# Line 4372 | Line 4390 | BEGIN
4390              old.salary,
4391              (new.salary - old.salary) * 100 / old.salary);
4392   END
4393 < ^
4393 > ^
4394 >
4395   CREATE TRIGGER POST_NEW_ORDER FOR SALES
4396   ACTIVE AFTER INSERT POSITION 0
4397   AS
4398   BEGIN
4399      POST_EVENT 'new_order';
4400   END
4401 < ^
4402 < COMMIT WORK ^
4401 > ^
4402 >
4403 > COMMIT WORK^
4404   SET TERM ;^
4405   COMMIT WORK;
4406   SET AUTODDL OFF;
4407 < SET TERM ^ ;
4407 > SET TERM ^;
4408  
4409   /* Stored procedure Bodies */
4410  
4411 <
4392 < ALTER PROCEDURE SHOW_LANGS
4411 > ALTER PROCEDURE SHOW_LANGS
4412   (
4413    CODE VARCHAR(5) CHARACTER SET NONE,
4414    GRADE SMALLINT,
# Line 4415 | Line 4434 | BEGIN
4434      SUSPEND;
4435    END
4436   END
4437 < ^
4419 <
4437 > ^
4438  
4439 < ALTER PROCEDURE ADD_EMP_PROJ
4439 > ALTER PROCEDURE ADD_EMP_PROJ
4440   (
4441    EMP_NO SMALLINT,
4442    PROJ_ID CHAR(5) CHARACTER SET NONE
# Line 4431 | Line 4449 | BEGIN
4449                  EXCEPTION unknown_emp_id;
4450          END
4451   END
4452 < ^
4435 <
4452 > ^
4453  
4454 < ALTER PROCEDURE ALL_LANGS
4454 > ALTER PROCEDURE ALL_LANGS
4455   RETURNS
4456   (
4457    CODE VARCHAR(5) CHARACTER SET NONE,
# Line 4460 | Line 4477 | BEGIN
4477              SUSPEND;
4478          END
4479      END
4480 < ^
4464 <
4480 > ^
4481  
4482 < ALTER PROCEDURE DELETE_EMPLOYEE
4482 > ALTER PROCEDURE DELETE_EMPLOYEE
4483   (
4484    EMP_NUM INTEGER
4485   )
# Line 4519 | Line 4535 | BEGIN
4535          DELETE FROM employee
4536          WHERE emp_no = :emp_num;
4537   END
4538 < ^
4523 <
4538 > ^
4539  
4540 < ALTER PROCEDURE DEPT_BUDGET
4540 > ALTER PROCEDURE DEPT_BUDGET
4541   (
4542    DNO CHAR(3) CHARACTER SET NONE
4543   )
4544   RETURNS
4545   (
4546 <  TOT DECIMAL(12, 2)
4546 >  TOT DECIMAL(12,2)
4547   )
4548   AS
4549   DECLARE VARIABLE sumb DECIMAL(12, 2);
# Line 4556 | Line 4571 | BEGIN
4571  
4572          SUSPEND;
4573   END
4574 < ^
4560 <
4574 > ^
4575  
4576 < ALTER PROCEDURE GET_EMP_PROJ
4576 > ALTER PROCEDURE GET_EMP_PROJ
4577   (
4578    EMP_NO SMALLINT
4579   )
# Line 4576 | Line 4590 | BEGIN
4590          DO
4591                  SUSPEND;
4592   END
4593 < ^
4580 <
4593 > ^
4594  
4595 < ALTER PROCEDURE MAIL_LABEL
4595 > ALTER PROCEDURE MAIL_LABEL
4596   (
4597    CUST_NO INTEGER
4598   )
# Line 4647 | Line 4660 | BEGIN
4660  
4661          SUSPEND;
4662   END
4663 < ^
4651 <
4663 > ^
4664  
4665 < ALTER PROCEDURE ORG_CHART
4665 > ALTER PROCEDURE ORG_CHART
4666   RETURNS
4667   (
4668    HEAD_DEPT CHAR(25) CHARACTER SET NONE,
# Line 4690 | Line 4702 | BEGIN
4702                  SUSPEND;
4703          END
4704   END
4705 < ^
4694 <
4705 > ^
4706  
4707 < ALTER PROCEDURE SHIP_ORDER
4707 > ALTER PROCEDURE SHIP_ORDER
4708   (
4709    PO_NUM CHAR(8) CHARACTER SET NONE
4710   )
# Line 4744 | Line 4755 | BEGIN
4755          SET order_status = 'shipped', ship_date = 'NOW'
4756          WHERE po_number = :po_num;
4757   END
4758 < ^
4748 <
4758 > ^
4759  
4760 < ALTER PROCEDURE SUB_TOT_BUDGET
4760 > ALTER PROCEDURE SUB_TOT_BUDGET
4761   (
4762    HEAD_DEPT CHAR(3) CHARACTER SET NONE
4763   )
4764   RETURNS
4765   (
4766 <  TOT_BUDGET DECIMAL(12, 2),
4767 <  AVG_BUDGET DECIMAL(12, 2),
4768 <  MIN_BUDGET DECIMAL(12, 2),
4769 <  MAX_BUDGET DECIMAL(12, 2)
4766 >  TOT_BUDGET DECIMAL(12,2),
4767 >  AVG_BUDGET DECIMAL(12,2),
4768 >  MIN_BUDGET DECIMAL(12,2),
4769 >  MAX_BUDGET DECIMAL(12,2)
4770   )
4771   AS
4772   BEGIN
# Line 4766 | Line 4776 | BEGIN
4776                  INTO :tot_budget, :avg_budget, :min_budget, :max_budget;
4777          SUSPEND;
4778   END
4779 < ^
4779 > ^
4780  
4781 < SET TERM ; ^
4781 > SET TERM ;^
4782   COMMIT WORK;
4783   SET AUTODDL ON;
4784  
# Line 4812 | Line 4822 | SET AUTODDL ON;
4822  
4823   CREATE DATABASE 'inet://localhost//tmp/ibx-testsuite/testsuite1.fdb' PAGE_SIZE 8192
4824  
4825 < DEFAULT CHARACTER SET NONE;
4825 > DEFAULT CHARACTER SET NONE;
4826   COMMENT ON DATABASE  IS 'Employee Test DB';
4827  
4828   /* Domain definitions */
4829  
4830   CREATE DOMAIN ADDRESSLINE AS VARCHAR(30);
4831 < CREATE DOMAIN BUDGET AS DECIMAL(12, 2)
4831 > CREATE DOMAIN BUDGET AS DECIMAL(12,2)
4832           DEFAULT 50000;
4833   CREATE DOMAIN COUNTRYNAME AS VARCHAR(15);
4834   CREATE DOMAIN CUSTNO AS INTEGER;
# Line 4834 | Line 4844 | CREATE DOMAIN PONUMBER AS CHAR(8);
4844   CREATE DOMAIN PRODTYPE AS VARCHAR(12)
4845           DEFAULT 'software' NOT NULL;
4846   CREATE DOMAIN PROJNO AS CHAR(5);
4847 < CREATE DOMAIN SALARY AS NUMERIC(10, 2)
4847 > CREATE DOMAIN SALARY AS NUMERIC(10,2)
4848           DEFAULT 0;
4849  
4850   /* Table: COUNTRIES, Owner: SYSDBA */
4851  
4852 < CREATE TABLE COUNTRIES
4852 > CREATE TABLE COUNTRIES
4853   (
4854          COUNTRY VARCHAR(64) NOT NULL,
4855          NONEU   SMALLINT,
# Line 4852 | Line 4862 | COMMENT ON COLUMN COUNTRIES.ISO2 IS 'Two
4862  
4863   /* Table: COUNTRY, Owner: SYSDBA */
4864  
4865 < CREATE TABLE COUNTRY
4865 > CREATE TABLE COUNTRY
4866   (
4867          COUNTRY COUNTRYNAME NOT NULL,
4868          CURRENCY        VARCHAR(10) NOT NULL,
# Line 4861 | Line 4871 | PRIMARY KEY (COUNTRY)
4871  
4872   /* Table: CUSTOMER, Owner: SYSDBA */
4873  
4874 < CREATE TABLE CUSTOMER
4874 > CREATE TABLE CUSTOMER
4875   (
4876          CUST_NO CUSTNO NOT NULL,
4877          CUSTOMER        VARCHAR(25) NOT NULL,
# Line 4881 | Line 4891 | PRIMARY KEY (CUST_NO)
4891  
4892   /* Table: DEPARTMENT, Owner: SYSDBA */
4893  
4894 < CREATE TABLE DEPARTMENT
4894 > CREATE TABLE DEPARTMENT
4895   (
4896          DEPT_NO DEPTNO NOT NULL,
4897          DEPARTMENT      VARCHAR(25) NOT NULL,
# Line 4896 | Line 4906 | PRIMARY KEY (DEPT_NO)
4906  
4907   /* Table: EMPLOYEE, Owner: SYSDBA */
4908  
4909 < CREATE TABLE EMPLOYEE
4909 > CREATE TABLE EMPLOYEE
4910   (
4911          EMP_NO  EMPNO NOT NULL,
4912          FIRST_NAME      FIRSTNAME NOT NULL,
# Line 4914 | Line 4924 | PRIMARY KEY (EMP_NO)
4924  
4925   /* Table: EMPLOYEE_PROJECT, Owner: SYSDBA */
4926  
4927 < CREATE TABLE EMPLOYEE_PROJECT
4927 > CREATE TABLE EMPLOYEE_PROJECT
4928   (
4929          EMP_NO  EMPNO NOT NULL,
4930          PROJ_ID PROJNO NOT NULL,
# Line 4923 | Line 4933 | PRIMARY KEY (EMP_NO, PROJ_ID)
4933  
4934   /* Table: FB$OUT_TABLE, Owner: SYSDBA */
4935  
4936 < CREATE GLOBAL TEMPORARY TABLE FB$OUT_TABLE
4936 > CREATE GLOBAL TEMPORARY TABLE FB$OUT_TABLE
4937   (
4938          LINE_NUM        INTEGER,
4939          CONTENT FB$OUT_TYPE
# Line 4931 | Line 4941 | CREATE GLOBAL TEMPORARY TABLE FB$OUT_TAB
4941  
4942   /* Table: ITEST, Owner: SYSDBA */
4943  
4944 < CREATE TABLE ITEST
4944 > CREATE TABLE ITEST
4945   (
4946          "KEY"   INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 0) NOT NULL,
4947          SOMETEXT        VARCHAR(64),
# Line 4940 | Line 4950 | PRIMARY KEY ("KEY")
4950  
4951   /* Table: ITEST2, Owner: SYSDBA */
4952  
4953 < CREATE TABLE ITEST2
4953 > CREATE TABLE ITEST2
4954   (
4955          "KEY"   INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 0 INCREMENT BY 1) NOT NULL,
4956          SOMETEXT        VARCHAR(64),
# Line 4949 | Line 4959 | PRIMARY KEY ("KEY")
4959  
4960   /* Table: JOB, Owner: SYSDBA */
4961  
4962 < CREATE TABLE JOB
4962 > CREATE TABLE JOB
4963   (
4964          JOB_CODE        JOBCODE NOT NULL,
4965          JOB_GRADE       JOBGRADE NOT NULL,
# Line 4964 | Line 4974 | PRIMARY KEY (JOB_CODE, JOB_GRADE, JOB_CO
4974  
4975   /* Table: PROJECT, Owner: SYSDBA */
4976  
4977 < CREATE TABLE PROJECT
4977 > CREATE TABLE PROJECT
4978   (
4979          PROJ_ID PROJNO NOT NULL,
4980          PROJ_NAME       VARCHAR(20) NOT NULL,
# Line 4977 | Line 4987 | PRIMARY KEY (PROJ_ID)
4987  
4988   /* Table: PROJ_DEPT_BUDGET, Owner: SYSDBA */
4989  
4990 < CREATE TABLE PROJ_DEPT_BUDGET
4990 > CREATE TABLE PROJ_DEPT_BUDGET
4991   (
4992          FISCAL_YEAR     INTEGER NOT NULL,
4993          PROJ_ID PROJNO NOT NULL,
# Line 4989 | Line 4999 | PRIMARY KEY (FISCAL_YEAR, PROJ_ID, DEPT_
4999  
5000   /* Table: SALARY_HISTORY, Owner: SYSDBA */
5001  
5002 < CREATE TABLE SALARY_HISTORY
5002 > CREATE TABLE SALARY_HISTORY
5003   (
5004          EMP_NO  EMPNO NOT NULL,
5005          CHANGE_DATE     TIMESTAMP DEFAULT 'NOW' NOT NULL,
# Line 5002 | Line 5012 | PRIMARY KEY (EMP_NO, CHANGE_DATE, UPDATE
5012  
5013   /* Table: SALES, Owner: SYSDBA */
5014  
5015 < CREATE TABLE SALES
5015 > CREATE TABLE SALES
5016   (
5017          PO_NUMBER       PONUMBER NOT NULL,
5018          CUST_NO CUSTNO NOT NULL,
# Line 5013 | Line 5023 | CREATE TABLE SALES
5023          DATE_NEEDED     TIMESTAMP,
5024          PAID    CHAR(1) DEFAULT 'n',
5025          QTY_ORDERED     INTEGER DEFAULT 1 NOT NULL,
5026 <        TOTAL_VALUE     DECIMAL(9, 2) NOT NULL,
5026 >        TOTAL_VALUE     DECIMAL(9,2) NOT NULL,
5027          DISCOUNT        FLOAT DEFAULT 0 NOT NULL,
5028          ITEM_TYPE       PRODTYPE,
5029          AGED COMPUTED BY (ship_date - order_date),
# Line 5026 | Line 5036 | DECLARE EXTERNAL FUNCTION ADDDAY
5036   TIMESTAMP, INTEGER
5037   RETURNS TIMESTAMP
5038   ENTRY_POINT 'addDay' MODULE_NAME 'fbudf'
5029
5039   ;
5040  
5041  
5042   DECLARE EXTERNAL FUNCTION I64TRUNCATE
5043 < NUMERIC(18, 0) BY DESCRIPTOR, NUMERIC(18, 0) BY DESCRIPTOR
5043 > NUMERIC(18,0) BY DESCRIPTOR, NUMERIC(18,0) BY DESCRIPTOR
5044   RETURNS PARAMETER 2
5045   ENTRY_POINT 'fbtruncate' MODULE_NAME 'fbudf'
5037
5046   ;
5047  
5048  
# Line 5042 | Line 5050 | DECLARE EXTERNAL FUNCTION TESTIT
5050   TIMESTAMP, INTEGER NULL, CSTRING(10) CHARACTER SET NONE, CSTRING(10) CHARACTER SET NONE BY DESCRIPTOR
5051   RETURNS CSTRING(32) CHARACTER SET NONE FREE_IT
5052   ENTRY_POINT 'testit' MODULE_NAME 'fbudf'
5045
5053   ;
5054  
5055  
# Line 5784 | Line 5791 | ALTER SEQUENCE FB$OUT_SEQ RESTART WITH 1
5791   /* View: DEPTLIST, Owner: SYSDBA */
5792  
5793   CREATE VIEW DEPTLIST (
5794 <  EMP_NO,
5795 <  FIRST_NAME,
5796 <  LAST_NAME,
5797 <  PHONE_EXT,
5798 <  HIRE_DATE,
5799 <  DEPT_NO,
5800 <  JOB_CODE,
5801 <  JOB_GRADE,
5802 <  JOB_COUNTRY,
5803 <  SALARY,
5804 <  FULL_NAME,
5805 <  DEPT_PATH,
5806 <  DEPT_KEY_PATH
5794 >  EMP_NO,
5795 >  FIRST_NAME,
5796 >  LAST_NAME,
5797 >  PHONE_EXT,
5798 >  HIRE_DATE,
5799 >  DEPT_NO,
5800 >  JOB_CODE,
5801 >  JOB_GRADE,
5802 >  JOB_COUNTRY,
5803 >  SALARY,
5804 >  FULL_NAME,
5805 >  DEPT_PATH,
5806 >  DEPT_KEY_PATH,
5807 >  "Payment Status"
5808   ) AS
5809   with recursive Depts As (
5810   Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT  as VarChar(256)) as DEPT_PATH,
# Line 5810 | Line 5818 | JOIN Depts On D.HEAD_DEPT = Depts.DEPT_N
5818   )
5819  
5820   Select distinct A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,
5821 < A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH
5821 > A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH,
5822 > CASE When A.SALARY > 10000 then 'higher paid' else 'lower paid' End
5823   From EMPLOYEE A
5824   JOIN Depts D On D.DEPT_NO = A.DEPT_NO
5825   ;
# Line 5818 | Line 5827 | JOIN Depts D On D.DEPT_NO = A.DEPT_NO
5827   /* View: PHONE_LIST, Owner: SYSDBA */
5828  
5829   CREATE VIEW PHONE_LIST (
5830 <  EMP_NO,
5831 <  FIRST_NAME,
5832 <  LAST_NAME,
5833 <  PHONE_EXT,
5834 <  LOCATION,
5830 >  EMP_NO,
5831 >  FIRST_NAME,
5832 >  LAST_NAME,
5833 >  PHONE_EXT,
5834 >  LOCATION,
5835    PHONE_NO
5836   ) AS
5837   SELECT
# Line 5924 | Line 5933 | CREATE EXCEPTION REASSIGN_SALES 'Reassig
5933   CREATE EXCEPTION UNKNOWN_EMP_ID 'Invalid employee number or project id.';
5934   COMMIT WORK;
5935   SET AUTODDL OFF;
5936 < SET TERM ^ ;
5936 > SET TERM ^;
5937  
5938   /* Package Definitions */
5939  
5940 < CREATE PACKAGE FB$OUT                                                        
5940 > CREATE PACKAGE FB$OUT
5941   AS
5933
5942   begin
5943          procedure enable;
5944          procedure disable;
# Line 5940 | Line 5948 | begin
5948  
5949          procedure get_lines returns (lines fb$out_type);
5950   end
5951 < ^
5951 > ^
5952  
5953 < CREATE PACKAGE SELECT$TEST                                                    
5953 > CREATE PACKAGE SELECT$TEST
5954   AS
5947
5955   Begin
5956    Procedure ShowItems(IPARAM Integer) RETURNS (OutParam integer);
5957   End
5958 < ^
5958 > ^
5959  
5960 < SET TERM ; ^
5960 > SET TERM ;^
5961   COMMIT WORK;
5962   SET AUTODDL ON;
5963   COMMIT WORK;
5964   SET AUTODDL OFF;
5965 < SET TERM ^ ;
5965 > SET TERM ^;
5966  
5967   /* Stored procedures Definitions*/
5968  
5969 < CREATE PROCEDURE SHOW_LANGS
5969 > CREATE PROCEDURE SHOW_LANGS
5970   (
5971    CODE VARCHAR(5) CHARACTER SET NONE,
5972    GRADE SMALLINT,
# Line 5971 | Line 5978 | RETURNS
5978   )
5979   AS
5980   BEGIN SUSPEND; EXIT; END
5974
5981   ^
5982  
5983 < CREATE PROCEDURE ADD_EMP_PROJ
5983 > CREATE PROCEDURE ADD_EMP_PROJ
5984   (
5985    EMP_NO SMALLINT,
5986    PROJ_ID CHAR(5) CHARACTER SET NONE
5987   )
5988   AS
5989   BEGIN EXIT; END
5984
5990   ^
5991  
5992 < CREATE PROCEDURE ALL_LANGS
5992 > CREATE PROCEDURE ALL_LANGS
5993   RETURNS
5994   (
5995    CODE VARCHAR(5) CHARACTER SET NONE,
# Line 5994 | Line 5999 | RETURNS
5999   )
6000   AS
6001   BEGIN SUSPEND; EXIT; END
5997
6002   ^
6003  
6004 < CREATE PROCEDURE DELETE_EMPLOYEE
6004 > CREATE PROCEDURE DELETE_EMPLOYEE
6005   (
6006    EMP_NUM INTEGER
6007   )
6008   AS
6009   BEGIN EXIT; END
6006
6010   ^
6011  
6012 < CREATE PROCEDURE DEPT_BUDGET
6012 > CREATE PROCEDURE DEPT_BUDGET
6013   (
6014    DNO CHAR(3) CHARACTER SET NONE
6015   )
6016   RETURNS
6017   (
6018 <  TOT DECIMAL(12, 2)
6018 >  TOT DECIMAL(12,2)
6019   )
6020   AS
6021   BEGIN SUSPEND; EXIT; END
6022 + ^
6023  
6024 + CREATE PROCEDURE EMPLOYEE_PAY_STATUS
6025 + (
6026 +  EMP_NUM SMALLINT
6027 + )
6028 + RETURNS
6029 + (
6030 +  PAY_STATUS VARCHAR(6) CHARACTER SET NONE,
6031 +  SALARY NUMERIC(10,2)
6032 + )
6033 + AS
6034 + BEGIN EXIT; END
6035   ^
6036  
6037 < CREATE PROCEDURE GET_EMP_PROJ
6037 > CREATE PROCEDURE GET_EMP_PROJ
6038   (
6039    EMP_NO SMALLINT
6040   )
# Line 6029 | Line 6044 | RETURNS
6044   )
6045   AS
6046   BEGIN SUSPEND; EXIT; END
6032
6047   ^
6048  
6049 < CREATE PROCEDURE "Has Space"
6049 > CREATE PROCEDURE "Has Space"
6050   (
6051    ARG1 INTEGER
6052   )
6053   AS
6054   BEGIN EXIT; END
6041
6055   ^
6056  
6057 < CREATE PROCEDURE MAIL_LABEL
6057 > CREATE PROCEDURE MAIL_LABEL
6058   (
6059    CUST_NO INTEGER
6060   )
# Line 6056 | Line 6069 | RETURNS
6069   )
6070   AS
6071   BEGIN SUSPEND; EXIT; END
6059
6072   ^
6073  
6074 < CREATE PROCEDURE ORG_CHART
6074 > CREATE PROCEDURE ORG_CHART
6075   RETURNS
6076   (
6077    HEAD_DEPT CHAR(25) CHARACTER SET NONE,
# Line 6070 | Line 6082 | RETURNS
6082   )
6083   AS
6084   BEGIN SUSPEND; EXIT; END
6073
6085   ^
6086  
6087 < CREATE PROCEDURE SHIP_ORDER
6087 > CREATE PROCEDURE SHIP_ORDER
6088   (
6089    PO_NUM CHAR(8) CHARACTER SET NONE
6090   )
6091   AS
6092   BEGIN EXIT; END
6082
6093   ^
6094  
6095 < CREATE PROCEDURE SUB_TOT_BUDGET
6095 > CREATE PROCEDURE SUB_TOT_BUDGET
6096   (
6097    HEAD_DEPT CHAR(3) CHARACTER SET NONE
6098   )
6099   RETURNS
6100   (
6101 <  TOT_BUDGET DECIMAL(12, 2),
6102 <  AVG_BUDGET DECIMAL(12, 2),
6103 <  MIN_BUDGET DECIMAL(12, 2),
6104 <  MAX_BUDGET DECIMAL(12, 2)
6101 >  TOT_BUDGET DECIMAL(12,2),
6102 >  AVG_BUDGET DECIMAL(12,2),
6103 >  MIN_BUDGET DECIMAL(12,2),
6104 >  MAX_BUDGET DECIMAL(12,2)
6105   )
6106   AS
6107   BEGIN SUSPEND; EXIT; END
6098
6108   ^
6109  
6110 < CREATE PROCEDURE "UC SPACE"
6110 > CREATE PROCEDURE "UC SPACE"
6111   (
6112    ARG1 INTEGER
6113   )
6114   AS
6115   BEGIN EXIT; END
6107
6116   ^
6117  
6118 < CREATE PROCEDURE "iCASE"
6118 > CREATE PROCEDURE "iCASE"
6119   AS
6120   BEGIN EXIT; END
6113
6121   ^
6122  
6123 < SET TERM ; ^
6123 > SET TERM ;^
6124   COMMIT WORK;
6125   SET AUTODDL ON;
6126   COMMIT WORK;
6127   SET AUTODDL OFF;
6128 < SET TERM ^ ;
6128 > SET TERM ^;
6129  
6130   /* Stored Function declarations */
6131  
6132   CREATE FUNCTION F (X INTEGER)
6133   RETURNS INTEGER
6134   AS BEGIN END
6128
6135   ^
6136  
6137 <
6132 < SET TERM ; ^
6137 > SET TERM ;^
6138   COMMIT WORK;
6139   SET AUTODDL ON;
6140 < SET TERM ^ ;
6140 > SET TERM ^;
6141  
6142  
6143   /* Triggers only will work for SQL triggers */
# Line 6142 | Line 6147 | ACTIVE ON CONNECT POSITION 0
6147   as
6148   begin
6149   End
6150 < ^
6150 > ^
6151 >
6152   CREATE TRIGGER "BEFORE CREATE TABLE"
6153   ACTIVE BEFORE CREATE TABLE POSITION 0
6154   AS BEGIN END
6155 < ^
6155 > ^
6156 >
6157   CREATE TRIGGER "AFTER CREATE TABLE"
6158   ACTIVE AFTER CREATE TABLE POSITION 0
6159   AS BEGIN END
6160 < ^
6160 > ^
6161 >
6162   CREATE TRIGGER "BEFORE ALTER TABLE"
6163   ACTIVE BEFORE ALTER TABLE POSITION 0
6164   AS BEGIN END
6165 < ^
6165 > ^
6166 >
6167   CREATE TRIGGER "AFTER ALTER TABLE"
6168   ACTIVE AFTER ALTER TABLE POSITION 0
6169   AS BEGIN END
6170 < ^
6170 > ^
6171 >
6172   CREATE TRIGGER "AFTER CREATE/Alter TABLE"
6173   ACTIVE AFTER CREATE TABLE OR ALTER TABLE POSITION 0
6174   AS BEGIN END
6175 < ^
6175 > ^
6176 >
6177   CREATE TRIGGER "BEFORE DROP TABLE"
6178   ACTIVE BEFORE Drop TABLE POSITION 0
6179   AS BEGIN END
6180 < ^
6180 > ^
6181 >
6182   CREATE TRIGGER "AFTER DROP TABLE"
6183   ACTIVE AFTER Drop TABLE POSITION 0
6184   AS BEGIN END
6185 < ^
6185 > ^
6186 >
6187   CREATE TRIGGER "BEFORE CREATE PROCEDURE"
6188   ACTIVE BEFORE CREATE PROCEDURE POSITION 0
6189   AS BEGIN END
6190 < ^
6190 > ^
6191 >
6192   CREATE TRIGGER "AFTER CREATE PROCEDURE"
6193   ACTIVE AFTER CREATE PROCEDURE POSITION 0
6194   AS BEGIN END
6195 < ^
6195 > ^
6196 >
6197   CREATE TRIGGER "BEFORE ALTER PROCEDURE"
6198   ACTIVE BEFORE ALTER PROCEDURE POSITION 0
6199   AS BEGIN END
6200 < ^
6200 > ^
6201 >
6202   CREATE TRIGGER "AFTER ALTER PROCEDURE"
6203   ACTIVE AFTER ALTER PROCEDURE POSITION 0
6204   AS BEGIN END
6205 < ^
6205 > ^
6206 >
6207   CREATE TRIGGER "BEFORE DROP PROCEDURE"
6208   ACTIVE BEFORE Drop PROCEDURE POSITION 0
6209   AS BEGIN END
6210 < ^
6210 > ^
6211 >
6212   CREATE TRIGGER "AFTER DROP PROCEDURE"
6213   ACTIVE AFTER Drop PROCEDURE POSITION 0
6214   AS BEGIN END
6215 < ^
6215 > ^
6216 >
6217   CREATE TRIGGER "BEFORE CREATE FUNCTION"
6218   ACTIVE BEFORE CREATE FUNCTION POSITION 0
6219   AS BEGIN END
6220 < ^
6220 > ^
6221 >
6222   CREATE TRIGGER "AFTER CREATE FUNCTION"
6223   ACTIVE AFTER CREATE FUNCTION POSITION 0
6224   AS BEGIN END
6225 < ^
6225 > ^
6226 >
6227   CREATE TRIGGER "BEFORE ALTER FUNCTION"
6228   ACTIVE BEFORE ALTER FUNCTION POSITION 0
6229   AS BEGIN END
6230 < ^
6230 > ^
6231 >
6232   CREATE TRIGGER "AFTER ALTER FUNCTION"
6233   ACTIVE AFTER ALTER FUNCTION POSITION 0
6234   AS BEGIN END
6235 < ^
6235 > ^
6236 >
6237   CREATE TRIGGER "BEFORE DROP FUNCTION"
6238   ACTIVE BEFORE Drop FUNCTION POSITION 0
6239   AS BEGIN END
6240 < ^
6240 > ^
6241 >
6242   CREATE TRIGGER "AFTER DROP FUNCTION"
6243   ACTIVE AFTER Drop FUNCTION POSITION 0
6244   AS BEGIN END
6245 < ^
6245 > ^
6246 >
6247   CREATE TRIGGER "BEFORE CREATE TRIGGER"
6248   ACTIVE BEFORE CREATE TRIGGER POSITION 0
6249   AS BEGIN END
6250 < ^
6250 > ^
6251 >
6252   CREATE TRIGGER "AFTER CREATE TRIGGER"
6253   ACTIVE AFTER CREATE TRIGGER POSITION 0
6254   AS BEGIN END
6255 < ^
6255 > ^
6256 >
6257   CREATE TRIGGER "BEFORE ALTER TRIGGER"
6258   ACTIVE BEFORE ALTER TRIGGER POSITION 0
6259   AS BEGIN END
6260 < ^
6260 > ^
6261 >
6262   CREATE TRIGGER "AFTER ALTER TRIGGER"
6263   ACTIVE AFTER ALTER TRIGGER POSITION 0
6264   AS BEGIN END
6265 < ^
6265 > ^
6266 >
6267   CREATE TRIGGER "BEFORE DROP TRIGGER"
6268   ACTIVE BEFORE Drop TRIGGER POSITION 0
6269   AS BEGIN END
6270 < ^
6270 > ^
6271 >
6272   CREATE TRIGGER "AFTER DROP TRIGGER"
6273   ACTIVE AFTER Drop TRIGGER POSITION 0
6274   AS BEGIN END
6275 < ^
6275 > ^
6276 >
6277   CREATE TRIGGER "BEFORE CREATE EXCEPTION"
6278   ACTIVE BEFORE CREATE EXCEPTION POSITION 0
6279   AS BEGIN END
6280 < ^
6280 > ^
6281 >
6282   CREATE TRIGGER "AFTER CREATE EXCEPTION"
6283   ACTIVE AFTER CREATE EXCEPTION POSITION 0
6284   AS BEGIN END
6285 < ^
6285 > ^
6286 >
6287   CREATE TRIGGER "BEFORE ALTER EXCEPTION"
6288   ACTIVE BEFORE ALTER EXCEPTION POSITION 0
6289   AS BEGIN END
6290 < ^
6290 > ^
6291 >
6292   CREATE TRIGGER "AFTER ALTER EXCEPTION"
6293   ACTIVE AFTER ALTER EXCEPTION POSITION 0
6294   AS BEGIN END
6295 < ^
6295 > ^
6296 >
6297   CREATE TRIGGER "BEFORE DROP EXCEPTION"
6298   ACTIVE BEFORE Drop EXCEPTION POSITION 0
6299   AS BEGIN END
6300 < ^
6300 > ^
6301 >
6302   CREATE TRIGGER "AFTER DROP EXCEPTION"
6303   ACTIVE AFTER Drop EXCEPTION POSITION 0
6304   AS BEGIN END
6305 < ^
6305 > ^
6306 >
6307   CREATE TRIGGER "BEFORE CREATE VIEW"
6308   ACTIVE BEFORE CREATE VIEW POSITION 0
6309   AS BEGIN END
6310 < ^
6310 > ^
6311 >
6312   CREATE TRIGGER "AFTER CREATE VIEW"
6313   ACTIVE AFTER CREATE VIEW POSITION 0
6314   AS BEGIN END
6315 < ^
6315 > ^
6316 >
6317   CREATE TRIGGER "BEFORE ALTER VIEW"
6318   ACTIVE BEFORE ALTER VIEW POSITION 0
6319   AS BEGIN END
6320 < ^
6320 > ^
6321 >
6322   CREATE TRIGGER "AFTER ALTER VIEW"
6323   ACTIVE AFTER ALTER VIEW POSITION 0
6324   AS BEGIN END
6325 < ^
6325 > ^
6326 >
6327   CREATE TRIGGER "BEFORE DROP VIEW"
6328   ACTIVE BEFORE Drop VIEW POSITION 0
6329   AS BEGIN END
6330 < ^
6330 > ^
6331 >
6332   CREATE TRIGGER "AFTER DROP VIEW"
6333   ACTIVE AFTER Drop VIEW POSITION 0
6334   AS BEGIN END
6335 < ^
6335 > ^
6336 >
6337   CREATE TRIGGER "BEFORE CREATE DOMAIN"
6338   ACTIVE BEFORE CREATE DOMAIN POSITION 0
6339   AS BEGIN END
6340 < ^
6340 > ^
6341 >
6342   CREATE TRIGGER "AFTER CREATE DOMAIN"
6343   ACTIVE AFTER CREATE DOMAIN POSITION 0
6344   AS BEGIN END
6345 < ^
6345 > ^
6346 >
6347   CREATE TRIGGER "BEFORE ALTER DOMAIN"
6348   ACTIVE BEFORE ALTER DOMAIN POSITION 0
6349   AS BEGIN END
6350 < ^
6350 > ^
6351 >
6352   CREATE TRIGGER "AFTER ALTER DOMAIN"
6353   ACTIVE AFTER ALTER DOMAIN POSITION 0
6354   AS BEGIN END
6355 < ^
6355 > ^
6356 >
6357   CREATE TRIGGER "BEFORE DROP DOMAIN"
6358   ACTIVE BEFORE Drop DOMAIN POSITION 0
6359   AS BEGIN END
6360 < ^
6360 > ^
6361 >
6362   CREATE TRIGGER "AFTER DROP DOMAIN"
6363   ACTIVE AFTER Drop DOMAIN POSITION 0
6364   AS BEGIN END
6365 < ^
6365 > ^
6366 >
6367   CREATE TRIGGER "BEFORE CREATE ROLE"
6368   ACTIVE BEFORE CREATE ROLE POSITION 0
6369   AS BEGIN END
6370 < ^
6370 > ^
6371 >
6372   CREATE TRIGGER "AFTER CREATE ROLE"
6373   ACTIVE AFTER CREATE ROLE POSITION 0
6374   AS BEGIN END
6375 < ^
6375 > ^
6376 >
6377   CREATE TRIGGER "BEFORE ALTER ROLE"
6378   ACTIVE BEFORE ALTER ROLE POSITION 0
6379   AS BEGIN END
6380 < ^
6380 > ^
6381 >
6382   CREATE TRIGGER "AFTER ALTER ROLE"
6383   ACTIVE AFTER ALTER ROLE POSITION 0
6384   AS BEGIN END
6385 < ^
6385 > ^
6386 >
6387   CREATE TRIGGER "BEFORE DROP ROLE"
6388   ACTIVE BEFORE Drop ROLE POSITION 0
6389   AS BEGIN END
6390 < ^
6390 > ^
6391 >
6392   CREATE TRIGGER "AFTER DROP ROLE"
6393   ACTIVE AFTER Drop ROLE POSITION 0
6394   AS BEGIN END
6395 < ^
6395 > ^
6396 >
6397   CREATE TRIGGER "BEFORE CREATE INDEX"
6398   ACTIVE BEFORE CREATE INDEX POSITION 0
6399   AS BEGIN END
6400 < ^
6400 > ^
6401 >
6402   CREATE TRIGGER "AFTER CREATE INDEX"
6403   ACTIVE AFTER CREATE INDEX POSITION 0
6404   AS BEGIN END
6405 < ^
6405 > ^
6406 >
6407   CREATE TRIGGER "BEFORE ALTER INDEX"
6408   ACTIVE BEFORE ALTER INDEX POSITION 0
6409   AS BEGIN END
6410 < ^
6410 > ^
6411 >
6412   CREATE TRIGGER "AFTER ALTER INDEX"
6413   ACTIVE AFTER ALTER INDEX POSITION 0
6414   AS BEGIN END
6415 < ^
6415 > ^
6416 >
6417   CREATE TRIGGER "BEFORE DROP INDEX"
6418   ACTIVE BEFORE Drop INDEX POSITION 0
6419   AS BEGIN END
6420 < ^
6420 > ^
6421 >
6422   CREATE TRIGGER "AFTER DROP INDEX"
6423   ACTIVE AFTER Drop INDEX POSITION 0
6424   AS BEGIN END
6425 < ^
6425 > ^
6426 >
6427   CREATE TRIGGER "BEFORE CREATE SEQUENCE"
6428   ACTIVE BEFORE CREATE SEQUENCE POSITION 0
6429   AS BEGIN END
6430 < ^
6430 > ^
6431 >
6432   CREATE TRIGGER "AFTER CREATE SEQUENCE"
6433   ACTIVE AFTER CREATE SEQUENCE POSITION 0
6434   AS BEGIN END
6435 < ^
6435 > ^
6436 >
6437   CREATE TRIGGER "BEFORE ALTER SEQUENCE"
6438   ACTIVE BEFORE ALTER SEQUENCE POSITION 0
6439   AS BEGIN END
6440 < ^
6440 > ^
6441 >
6442   CREATE TRIGGER "AFTER ALTER SEQUENCE"
6443   ACTIVE AFTER ALTER SEQUENCE POSITION 0
6444   AS BEGIN END
6445 < ^
6445 > ^
6446 >
6447   CREATE TRIGGER "BEFORE DROP SEQUENCE"
6448   ACTIVE BEFORE Drop SEQUENCE POSITION 0
6449   AS BEGIN END
6450 < ^
6450 > ^
6451 >
6452   CREATE TRIGGER "AFTER DROP SEQUENCE"
6453   ACTIVE AFTER Drop SEQUENCE POSITION 0
6454   AS BEGIN END
6455 < ^
6455 > ^
6456 >
6457   CREATE TRIGGER "BEFORE CREATE USER"
6458   ACTIVE BEFORE CREATE USER POSITION 0
6459   AS BEGIN END
6460 < ^
6460 > ^
6461 >
6462   CREATE TRIGGER "AFTER CREATE USER"
6463   ACTIVE AFTER CREATE USER POSITION 0
6464   AS BEGIN END
6465 < ^
6465 > ^
6466 >
6467   CREATE TRIGGER "BEFORE ALTER USER"
6468   ACTIVE BEFORE ALTER USER POSITION 0
6469   AS BEGIN END
6470 < ^
6470 > ^
6471 >
6472   CREATE TRIGGER "AFTER ALTER USER"
6473   ACTIVE AFTER ALTER USER POSITION 0
6474   AS BEGIN END
6475 < ^
6475 > ^
6476 >
6477   CREATE TRIGGER "BEFORE DROP USER"
6478   ACTIVE BEFORE Drop USER POSITION 0
6479   AS BEGIN END
6480 < ^
6480 > ^
6481 >
6482   CREATE TRIGGER "AFTER DROP USER"
6483   ACTIVE AFTER Drop USER POSITION 0
6484   AS BEGIN END
6485 < ^
6485 > ^
6486 >
6487   CREATE TRIGGER "BEFORE CREATE COLLATION"
6488   ACTIVE BEFORE CREATE COLLATION POSITION 0
6489   AS BEGIN END
6490 < ^
6490 > ^
6491 >
6492   CREATE TRIGGER "AFTER CREATE COLLATION"
6493   ACTIVE AFTER CREATE COLLATION POSITION 0
6494   AS BEGIN END
6495 < ^
6495 > ^
6496 >
6497   CREATE TRIGGER "BEFORE DROP COLLATION"
6498   ACTIVE BEFORE Drop COLLATION POSITION 0
6499   AS BEGIN END
6500 < ^
6500 > ^
6501 >
6502   CREATE TRIGGER "AFTER DROP COLLATION"
6503   ACTIVE AFTER Drop COLLATION POSITION 0
6504   AS BEGIN END
6505 < ^
6505 > ^
6506 >
6507   CREATE TRIGGER "BEFORE ALTER CHARACTER SET"
6508   ACTIVE BEFORE ALTER CHARACTER SET POSITION 0
6509   AS BEGIN END
6510 < ^
6510 > ^
6511 >
6512   CREATE TRIGGER "AFTER ALTER CHARACTER SET"
6513   ACTIVE AFTER ALTER CHARACTER SET POSITION 0
6514   AS BEGIN END
6515 < ^
6515 > ^
6516 >
6517   CREATE TRIGGER "BEFORE CREATE PACKAGE"
6518   ACTIVE BEFORE CREATE PACKAGE POSITION 0
6519   AS BEGIN END
6520 < ^
6520 > ^
6521 >
6522   CREATE TRIGGER "AFTER CREATE PACKAGE"
6523   ACTIVE AFTER CREATE PACKAGE POSITION 0
6524   AS BEGIN END
6525 < ^
6525 > ^
6526 >
6527   CREATE TRIGGER "BEFORE ALTER PACKAGE"
6528   ACTIVE BEFORE ALTER PACKAGE POSITION 0
6529   AS BEGIN END
6530 < ^
6530 > ^
6531 >
6532   CREATE TRIGGER "AFTER ALTER PACKAGE"
6533   ACTIVE AFTER ALTER PACKAGE POSITION 0
6534   AS BEGIN END
6535 < ^
6535 > ^
6536 >
6537   CREATE TRIGGER "BEFORE DROP PACKAGE"
6538   ACTIVE BEFORE Drop PACKAGE POSITION 0
6539   AS BEGIN END
6540 < ^
6540 > ^
6541 >
6542   CREATE TRIGGER "AFTER DROP PACKAGE"
6543   ACTIVE AFTER Drop PACKAGE POSITION 0
6544   AS BEGIN END
6545 < ^
6545 > ^
6546 >
6547   CREATE TRIGGER "BEFORE CREATE PACKAGE BODY"
6548   ACTIVE BEFORE CREATE PACKAGE BODY POSITION 0
6549   AS BEGIN END
6550 < ^
6550 > ^
6551 >
6552   CREATE TRIGGER "AFTER CREATE PACKAGE BODY"
6553   ACTIVE AFTER CREATE PACKAGE BODY POSITION 0
6554   AS BEGIN END
6555 < ^
6555 > ^
6556 >
6557   CREATE TRIGGER "BEFORE DROP PACKAGE BODY"
6558   ACTIVE BEFORE Drop PACKAGE BODY POSITION 0
6559   AS BEGIN END
6560 < ^
6560 > ^
6561 >
6562   CREATE TRIGGER "AFTER DROP PACKAGE BODY"
6563   ACTIVE AFTER Drop PACKAGE BODY POSITION 0
6564   AS BEGIN END
6565 < ^
6565 > ^
6566 >
6567   CREATE TRIGGER "BEFORE ANY DDL STATEMENT"
6568   ACTIVE BEFORE ANY DDL STATEMENT POSITION 0
6569   AS BEGIN END
6570 < ^
6570 > ^
6571 >
6572   CREATE TRIGGER "AFTER ANY DDL STATEMENT"
6573   ACTIVE AFTER ANY DDL STATEMENT POSITION 0
6574   AS BEGIN END
6575 < ^
6575 > ^
6576 >
6577   CREATE TRIGGER SET_CUST_NO FOR CUSTOMER
6578   ACTIVE BEFORE INSERT POSITION 0
6579   AS
# Line 6490 | Line 6581 | BEGIN
6581      if (new.cust_no is null) then
6582      new.cust_no = gen_id(cust_no_gen, 1);
6583   END
6584 < ^
6584 > ^
6585 >
6586   CREATE TRIGGER SET_EMP_NO FOR EMPLOYEE
6587   ACTIVE BEFORE INSERT POSITION 0
6588   AS
# Line 6498 | Line 6590 | BEGIN
6590      if (new.emp_no is null) then
6591      new.emp_no = gen_id(emp_no_gen, 1);
6592   END
6593 < ^
6593 > ^
6594 >
6595   CREATE TRIGGER SAVE_SALARY_CHANGE FOR EMPLOYEE
6596   ACTIVE AFTER UPDATE POSITION 0
6597   AS
# Line 6513 | Line 6606 | BEGIN
6606              old.salary,
6607              (new.salary - old.salary) * 100 / old.salary);
6608   END
6609 < ^
6609 > ^
6610 >
6611   CREATE TRIGGER POST_NEW_ORDER FOR SALES
6612   ACTIVE AFTER INSERT POSITION 0
6613   AS
6614   BEGIN
6615      POST_EVENT 'new_order';
6616   END
6617 < ^
6618 < COMMIT WORK ^
6617 > ^
6618 >
6619 > COMMIT WORK^
6620   SET TERM ;^
6621   COMMIT WORK;
6622   SET AUTODDL OFF;
6623 < SET TERM ^ ;
6623 > SET TERM ^;
6624  
6625   /* Package Definitions */
6626  
6627 < CREATE PACKAGE BODY FB$OUT                                                        
6627 > CREATE PACKAGE BODY FB$OUT
6628   AS
6534
6629   begin
6630          procedure enable
6631          as
# Line 6586 | Line 6680 | begin
6680                  execute procedure clear;
6681          end
6682   end
6683 < ^
6683 > ^
6684  
6685 < CREATE PACKAGE BODY SELECT$TEST                                                    
6685 > CREATE PACKAGE BODY SELECT$TEST
6686   AS
6593
6687   Begin
6688    Procedure ShowItems(IPARAM Integer) RETURNS (OutParam integer)
6689    As
# Line 6598 | Line 6691 | Begin
6691      SUSPEND;
6692    End
6693   End
6694 < ^
6694 > ^
6695  
6696 < SET TERM ; ^
6696 > SET TERM ;^
6697   COMMIT WORK;
6698   SET AUTODDL ON;
6699   COMMIT WORK;
6700   SET AUTODDL OFF;
6701 < SET TERM ^ ;
6701 > SET TERM ^;
6702  
6703   /* Stored procedure Bodies */
6704  
6705 <
6613 < ALTER PROCEDURE SHOW_LANGS
6705 > ALTER PROCEDURE SHOW_LANGS
6706   (
6707    CODE VARCHAR(5) CHARACTER SET NONE,
6708    GRADE SMALLINT,
# Line 6631 | Line 6723 | BEGIN
6723             AND (language_req IS NOT NULL))
6724      INTO :languages;
6725      IF (languages = ' ') THEN  /* Prints 'NULL' instead of blanks */
6726 <       languages = 'NULL';        
6726 >       languages = 'NULL';
6727      i = i +1;
6728      SUSPEND;
6729    END
6730   END
6731 < ^
6640 <
6731 > ^
6732  
6733 < ALTER PROCEDURE ADD_EMP_PROJ
6733 > ALTER PROCEDURE ADD_EMP_PROJ
6734   (
6735    EMP_NO SMALLINT,
6736    PROJ_ID CHAR(5) CHARACTER SET NONE
# Line 6652 | Line 6743 | BEGIN
6743                  EXCEPTION unknown_emp_id;
6744          END
6745   END
6746 < ^
6656 <
6746 > ^
6747  
6748 < ALTER PROCEDURE ALL_LANGS
6748 > ALTER PROCEDURE ALL_LANGS
6749   RETURNS
6750   (
6751    CODE VARCHAR(5) CHARACTER SET NONE,
# Line 6665 | Line 6755 | RETURNS
6755   )
6756   AS
6757   BEGIN
6758 <        FOR SELECT job_code, job_grade, job_country FROM job
6758 >        FOR SELECT job_code, job_grade, job_country FROM job
6759                  INTO :code, :grade, :country
6760  
6761          DO
6762          BEGIN
6763 <            FOR SELECT languages FROM show_langs
6763 >            FOR SELECT languages FROM show_langs
6764                      (:code, :grade, :country) INTO :lang DO
6765                  SUSPEND;
6766              /* Put nice separators between rows */
# Line 6681 | Line 6771 | BEGIN
6771              SUSPEND;
6772          END
6773      END
6774 < ^
6685 <
6774 > ^
6775  
6776 < ALTER PROCEDURE DELETE_EMPLOYEE
6776 > ALTER PROCEDURE DELETE_EMPLOYEE
6777   (
6778    EMP_NUM INTEGER
6779   )
# Line 6695 | Line 6784 | BEGIN
6784  
6785          /*
6786           *      If there are any sales records referencing this employee,
6787 <         *      can't delete the employee until the sales are re-assigned
6787 >         *      cannot delete the employee until the sales are re-assigned
6788           *      to another employee or changed to NULL.
6789           */
6790          SELECT count(po_number)
# Line 6741 | Line 6830 | BEGIN
6830          WHERE emp_no = :emp_num;
6831  
6832   END
6833 < ^
6745 <
6833 > ^
6834  
6835 < ALTER PROCEDURE DEPT_BUDGET
6835 > ALTER PROCEDURE DEPT_BUDGET
6836   (
6837    DNO CHAR(3) CHARACTER SET NONE
6838   )
6839   RETURNS
6840   (
6841 <  TOT DECIMAL(12, 2)
6841 >  TOT DECIMAL(12,2)
6842   )
6843   AS
6844 < DECLARE VARIABLE sumb DECIMAL(12, 2);
6844 > DECLARE VARIABLE sumb DECIMAL(12,2);
6845          DECLARE VARIABLE rdno CHAR(3);
6846          DECLARE VARIABLE cnt INTEGER;
6847   BEGIN
# Line 6778 | Line 6866 | BEGIN
6866  
6867          SUSPEND;
6868   END
6869 < ^
6869 > ^
6870  
6871 + ALTER PROCEDURE EMPLOYEE_PAY_STATUS
6872 + (
6873 +  EMP_NUM SMALLINT
6874 + )
6875 + RETURNS
6876 + (
6877 +  PAY_STATUS VARCHAR(6) CHARACTER SET NONE,
6878 +  SALARY NUMERIC(10,2)
6879 + )
6880 + AS
6881 + Declare aCursor CURSOR FOR (
6882 +    Select EMP_NO,SALARY From EMPLOYEE WHERE LAST_NAME = 'unknown');
6883 + BEGIN
6884 +  Select SALARY, Case
6885 +   When SALARY > 10000 and SALARY <= 100000 then 'higher'
6886 +   When SALARY > 100000 then 'gross'
6887 +   else 'lower' End
6888 +  From employee
6889 +    WHERE emp_no = :EMP_NUM
6890 +   into :SALARY, :PAY_STATUS;
6891 + END
6892 + ^
6893  
6894 < ALTER PROCEDURE GET_EMP_PROJ
6894 > ALTER PROCEDURE GET_EMP_PROJ
6895   (
6896    EMP_NO SMALLINT
6897   )
# Line 6798 | Line 6908 | BEGIN
6908          DO
6909                  SUSPEND;
6910   END
6911 < ^
6802 <
6911 > ^
6912  
6913 < ALTER PROCEDURE "Has Space"
6913 > ALTER PROCEDURE "Has Space"
6914   (
6915    ARG1 INTEGER
6916   )
6917   AS
6918   Begin End
6919 < ^
6811 <
6919 > ^
6920  
6921 < ALTER PROCEDURE MAIL_LABEL
6921 > ALTER PROCEDURE MAIL_LABEL
6922   (
6923    CUST_NO INTEGER
6924   )
# Line 6878 | Line 6986 | BEGIN
6986  
6987          SUSPEND;
6988   END
6989 < ^
6882 <
6989 > ^
6990  
6991 < ALTER PROCEDURE ORG_CHART
6991 > ALTER PROCEDURE ORG_CHART
6992   RETURNS
6993   (
6994    HEAD_DEPT CHAR(25) CHARACTER SET NONE,
# Line 6921 | Line 7028 | BEGIN
7028                  SUSPEND;
7029          END
7030   END
7031 < ^
6925 <
7031 > ^
7032  
7033 < ALTER PROCEDURE SHIP_ORDER
7033 > ALTER PROCEDURE SHIP_ORDER
7034   (
7035    PO_NUM CHAR(8) CHARACTER SET NONE
7036   )
# Line 6981 | Line 7087 | BEGIN
7087          WHERE po_number = :po_num;
7088  
7089   END
7090 < ^
6985 <
7090 > ^
7091  
7092 < ALTER PROCEDURE SUB_TOT_BUDGET
7092 > ALTER PROCEDURE SUB_TOT_BUDGET
7093   (
7094    HEAD_DEPT CHAR(3) CHARACTER SET NONE
7095   )
7096   RETURNS
7097   (
7098 <  TOT_BUDGET DECIMAL(12, 2),
7099 <  AVG_BUDGET DECIMAL(12, 2),
7100 <  MIN_BUDGET DECIMAL(12, 2),
7101 <  MAX_BUDGET DECIMAL(12, 2)
7098 >  TOT_BUDGET DECIMAL(12,2),
7099 >  AVG_BUDGET DECIMAL(12,2),
7100 >  MIN_BUDGET DECIMAL(12,2),
7101 >  MAX_BUDGET DECIMAL(12,2)
7102   )
7103   AS
7104   BEGIN
# Line 7003 | Line 7108 | BEGIN
7108                  INTO :tot_budget, :avg_budget, :min_budget, :max_budget;
7109          SUSPEND;
7110   END
7111 < ^
7007 <
7111 > ^
7112  
7113 < ALTER PROCEDURE "UC SPACE"
7113 > ALTER PROCEDURE "UC SPACE"
7114   (
7115    ARG1 INTEGER
7116   )
7117   AS
7118   Begin End
7119 < ^
7016 <
7119 > ^
7120  
7121 < ALTER PROCEDURE "iCASE"
7121 > ALTER PROCEDURE "iCASE"
7122   AS
7123   Begin End
7124 < ^
7124 > ^
7125  
7126 < SET TERM ; ^
7126 > SET TERM ;^
7127   COMMIT WORK;
7128   SET AUTODDL ON;
7129   COMMIT WORK;
7130   SET AUTODDL OFF;
7131 < SET TERM ^ ;
7131 > SET TERM ^;
7132  
7133   /* Stored Function Body */
7134  
7135   ALTER FUNCTION F (X INTEGER)
7136   RETURNS INTEGER
7137 < AS
7137 > AS
7138   BEGIN
7139   RETURN X+1;
7140   END
7141   ^
7142  
7143 <
7041 < SET TERM ; ^
7143 > SET TERM ;^
7144   COMMIT WORK;
7145   SET AUTODDL ON;
7146  
# Line 7115 | Line 7217 | COMMENT ON DATABASE  IS 'Employee Test D
7217   /* Domain definitions */
7218  
7219   CREATE DOMAIN ADDRESSLINE AS VARCHAR(30);
7220 < CREATE DOMAIN BUDGET AS DECIMAL(12, 2)
7220 > CREATE DOMAIN BUDGET AS DECIMAL(12,2)
7221           DEFAULT 50000;
7222   CREATE DOMAIN COUNTRYNAME AS VARCHAR(15);
7223   CREATE DOMAIN CUSTNO AS INTEGER;
# Line 7131 | Line 7233 | CREATE DOMAIN PONUMBER AS CHAR(8);
7233   CREATE DOMAIN PRODTYPE AS VARCHAR(12)
7234           DEFAULT 'software' NOT NULL;
7235   CREATE DOMAIN PROJNO AS CHAR(5);
7236 < CREATE DOMAIN SALARY AS NUMERIC(10, 2)
7236 > CREATE DOMAIN SALARY AS NUMERIC(10,2)
7237           DEFAULT 0;
7238  
7239   /* Table: COUNTRIES, Owner: SYSDBA */
7240  
7241 < CREATE TABLE COUNTRIES
7241 > CREATE TABLE COUNTRIES
7242   (
7243          COUNTRY VARCHAR(64) NOT NULL,
7244          NONEU   SMALLINT,
# Line 7149 | Line 7251 | COMMENT ON COLUMN COUNTRIES.ISO2 IS 'Two
7251  
7252   /* Table: COUNTRY, Owner: SYSDBA */
7253  
7254 < CREATE TABLE COUNTRY
7254 > CREATE TABLE COUNTRY
7255   (
7256          COUNTRY COUNTRYNAME NOT NULL,
7257          CURRENCY        VARCHAR(10) NOT NULL,
# Line 7158 | Line 7260 | PRIMARY KEY (COUNTRY)
7260  
7261   /* Table: CUSTOMER, Owner: SYSDBA */
7262  
7263 < CREATE TABLE CUSTOMER
7263 > CREATE TABLE CUSTOMER
7264   (
7265          CUST_NO CUSTNO NOT NULL,
7266          CUSTOMER        VARCHAR(25) NOT NULL,
# Line 7178 | Line 7280 | PRIMARY KEY (CUST_NO)
7280  
7281   /* Table: DEPARTMENT, Owner: SYSDBA */
7282  
7283 < CREATE TABLE DEPARTMENT
7283 > CREATE TABLE DEPARTMENT
7284   (
7285          DEPT_NO DEPTNO NOT NULL,
7286          DEPARTMENT      VARCHAR(25) NOT NULL,
# Line 7193 | Line 7295 | PRIMARY KEY (DEPT_NO)
7295  
7296   /* Table: EMPLOYEE, Owner: SYSDBA */
7297  
7298 < CREATE TABLE EMPLOYEE
7298 > CREATE TABLE EMPLOYEE
7299   (
7300          EMP_NO  EMPNO NOT NULL,
7301          FIRST_NAME      FIRSTNAME NOT NULL,
# Line 7211 | Line 7313 | PRIMARY KEY (EMP_NO)
7313  
7314   /* Table: EMPLOYEE_PROJECT, Owner: SYSDBA */
7315  
7316 < CREATE TABLE EMPLOYEE_PROJECT
7316 > CREATE TABLE EMPLOYEE_PROJECT
7317   (
7318          EMP_NO  EMPNO NOT NULL,
7319          PROJ_ID PROJNO NOT NULL,
# Line 7220 | Line 7322 | PRIMARY KEY (EMP_NO, PROJ_ID)
7322  
7323   /* Table: FB$OUT_TABLE, Owner: SYSDBA */
7324  
7325 < CREATE GLOBAL TEMPORARY TABLE FB$OUT_TABLE
7325 > CREATE GLOBAL TEMPORARY TABLE FB$OUT_TABLE
7326   (
7327          LINE_NUM        INTEGER,
7328          CONTENT FB$OUT_TYPE
# Line 7228 | Line 7330 | CREATE GLOBAL TEMPORARY TABLE FB$OUT_TAB
7330  
7331   /* Table: ITEST, Owner: SYSDBA */
7332  
7333 < CREATE TABLE ITEST
7333 > CREATE TABLE ITEST
7334   (
7335          "KEY"   INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 0 INCREMENT BY 1) NOT NULL,
7336          SOMETEXT        VARCHAR(64),
# Line 7237 | Line 7339 | PRIMARY KEY ("KEY")
7339  
7340   /* Table: ITEST2, Owner: SYSDBA */
7341  
7342 < CREATE TABLE ITEST2
7342 > CREATE TABLE ITEST2
7343   (
7344          "KEY"   INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 0 INCREMENT BY 1) NOT NULL,
7345          SOMETEXT        VARCHAR(64),
# Line 7246 | Line 7348 | PRIMARY KEY ("KEY")
7348  
7349   /* Table: JOB, Owner: SYSDBA */
7350  
7351 < CREATE TABLE JOB
7351 > CREATE TABLE JOB
7352   (
7353          JOB_CODE        JOBCODE NOT NULL,
7354          JOB_GRADE       JOBGRADE NOT NULL,
# Line 7261 | Line 7363 | PRIMARY KEY (JOB_CODE, JOB_GRADE, JOB_CO
7363  
7364   /* Table: PROJECT, Owner: SYSDBA */
7365  
7366 < CREATE TABLE PROJECT
7366 > CREATE TABLE PROJECT
7367   (
7368          PROJ_ID PROJNO NOT NULL,
7369          PROJ_NAME       VARCHAR(20) NOT NULL,
# Line 7274 | Line 7376 | PRIMARY KEY (PROJ_ID)
7376  
7377   /* Table: PROJ_DEPT_BUDGET, Owner: SYSDBA */
7378  
7379 < CREATE TABLE PROJ_DEPT_BUDGET
7379 > CREATE TABLE PROJ_DEPT_BUDGET
7380   (
7381          FISCAL_YEAR     INTEGER NOT NULL,
7382          PROJ_ID PROJNO NOT NULL,
# Line 7286 | Line 7388 | PRIMARY KEY (FISCAL_YEAR, PROJ_ID, DEPT_
7388  
7389   /* Table: SALARY_HISTORY, Owner: SYSDBA */
7390  
7391 < CREATE TABLE SALARY_HISTORY
7391 > CREATE TABLE SALARY_HISTORY
7392   (
7393          EMP_NO  EMPNO NOT NULL,
7394          CHANGE_DATE     TIMESTAMP DEFAULT 'NOW' NOT NULL,
# Line 7299 | Line 7401 | PRIMARY KEY (EMP_NO, CHANGE_DATE, UPDATE
7401  
7402   /* Table: SALES, Owner: SYSDBA */
7403  
7404 < CREATE TABLE SALES
7404 > CREATE TABLE SALES
7405   (
7406          PO_NUMBER       PONUMBER NOT NULL,
7407          CUST_NO CUSTNO NOT NULL,
# Line 7310 | Line 7412 | CREATE TABLE SALES
7412          DATE_NEEDED     TIMESTAMP,
7413          PAID    CHAR(1) DEFAULT 'n',
7414          QTY_ORDERED     INTEGER DEFAULT 1 NOT NULL,
7415 <        TOTAL_VALUE     DECIMAL(9, 2) NOT NULL,
7415 >        TOTAL_VALUE     DECIMAL(9,2) NOT NULL,
7416          DISCOUNT        FLOAT DEFAULT 0 NOT NULL,
7417          ITEM_TYPE       PRODTYPE,
7418          AGED COMPUTED BY (ship_date - order_date),
# Line 7323 | Line 7425 | DECLARE EXTERNAL FUNCTION ADDDAY
7425   TIMESTAMP, INTEGER
7426   RETURNS TIMESTAMP
7427   ENTRY_POINT 'addDay' MODULE_NAME 'fbudf'
7326
7428   ;
7429  
7430  
7431   DECLARE EXTERNAL FUNCTION I64TRUNCATE
7432 < NUMERIC(18, 0) BY DESCRIPTOR, NUMERIC(18, 0) BY DESCRIPTOR
7432 > NUMERIC(18,0) BY DESCRIPTOR, NUMERIC(18,0) BY DESCRIPTOR
7433   RETURNS PARAMETER 2
7434   ENTRY_POINT 'fbtruncate' MODULE_NAME 'fbudf'
7334
7435   ;
7436  
7437  
# Line 7339 | Line 7439 | DECLARE EXTERNAL FUNCTION TESTIT
7439   TIMESTAMP, INTEGER NULL, CSTRING(10) CHARACTER SET NONE, CSTRING(10) CHARACTER SET NONE BY DESCRIPTOR
7440   RETURNS CSTRING(32) CHARACTER SET NONE FREE_IT
7441   ENTRY_POINT 'testit' MODULE_NAME 'fbudf'
7342
7442   ;
7443  
7444  
# Line 8072 | Line 8171 | ALTER TABLE SALES ADD FOREIGN KEY (CUST_
8171   ALTER TABLE SALES ADD FOREIGN KEY (SALES_REP) REFERENCES EMPLOYEE (EMP_NO);
8172  
8173   CREATE SEQUENCE CUST_NO_GEN;
8174 < ALTER SEQUENCE CUST_NO_GEN RESTART WITH 1015;
8174 > ALTER SEQUENCE CUST_NO_GEN RESTART WITH 1016;
8175   CREATE SEQUENCE EMP_NO_GEN;
8176 < ALTER SEQUENCE EMP_NO_GEN RESTART WITH 157;
8176 > ALTER SEQUENCE EMP_NO_GEN RESTART WITH 158;
8177   CREATE SEQUENCE FB$OUT_SEQ;
8178 < ALTER SEQUENCE FB$OUT_SEQ RESTART WITH 0;
8178 > ALTER SEQUENCE FB$OUT_SEQ RESTART WITH 1;
8179  
8180   /* View: DEPTLIST, Owner: SYSDBA */
8181  
8182   CREATE VIEW DEPTLIST (
8183 <  EMP_NO,
8184 <  FIRST_NAME,
8185 <  LAST_NAME,
8186 <  PHONE_EXT,
8187 <  HIRE_DATE,
8188 <  DEPT_NO,
8189 <  JOB_CODE,
8190 <  JOB_GRADE,
8191 <  JOB_COUNTRY,
8192 <  SALARY,
8193 <  FULL_NAME,
8194 <  DEPT_PATH,
8195 <  DEPT_KEY_PATH
8183 >  EMP_NO,
8184 >  FIRST_NAME,
8185 >  LAST_NAME,
8186 >  PHONE_EXT,
8187 >  HIRE_DATE,
8188 >  DEPT_NO,
8189 >  JOB_CODE,
8190 >  JOB_GRADE,
8191 >  JOB_COUNTRY,
8192 >  SALARY,
8193 >  FULL_NAME,
8194 >  DEPT_PATH,
8195 >  DEPT_KEY_PATH,
8196 >  "Payment Status"
8197   ) AS
8198   with recursive Depts As (
8199   Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT  as VarChar(256)) as DEPT_PATH,
# Line 8107 | Line 8207 | JOIN Depts On D.HEAD_DEPT = Depts.DEPT_N
8207   )
8208  
8209   Select distinct A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,
8210 < A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH
8210 > A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH,
8211 > CASE When A.SALARY > 10000 then 'higher paid' else 'lower paid' End
8212   From EMPLOYEE A
8213   JOIN Depts D On D.DEPT_NO = A.DEPT_NO
8214   ;
# Line 8115 | Line 8216 | JOIN Depts D On D.DEPT_NO = A.DEPT_NO
8216   /* View: PHONE_LIST, Owner: SYSDBA */
8217  
8218   CREATE VIEW PHONE_LIST (
8219 <  EMP_NO,
8220 <  FIRST_NAME,
8221 <  LAST_NAME,
8222 <  PHONE_EXT,
8223 <  LOCATION,
8219 >  EMP_NO,
8220 >  FIRST_NAME,
8221 >  LAST_NAME,
8222 >  PHONE_EXT,
8223 >  LOCATION,
8224    PHONE_NO
8225   ) AS
8226   SELECT
# Line 8221 | Line 8322 | CREATE EXCEPTION REASSIGN_SALES 'Reassig
8322   CREATE EXCEPTION UNKNOWN_EMP_ID 'Invalid employee number or project id.';
8323   COMMIT WORK;
8324   SET AUTODDL OFF;
8325 < SET TERM ^ ;
8325 > SET TERM ^;
8326  
8327   /* Package Definitions */
8328  
8329 < CREATE PACKAGE FB$OUT                                                        
8329 > CREATE PACKAGE FB$OUT
8330   AS
8230
8331   begin
8332          procedure enable;
8333          procedure disable;
# Line 8237 | Line 8337 | begin
8337  
8338          procedure get_lines returns (lines fb$out_type);
8339   end
8340 < ^
8340 > ^
8341  
8342 < CREATE PACKAGE SELECT$TEST                                                    
8342 > CREATE PACKAGE SELECT$TEST
8343   AS
8244
8344   Begin
8345    Procedure ShowItems(IPARAM Integer) RETURNS (OutParam integer);
8346   End
8347 < ^
8347 > ^
8348  
8349 < SET TERM ; ^
8349 > SET TERM ;^
8350   COMMIT WORK;
8351   SET AUTODDL ON;
8352   COMMIT WORK;
8353   SET AUTODDL OFF;
8354 < SET TERM ^ ;
8354 > SET TERM ^;
8355  
8356   /* Stored procedures Definitions*/
8357  
8358 < CREATE PROCEDURE SHOW_LANGS
8358 > CREATE PROCEDURE SHOW_LANGS
8359   (
8360    CODE VARCHAR(5) CHARACTER SET NONE,
8361    GRADE SMALLINT,
# Line 8268 | Line 8367 | RETURNS
8367   )
8368   AS
8369   BEGIN SUSPEND; EXIT; END
8271
8370   ^
8371  
8372 < CREATE PROCEDURE ADD_EMP_PROJ
8372 > CREATE PROCEDURE ADD_EMP_PROJ
8373   (
8374    EMP_NO SMALLINT,
8375    PROJ_ID CHAR(5) CHARACTER SET NONE
8376   )
8377   AS
8378   BEGIN EXIT; END
8281
8379   ^
8380  
8381 < CREATE PROCEDURE ALL_LANGS
8381 > CREATE PROCEDURE ALL_LANGS
8382   RETURNS
8383   (
8384    CODE VARCHAR(5) CHARACTER SET NONE,
# Line 8291 | Line 8388 | RETURNS
8388   )
8389   AS
8390   BEGIN SUSPEND; EXIT; END
8294
8391   ^
8392  
8393 < CREATE PROCEDURE DELETE_EMPLOYEE
8393 > CREATE PROCEDURE DELETE_EMPLOYEE
8394   (
8395    EMP_NUM INTEGER
8396   )
8397   AS
8398   BEGIN EXIT; END
8303
8399   ^
8400  
8401 < CREATE PROCEDURE DEPT_BUDGET
8401 > CREATE PROCEDURE DEPT_BUDGET
8402   (
8403    DNO CHAR(3) CHARACTER SET NONE
8404   )
8405   RETURNS
8406   (
8407 <  TOT DECIMAL(12, 2)
8407 >  TOT DECIMAL(12,2)
8408   )
8409   AS
8410   BEGIN SUSPEND; EXIT; END
8411 + ^
8412  
8413 + CREATE PROCEDURE EMPLOYEE_PAY_STATUS
8414 + (
8415 +  EMP_NUM SMALLINT
8416 + )
8417 + RETURNS
8418 + (
8419 +  PAY_STATUS VARCHAR(6) CHARACTER SET NONE,
8420 +  SALARY NUMERIC(10,2)
8421 + )
8422 + AS
8423 + BEGIN EXIT; END
8424   ^
8425  
8426 < CREATE PROCEDURE GET_EMP_PROJ
8426 > CREATE PROCEDURE GET_EMP_PROJ
8427   (
8428    EMP_NO SMALLINT
8429   )
# Line 8326 | Line 8433 | RETURNS
8433   )
8434   AS
8435   BEGIN SUSPEND; EXIT; END
8329
8436   ^
8437  
8438 < CREATE PROCEDURE "Has Space"
8438 > CREATE PROCEDURE "Has Space"
8439   (
8440    ARG1 INTEGER
8441   )
8442   AS
8443   BEGIN EXIT; END
8338
8444   ^
8445  
8446 < CREATE PROCEDURE MAIL_LABEL
8446 > CREATE PROCEDURE MAIL_LABEL
8447   (
8448    CUST_NO INTEGER
8449   )
# Line 8353 | Line 8458 | RETURNS
8458   )
8459   AS
8460   BEGIN SUSPEND; EXIT; END
8356
8461   ^
8462  
8463 < CREATE PROCEDURE ORG_CHART
8463 > CREATE PROCEDURE ORG_CHART
8464   RETURNS
8465   (
8466    HEAD_DEPT CHAR(25) CHARACTER SET NONE,
# Line 8367 | Line 8471 | RETURNS
8471   )
8472   AS
8473   BEGIN SUSPEND; EXIT; END
8370
8474   ^
8475  
8476 < CREATE PROCEDURE SHIP_ORDER
8476 > CREATE PROCEDURE SHIP_ORDER
8477   (
8478    PO_NUM CHAR(8) CHARACTER SET NONE
8479   )
8480   AS
8481   BEGIN EXIT; END
8379
8482   ^
8483  
8484 < CREATE PROCEDURE SUB_TOT_BUDGET
8484 > CREATE PROCEDURE SUB_TOT_BUDGET
8485   (
8486    HEAD_DEPT CHAR(3) CHARACTER SET NONE
8487   )
8488   RETURNS
8489   (
8490 <  TOT_BUDGET DECIMAL(12, 2),
8491 <  AVG_BUDGET DECIMAL(12, 2),
8492 <  MIN_BUDGET DECIMAL(12, 2),
8493 <  MAX_BUDGET DECIMAL(12, 2)
8490 >  TOT_BUDGET DECIMAL(12,2),
8491 >  AVG_BUDGET DECIMAL(12,2),
8492 >  MIN_BUDGET DECIMAL(12,2),
8493 >  MAX_BUDGET DECIMAL(12,2)
8494   )
8495   AS
8496   BEGIN SUSPEND; EXIT; END
8395
8497   ^
8498  
8499 < CREATE PROCEDURE "UC SPACE"
8499 > CREATE PROCEDURE "UC SPACE"
8500   (
8501    ARG1 INTEGER
8502   )
8503   AS
8504   BEGIN EXIT; END
8404
8505   ^
8506  
8507 < CREATE PROCEDURE "iCASE"
8507 > CREATE PROCEDURE "iCASE"
8508   AS
8509   BEGIN EXIT; END
8410
8510   ^
8511  
8512 < SET TERM ; ^
8512 > SET TERM ;^
8513   COMMIT WORK;
8514   SET AUTODDL ON;
8515   COMMIT WORK;
8516   SET AUTODDL OFF;
8517 < SET TERM ^ ;
8517 > SET TERM ^;
8518  
8519   /* Stored Function declarations */
8520  
8521   CREATE FUNCTION F (X INTEGER)
8522   RETURNS INTEGER
8523   AS BEGIN END
8425
8524   ^
8525  
8526 <
8429 < SET TERM ; ^
8526 > SET TERM ;^
8527   COMMIT WORK;
8528   SET AUTODDL ON;
8529 < SET TERM ^ ;
8529 > SET TERM ^;
8530  
8531  
8532   /* Triggers only will work for SQL triggers */
# Line 8439 | Line 8536 | ACTIVE ON CONNECT POSITION 0
8536   as
8537   begin
8538   End
8539 < ^
8539 > ^
8540 >
8541   CREATE TRIGGER "BEFORE CREATE TABLE"
8542   ACTIVE BEFORE CREATE TABLE POSITION 0
8543   AS BEGIN END
8544 < ^
8544 > ^
8545 >
8546   CREATE TRIGGER "AFTER CREATE TABLE"
8547   ACTIVE AFTER CREATE TABLE POSITION 0
8548   AS BEGIN END
8549 < ^
8549 > ^
8550 >
8551   CREATE TRIGGER "BEFORE ALTER TABLE"
8552   ACTIVE BEFORE ALTER TABLE POSITION 0
8553   AS BEGIN END
8554 < ^
8554 > ^
8555 >
8556   CREATE TRIGGER "AFTER ALTER TABLE"
8557   ACTIVE AFTER ALTER TABLE POSITION 0
8558   AS BEGIN END
8559 < ^
8559 > ^
8560 >
8561   CREATE TRIGGER "AFTER CREATE/Alter TABLE"
8562   ACTIVE AFTER CREATE TABLE OR ALTER TABLE POSITION 0
8563   AS BEGIN END
8564 < ^
8564 > ^
8565 >
8566   CREATE TRIGGER "BEFORE DROP TABLE"
8567   ACTIVE BEFORE Drop TABLE POSITION 0
8568   AS BEGIN END
8569 < ^
8569 > ^
8570 >
8571   CREATE TRIGGER "AFTER DROP TABLE"
8572   ACTIVE AFTER Drop TABLE POSITION 0
8573   AS BEGIN END
8574 < ^
8574 > ^
8575 >
8576   CREATE TRIGGER "BEFORE CREATE PROCEDURE"
8577   ACTIVE BEFORE CREATE PROCEDURE POSITION 0
8578   AS BEGIN END
8579 < ^
8579 > ^
8580 >
8581   CREATE TRIGGER "AFTER CREATE PROCEDURE"
8582   ACTIVE AFTER CREATE PROCEDURE POSITION 0
8583   AS BEGIN END
8584 < ^
8584 > ^
8585 >
8586   CREATE TRIGGER "BEFORE ALTER PROCEDURE"
8587   ACTIVE BEFORE ALTER PROCEDURE POSITION 0
8588   AS BEGIN END
8589 < ^
8589 > ^
8590 >
8591   CREATE TRIGGER "AFTER ALTER PROCEDURE"
8592   ACTIVE AFTER ALTER PROCEDURE POSITION 0
8593   AS BEGIN END
8594 < ^
8594 > ^
8595 >
8596   CREATE TRIGGER "BEFORE DROP PROCEDURE"
8597   ACTIVE BEFORE Drop PROCEDURE POSITION 0
8598   AS BEGIN END
8599 < ^
8599 > ^
8600 >
8601   CREATE TRIGGER "AFTER DROP PROCEDURE"
8602   ACTIVE AFTER Drop PROCEDURE POSITION 0
8603   AS BEGIN END
8604 < ^
8604 > ^
8605 >
8606   CREATE TRIGGER "BEFORE CREATE FUNCTION"
8607   ACTIVE BEFORE CREATE FUNCTION POSITION 0
8608   AS BEGIN END
8609 < ^
8609 > ^
8610 >
8611   CREATE TRIGGER "AFTER CREATE FUNCTION"
8612   ACTIVE AFTER CREATE FUNCTION POSITION 0
8613   AS BEGIN END
8614 < ^
8614 > ^
8615 >
8616   CREATE TRIGGER "BEFORE ALTER FUNCTION"
8617   ACTIVE BEFORE ALTER FUNCTION POSITION 0
8618   AS BEGIN END
8619 < ^
8619 > ^
8620 >
8621   CREATE TRIGGER "AFTER ALTER FUNCTION"
8622   ACTIVE AFTER ALTER FUNCTION POSITION 0
8623   AS BEGIN END
8624 < ^
8624 > ^
8625 >
8626   CREATE TRIGGER "BEFORE DROP FUNCTION"
8627   ACTIVE BEFORE Drop FUNCTION POSITION 0
8628   AS BEGIN END
8629 < ^
8629 > ^
8630 >
8631   CREATE TRIGGER "AFTER DROP FUNCTION"
8632   ACTIVE AFTER Drop FUNCTION POSITION 0
8633   AS BEGIN END
8634 < ^
8634 > ^
8635 >
8636   CREATE TRIGGER "BEFORE CREATE TRIGGER"
8637   ACTIVE BEFORE CREATE TRIGGER POSITION 0
8638   AS BEGIN END
8639 < ^
8639 > ^
8640 >
8641   CREATE TRIGGER "AFTER CREATE TRIGGER"
8642   ACTIVE AFTER CREATE TRIGGER POSITION 0
8643   AS BEGIN END
8644 < ^
8644 > ^
8645 >
8646   CREATE TRIGGER "BEFORE ALTER TRIGGER"
8647   ACTIVE BEFORE ALTER TRIGGER POSITION 0
8648   AS BEGIN END
8649 < ^
8649 > ^
8650 >
8651   CREATE TRIGGER "AFTER ALTER TRIGGER"
8652   ACTIVE AFTER ALTER TRIGGER POSITION 0
8653   AS BEGIN END
8654 < ^
8654 > ^
8655 >
8656   CREATE TRIGGER "BEFORE DROP TRIGGER"
8657   ACTIVE BEFORE Drop TRIGGER POSITION 0
8658   AS BEGIN END
8659 < ^
8659 > ^
8660 >
8661   CREATE TRIGGER "AFTER DROP TRIGGER"
8662   ACTIVE AFTER Drop TRIGGER POSITION 0
8663   AS BEGIN END
8664 < ^
8664 > ^
8665 >
8666   CREATE TRIGGER "BEFORE CREATE EXCEPTION"
8667   ACTIVE BEFORE CREATE EXCEPTION POSITION 0
8668   AS BEGIN END
8669 < ^
8669 > ^
8670 >
8671   CREATE TRIGGER "AFTER CREATE EXCEPTION"
8672   ACTIVE AFTER CREATE EXCEPTION POSITION 0
8673   AS BEGIN END
8674 < ^
8674 > ^
8675 >
8676   CREATE TRIGGER "BEFORE ALTER EXCEPTION"
8677   ACTIVE BEFORE ALTER EXCEPTION POSITION 0
8678   AS BEGIN END
8679 < ^
8679 > ^
8680 >
8681   CREATE TRIGGER "AFTER ALTER EXCEPTION"
8682   ACTIVE AFTER ALTER EXCEPTION POSITION 0
8683   AS BEGIN END
8684 < ^
8684 > ^
8685 >
8686   CREATE TRIGGER "BEFORE DROP EXCEPTION"
8687   ACTIVE BEFORE Drop EXCEPTION POSITION 0
8688   AS BEGIN END
8689 < ^
8689 > ^
8690 >
8691   CREATE TRIGGER "AFTER DROP EXCEPTION"
8692   ACTIVE AFTER Drop EXCEPTION POSITION 0
8693   AS BEGIN END
8694 < ^
8694 > ^
8695 >
8696   CREATE TRIGGER "BEFORE CREATE VIEW"
8697   ACTIVE BEFORE CREATE VIEW POSITION 0
8698   AS BEGIN END
8699 < ^
8699 > ^
8700 >
8701   CREATE TRIGGER "AFTER CREATE VIEW"
8702   ACTIVE AFTER CREATE VIEW POSITION 0
8703   AS BEGIN END
8704 < ^
8704 > ^
8705 >
8706   CREATE TRIGGER "BEFORE ALTER VIEW"
8707   ACTIVE BEFORE ALTER VIEW POSITION 0
8708   AS BEGIN END
8709 < ^
8709 > ^
8710 >
8711   CREATE TRIGGER "AFTER ALTER VIEW"
8712   ACTIVE AFTER ALTER VIEW POSITION 0
8713   AS BEGIN END
8714 < ^
8714 > ^
8715 >
8716   CREATE TRIGGER "BEFORE DROP VIEW"
8717   ACTIVE BEFORE Drop VIEW POSITION 0
8718   AS BEGIN END
8719 < ^
8719 > ^
8720 >
8721   CREATE TRIGGER "AFTER DROP VIEW"
8722   ACTIVE AFTER Drop VIEW POSITION 0
8723   AS BEGIN END
8724 < ^
8724 > ^
8725 >
8726   CREATE TRIGGER "BEFORE CREATE DOMAIN"
8727   ACTIVE BEFORE CREATE DOMAIN POSITION 0
8728   AS BEGIN END
8729 < ^
8729 > ^
8730 >
8731   CREATE TRIGGER "AFTER CREATE DOMAIN"
8732   ACTIVE AFTER CREATE DOMAIN POSITION 0
8733   AS BEGIN END
8734 < ^
8734 > ^
8735 >
8736   CREATE TRIGGER "BEFORE ALTER DOMAIN"
8737   ACTIVE BEFORE ALTER DOMAIN POSITION 0
8738   AS BEGIN END
8739 < ^
8739 > ^
8740 >
8741   CREATE TRIGGER "AFTER ALTER DOMAIN"
8742   ACTIVE AFTER ALTER DOMAIN POSITION 0
8743   AS BEGIN END
8744 < ^
8744 > ^
8745 >
8746   CREATE TRIGGER "BEFORE DROP DOMAIN"
8747   ACTIVE BEFORE Drop DOMAIN POSITION 0
8748   AS BEGIN END
8749 < ^
8749 > ^
8750 >
8751   CREATE TRIGGER "AFTER DROP DOMAIN"
8752   ACTIVE AFTER Drop DOMAIN POSITION 0
8753   AS BEGIN END
8754 < ^
8754 > ^
8755 >
8756   CREATE TRIGGER "BEFORE CREATE ROLE"
8757   ACTIVE BEFORE CREATE ROLE POSITION 0
8758   AS BEGIN END
8759 < ^
8759 > ^
8760 >
8761   CREATE TRIGGER "AFTER CREATE ROLE"
8762   ACTIVE AFTER CREATE ROLE POSITION 0
8763   AS BEGIN END
8764 < ^
8764 > ^
8765 >
8766   CREATE TRIGGER "BEFORE ALTER ROLE"
8767   ACTIVE BEFORE ALTER ROLE POSITION 0
8768   AS BEGIN END
8769 < ^
8769 > ^
8770 >
8771   CREATE TRIGGER "AFTER ALTER ROLE"
8772   ACTIVE AFTER ALTER ROLE POSITION 0
8773   AS BEGIN END
8774 < ^
8774 > ^
8775 >
8776   CREATE TRIGGER "BEFORE DROP ROLE"
8777   ACTIVE BEFORE Drop ROLE POSITION 0
8778   AS BEGIN END
8779 < ^
8779 > ^
8780 >
8781   CREATE TRIGGER "AFTER DROP ROLE"
8782   ACTIVE AFTER Drop ROLE POSITION 0
8783   AS BEGIN END
8784 < ^
8784 > ^
8785 >
8786   CREATE TRIGGER "BEFORE CREATE INDEX"
8787   ACTIVE BEFORE CREATE INDEX POSITION 0
8788   AS BEGIN END
8789 < ^
8789 > ^
8790 >
8791   CREATE TRIGGER "AFTER CREATE INDEX"
8792   ACTIVE AFTER CREATE INDEX POSITION 0
8793   AS BEGIN END
8794 < ^
8794 > ^
8795 >
8796   CREATE TRIGGER "BEFORE ALTER INDEX"
8797   ACTIVE BEFORE ALTER INDEX POSITION 0
8798   AS BEGIN END
8799 < ^
8799 > ^
8800 >
8801   CREATE TRIGGER "AFTER ALTER INDEX"
8802   ACTIVE AFTER ALTER INDEX POSITION 0
8803   AS BEGIN END
8804 < ^
8804 > ^
8805 >
8806   CREATE TRIGGER "BEFORE DROP INDEX"
8807   ACTIVE BEFORE Drop INDEX POSITION 0
8808   AS BEGIN END
8809 < ^
8809 > ^
8810 >
8811   CREATE TRIGGER "AFTER DROP INDEX"
8812   ACTIVE AFTER Drop INDEX POSITION 0
8813   AS BEGIN END
8814 < ^
8814 > ^
8815 >
8816   CREATE TRIGGER "BEFORE CREATE SEQUENCE"
8817   ACTIVE BEFORE CREATE SEQUENCE POSITION 0
8818   AS BEGIN END
8819 < ^
8819 > ^
8820 >
8821   CREATE TRIGGER "AFTER CREATE SEQUENCE"
8822   ACTIVE AFTER CREATE SEQUENCE POSITION 0
8823   AS BEGIN END
8824 < ^
8824 > ^
8825 >
8826   CREATE TRIGGER "BEFORE ALTER SEQUENCE"
8827   ACTIVE BEFORE ALTER SEQUENCE POSITION 0
8828   AS BEGIN END
8829 < ^
8829 > ^
8830 >
8831   CREATE TRIGGER "AFTER ALTER SEQUENCE"
8832   ACTIVE AFTER ALTER SEQUENCE POSITION 0
8833   AS BEGIN END
8834 < ^
8834 > ^
8835 >
8836   CREATE TRIGGER "BEFORE DROP SEQUENCE"
8837   ACTIVE BEFORE Drop SEQUENCE POSITION 0
8838   AS BEGIN END
8839 < ^
8839 > ^
8840 >
8841   CREATE TRIGGER "AFTER DROP SEQUENCE"
8842   ACTIVE AFTER Drop SEQUENCE POSITION 0
8843   AS BEGIN END
8844 < ^
8844 > ^
8845 >
8846   CREATE TRIGGER "BEFORE CREATE USER"
8847   ACTIVE BEFORE CREATE USER POSITION 0
8848   AS BEGIN END
8849 < ^
8849 > ^
8850 >
8851   CREATE TRIGGER "AFTER CREATE USER"
8852   ACTIVE AFTER CREATE USER POSITION 0
8853   AS BEGIN END
8854 < ^
8854 > ^
8855 >
8856   CREATE TRIGGER "BEFORE ALTER USER"
8857   ACTIVE BEFORE ALTER USER POSITION 0
8858   AS BEGIN END
8859 < ^
8859 > ^
8860 >
8861   CREATE TRIGGER "AFTER ALTER USER"
8862   ACTIVE AFTER ALTER USER POSITION 0
8863   AS BEGIN END
8864 < ^
8864 > ^
8865 >
8866   CREATE TRIGGER "BEFORE DROP USER"
8867   ACTIVE BEFORE Drop USER POSITION 0
8868   AS BEGIN END
8869 < ^
8869 > ^
8870 >
8871   CREATE TRIGGER "AFTER DROP USER"
8872   ACTIVE AFTER Drop USER POSITION 0
8873   AS BEGIN END
8874 < ^
8874 > ^
8875 >
8876   CREATE TRIGGER "BEFORE CREATE COLLATION"
8877   ACTIVE BEFORE CREATE COLLATION POSITION 0
8878   AS BEGIN END
8879 < ^
8879 > ^
8880 >
8881   CREATE TRIGGER "AFTER CREATE COLLATION"
8882   ACTIVE AFTER CREATE COLLATION POSITION 0
8883   AS BEGIN END
8884 < ^
8884 > ^
8885 >
8886   CREATE TRIGGER "BEFORE DROP COLLATION"
8887   ACTIVE BEFORE Drop COLLATION POSITION 0
8888   AS BEGIN END
8889 < ^
8889 > ^
8890 >
8891   CREATE TRIGGER "AFTER DROP COLLATION"
8892   ACTIVE AFTER Drop COLLATION POSITION 0
8893   AS BEGIN END
8894 < ^
8894 > ^
8895 >
8896   CREATE TRIGGER "BEFORE ALTER CHARACTER SET"
8897   ACTIVE BEFORE ALTER CHARACTER SET POSITION 0
8898   AS BEGIN END
8899 < ^
8899 > ^
8900 >
8901   CREATE TRIGGER "AFTER ALTER CHARACTER SET"
8902   ACTIVE AFTER ALTER CHARACTER SET POSITION 0
8903   AS BEGIN END
8904 < ^
8904 > ^
8905 >
8906   CREATE TRIGGER "BEFORE CREATE PACKAGE"
8907   ACTIVE BEFORE CREATE PACKAGE POSITION 0
8908   AS BEGIN END
8909 < ^
8909 > ^
8910 >
8911   CREATE TRIGGER "AFTER CREATE PACKAGE"
8912   ACTIVE AFTER CREATE PACKAGE POSITION 0
8913   AS BEGIN END
8914 < ^
8914 > ^
8915 >
8916   CREATE TRIGGER "BEFORE ALTER PACKAGE"
8917   ACTIVE BEFORE ALTER PACKAGE POSITION 0
8918   AS BEGIN END
8919 < ^
8919 > ^
8920 >
8921   CREATE TRIGGER "AFTER ALTER PACKAGE"
8922   ACTIVE AFTER ALTER PACKAGE POSITION 0
8923   AS BEGIN END
8924 < ^
8924 > ^
8925 >
8926   CREATE TRIGGER "BEFORE DROP PACKAGE"
8927   ACTIVE BEFORE Drop PACKAGE POSITION 0
8928   AS BEGIN END
8929 < ^
8929 > ^
8930 >
8931   CREATE TRIGGER "AFTER DROP PACKAGE"
8932   ACTIVE AFTER Drop PACKAGE POSITION 0
8933   AS BEGIN END
8934 < ^
8934 > ^
8935 >
8936   CREATE TRIGGER "BEFORE CREATE PACKAGE BODY"
8937   ACTIVE BEFORE CREATE PACKAGE BODY POSITION 0
8938   AS BEGIN END
8939 < ^
8939 > ^
8940 >
8941   CREATE TRIGGER "AFTER CREATE PACKAGE BODY"
8942   ACTIVE AFTER CREATE PACKAGE BODY POSITION 0
8943   AS BEGIN END
8944 < ^
8944 > ^
8945 >
8946   CREATE TRIGGER "BEFORE DROP PACKAGE BODY"
8947   ACTIVE BEFORE Drop PACKAGE BODY POSITION 0
8948   AS BEGIN END
8949 < ^
8949 > ^
8950 >
8951   CREATE TRIGGER "AFTER DROP PACKAGE BODY"
8952   ACTIVE AFTER Drop PACKAGE BODY POSITION 0
8953   AS BEGIN END
8954 < ^
8954 > ^
8955 >
8956   CREATE TRIGGER "BEFORE ANY DDL STATEMENT"
8957   ACTIVE BEFORE ANY DDL STATEMENT POSITION 0
8958   AS BEGIN END
8959 < ^
8959 > ^
8960 >
8961   CREATE TRIGGER "AFTER ANY DDL STATEMENT"
8962   ACTIVE AFTER ANY DDL STATEMENT POSITION 0
8963   AS BEGIN END
8964 < ^
8964 > ^
8965 >
8966   CREATE TRIGGER SET_CUST_NO FOR CUSTOMER
8967   ACTIVE BEFORE INSERT POSITION 0
8968   AS
# Line 8787 | Line 8970 | BEGIN
8970      if (new.cust_no is null) then
8971      new.cust_no = gen_id(cust_no_gen, 1);
8972   END
8973 < ^
8973 > ^
8974 >
8975   CREATE TRIGGER SET_EMP_NO FOR EMPLOYEE
8976   ACTIVE BEFORE INSERT POSITION 0
8977   AS
# Line 8795 | Line 8979 | BEGIN
8979      if (new.emp_no is null) then
8980      new.emp_no = gen_id(emp_no_gen, 1);
8981   END
8982 < ^
8982 > ^
8983 >
8984   CREATE TRIGGER SAVE_SALARY_CHANGE FOR EMPLOYEE
8985   ACTIVE AFTER UPDATE POSITION 0
8986   AS
# Line 8810 | Line 8995 | BEGIN
8995              old.salary,
8996              (new.salary - old.salary) * 100 / old.salary);
8997   END
8998 < ^
8998 > ^
8999 >
9000   CREATE TRIGGER POST_NEW_ORDER FOR SALES
9001   ACTIVE AFTER INSERT POSITION 0
9002   AS
9003   BEGIN
9004      POST_EVENT 'new_order';
9005   END
9006 < ^
9007 < COMMIT WORK ^
9006 > ^
9007 >
9008 > COMMIT WORK^
9009   SET TERM ;^
9010   COMMIT WORK;
9011   SET AUTODDL OFF;
9012 < SET TERM ^ ;
9012 > SET TERM ^;
9013  
9014   /* Package Definitions */
9015  
9016 < CREATE PACKAGE BODY FB$OUT                                                        
9016 > CREATE PACKAGE BODY FB$OUT
9017   AS
8831
9018   begin
9019          procedure enable
9020          as
# Line 8883 | Line 9069 | begin
9069                  execute procedure clear;
9070          end
9071   end
9072 < ^
9072 > ^
9073  
9074 < CREATE PACKAGE BODY SELECT$TEST                                                    
9074 > CREATE PACKAGE BODY SELECT$TEST
9075   AS
8890
9076   Begin
9077    Procedure ShowItems(IPARAM Integer) RETURNS (OutParam integer)
9078    As
# Line 8895 | Line 9080 | Begin
9080      SUSPEND;
9081    End
9082   End
9083 < ^
9083 > ^
9084  
9085 < SET TERM ; ^
9085 > SET TERM ;^
9086   COMMIT WORK;
9087   SET AUTODDL ON;
9088   COMMIT WORK;
9089   SET AUTODDL OFF;
9090 < SET TERM ^ ;
9090 > SET TERM ^;
9091  
9092   /* Stored procedure Bodies */
9093  
9094 <
8910 < ALTER PROCEDURE SHOW_LANGS
9094 > ALTER PROCEDURE SHOW_LANGS
9095   (
9096    CODE VARCHAR(5) CHARACTER SET NONE,
9097    GRADE SMALLINT,
# Line 8928 | Line 9112 | BEGIN
9112             AND (language_req IS NOT NULL))
9113      INTO :languages;
9114      IF (languages = ' ') THEN  /* Prints 'NULL' instead of blanks */
9115 <       languages = 'NULL';        
9115 >       languages = 'NULL';
9116      i = i +1;
9117      SUSPEND;
9118    END
9119   END
9120 < ^
8937 <
9120 > ^
9121  
9122 < ALTER PROCEDURE ADD_EMP_PROJ
9122 > ALTER PROCEDURE ADD_EMP_PROJ
9123   (
9124    EMP_NO SMALLINT,
9125    PROJ_ID CHAR(5) CHARACTER SET NONE
# Line 8949 | Line 9132 | BEGIN
9132                  EXCEPTION unknown_emp_id;
9133          END
9134   END
9135 < ^
8953 <
9135 > ^
9136  
9137 < ALTER PROCEDURE ALL_LANGS
9137 > ALTER PROCEDURE ALL_LANGS
9138   RETURNS
9139   (
9140    CODE VARCHAR(5) CHARACTER SET NONE,
# Line 8962 | Line 9144 | RETURNS
9144   )
9145   AS
9146   BEGIN
9147 <        FOR SELECT job_code, job_grade, job_country FROM job
9147 >        FOR SELECT job_code, job_grade, job_country FROM job
9148                  INTO :code, :grade, :country
9149  
9150          DO
9151          BEGIN
9152 <            FOR SELECT languages FROM show_langs
9152 >            FOR SELECT languages FROM show_langs
9153                      (:code, :grade, :country) INTO :lang DO
9154                  SUSPEND;
9155              /* Put nice separators between rows */
# Line 8978 | Line 9160 | BEGIN
9160              SUSPEND;
9161          END
9162      END
9163 < ^
8982 <
9163 > ^
9164  
9165 < ALTER PROCEDURE DELETE_EMPLOYEE
9165 > ALTER PROCEDURE DELETE_EMPLOYEE
9166   (
9167    EMP_NUM INTEGER
9168   )
# Line 8992 | Line 9173 | BEGIN
9173  
9174          /*
9175           *      If there are any sales records referencing this employee,
9176 <         *      can't delete the employee until the sales are re-assigned
9176 >         *      cannot delete the employee until the sales are re-assigned
9177           *      to another employee or changed to NULL.
9178           */
9179          SELECT count(po_number)
# Line 9038 | Line 9219 | BEGIN
9219          WHERE emp_no = :emp_num;
9220  
9221   END
9222 < ^
9042 <
9222 > ^
9223  
9224 < ALTER PROCEDURE DEPT_BUDGET
9224 > ALTER PROCEDURE DEPT_BUDGET
9225   (
9226    DNO CHAR(3) CHARACTER SET NONE
9227   )
9228   RETURNS
9229   (
9230 <  TOT DECIMAL(12, 2)
9230 >  TOT DECIMAL(12,2)
9231   )
9232   AS
9233 < DECLARE VARIABLE sumb DECIMAL(12, 2);
9233 > DECLARE VARIABLE sumb DECIMAL(12,2);
9234          DECLARE VARIABLE rdno CHAR(3);
9235          DECLARE VARIABLE cnt INTEGER;
9236   BEGIN
# Line 9075 | Line 9255 | BEGIN
9255  
9256          SUSPEND;
9257   END
9258 < ^
9258 > ^
9259  
9260 + ALTER PROCEDURE EMPLOYEE_PAY_STATUS
9261 + (
9262 +  EMP_NUM SMALLINT
9263 + )
9264 + RETURNS
9265 + (
9266 +  PAY_STATUS VARCHAR(6) CHARACTER SET NONE,
9267 +  SALARY NUMERIC(10,2)
9268 + )
9269 + AS
9270 + Declare aCursor CURSOR FOR (
9271 +    Select EMP_NO,SALARY From EMPLOYEE WHERE LAST_NAME = 'unknown');
9272 + BEGIN
9273 +  Select SALARY, Case
9274 +   When SALARY > 10000 and SALARY <= 100000 then 'higher'
9275 +   When SALARY > 100000 then 'gross'
9276 +   else 'lower' End
9277 +  From employee
9278 +    WHERE emp_no = :EMP_NUM
9279 +   into :SALARY, :PAY_STATUS;
9280 + END
9281 + ^
9282  
9283 < ALTER PROCEDURE GET_EMP_PROJ
9283 > ALTER PROCEDURE GET_EMP_PROJ
9284   (
9285    EMP_NO SMALLINT
9286   )
# Line 9095 | Line 9297 | BEGIN
9297          DO
9298                  SUSPEND;
9299   END
9300 < ^
9099 <
9300 > ^
9301  
9302 < ALTER PROCEDURE "Has Space"
9302 > ALTER PROCEDURE "Has Space"
9303   (
9304    ARG1 INTEGER
9305   )
9306   AS
9307   Begin End
9308 < ^
9108 <
9308 > ^
9309  
9310 < ALTER PROCEDURE MAIL_LABEL
9310 > ALTER PROCEDURE MAIL_LABEL
9311   (
9312    CUST_NO INTEGER
9313   )
# Line 9175 | Line 9375 | BEGIN
9375  
9376          SUSPEND;
9377   END
9378 < ^
9179 <
9378 > ^
9379  
9380 < ALTER PROCEDURE ORG_CHART
9380 > ALTER PROCEDURE ORG_CHART
9381   RETURNS
9382   (
9383    HEAD_DEPT CHAR(25) CHARACTER SET NONE,
# Line 9218 | Line 9417 | BEGIN
9417                  SUSPEND;
9418          END
9419   END
9420 < ^
9222 <
9420 > ^
9421  
9422 < ALTER PROCEDURE SHIP_ORDER
9422 > ALTER PROCEDURE SHIP_ORDER
9423   (
9424    PO_NUM CHAR(8) CHARACTER SET NONE
9425   )
# Line 9278 | Line 9476 | BEGIN
9476          WHERE po_number = :po_num;
9477  
9478   END
9479 < ^
9282 <
9479 > ^
9480  
9481 < ALTER PROCEDURE SUB_TOT_BUDGET
9481 > ALTER PROCEDURE SUB_TOT_BUDGET
9482   (
9483    HEAD_DEPT CHAR(3) CHARACTER SET NONE
9484   )
9485   RETURNS
9486   (
9487 <  TOT_BUDGET DECIMAL(12, 2),
9488 <  AVG_BUDGET DECIMAL(12, 2),
9489 <  MIN_BUDGET DECIMAL(12, 2),
9490 <  MAX_BUDGET DECIMAL(12, 2)
9487 >  TOT_BUDGET DECIMAL(12,2),
9488 >  AVG_BUDGET DECIMAL(12,2),
9489 >  MIN_BUDGET DECIMAL(12,2),
9490 >  MAX_BUDGET DECIMAL(12,2)
9491   )
9492   AS
9493   BEGIN
# Line 9300 | Line 9497 | BEGIN
9497                  INTO :tot_budget, :avg_budget, :min_budget, :max_budget;
9498          SUSPEND;
9499   END
9500 < ^
9304 <
9500 > ^
9501  
9502 < ALTER PROCEDURE "UC SPACE"
9502 > ALTER PROCEDURE "UC SPACE"
9503   (
9504    ARG1 INTEGER
9505   )
9506   AS
9507   Begin End
9508 < ^
9313 <
9508 > ^
9509  
9510 < ALTER PROCEDURE "iCASE"
9510 > ALTER PROCEDURE "iCASE"
9511   AS
9512   Begin End
9513 < ^
9513 > ^
9514  
9515 < SET TERM ; ^
9515 > SET TERM ;^
9516   COMMIT WORK;
9517   SET AUTODDL ON;
9518   COMMIT WORK;
9519   SET AUTODDL OFF;
9520 < SET TERM ^ ;
9520 > SET TERM ^;
9521  
9522   /* Stored Function Body */
9523  
9524   ALTER FUNCTION F (X INTEGER)
9525   RETURNS INTEGER
9526 < AS
9526 > AS
9527   BEGIN
9528   RETURN X+1;
9529   END
9530   ^
9531  
9532 <
9338 < SET TERM ; ^
9532 > SET TERM ;^
9533   COMMIT WORK;
9534   SET AUTODDL ON;
9535  
# Line 9409 | Line 9603 | COMMENT ON DATABASE  IS 'Employee Test D
9603   /* Domain definitions */
9604  
9605   CREATE DOMAIN ADDRESSLINE AS VARCHAR(30);
9606 < CREATE DOMAIN BUDGET AS DECIMAL(12, 2)
9606 > CREATE DOMAIN BUDGET AS DECIMAL(12,2)
9607           DEFAULT 50000;
9608   CREATE DOMAIN COUNTRYNAME AS VARCHAR(15);
9609   CREATE DOMAIN CUSTNO AS INTEGER;
# Line 9425 | Line 9619 | CREATE DOMAIN PONUMBER AS CHAR(8);
9619   CREATE DOMAIN PRODTYPE AS VARCHAR(12)
9620           DEFAULT 'software' NOT NULL;
9621   CREATE DOMAIN PROJNO AS CHAR(5);
9622 < CREATE DOMAIN SALARY AS NUMERIC(10, 2)
9622 > CREATE DOMAIN SALARY AS NUMERIC(10,2)
9623           DEFAULT 0;
9624  
9625   /* Table: COUNTRIES, Owner: SYSDBA */
9626  
9627 < CREATE TABLE COUNTRIES
9627 > CREATE TABLE COUNTRIES
9628   (
9629          COUNTRY VARCHAR(64) NOT NULL,
9630          NONEU   SMALLINT,
# Line 9443 | Line 9637 | COMMENT ON COLUMN COUNTRIES.ISO2 IS 'Two
9637  
9638   /* Table: COUNTRY, Owner: SYSDBA */
9639  
9640 < CREATE TABLE COUNTRY
9640 > CREATE TABLE COUNTRY
9641   (
9642          COUNTRY COUNTRYNAME NOT NULL,
9643          CURRENCY        VARCHAR(10) NOT NULL,
# Line 9452 | Line 9646 | PRIMARY KEY (COUNTRY)
9646  
9647   /* Table: CUSTOMER, Owner: SYSDBA */
9648  
9649 < CREATE TABLE CUSTOMER
9649 > CREATE TABLE CUSTOMER
9650   (
9651          CUST_NO CUSTNO NOT NULL,
9652          CUSTOMER        VARCHAR(25) NOT NULL,
# Line 9472 | Line 9666 | PRIMARY KEY (CUST_NO)
9666  
9667   /* Table: DEPARTMENT, Owner: SYSDBA */
9668  
9669 < CREATE TABLE DEPARTMENT
9669 > CREATE TABLE DEPARTMENT
9670   (
9671          DEPT_NO DEPTNO NOT NULL,
9672          DEPARTMENT      VARCHAR(25) NOT NULL,
# Line 9487 | Line 9681 | PRIMARY KEY (DEPT_NO)
9681  
9682   /* Table: EMPLOYEE, Owner: SYSDBA */
9683  
9684 < CREATE TABLE EMPLOYEE
9684 > CREATE TABLE EMPLOYEE
9685   (
9686          EMP_NO  EMPNO NOT NULL,
9687          FIRST_NAME      FIRSTNAME NOT NULL,
# Line 9505 | Line 9699 | PRIMARY KEY (EMP_NO)
9699  
9700   /* Table: EMPLOYEE_PROJECT, Owner: SYSDBA */
9701  
9702 < CREATE TABLE EMPLOYEE_PROJECT
9702 > CREATE TABLE EMPLOYEE_PROJECT
9703   (
9704          EMP_NO  EMPNO NOT NULL,
9705          PROJ_ID PROJNO NOT NULL,
# Line 9514 | Line 9708 | PRIMARY KEY (EMP_NO, PROJ_ID)
9708  
9709   /* Table: FB$OUT_TABLE, Owner: SYSDBA */
9710  
9711 < CREATE GLOBAL TEMPORARY TABLE FB$OUT_TABLE
9711 > CREATE GLOBAL TEMPORARY TABLE FB$OUT_TABLE
9712   (
9713          LINE_NUM        INTEGER,
9714          CONTENT FB$OUT_TYPE
# Line 9522 | Line 9716 | CREATE GLOBAL TEMPORARY TABLE FB$OUT_TAB
9716  
9717   /* Table: ITEST, Owner: SYSDBA */
9718  
9719 < CREATE TABLE ITEST
9719 > CREATE TABLE ITEST
9720   (
9721          "KEY"   INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 0 INCREMENT BY 1) NOT NULL,
9722          SOMETEXT        VARCHAR(64),
# Line 9531 | Line 9725 | PRIMARY KEY ("KEY")
9725  
9726   /* Table: ITEST2, Owner: SYSDBA */
9727  
9728 < CREATE TABLE ITEST2
9728 > CREATE TABLE ITEST2
9729   (
9730          "KEY"   INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 0 INCREMENT BY 1) NOT NULL,
9731          SOMETEXT        VARCHAR(64),
# Line 9540 | Line 9734 | PRIMARY KEY ("KEY")
9734  
9735   /* Table: JOB, Owner: SYSDBA */
9736  
9737 < CREATE TABLE JOB
9737 > CREATE TABLE JOB
9738   (
9739          JOB_CODE        JOBCODE NOT NULL,
9740          JOB_GRADE       JOBGRADE NOT NULL,
# Line 9555 | Line 9749 | PRIMARY KEY (JOB_CODE, JOB_GRADE, JOB_CO
9749  
9750   /* Table: PROJECT, Owner: SYSDBA */
9751  
9752 < CREATE TABLE PROJECT
9752 > CREATE TABLE PROJECT
9753   (
9754          PROJ_ID PROJNO NOT NULL,
9755          PROJ_NAME       VARCHAR(20) NOT NULL,
# Line 9568 | Line 9762 | PRIMARY KEY (PROJ_ID)
9762  
9763   /* Table: PROJ_DEPT_BUDGET, Owner: SYSDBA */
9764  
9765 < CREATE TABLE PROJ_DEPT_BUDGET
9765 > CREATE TABLE PROJ_DEPT_BUDGET
9766   (
9767          FISCAL_YEAR     INTEGER NOT NULL,
9768          PROJ_ID PROJNO NOT NULL,
# Line 9580 | Line 9774 | PRIMARY KEY (FISCAL_YEAR, PROJ_ID, DEPT_
9774  
9775   /* Table: SALARY_HISTORY, Owner: SYSDBA */
9776  
9777 < CREATE TABLE SALARY_HISTORY
9777 > CREATE TABLE SALARY_HISTORY
9778   (
9779          EMP_NO  EMPNO NOT NULL,
9780          CHANGE_DATE     TIMESTAMP DEFAULT 'NOW' NOT NULL,
# Line 9593 | Line 9787 | PRIMARY KEY (EMP_NO, CHANGE_DATE, UPDATE
9787  
9788   /* Table: SALES, Owner: SYSDBA */
9789  
9790 < CREATE TABLE SALES
9790 > CREATE TABLE SALES
9791   (
9792          PO_NUMBER       PONUMBER NOT NULL,
9793          CUST_NO CUSTNO NOT NULL,
# Line 9604 | Line 9798 | CREATE TABLE SALES
9798          DATE_NEEDED     TIMESTAMP,
9799          PAID    CHAR(1) DEFAULT 'n',
9800          QTY_ORDERED     INTEGER DEFAULT 1 NOT NULL,
9801 <        TOTAL_VALUE     DECIMAL(9, 2) NOT NULL,
9801 >        TOTAL_VALUE     DECIMAL(9,2) NOT NULL,
9802          DISCOUNT        FLOAT DEFAULT 0 NOT NULL,
9803          ITEM_TYPE       PRODTYPE,
9804          AGED COMPUTED BY (ship_date - order_date),
# Line 9617 | Line 9811 | DECLARE EXTERNAL FUNCTION ADDDAY
9811   TIMESTAMP, INTEGER
9812   RETURNS TIMESTAMP
9813   ENTRY_POINT 'addDay' MODULE_NAME 'fbudf'
9620
9814   ;
9815  
9816  
9817   DECLARE EXTERNAL FUNCTION I64TRUNCATE
9818 < NUMERIC(18, 0) BY DESCRIPTOR, NUMERIC(18, 0) BY DESCRIPTOR
9818 > NUMERIC(18,0) BY DESCRIPTOR, NUMERIC(18,0) BY DESCRIPTOR
9819   RETURNS PARAMETER 2
9820   ENTRY_POINT 'fbtruncate' MODULE_NAME 'fbudf'
9628
9821   ;
9822  
9823  
# Line 9633 | Line 9825 | DECLARE EXTERNAL FUNCTION TESTIT
9825   TIMESTAMP, INTEGER NULL, CSTRING(10) CHARACTER SET NONE, CSTRING(10) CHARACTER SET NONE BY DESCRIPTOR
9826   RETURNS CSTRING(32) CHARACTER SET NONE FREE_IT
9827   ENTRY_POINT 'testit' MODULE_NAME 'fbudf'
9636
9828   ;
9829  
9830  
# Line 10366 | Line 10557 | ALTER TABLE SALES ADD FOREIGN KEY (CUST_
10557   ALTER TABLE SALES ADD FOREIGN KEY (SALES_REP) REFERENCES EMPLOYEE (EMP_NO);
10558  
10559   CREATE SEQUENCE CUST_NO_GEN;
10560 < ALTER SEQUENCE CUST_NO_GEN RESTART WITH 1015;
10560 > ALTER SEQUENCE CUST_NO_GEN RESTART WITH 1016;
10561   CREATE SEQUENCE EMP_NO_GEN;
10562 < ALTER SEQUENCE EMP_NO_GEN RESTART WITH 157;
10562 > ALTER SEQUENCE EMP_NO_GEN RESTART WITH 158;
10563   CREATE SEQUENCE FB$OUT_SEQ;
10564 < ALTER SEQUENCE FB$OUT_SEQ RESTART WITH 0;
10564 > ALTER SEQUENCE FB$OUT_SEQ RESTART WITH 1;
10565  
10566   /* View: DEPTLIST, Owner: SYSDBA */
10567  
10568   CREATE VIEW DEPTLIST (
10569 <  EMP_NO,
10570 <  FIRST_NAME,
10571 <  LAST_NAME,
10572 <  PHONE_EXT,
10573 <  HIRE_DATE,
10574 <  DEPT_NO,
10575 <  JOB_CODE,
10576 <  JOB_GRADE,
10577 <  JOB_COUNTRY,
10578 <  SALARY,
10579 <  FULL_NAME,
10580 <  DEPT_PATH,
10581 <  DEPT_KEY_PATH
10569 >  EMP_NO,
10570 >  FIRST_NAME,
10571 >  LAST_NAME,
10572 >  PHONE_EXT,
10573 >  HIRE_DATE,
10574 >  DEPT_NO,
10575 >  JOB_CODE,
10576 >  JOB_GRADE,
10577 >  JOB_COUNTRY,
10578 >  SALARY,
10579 >  FULL_NAME,
10580 >  DEPT_PATH,
10581 >  DEPT_KEY_PATH,
10582 >  "Payment Status"
10583   ) AS
10584   with recursive Depts As (
10585   Select DEPT_NO, DEPARTMENT, HEAD_DEPT, cast(DEPARTMENT  as VarChar(256)) as DEPT_PATH,
# Line 10401 | Line 10593 | JOIN Depts On D.HEAD_DEPT = Depts.DEPT_N
10593   )
10594  
10595   Select distinct A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE,
10596 < A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH
10596 > A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH,
10597 > CASE When A.SALARY > 10000 then 'higher paid' else 'lower paid' End
10598   From EMPLOYEE A
10599   JOIN Depts D On D.DEPT_NO = A.DEPT_NO
10600   ;
# Line 10409 | Line 10602 | JOIN Depts D On D.DEPT_NO = A.DEPT_NO
10602   /* View: PHONE_LIST, Owner: SYSDBA */
10603  
10604   CREATE VIEW PHONE_LIST (
10605 <  EMP_NO,
10606 <  FIRST_NAME,
10607 <  LAST_NAME,
10608 <  PHONE_EXT,
10609 <  LOCATION,
10605 >  EMP_NO,
10606 >  FIRST_NAME,
10607 >  LAST_NAME,
10608 >  PHONE_EXT,
10609 >  LOCATION,
10610    PHONE_NO
10611   ) AS
10612   SELECT
# Line 10515 | Line 10708 | CREATE EXCEPTION REASSIGN_SALES 'Reassig
10708   CREATE EXCEPTION UNKNOWN_EMP_ID 'Invalid employee number or project id.';
10709   COMMIT WORK;
10710   SET AUTODDL OFF;
10711 < SET TERM ^ ;
10711 > SET TERM ^;
10712  
10713   /* Package Definitions */
10714  
10715 < CREATE PACKAGE FB$OUT                                                        
10715 > CREATE PACKAGE FB$OUT
10716   AS
10524
10717   begin
10718          procedure enable;
10719          procedure disable;
# Line 10531 | Line 10723 | begin
10723  
10724          procedure get_lines returns (lines fb$out_type);
10725   end
10726 < ^
10726 > ^
10727  
10728 < CREATE PACKAGE SELECT$TEST                                                    
10728 > CREATE PACKAGE SELECT$TEST
10729   AS
10538
10730   Begin
10731    Procedure ShowItems(IPARAM Integer) RETURNS (OutParam integer);
10732   End
10733 < ^
10733 > ^
10734  
10735 < SET TERM ; ^
10735 > SET TERM ;^
10736   COMMIT WORK;
10737   SET AUTODDL ON;
10738   COMMIT WORK;
10739   SET AUTODDL OFF;
10740 < SET TERM ^ ;
10740 > SET TERM ^;
10741  
10742   /* Stored procedures Definitions*/
10743  
10744 < CREATE PROCEDURE SHOW_LANGS
10744 > CREATE PROCEDURE SHOW_LANGS
10745   (
10746    CODE VARCHAR(5) CHARACTER SET NONE,
10747    GRADE SMALLINT,
# Line 10562 | Line 10753 | RETURNS
10753   )
10754   AS
10755   BEGIN SUSPEND; EXIT; END
10565
10756   ^
10757  
10758 < CREATE PROCEDURE ADD_EMP_PROJ
10758 > CREATE PROCEDURE ADD_EMP_PROJ
10759   (
10760    EMP_NO SMALLINT,
10761    PROJ_ID CHAR(5) CHARACTER SET NONE
10762   )
10763   AS
10764   BEGIN EXIT; END
10575
10765   ^
10766  
10767 < CREATE PROCEDURE ALL_LANGS
10767 > CREATE PROCEDURE ALL_LANGS
10768   RETURNS
10769   (
10770    CODE VARCHAR(5) CHARACTER SET NONE,
# Line 10585 | Line 10774 | RETURNS
10774   )
10775   AS
10776   BEGIN SUSPEND; EXIT; END
10588
10777   ^
10778  
10779 < CREATE PROCEDURE DELETE_EMPLOYEE
10779 > CREATE PROCEDURE DELETE_EMPLOYEE
10780   (
10781    EMP_NUM INTEGER
10782   )
10783   AS
10784   BEGIN EXIT; END
10597
10785   ^
10786  
10787 < CREATE PROCEDURE DEPT_BUDGET
10787 > CREATE PROCEDURE DEPT_BUDGET
10788   (
10789    DNO CHAR(3) CHARACTER SET NONE
10790   )
10791   RETURNS
10792   (
10793 <  TOT DECIMAL(12, 2)
10793 >  TOT DECIMAL(12,2)
10794   )
10795   AS
10796   BEGIN SUSPEND; EXIT; END
10797 + ^
10798  
10799 + CREATE PROCEDURE EMPLOYEE_PAY_STATUS
10800 + (
10801 +  EMP_NUM SMALLINT
10802 + )
10803 + RETURNS
10804 + (
10805 +  PAY_STATUS VARCHAR(6) CHARACTER SET NONE,
10806 +  SALARY NUMERIC(10,2)
10807 + )
10808 + AS
10809 + BEGIN EXIT; END
10810   ^
10811  
10812 < CREATE PROCEDURE GET_EMP_PROJ
10812 > CREATE PROCEDURE GET_EMP_PROJ
10813   (
10814    EMP_NO SMALLINT
10815   )
# Line 10620 | Line 10819 | RETURNS
10819   )
10820   AS
10821   BEGIN SUSPEND; EXIT; END
10623
10822   ^
10823  
10824 < CREATE PROCEDURE "Has Space"
10824 > CREATE PROCEDURE "Has Space"
10825   (
10826    ARG1 INTEGER
10827   )
10828   AS
10829   BEGIN EXIT; END
10632
10830   ^
10831  
10832 < CREATE PROCEDURE MAIL_LABEL
10832 > CREATE PROCEDURE MAIL_LABEL
10833   (
10834    CUST_NO INTEGER
10835   )
# Line 10647 | Line 10844 | RETURNS
10844   )
10845   AS
10846   BEGIN SUSPEND; EXIT; END
10650
10847   ^
10848  
10849 < CREATE PROCEDURE ORG_CHART
10849 > CREATE PROCEDURE ORG_CHART
10850   RETURNS
10851   (
10852    HEAD_DEPT CHAR(25) CHARACTER SET NONE,
# Line 10661 | Line 10857 | RETURNS
10857   )
10858   AS
10859   BEGIN SUSPEND; EXIT; END
10664
10860   ^
10861  
10862 < CREATE PROCEDURE SHIP_ORDER
10862 > CREATE PROCEDURE SHIP_ORDER
10863   (
10864    PO_NUM CHAR(8) CHARACTER SET NONE
10865   )
10866   AS
10867   BEGIN EXIT; END
10673
10868   ^
10869  
10870 < CREATE PROCEDURE SUB_TOT_BUDGET
10870 > CREATE PROCEDURE SUB_TOT_BUDGET
10871   (
10872    HEAD_DEPT CHAR(3) CHARACTER SET NONE
10873   )
10874   RETURNS
10875   (
10876 <  TOT_BUDGET DECIMAL(12, 2),
10877 <  AVG_BUDGET DECIMAL(12, 2),
10878 <  MIN_BUDGET DECIMAL(12, 2),
10879 <  MAX_BUDGET DECIMAL(12, 2)
10876 >  TOT_BUDGET DECIMAL(12,2),
10877 >  AVG_BUDGET DECIMAL(12,2),
10878 >  MIN_BUDGET DECIMAL(12,2),
10879 >  MAX_BUDGET DECIMAL(12,2)
10880   )
10881   AS
10882   BEGIN SUSPEND; EXIT; END
10689
10883   ^
10884  
10885 < CREATE PROCEDURE "UC SPACE"
10885 > CREATE PROCEDURE "UC SPACE"
10886   (
10887    ARG1 INTEGER
10888   )
10889   AS
10890   BEGIN EXIT; END
10698
10891   ^
10892  
10893 < CREATE PROCEDURE "iCASE"
10893 > CREATE PROCEDURE "iCASE"
10894   AS
10895   BEGIN EXIT; END
10704
10896   ^
10897  
10898 < SET TERM ; ^
10898 > SET TERM ;^
10899   COMMIT WORK;
10900   SET AUTODDL ON;
10901   COMMIT WORK;
10902   SET AUTODDL OFF;
10903 < SET TERM ^ ;
10903 > SET TERM ^;
10904  
10905   /* Stored Function declarations */
10906  
10907   CREATE FUNCTION F (X INTEGER)
10908   RETURNS INTEGER
10909   AS BEGIN END
10719
10910   ^
10911  
10912 <
10723 < SET TERM ; ^
10912 > SET TERM ;^
10913   COMMIT WORK;
10914   SET AUTODDL ON;
10915 < SET TERM ^ ;
10915 > SET TERM ^;
10916  
10917  
10918   /* Triggers only will work for SQL triggers */
# Line 10733 | Line 10922 | ACTIVE ON CONNECT POSITION 0
10922   as
10923   begin
10924   End
10925 < ^
10925 > ^
10926 >
10927   CREATE TRIGGER "BEFORE CREATE TABLE"
10928   ACTIVE BEFORE CREATE TABLE POSITION 0
10929   AS BEGIN END
10930 < ^
10930 > ^
10931 >
10932   CREATE TRIGGER "AFTER CREATE TABLE"
10933   ACTIVE AFTER CREATE TABLE POSITION 0
10934   AS BEGIN END
10935 < ^
10935 > ^
10936 >
10937   CREATE TRIGGER "BEFORE ALTER TABLE"
10938   ACTIVE BEFORE ALTER TABLE POSITION 0
10939   AS BEGIN END
10940 < ^
10940 > ^
10941 >
10942   CREATE TRIGGER "AFTER ALTER TABLE"
10943   ACTIVE AFTER ALTER TABLE POSITION 0
10944   AS BEGIN END
10945 < ^
10945 > ^
10946 >
10947   CREATE TRIGGER "AFTER CREATE/Alter TABLE"
10948   ACTIVE AFTER CREATE TABLE OR ALTER TABLE POSITION 0
10949   AS BEGIN END
10950 < ^
10950 > ^
10951 >
10952   CREATE TRIGGER "BEFORE DROP TABLE"
10953   ACTIVE BEFORE Drop TABLE POSITION 0
10954   AS BEGIN END
10955 < ^
10955 > ^
10956 >
10957   CREATE TRIGGER "AFTER DROP TABLE"
10958   ACTIVE AFTER Drop TABLE POSITION 0
10959   AS BEGIN END
10960 < ^
10960 > ^
10961 >
10962   CREATE TRIGGER "BEFORE CREATE PROCEDURE"
10963   ACTIVE BEFORE CREATE PROCEDURE POSITION 0
10964   AS BEGIN END
10965 < ^
10965 > ^
10966 >
10967   CREATE TRIGGER "AFTER CREATE PROCEDURE"
10968   ACTIVE AFTER CREATE PROCEDURE POSITION 0
10969   AS BEGIN END
10970 < ^
10970 > ^
10971 >
10972   CREATE TRIGGER "BEFORE ALTER PROCEDURE"
10973   ACTIVE BEFORE ALTER PROCEDURE POSITION 0
10974   AS BEGIN END
10975 < ^
10975 > ^
10976 >
10977   CREATE TRIGGER "AFTER ALTER PROCEDURE"
10978   ACTIVE AFTER ALTER PROCEDURE POSITION 0
10979   AS BEGIN END
10980 < ^
10980 > ^
10981 >
10982   CREATE TRIGGER "BEFORE DROP PROCEDURE"
10983   ACTIVE BEFORE Drop PROCEDURE POSITION 0
10984   AS BEGIN END
10985 < ^
10985 > ^
10986 >
10987   CREATE TRIGGER "AFTER DROP PROCEDURE"
10988   ACTIVE AFTER Drop PROCEDURE POSITION 0
10989   AS BEGIN END
10990 < ^
10990 > ^
10991 >
10992   CREATE TRIGGER "BEFORE CREATE FUNCTION"
10993   ACTIVE BEFORE CREATE FUNCTION POSITION 0
10994   AS BEGIN END
10995 < ^
10995 > ^
10996 >
10997   CREATE TRIGGER "AFTER CREATE FUNCTION"
10998   ACTIVE AFTER CREATE FUNCTION POSITION 0
10999   AS BEGIN END
11000 < ^
11000 > ^
11001 >
11002   CREATE TRIGGER "BEFORE ALTER FUNCTION"
11003   ACTIVE BEFORE ALTER FUNCTION POSITION 0
11004   AS BEGIN END
11005 < ^
11005 > ^
11006 >
11007   CREATE TRIGGER "AFTER ALTER FUNCTION"
11008   ACTIVE AFTER ALTER FUNCTION POSITION 0
11009   AS BEGIN END
11010 < ^
11010 > ^
11011 >
11012   CREATE TRIGGER "BEFORE DROP FUNCTION"
11013   ACTIVE BEFORE Drop FUNCTION POSITION 0
11014   AS BEGIN END
11015 < ^
11015 > ^
11016 >
11017   CREATE TRIGGER "AFTER DROP FUNCTION"
11018   ACTIVE AFTER Drop FUNCTION POSITION 0
11019   AS BEGIN END
11020 < ^
11020 > ^
11021 >
11022   CREATE TRIGGER "BEFORE CREATE TRIGGER"
11023   ACTIVE BEFORE CREATE TRIGGER POSITION 0
11024   AS BEGIN END
11025 < ^
11025 > ^
11026 >
11027   CREATE TRIGGER "AFTER CREATE TRIGGER"
11028   ACTIVE AFTER CREATE TRIGGER POSITION 0
11029   AS BEGIN END
11030 < ^
11030 > ^
11031 >
11032   CREATE TRIGGER "BEFORE ALTER TRIGGER"
11033   ACTIVE BEFORE ALTER TRIGGER POSITION 0
11034   AS BEGIN END
11035 < ^
11035 > ^
11036 >
11037   CREATE TRIGGER "AFTER ALTER TRIGGER"
11038   ACTIVE AFTER ALTER TRIGGER POSITION 0
11039   AS BEGIN END
11040 < ^
11040 > ^
11041 >
11042   CREATE TRIGGER "BEFORE DROP TRIGGER"
11043   ACTIVE BEFORE Drop TRIGGER POSITION 0
11044   AS BEGIN END
11045 < ^
11045 > ^
11046 >
11047   CREATE TRIGGER "AFTER DROP TRIGGER"
11048   ACTIVE AFTER Drop TRIGGER POSITION 0
11049   AS BEGIN END
11050 < ^
11050 > ^
11051 >
11052   CREATE TRIGGER "BEFORE CREATE EXCEPTION"
11053   ACTIVE BEFORE CREATE EXCEPTION POSITION 0
11054   AS BEGIN END
11055 < ^
11055 > ^
11056 >
11057   CREATE TRIGGER "AFTER CREATE EXCEPTION"
11058   ACTIVE AFTER CREATE EXCEPTION POSITION 0
11059   AS BEGIN END
11060 < ^
11060 > ^
11061 >
11062   CREATE TRIGGER "BEFORE ALTER EXCEPTION"
11063   ACTIVE BEFORE ALTER EXCEPTION POSITION 0
11064   AS BEGIN END
11065 < ^
11065 > ^
11066 >
11067   CREATE TRIGGER "AFTER ALTER EXCEPTION"
11068   ACTIVE AFTER ALTER EXCEPTION POSITION 0
11069   AS BEGIN END
11070 < ^
11070 > ^
11071 >
11072   CREATE TRIGGER "BEFORE DROP EXCEPTION"
11073   ACTIVE BEFORE Drop EXCEPTION POSITION 0
11074   AS BEGIN END
11075 < ^
11075 > ^
11076 >
11077   CREATE TRIGGER "AFTER DROP EXCEPTION"
11078   ACTIVE AFTER Drop EXCEPTION POSITION 0
11079   AS BEGIN END
11080 < ^
11080 > ^
11081 >
11082   CREATE TRIGGER "BEFORE CREATE VIEW"
11083   ACTIVE BEFORE CREATE VIEW POSITION 0
11084   AS BEGIN END
11085 < ^
11085 > ^
11086 >
11087   CREATE TRIGGER "AFTER CREATE VIEW"
11088   ACTIVE AFTER CREATE VIEW POSITION 0
11089   AS BEGIN END
11090 < ^
11090 > ^
11091 >
11092   CREATE TRIGGER "BEFORE ALTER VIEW"
11093   ACTIVE BEFORE ALTER VIEW POSITION 0
11094   AS BEGIN END
11095 < ^
11095 > ^
11096 >
11097   CREATE TRIGGER "AFTER ALTER VIEW"
11098   ACTIVE AFTER ALTER VIEW POSITION 0
11099   AS BEGIN END
11100 < ^
11100 > ^
11101 >
11102   CREATE TRIGGER "BEFORE DROP VIEW"
11103   ACTIVE BEFORE Drop VIEW POSITION 0
11104   AS BEGIN END
11105 < ^
11105 > ^
11106 >
11107   CREATE TRIGGER "AFTER DROP VIEW"
11108   ACTIVE AFTER Drop VIEW POSITION 0
11109   AS BEGIN END
11110 < ^
11110 > ^
11111 >
11112   CREATE TRIGGER "BEFORE CREATE DOMAIN"
11113   ACTIVE BEFORE CREATE DOMAIN POSITION 0
11114   AS BEGIN END
11115 < ^
11115 > ^
11116 >
11117   CREATE TRIGGER "AFTER CREATE DOMAIN"
11118   ACTIVE AFTER CREATE DOMAIN POSITION 0
11119   AS BEGIN END
11120 < ^
11120 > ^
11121 >
11122   CREATE TRIGGER "BEFORE ALTER DOMAIN"
11123   ACTIVE BEFORE ALTER DOMAIN POSITION 0
11124   AS BEGIN END
11125 < ^
11125 > ^
11126 >
11127   CREATE TRIGGER "AFTER ALTER DOMAIN"
11128   ACTIVE AFTER ALTER DOMAIN POSITION 0
11129   AS BEGIN END
11130 < ^
11130 > ^
11131 >
11132   CREATE TRIGGER "BEFORE DROP DOMAIN"
11133   ACTIVE BEFORE Drop DOMAIN POSITION 0
11134   AS BEGIN END
11135 < ^
11135 > ^
11136 >
11137   CREATE TRIGGER "AFTER DROP DOMAIN"
11138   ACTIVE AFTER Drop DOMAIN POSITION 0
11139   AS BEGIN END
11140 < ^
11140 > ^
11141 >
11142   CREATE TRIGGER "BEFORE CREATE ROLE"
11143   ACTIVE BEFORE CREATE ROLE POSITION 0
11144   AS BEGIN END
11145 < ^
11145 > ^
11146 >
11147   CREATE TRIGGER "AFTER CREATE ROLE"
11148   ACTIVE AFTER CREATE ROLE POSITION 0
11149   AS BEGIN END
11150 < ^
11150 > ^
11151 >
11152   CREATE TRIGGER "BEFORE ALTER ROLE"
11153   ACTIVE BEFORE ALTER ROLE POSITION 0
11154   AS BEGIN END
11155 < ^
11155 > ^
11156 >
11157   CREATE TRIGGER "AFTER ALTER ROLE"
11158   ACTIVE AFTER ALTER ROLE POSITION 0
11159   AS BEGIN END
11160 < ^
11160 > ^
11161 >
11162   CREATE TRIGGER "BEFORE DROP ROLE"
11163   ACTIVE BEFORE Drop ROLE POSITION 0
11164   AS BEGIN END
11165 < ^
11165 > ^
11166 >
11167   CREATE TRIGGER "AFTER DROP ROLE"
11168   ACTIVE AFTER Drop ROLE POSITION 0
11169   AS BEGIN END
11170 < ^
11170 > ^
11171 >
11172   CREATE TRIGGER "BEFORE CREATE INDEX"
11173   ACTIVE BEFORE CREATE INDEX POSITION 0
11174   AS BEGIN END
11175 < ^
11175 > ^
11176 >
11177   CREATE TRIGGER "AFTER CREATE INDEX"
11178   ACTIVE AFTER CREATE INDEX POSITION 0
11179   AS BEGIN END
11180 < ^
11180 > ^
11181 >
11182   CREATE TRIGGER "BEFORE ALTER INDEX"
11183   ACTIVE BEFORE ALTER INDEX POSITION 0
11184   AS BEGIN END
11185 < ^
11185 > ^
11186 >
11187   CREATE TRIGGER "AFTER ALTER INDEX"
11188   ACTIVE AFTER ALTER INDEX POSITION 0
11189   AS BEGIN END
11190 < ^
11190 > ^
11191 >
11192   CREATE TRIGGER "BEFORE DROP INDEX"
11193   ACTIVE BEFORE Drop INDEX POSITION 0
11194   AS BEGIN END
11195 < ^
11195 > ^
11196 >
11197   CREATE TRIGGER "AFTER DROP INDEX"
11198   ACTIVE AFTER Drop INDEX POSITION 0
11199   AS BEGIN END
11200 < ^
11200 > ^
11201 >
11202   CREATE TRIGGER "BEFORE CREATE SEQUENCE"
11203   ACTIVE BEFORE CREATE SEQUENCE POSITION 0
11204   AS BEGIN END
11205 < ^
11205 > ^
11206 >
11207   CREATE TRIGGER "AFTER CREATE SEQUENCE"
11208   ACTIVE AFTER CREATE SEQUENCE POSITION 0
11209   AS BEGIN END
11210 < ^
11210 > ^
11211 >
11212   CREATE TRIGGER "BEFORE ALTER SEQUENCE"
11213   ACTIVE BEFORE ALTER SEQUENCE POSITION 0
11214   AS BEGIN END
11215 < ^
11215 > ^
11216 >
11217   CREATE TRIGGER "AFTER ALTER SEQUENCE"
11218   ACTIVE AFTER ALTER SEQUENCE POSITION 0
11219   AS BEGIN END
11220 < ^
11220 > ^
11221 >
11222   CREATE TRIGGER "BEFORE DROP SEQUENCE"
11223   ACTIVE BEFORE Drop SEQUENCE POSITION 0
11224   AS BEGIN END
11225 < ^
11225 > ^
11226 >
11227   CREATE TRIGGER "AFTER DROP SEQUENCE"
11228   ACTIVE AFTER Drop SEQUENCE POSITION 0
11229   AS BEGIN END
11230 < ^
11230 > ^
11231 >
11232   CREATE TRIGGER "BEFORE CREATE USER"
11233   ACTIVE BEFORE CREATE USER POSITION 0
11234   AS BEGIN END
11235 < ^
11235 > ^
11236 >
11237   CREATE TRIGGER "AFTER CREATE USER"
11238   ACTIVE AFTER CREATE USER POSITION 0
11239   AS BEGIN END
11240 < ^
11240 > ^
11241 >
11242   CREATE TRIGGER "BEFORE ALTER USER"
11243   ACTIVE BEFORE ALTER USER POSITION 0
11244   AS BEGIN END
11245 < ^
11245 > ^
11246 >
11247   CREATE TRIGGER "AFTER ALTER USER"
11248   ACTIVE AFTER ALTER USER POSITION 0
11249   AS BEGIN END
11250 < ^
11250 > ^
11251 >
11252   CREATE TRIGGER "BEFORE DROP USER"
11253   ACTIVE BEFORE Drop USER POSITION 0
11254   AS BEGIN END
11255 < ^
11255 > ^
11256 >
11257   CREATE TRIGGER "AFTER DROP USER"
11258   ACTIVE AFTER Drop USER POSITION 0
11259   AS BEGIN END
11260 < ^
11260 > ^
11261 >
11262   CREATE TRIGGER "BEFORE CREATE COLLATION"
11263   ACTIVE BEFORE CREATE COLLATION POSITION 0
11264   AS BEGIN END
11265 < ^
11265 > ^
11266 >
11267   CREATE TRIGGER "AFTER CREATE COLLATION"
11268   ACTIVE AFTER CREATE COLLATION POSITION 0
11269   AS BEGIN END
11270 < ^
11270 > ^
11271 >
11272   CREATE TRIGGER "BEFORE DROP COLLATION"
11273   ACTIVE BEFORE Drop COLLATION POSITION 0
11274   AS BEGIN END
11275 < ^
11275 > ^
11276 >
11277   CREATE TRIGGER "AFTER DROP COLLATION"
11278   ACTIVE AFTER Drop COLLATION POSITION 0
11279   AS BEGIN END
11280 < ^
11280 > ^
11281 >
11282   CREATE TRIGGER "BEFORE ALTER CHARACTER SET"
11283   ACTIVE BEFORE ALTER CHARACTER SET POSITION 0
11284   AS BEGIN END
11285 < ^
11285 > ^
11286 >
11287   CREATE TRIGGER "AFTER ALTER CHARACTER SET"
11288   ACTIVE AFTER ALTER CHARACTER SET POSITION 0
11289   AS BEGIN END
11290 < ^
11290 > ^
11291 >
11292   CREATE TRIGGER "BEFORE CREATE PACKAGE"
11293   ACTIVE BEFORE CREATE PACKAGE POSITION 0
11294   AS BEGIN END
11295 < ^
11295 > ^
11296 >
11297   CREATE TRIGGER "AFTER CREATE PACKAGE"
11298   ACTIVE AFTER CREATE PACKAGE POSITION 0
11299   AS BEGIN END
11300 < ^
11300 > ^
11301 >
11302   CREATE TRIGGER "BEFORE ALTER PACKAGE"
11303   ACTIVE BEFORE ALTER PACKAGE POSITION 0
11304   AS BEGIN END
11305 < ^
11305 > ^
11306 >
11307   CREATE TRIGGER "AFTER ALTER PACKAGE"
11308   ACTIVE AFTER ALTER PACKAGE POSITION 0
11309   AS BEGIN END
11310 < ^
11310 > ^
11311 >
11312   CREATE TRIGGER "BEFORE DROP PACKAGE"
11313   ACTIVE BEFORE Drop PACKAGE POSITION 0
11314   AS BEGIN END
11315 < ^
11315 > ^
11316 >
11317   CREATE TRIGGER "AFTER DROP PACKAGE"
11318   ACTIVE AFTER Drop PACKAGE POSITION 0
11319   AS BEGIN END
11320 < ^
11320 > ^
11321 >
11322   CREATE TRIGGER "BEFORE CREATE PACKAGE BODY"
11323   ACTIVE BEFORE CREATE PACKAGE BODY POSITION 0
11324   AS BEGIN END
11325 < ^
11325 > ^
11326 >
11327   CREATE TRIGGER "AFTER CREATE PACKAGE BODY"
11328   ACTIVE AFTER CREATE PACKAGE BODY POSITION 0
11329   AS BEGIN END
11330 < ^
11330 > ^
11331 >
11332   CREATE TRIGGER "BEFORE DROP PACKAGE BODY"
11333   ACTIVE BEFORE Drop PACKAGE BODY POSITION 0
11334   AS BEGIN END
11335 < ^
11335 > ^
11336 >
11337   CREATE TRIGGER "AFTER DROP PACKAGE BODY"
11338   ACTIVE AFTER Drop PACKAGE BODY POSITION 0
11339   AS BEGIN END
11340 < ^
11340 > ^
11341 >
11342   CREATE TRIGGER "BEFORE ANY DDL STATEMENT"
11343   ACTIVE BEFORE ANY DDL STATEMENT POSITION 0
11344   AS BEGIN END
11345 < ^
11345 > ^
11346 >
11347   CREATE TRIGGER "AFTER ANY DDL STATEMENT"
11348   ACTIVE AFTER ANY DDL STATEMENT POSITION 0
11349   AS BEGIN END
11350 < ^
11350 > ^
11351 >
11352   CREATE TRIGGER SET_CUST_NO FOR CUSTOMER
11353   ACTIVE BEFORE INSERT POSITION 0
11354   AS
# Line 11081 | Line 11356 | BEGIN
11356      if (new.cust_no is null) then
11357      new.cust_no = gen_id(cust_no_gen, 1);
11358   END
11359 < ^
11359 > ^
11360 >
11361   CREATE TRIGGER SET_EMP_NO FOR EMPLOYEE
11362   ACTIVE BEFORE INSERT POSITION 0
11363   AS
# Line 11089 | Line 11365 | BEGIN
11365      if (new.emp_no is null) then
11366      new.emp_no = gen_id(emp_no_gen, 1);
11367   END
11368 < ^
11368 > ^
11369 >
11370   CREATE TRIGGER SAVE_SALARY_CHANGE FOR EMPLOYEE
11371   ACTIVE AFTER UPDATE POSITION 0
11372   AS
# Line 11104 | Line 11381 | BEGIN
11381              old.salary,
11382              (new.salary - old.salary) * 100 / old.salary);
11383   END
11384 < ^
11384 > ^
11385 >
11386   CREATE TRIGGER POST_NEW_ORDER FOR SALES
11387   ACTIVE AFTER INSERT POSITION 0
11388   AS
11389   BEGIN
11390      POST_EVENT 'new_order';
11391   END
11392 < ^
11393 < COMMIT WORK ^
11392 > ^
11393 >
11394 > COMMIT WORK^
11395   SET TERM ;^
11396   COMMIT WORK;
11397   SET AUTODDL OFF;
11398 < SET TERM ^ ;
11398 > SET TERM ^;
11399  
11400   /* Package Definitions */
11401  
11402 < CREATE PACKAGE BODY FB$OUT                                                        
11402 > CREATE PACKAGE BODY FB$OUT
11403   AS
11125
11404   begin
11405          procedure enable
11406          as
# Line 11177 | Line 11455 | begin
11455                  execute procedure clear;
11456          end
11457   end
11458 < ^
11458 > ^
11459  
11460 < CREATE PACKAGE BODY SELECT$TEST                                                    
11460 > CREATE PACKAGE BODY SELECT$TEST
11461   AS
11184
11462   Begin
11463    Procedure ShowItems(IPARAM Integer) RETURNS (OutParam integer)
11464    As
# Line 11189 | Line 11466 | Begin
11466      SUSPEND;
11467    End
11468   End
11469 < ^
11469 > ^
11470  
11471 < SET TERM ; ^
11471 > SET TERM ;^
11472   COMMIT WORK;
11473   SET AUTODDL ON;
11474   COMMIT WORK;
11475   SET AUTODDL OFF;
11476 < SET TERM ^ ;
11476 > SET TERM ^;
11477  
11478   /* Stored procedure Bodies */
11479  
11480 <
11204 < ALTER PROCEDURE SHOW_LANGS
11480 > ALTER PROCEDURE SHOW_LANGS
11481   (
11482    CODE VARCHAR(5) CHARACTER SET NONE,
11483    GRADE SMALLINT,
# Line 11222 | Line 11498 | BEGIN
11498             AND (language_req IS NOT NULL))
11499      INTO :languages;
11500      IF (languages = ' ') THEN  /* Prints 'NULL' instead of blanks */
11501 <       languages = 'NULL';        
11501 >       languages = 'NULL';
11502      i = i +1;
11503      SUSPEND;
11504    END
11505   END
11506 < ^
11231 <
11506 > ^
11507  
11508 < ALTER PROCEDURE ADD_EMP_PROJ
11508 > ALTER PROCEDURE ADD_EMP_PROJ
11509   (
11510    EMP_NO SMALLINT,
11511    PROJ_ID CHAR(5) CHARACTER SET NONE
# Line 11243 | Line 11518 | BEGIN
11518                  EXCEPTION unknown_emp_id;
11519          END
11520   END
11521 < ^
11247 <
11521 > ^
11522  
11523 < ALTER PROCEDURE ALL_LANGS
11523 > ALTER PROCEDURE ALL_LANGS
11524   RETURNS
11525   (
11526    CODE VARCHAR(5) CHARACTER SET NONE,
# Line 11256 | Line 11530 | RETURNS
11530   )
11531   AS
11532   BEGIN
11533 <        FOR SELECT job_code, job_grade, job_country FROM job
11533 >        FOR SELECT job_code, job_grade, job_country FROM job
11534                  INTO :code, :grade, :country
11535  
11536          DO
11537          BEGIN
11538 <            FOR SELECT languages FROM show_langs
11538 >            FOR SELECT languages FROM show_langs
11539                      (:code, :grade, :country) INTO :lang DO
11540                  SUSPEND;
11541              /* Put nice separators between rows */
# Line 11272 | Line 11546 | BEGIN
11546              SUSPEND;
11547          END
11548      END
11549 < ^
11276 <
11549 > ^
11550  
11551 < ALTER PROCEDURE DELETE_EMPLOYEE
11551 > ALTER PROCEDURE DELETE_EMPLOYEE
11552   (
11553    EMP_NUM INTEGER
11554   )
# Line 11286 | Line 11559 | BEGIN
11559  
11560          /*
11561           *      If there are any sales records referencing this employee,
11562 <         *      can't delete the employee until the sales are re-assigned
11562 >         *      cannot delete the employee until the sales are re-assigned
11563           *      to another employee or changed to NULL.
11564           */
11565          SELECT count(po_number)
# Line 11332 | Line 11605 | BEGIN
11605          WHERE emp_no = :emp_num;
11606  
11607   END
11608 < ^
11336 <
11608 > ^
11609  
11610 < ALTER PROCEDURE DEPT_BUDGET
11610 > ALTER PROCEDURE DEPT_BUDGET
11611   (
11612    DNO CHAR(3) CHARACTER SET NONE
11613   )
11614   RETURNS
11615   (
11616 <  TOT DECIMAL(12, 2)
11616 >  TOT DECIMAL(12,2)
11617   )
11618   AS
11619 < DECLARE VARIABLE sumb DECIMAL(12, 2);
11619 > DECLARE VARIABLE sumb DECIMAL(12,2);
11620          DECLARE VARIABLE rdno CHAR(3);
11621          DECLARE VARIABLE cnt INTEGER;
11622   BEGIN
# Line 11369 | Line 11641 | BEGIN
11641  
11642          SUSPEND;
11643   END
11644 < ^
11644 > ^
11645  
11646 + ALTER PROCEDURE EMPLOYEE_PAY_STATUS
11647 + (
11648 +  EMP_NUM SMALLINT
11649 + )
11650 + RETURNS
11651 + (
11652 +  PAY_STATUS VARCHAR(6) CHARACTER SET NONE,
11653 +  SALARY NUMERIC(10,2)
11654 + )
11655 + AS
11656 + Declare aCursor CURSOR FOR (
11657 +    Select EMP_NO,SALARY From EMPLOYEE WHERE LAST_NAME = 'unknown');
11658 + BEGIN
11659 +  Select SALARY, Case
11660 +   When SALARY > 10000 and SALARY <= 100000 then 'higher'
11661 +   When SALARY > 100000 then 'gross'
11662 +   else 'lower' End
11663 +  From employee
11664 +    WHERE emp_no = :EMP_NUM
11665 +   into :SALARY, :PAY_STATUS;
11666 + END
11667 + ^
11668  
11669 < ALTER PROCEDURE GET_EMP_PROJ
11669 > ALTER PROCEDURE GET_EMP_PROJ
11670   (
11671    EMP_NO SMALLINT
11672   )
# Line 11389 | Line 11683 | BEGIN
11683          DO
11684                  SUSPEND;
11685   END
11686 < ^
11393 <
11686 > ^
11687  
11688 < ALTER PROCEDURE "Has Space"
11688 > ALTER PROCEDURE "Has Space"
11689   (
11690    ARG1 INTEGER
11691   )
11692   AS
11693   Begin End
11694 < ^
11402 <
11694 > ^
11695  
11696 < ALTER PROCEDURE MAIL_LABEL
11696 > ALTER PROCEDURE MAIL_LABEL
11697   (
11698    CUST_NO INTEGER
11699   )
# Line 11469 | Line 11761 | BEGIN
11761  
11762          SUSPEND;
11763   END
11764 < ^
11473 <
11764 > ^
11765  
11766 < ALTER PROCEDURE ORG_CHART
11766 > ALTER PROCEDURE ORG_CHART
11767   RETURNS
11768   (
11769    HEAD_DEPT CHAR(25) CHARACTER SET NONE,
# Line 11512 | Line 11803 | BEGIN
11803                  SUSPEND;
11804          END
11805   END
11806 < ^
11516 <
11806 > ^
11807  
11808 < ALTER PROCEDURE SHIP_ORDER
11808 > ALTER PROCEDURE SHIP_ORDER
11809   (
11810    PO_NUM CHAR(8) CHARACTER SET NONE
11811   )
# Line 11572 | Line 11862 | BEGIN
11862          WHERE po_number = :po_num;
11863  
11864   END
11865 < ^
11576 <
11865 > ^
11866  
11867 < ALTER PROCEDURE SUB_TOT_BUDGET
11867 > ALTER PROCEDURE SUB_TOT_BUDGET
11868   (
11869    HEAD_DEPT CHAR(3) CHARACTER SET NONE
11870   )
11871   RETURNS
11872   (
11873 <  TOT_BUDGET DECIMAL(12, 2),
11874 <  AVG_BUDGET DECIMAL(12, 2),
11875 <  MIN_BUDGET DECIMAL(12, 2),
11876 <  MAX_BUDGET DECIMAL(12, 2)
11873 >  TOT_BUDGET DECIMAL(12,2),
11874 >  AVG_BUDGET DECIMAL(12,2),
11875 >  MIN_BUDGET DECIMAL(12,2),
11876 >  MAX_BUDGET DECIMAL(12,2)
11877   )
11878   AS
11879   BEGIN
# Line 11594 | Line 11883 | BEGIN
11883                  INTO :tot_budget, :avg_budget, :min_budget, :max_budget;
11884          SUSPEND;
11885   END
11886 < ^
11598 <
11886 > ^
11887  
11888 < ALTER PROCEDURE "UC SPACE"
11888 > ALTER PROCEDURE "UC SPACE"
11889   (
11890    ARG1 INTEGER
11891   )
11892   AS
11893   Begin End
11894 < ^
11607 <
11894 > ^
11895  
11896 < ALTER PROCEDURE "iCASE"
11896 > ALTER PROCEDURE "iCASE"
11897   AS
11898   Begin End
11899 < ^
11899 > ^
11900  
11901 < SET TERM ; ^
11901 > SET TERM ;^
11902   COMMIT WORK;
11903   SET AUTODDL ON;
11904   COMMIT WORK;
11905   SET AUTODDL OFF;
11906 < SET TERM ^ ;
11906 > SET TERM ^;
11907  
11908   /* Stored Function Body */
11909  
11910   ALTER FUNCTION F (X INTEGER)
11911   RETURNS INTEGER
11912 < AS
11912 > AS
11913   BEGIN
11914   RETURN X+1;
11915   END
11916   ^
11917  
11918 <
11632 < SET TERM ; ^
11918 > SET TERM ;^
11919   COMMIT WORK;
11920   SET AUTODDL ON;
11921  
# Line 11702 | Line 11988 | Output from diff command
11988   ---
11989   > /* CREATE DATABASE 'inet://localhost//tmp/ibx-testsuite/testsuite1.fdb' PAGE_SIZE 8192
11990   6c6
11991 < <  DEFAULT CHARACTER SET NONE;
11991 > <  DEFAULT CHARACTER SET NONE;
11992   ---
11993   >  DEFAULT CHARACTER SET NONE; */
11994   127c127
11995   <       "KEY"   INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 0) NOT NULL,
11996   ---
11997   >       "KEY"   INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 0 INCREMENT BY 1) NOT NULL,
11998 < 969c969
11713 < < ALTER SEQUENCE CUST_NO_GEN RESTART WITH 1016;
11714 < ---
11715 < > ALTER SEQUENCE CUST_NO_GEN RESTART WITH 1015;
11716 < 971c971
11717 < < ALTER SEQUENCE EMP_NO_GEN RESTART WITH 158;
11718 < ---
11719 < > ALTER SEQUENCE EMP_NO_GEN RESTART WITH 157;
11720 < 973c973
11721 < < ALTER SEQUENCE FB$OUT_SEQ RESTART WITH 1;
11722 < ---
11723 < > ALTER SEQUENCE FB$OUT_SEQ RESTART WITH 0;
11724 < 2254c2254
11998 > 2346c2346
11999   < GRANT SELECT,Update(FIRST_NAME,LAST_NAME) ON TABLE EMPLOYEE TO USER BOB  ;
12000   ---
12001   > GRANT SELECT,Update(LAST_NAME,FIRST_NAME) ON TABLE EMPLOYEE TO USER BOB  ;
# Line 11764 | Line 12038 | Event Handled: EVENT2, Count = 0
12038  
12039   ------------------------------------------------------
12040   Running Test 12: Test use of Services Connection
12041 < Firebird Library PathName = /opt/firebird4rc1/lib/libfbclient.so
12041 > Firebird Library PathName = /opt/firebird4.0.0/lib/libfbclient.so
12042   Connect String = localhost:service_mgr
12043 < Server Version = LI-V4.0.0.2353 Firebird 4.0 Release Candidate 1
12043 > Server Version = LI-V4.0.0.2496 Firebird 4.0
12044   Server Implementation = Firebird/Linux/AMD/Intel/x64
12045   Service Version = 2
12046 < Firebird Release = 4.0.0 (Build no. 2353)
12046 > Firebird Release = 4.0.0 (Build no. 2496)
12047   No. of attachments = 0
12048   No. of databases = 0
12049 < Base Location = /opt/firebird4rc1/
12049 > Base Location = /opt/firebird4.0.0/
12050   Lock File Location = /tmp/firebird/
12051 < Security Database Location = /opt/firebird4rc1/security4.fdb
12052 < Message File Location = /opt/firebird4rc1/
12051 > Security Database Location = /opt/firebird4.0.0/security4.fdb
12052 > Message File Location = /opt/firebird4.0.0/
12053   Database Statistics for employee
12054  
12055 < Database "/opt/firebird4rc1/examples/empbuild/employee.fdb"
12056 < Gstat execution time Thu Feb 18 17:07:27 2021
12055 > Database "/opt/firebird4.0.0/examples/empbuild/employee.fdb"
12056 > Gstat execution time Tue Dec  7 11:05:53 2021
12057  
12058   Database header page information:
12059   Flags                   0
12060 < Generation              1016
12060 > Generation              5921
12061   System Change Number    0
12062   Page size               8192
12063   ODS version             13.0
12064 < Oldest transaction      1192
12065 < Oldest active           1193
12066 < Oldest snapshot         1193
12067 < Next transaction        1193
12064 > Oldest transaction      6680
12065 > Oldest active           6681
12066 > Oldest snapshot         6681
12067 > Next transaction        6681
12068   Sequence number         0
12069 < Next attachment ID      899
12069 > Next attachment ID      5102
12070   Implementation          HW=AMD/Intel/x64 little-endian OS=Linux CC=gcc
12071   Shadow count            0
12072   Page buffers            0
12073   Next header page        0
12074   Database dialect        3
12075 < Creation date           Feb 1, 2021 14:57:08
12075 > Creation date           May 29, 2021 15:47:30
12076   Attributes              force write
12077  
12078   Variable header data:
12079 < Database GUID:  {22038096-B66F-4FBA-B3DF-A02ECCE5380E}
12079 > Database GUID:  {7D20C88E-C496-4598-99F9-E33293AFA7E3}
12080   *END*
12081  
12082  
12083   Database file sequence:
12084 < File /opt/firebird4rc1/examples/empbuild/employee.fdb is the only file
12084 > File /opt/firebird4.0.0/examples/empbuild/employee.fdb is the only file
12085  
12086   Analyzing database pages ...
12087   COUNTRY (128)
# Line 11866 | Line 12140 | EMPLOYEE_PROJECT (134)
12140   Primary pointer page: 258, Index root page: 259
12141   Pointer pages: 1, data page slots: 1
12142   Data pages: 1, average fill: 10%
12143 < Primary pages: 1, secondary pages: 0, swept pages: 1
12143 > Primary pages: 1, secondary pages: 0, swept pages: 0
12144   Empty pages: 0, full pages: 0
12145   Fill distribution:
12146   0 - 19% = 1
# Line 11875 | Line 12149 | Fill distribution:
12149   60 - 79% = 0
12150   80 - 99% = 0
12151  
12152 + IBX$JOURNALS (141)
12153 + Primary pointer page: 285, Index root page: 311
12154 + Pointer pages: 1, data page slots: 0
12155 + Data pages: 0, average fill: 0%
12156 + Primary pages: 0, secondary pages: 0, swept pages: 0
12157 + Empty pages: 0, full pages: 0
12158 + Fill distribution:
12159 + 0 - 19% = 0
12160 + 20 - 39% = 0
12161 + 40 - 59% = 0
12162 + 60 - 79% = 0
12163 + 80 - 99% = 0
12164 +
12165   JOB (129)
12166   Primary pointer page: 229, Index root page: 230
12167   Pointer pages: 1, data page slots: 2
12168   Data pages: 2, average fill: 54%
12169 < Primary pages: 1, secondary pages: 1, swept pages: 1
12169 > Primary pages: 1, secondary pages: 1, swept pages: 0
12170   Empty pages: 0, full pages: 0
12171   Fill distribution:
12172   0 - 19% = 0
# Line 11918 | Line 12205 | SALARY_HISTORY (136)
12205   Primary pointer page: 270, Index root page: 271
12206   Pointer pages: 1, data page slots: 1
12207   Data pages: 1, average fill: 30%
12208 < Primary pages: 1, secondary pages: 0, swept pages: 1
12208 > Primary pages: 1, secondary pages: 0, swept pages: 0
12209   Empty pages: 0, full pages: 0
12210   Fill distribution:
12211   0 - 19% = 0
# Line 11940 | Line 12227 | Fill distribution:
12227   60 - 79% = 0
12228   80 - 99% = 0
12229  
12230 < Gstat completion time Thu Feb 18 17:07:28 2021
12230 > Gstat completion time Tue Dec  7 11:05:53 2021
12231  
12232  
12233  
12234   Server Log
12235  
12236 < zeus    Thu Feb 11 14:23:45 2021
12237 < firebird4rc1/bin/fbguard: guardian starting /opt/firebird4rc1/bin/firebird
12236 > zeus    Wed Jun  9 10:07:18 2021
12237 > firebird4/bin/fbguard: guardian starting /opt/firebird4/bin/firebird
12238  
12239   Online Validation
12240 < 17:07:32.35 Validation started
12240 > 11:05:54.35 Validation started
12241  
12242 < 17:07:32.35 Relation 128 (COUNTRY)
12243 < 17:07:32.35   process pointer page    0 of    1
12244 < 17:07:32.35 Index 1 (RDB$PRIMARY1)
12245 < 17:07:32.35 Relation 128 (COUNTRY) is ok
12246 <
12247 < 17:07:32.35 Relation 129 (JOB)
12248 < 17:07:32.35   process pointer page    0 of    1
12249 < 17:07:32.35 Index 1 (RDB$PRIMARY2)
12250 < 17:07:32.35 Index 2 (RDB$FOREIGN3)
12251 < 17:07:32.35 Index 3 (MAXSALX)
12252 < 17:07:32.35 Index 4 (MINSALX)
12253 < 17:07:32.35 Relation 129 (JOB) is ok
12254 <
12255 < 17:07:32.35 Relation 130 (DEPARTMENT)
12256 < 17:07:32.35   process pointer page    0 of    1
12257 < 17:07:32.35 Index 1 (RDB$4)
12258 < 17:07:32.35 Index 2 (RDB$PRIMARY5)
12259 < 17:07:32.35 Index 3 (RDB$FOREIGN6)
12260 < 17:07:32.35 Index 4 (BUDGETX)
12261 < 17:07:32.35 Index 5 (RDB$FOREIGN10)
12262 < 17:07:32.35 Relation 130 (DEPARTMENT) is ok
12263 <
12264 < 17:07:32.35 Relation 131 (EMPLOYEE)
12265 < 17:07:32.35   process pointer page    0 of    1
12266 < 17:07:32.35 Index 1 (RDB$PRIMARY7)
12267 < 17:07:32.35 Index 2 (RDB$FOREIGN8)
12268 < 17:07:32.35 Index 3 (RDB$FOREIGN9)
12269 < 17:07:32.35 Index 4 (NAMEX)
12270 < 17:07:32.35 Relation 131 (EMPLOYEE) is ok
12271 <
12272 < 17:07:32.35 Relation 133 (PROJECT)
12273 < 17:07:32.35   process pointer page    0 of    1
12274 < 17:07:32.35 Index 1 (RDB$11)
12275 < 17:07:32.35 Index 2 (RDB$PRIMARY12)
12276 < 17:07:32.35 Index 3 (RDB$FOREIGN13)
12277 < 17:07:32.35 Index 4 (PRODTYPEX)
12278 < 17:07:32.35 Relation 133 (PROJECT) is ok
12279 <
12280 < 17:07:32.35 Relation 134 (EMPLOYEE_PROJECT)
12281 < 17:07:32.35   process pointer page    0 of    1
12282 < 17:07:32.35 Index 1 (RDB$PRIMARY14)
12283 < 17:07:32.35 Index 2 (RDB$FOREIGN15)
12284 < 17:07:32.35 Index 3 (RDB$FOREIGN16)
12285 < 17:07:32.35 Relation 134 (EMPLOYEE_PROJECT) is ok
12286 <
12287 < 17:07:32.35 Relation 135 (PROJ_DEPT_BUDGET)
12288 < 17:07:32.35   process pointer page    0 of    1
12289 < 17:07:32.35 Index 1 (RDB$PRIMARY17)
12290 < 17:07:32.35 Index 2 (RDB$FOREIGN18)
12291 < 17:07:32.35 Index 3 (RDB$FOREIGN19)
12292 < 17:07:32.35 Relation 135 (PROJ_DEPT_BUDGET) is ok
12293 <
12294 < 17:07:32.35 Relation 136 (SALARY_HISTORY)
12295 < 17:07:32.35   process pointer page    0 of    1
12296 < 17:07:32.35 Index 1 (RDB$PRIMARY20)
12297 < 17:07:32.36 Index 2 (RDB$FOREIGN21)
12298 < 17:07:32.36 Index 3 (CHANGEX)
12299 < 17:07:32.36 Index 4 (UPDATERX)
12300 < 17:07:32.36 Relation 136 (SALARY_HISTORY) is ok
12301 <
12302 < 17:07:32.36 Relation 137 (CUSTOMER)
12303 < 17:07:32.36   process pointer page    0 of    1
12304 < 17:07:32.36 Index 1 (RDB$PRIMARY22)
12305 < 17:07:32.36 Index 2 (RDB$FOREIGN23)
12306 < 17:07:32.36 Index 3 (CUSTNAMEX)
12307 < 17:07:32.36 Index 4 (CUSTREGION)
12308 < 17:07:32.36 Relation 137 (CUSTOMER) is ok
12309 <
12310 < 17:07:32.36 Relation 138 (SALES)
12311 < 17:07:32.36   process pointer page    0 of    1
12312 < 17:07:32.36 Index 1 (RDB$PRIMARY24)
12313 < 17:07:32.36 Index 2 (RDB$FOREIGN25)
12314 < 17:07:32.36 Index 3 (RDB$FOREIGN26)
12315 < 17:07:32.36 Index 4 (NEEDX)
12316 < 17:07:32.36 Index 5 (QTYX)
12317 < 17:07:32.36 Index 6 (SALESTATX)
12318 < 17:07:32.36 Relation 138 (SALES) is ok
12242 > 11:05:54.35 Relation 128 (COUNTRY)
12243 > 11:05:54.35   process pointer page    0 of    1
12244 > 11:05:54.35 Index 1 (RDB$PRIMARY1)
12245 > 11:05:54.35 Relation 128 (COUNTRY) is ok
12246 >
12247 > 11:05:54.35 Relation 129 (JOB)
12248 > 11:05:54.35   process pointer page    0 of    1
12249 > 11:05:54.35 Index 1 (RDB$PRIMARY2)
12250 > 11:05:54.35 Index 2 (RDB$FOREIGN3)
12251 > 11:05:54.35 Index 3 (MAXSALX)
12252 > 11:05:54.35 Index 4 (MINSALX)
12253 > 11:05:54.35 Relation 129 (JOB) is ok
12254 >
12255 > 11:05:54.35 Relation 130 (DEPARTMENT)
12256 > 11:05:54.35   process pointer page    0 of    1
12257 > 11:05:54.35 Index 1 (RDB$4)
12258 > 11:05:54.35 Index 2 (RDB$PRIMARY5)
12259 > 11:05:54.35 Index 3 (RDB$FOREIGN6)
12260 > 11:05:54.35 Index 4 (BUDGETX)
12261 > 11:05:54.35 Index 5 (RDB$FOREIGN10)
12262 > 11:05:54.35 Relation 130 (DEPARTMENT) is ok
12263 >
12264 > 11:05:54.35 Relation 131 (EMPLOYEE)
12265 > 11:05:54.35   process pointer page    0 of    1
12266 > 11:05:54.35 Index 1 (RDB$PRIMARY7)
12267 > 11:05:54.35 Index 2 (RDB$FOREIGN8)
12268 > 11:05:54.35 Index 3 (RDB$FOREIGN9)
12269 > 11:05:54.35 Index 4 (NAMEX)
12270 > 11:05:54.35 Relation 131 (EMPLOYEE) is ok
12271 >
12272 > 11:05:54.35 Relation 133 (PROJECT)
12273 > 11:05:54.35   process pointer page    0 of    1
12274 > 11:05:54.35 Index 1 (RDB$11)
12275 > 11:05:54.35 Index 2 (RDB$PRIMARY12)
12276 > 11:05:54.35 Index 3 (RDB$FOREIGN13)
12277 > 11:05:54.36 Index 4 (PRODTYPEX)
12278 > 11:05:54.36 Relation 133 (PROJECT) is ok
12279 >
12280 > 11:05:54.36 Relation 134 (EMPLOYEE_PROJECT)
12281 > 11:05:54.36   process pointer page    0 of    1
12282 > 11:05:54.36 Index 1 (RDB$PRIMARY14)
12283 > 11:05:54.36 Index 2 (RDB$FOREIGN15)
12284 > 11:05:54.36 Index 3 (RDB$FOREIGN16)
12285 > 11:05:54.36 Relation 134 (EMPLOYEE_PROJECT) is ok
12286 >
12287 > 11:05:54.36 Relation 135 (PROJ_DEPT_BUDGET)
12288 > 11:05:54.36   process pointer page    0 of    1
12289 > 11:05:54.36 Index 1 (RDB$PRIMARY17)
12290 > 11:05:54.36 Index 2 (RDB$FOREIGN18)
12291 > 11:05:54.36 Index 3 (RDB$FOREIGN19)
12292 > 11:05:54.36 Relation 135 (PROJ_DEPT_BUDGET) is ok
12293 >
12294 > 11:05:54.36 Relation 136 (SALARY_HISTORY)
12295 > 11:05:54.36   process pointer page    0 of    1
12296 > 11:05:54.36 Index 1 (RDB$PRIMARY20)
12297 > 11:05:54.36 Index 2 (RDB$FOREIGN21)
12298 > 11:05:54.36 Index 3 (CHANGEX)
12299 > 11:05:54.39 Index 4 (UPDATERX)
12300 > 11:05:54.39 Relation 136 (SALARY_HISTORY) is ok
12301 >
12302 > 11:05:54.39 Relation 137 (CUSTOMER)
12303 > 11:05:54.39   process pointer page    0 of    1
12304 > 11:05:54.39 Index 1 (RDB$PRIMARY22)
12305 > 11:05:54.39 Index 2 (RDB$FOREIGN23)
12306 > 11:05:54.39 Index 3 (CUSTNAMEX)
12307 > 11:05:54.39 Index 4 (CUSTREGION)
12308 > 11:05:54.40 Relation 137 (CUSTOMER) is ok
12309 >
12310 > 11:05:54.40 Relation 138 (SALES)
12311 > 11:05:54.40   process pointer page    0 of    1
12312 > 11:05:54.41 Index 1 (RDB$PRIMARY24)
12313 > 11:05:54.41 Index 2 (RDB$FOREIGN25)
12314 > 11:05:54.41 Index 3 (RDB$FOREIGN26)
12315 > 11:05:54.41 Index 4 (NEEDX)
12316 > 11:05:54.41 Index 5 (QTYX)
12317 > 11:05:54.41 Index 6 (SALESTATX)
12318 > 11:05:54.41 Relation 138 (SALES) is ok
12319 >
12320 > 11:05:54.41 Relation 141 (IBX$JOURNALS)
12321 > 11:05:54.41   process pointer page    0 of    1
12322 > 11:05:54.41 Index 1 (RDB$PRIMARY29)
12323 > 11:05:54.41 Relation 141 (IBX$JOURNALS) is ok
12324  
12325 < 17:07:32.36 Validation finished
12325 > 11:05:54.41 Validation finished
12326  
12327  
12328   Normal Validation
# Line 12166 | Line 12458 | Employee Database is Online = FALSE
12458   Employee Database is Online = TRUE
12459  
12460   Starting Backup
12461 < Backup Completed - File Size = 80384 bytes
12461 > Backup Completed - File Size = 81920 bytes
12462   Restore Started
12463  
12464   Restore Completed
# Line 13315 | Line 13607 | DEPT_KEY_PATH = 000 (Charset = UTF8 Code
13607  
13608   Rows printed = 2
13609  
13610 < Current memory = 19,649,408
13610 > Current memory = 19,668,016
13611   Delta memory = 16,032
13612 < Max memory = 19,744,992
13613 < Elapsed time= 0.001 sec
13612 > Max memory = 19,763,344
13613 > Elapsed time= 0.003 sec
13614   Cpu = 0.000 sec
13615   Buffers = 2048
13616   Reads = 2
# Line 13542 | Line 13834 | Test_Transaction_13: [Commit (Hard commi
13834   *Monitor*  
13835   [Application: IBX Test Suite]
13836   Test_Database_13: [Disconnect]
13837 + *Monitor*  
13838 + [Application: IBX Test Suite]
13839 + Monitoring Disabled
13840   33 ISQL Monitor Messages Received
13841  
13842  
# Line 13580 | Line 13875 | DEPT_KEY_PATH = 000 (Charset = UTF8 Code
13875  
13876   Rows printed = 2
13877  
13878 < Current memory = 19,649,408
13878 > Current memory = 19,668,016
13879   Delta memory = 16,032
13880 < Max memory = 19,744,992
13881 < Elapsed time= 0.102 sec
13882 < Cpu = 0.000 sec
13880 > Max memory = 19,763,344
13881 > Elapsed time= 0.103 sec
13882 > Cpu = 0.010 sec
13883   Buffers = 2048
13884   Reads = 2
13885   Writes = 0
# Line 13806 | Line 14101 | Test_Transaction_14: [Commit (Hard commi
14101   *Monitor*  
14102   [Application: IBX Test Suite]
14103   Test_Database_14: [Disconnect]
14104 + *Monitor*  
14105 + [Application: IBX Test Suite]
14106 + Monitoring Disabled
14107   33 ISQL Monitor Messages Received
14108  
14109  
# Line 15198 | Line 15496 | Create Table LotsOfData (
15496      MyText VarChar(1024),
15497      Primary Key (RowID)
15498    );                
15499 < Loading data into database table. Started at 18/2/2021 17:08:20.034
15500 < Data load completed at 18/2/2021 17:09:56.119 Elapsed Time = 96085 ms, 100000 records loaded
15501 < MD5 checksum = 78516f380a41fc5a972b7c9b5ac14024
15502 < Database Read started at 18/2/2021 17:09:56.141
15503 < Read Dataset completed at 18/2/2021 17:10:29.759 Elapsed Time = 33618 ms, 100000 records read
15504 < MD5 checksum = 78516f380a41fc5a972b7c9b5ac14024
15499 > Loading data into database table. Started at 07/12/2021 11:06:44.478
15500 > Data load completed at 07/12/2021 11:08:48.103 Elapsed Time = 123625 ms, 100000 records loaded
15501 > Message Hash = f284b45f0183162d3078ab502d908ae1
15502 > Database Read started at 07/12/2021 11:08:48.114
15503 > Read Dataset completed at 07/12/2021 11:09:18.751 Elapsed Time = 30637 ms, 100000 records read
15504 > Message Hash = f284b45f0183162d3078ab502d908ae1
15505   Test Completed successfully
15506 + 07/12/2021 11:09:18.751 Test 21 passes as long as the checksums are identical
15507  
15508  
15509   ------------------------------------------------------
# Line 15239 | Line 15538 | SEC$MIDDLE_NAME = NULL
15538   SEC$LAST_NAME = Tester (Charset = UTF8 Codepage = 65001)
15539   SEC$PASSWORD = NULL
15540   LOGGEDIN = False
15541 < DBCREATOR = True
15541 > DBCREATOR = False
15542  
15543   Row No = 2
15544   SEC$DESCRIPTION = NULL
# Line 15426 | Line 15725 | JOIN Depts D On D.DEPT_NO = A.DEPT_NO
15725  
15726   CTE0 recursive: Depts as (Select DEPT_NO, DEPARTMENT, "HEAD_DEPT", cast(DEPARTMENT  as VarChar(256)) as DEPT_PATH ,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH
15727   From DEPARTMENT Where HEAD_DEPT is NULL
15728 < UNION ALL
15728 > UNION ALL
15729   Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH ||  ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT  D
15730   OIN Depts On D.HEAD_DEPT = Depts.DEPT_NO
15731   )
15732   Select: distinct A.EMP_NO, A.FIRST_NAME, A.LAST_NAME, A.PHONE_EXT, A.HIRE_DATE, A.DEPT_NO, A.JOB_CODE, 2.2, 2..30 A.JOB_GRADE, A.JOB_COUNTRY, A.SALARY, A.FULL_NAME, D.DEPT_PATH, D.DEPT_KEY_PATH
# Line 15440 | Line 15739 | Plan:
15739   Rows:
15740   SQL: WITH RECURSIVE Depts AS (Select DEPT_NO, DEPARTMENT, "HEAD_DEPT", cast(DEPARTMENT  as VarChar(256)) as DEPT_PATH ,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH
15741   From DEPARTMENT Where HEAD_DEPT is NULL
15742 < UNION ALL
15742 > UNION ALL
15743   Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH ||  ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT  D
15744   OIN Depts On D.HEAD_DEPT = Depts.DEPT_NO
15745   )
15746  
# Line 15454 | Line 15753 | Params:
15753   Updated SQL
15754   WITH RECURSIVE Depts AS (Select DEPT_NO, DEPARTMENT, "HEAD_DEPT", cast(DEPARTMENT  as VarChar(256)) as DEPT_PATH ,cast(DEPT_NO as VarChar(64)) as DEPT_KEY_PATH
15755   From DEPARTMENT Where HEAD_DEPT is NULL
15756 < UNION ALL
15756 > UNION ALL
15757   Select D.DEPT_NO, D.DEPARTMENT, D.HEAD_DEPT, Depts.DEPT_PATH ||  ' / ' || D.DEPARTMENT as DEPT_PATH,Depts.DEPT_KEY_PATH || ';' || D.DEPT_NO as DEPT_KEY_PATH From DEPARTMENT  D
15758   OIN Depts On D.HEAD_DEPT = Depts.DEPT_NO
15759   )
15760  
# Line 16099 | Line 16398 | IBTable after create
16398  
16399   /* Table: TestTable, Owner: SYSDBA */
16400  
16401 < CREATE TABLE "TestTable"
16401 > CREATE TABLE "TestTable"
16402   (
16403          MYKEY   INTEGER NOT NULL,
16404          TEXTFIELD       VARCHAR(32) CHARACTER SET UTF8,
# Line 16840 | Line 17139 | SET AUTODDL ON;
17139  
17140   /* Table: DBVERSIONINFO, Owner: SYSDBA */
17141  
17142 < CREATE TABLE DBVERSIONINFO
17142 > CREATE TABLE DBVERSIONINFO
17143   (
17144          VERSIONNO       INTEGER NOT NULL,
17145   PRIMARY KEY (VERSIONNO)
# Line 16848 | Line 17147 | PRIMARY KEY (VERSIONNO)
17147  
17148   /* Table: IBDATASETTEST, Owner: SYSDBA */
17149  
17150 < CREATE TABLE IBDATASETTEST
17150 > CREATE TABLE IBDATASETTEST
17151   (
17152          KEYFIELD        INTEGER NOT NULL,
17153          PLAINTEXT       VARCHAR(128),
# Line 16865 | Line 17164 | COMMIT;
17164   /* Data Ends */
17165  
17166   CREATE SEQUENCE AGENERATOR;
17167 < ALTER SEQUENCE AGENERATOR RESTART WITH 0;
17168 < SET TERM ^ ;
17167 > ALTER SEQUENCE AGENERATOR RESTART WITH 1;
17168 > SET TERM ^;
17169  
17170  
17171   /* Triggers only will work for SQL triggers */
# Line 16877 | Line 17176 | As
17176   Begin
17177    new.ServerSideText = new.KeyField || ' - ' || new.PlainText;
17178   End
17179 < ^
17180 < COMMIT WORK ^
17179 > ^
17180 >
17181 > COMMIT WORK^
17182   SET TERM ;^
17183  
17184   /* Comments on System Objects */
# Line 17037 | Line 17337 | SET AUTODDL ON;
17337  
17338   /* Table: DBVERSIONINFO, Owner: SYSDBA */
17339  
17340 < CREATE TABLE DBVERSIONINFO
17340 > CREATE TABLE DBVERSIONINFO
17341   (
17342          VERSIONNO       INTEGER NOT NULL,
17343   PRIMARY KEY (VERSIONNO)
# Line 17045 | Line 17345 | PRIMARY KEY (VERSIONNO)
17345  
17346   /* Table: IBDATASETTEST, Owner: SYSDBA */
17347  
17348 < CREATE TABLE IBDATASETTEST
17348 > CREATE TABLE IBDATASETTEST
17349   (
17350          KEYFIELD        INTEGER NOT NULL,
17351          PLAINTEXT       VARCHAR(128),
# Line 17067 | Line 17367 | COMMIT;
17367   /* Data Ends */
17368  
17369   CREATE SEQUENCE AGENERATOR;
17370 < ALTER SEQUENCE AGENERATOR RESTART WITH 1;
17371 < SET TERM ^ ;
17370 > ALTER SEQUENCE AGENERATOR RESTART WITH 2;
17371 > SET TERM ^;
17372  
17373  
17374   /* Triggers only will work for SQL triggers */
# Line 17079 | Line 17379 | As
17379   Begin
17380    new.ServerSideText = new.KeyField || ' - ' || new.PlainText;
17381   End
17382 < ^
17383 < COMMIT WORK ^
17382 > ^
17383 >
17384 > COMMIT WORK^
17385   SET TERM ;^
17386  
17387   /* Comments on System Objects */
# Line 17224 | Line 17525 | SET AUTODDL ON;
17525  
17526   /* Table: DBVERSIONINFO, Owner: SYSDBA */
17527  
17528 < CREATE TABLE DBVERSIONINFO
17528 > CREATE TABLE DBVERSIONINFO
17529   (
17530          VERSIONNO       INTEGER NOT NULL,
17531   PRIMARY KEY (VERSIONNO)
# Line 17232 | Line 17533 | PRIMARY KEY (VERSIONNO)
17533  
17534   /* Table: IBDATASETTEST, Owner: SYSDBA */
17535  
17536 < CREATE TABLE IBDATASETTEST
17536 > CREATE TABLE IBDATASETTEST
17537   (
17538          KEYFIELD        INTEGER NOT NULL,
17539          PLAINTEXT       VARCHAR(128),
# Line 17255 | Line 17556 | COMMIT;
17556   /* Data Ends */
17557  
17558   CREATE SEQUENCE AGENERATOR;
17559 < ALTER SEQUENCE AGENERATOR RESTART WITH 2;
17560 < SET TERM ^ ;
17559 > ALTER SEQUENCE AGENERATOR RESTART WITH 3;
17560 > SET TERM ^;
17561  
17562  
17563   /* Triggers only will work for SQL triggers */
# Line 17267 | Line 17568 | As
17568   Begin
17569    new.ServerSideText = new.KeyField || ' - ' || new.PlainText;
17570   End
17571 < ^
17572 < COMMIT WORK ^
17571 > ^
17572 >
17573 > COMMIT WORK^
17574   SET TERM ;^
17575  
17576   /* Comments on System Objects */
# Line 17281 | Line 17583 | SET TERM ;^
17583  
17584  
17585  
17586 + ------------------------------------------------------
17587 + Running Test 29: IBJournal Tests
17588 + Creating Database from resources/Test29.sql
17589 +
17590 + Create Table IBXTest (
17591 + TableKey Integer not null,
17592 + F1 Smallint,
17593 + F2 Float,
17594 + F3 Double Precision,
17595 + F4 Decimal(9,3),
17596 + F5 Decimal(18,4),
17597 + F6 Date,
17598 + F7 Timestamp,
17599 + F8 Char (2),
17600 + F9 VarChar(256),
17601 + F10 Blob,
17602 + F11 BigInt,
17603 + "f12" Integer,
17604 + F13 Time,
17605 + F14 Blob sub_type text,
17606 + MyArray Integer [0:16],
17607 + "GRANTS" VarChar(20),
17608 + "My Field" VarChar(32),
17609 + "MY Field" VarChar(32),
17610 + Primary Key(TableKey)
17611 + );
17612 +
17613 + Create Generator IBXGen;
17614 + Add a record
17615 + Add and edit a record
17616 + Row No = 1
17617 + TABLEKEY = 1
17618 + F1 = 2
17619 + F2 = 0.314000010490
17620 + F3 = 0.314123456780
17621 + F4 = 101.314
17622 + F5 = 101.99
17623 + F6 = 25/12/2007
17624 + F7 = 25/12/2007 12:30:29.130
17625 + F8 = XX (Charset = UTF8 Codepage = 65001)
17626 + F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
17627 + F10 = (blob), Length = 100
17628 + F11 = 9223372036854775807
17629 + F12 = 65566
17630 + F13 = 12:30:45.000
17631 + F14 (Charset  = UTF8 Codepage = 65001)
17632 +
17633 + If music be the food of love, play on;
17634 + Give me excess of it, that, surfeiting,
17635 + The appetite may sicken, and so die.
17636 + That strain again! it had a dying fall:
17637 + O, it came o'er my ear like the sweet south,
17638 + That breathes upon a bank of violets,
17639 + Stealing and giving odour! Enough; no more:
17640 + 'Tis not so sweet now as it was before.
17641 + O spirit of love! how quick and fresh art thou,
17642 + That, notwithstanding thy capacity      10
17643 + Receiveth as the sea, nought enters there,
17644 + Of what validity and pitch soe'er,
17645 + But falls into abatement and low price,
17646 + Even in a minute: so full of shapes is fancy
17647 + That it alone is high fantastical.
17648 +
17649 + Si la musique est la nourriture de l'amour, continuez à jouer;
17650 + Donnez-m'en un excès, que, surexcité,
17651 + L'appétit peut devenir malade et ainsi mourir.
17652 + Cette souche encore! il a eu une chute mourante:
17653 + Oh, ça m'est venu à l'oreille comme le doux sud,
17654 + Qui souffle sur une banque de violettes,
17655 + Voler et donner de l'odeur! Assez; Pas plus:
17656 + «Ce n'est pas si doux maintenant qu'avant.
17657 + O esprit d'amour! comme tu es rapide et fraîche,
17658 + Que, malgré ta capacité 10
17659 + Reçoit comme la mer, rien n'y entre,
17660 + De quelle validité et de quelle hauteur soe'er,
17661 + Mais tombe dans l'abattement et le prix bas,
17662 + Même en une minute: si plein de formes est fantaisie
17663 + Que cela seul est fantastique.
17664 +
17665 +
17666 +
17667 + Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
17668 +
17669 + GRANTS = NULL
17670 + MYFIELD1 = NULL
17671 + MYFIELD2 = NULL
17672 +
17673 + Row No = 2
17674 + TABLEKEY = 2
17675 + F1 = 2
17676 + F2 = 0.314000010490
17677 + F3 = 0.314123456780
17678 + F4 = 101.314
17679 + F5 = 101.99
17680 + F6 = 25/12/2007
17681 + F7 = 25/12/2007 12:30:29.130
17682 + F8 = XX (Charset = UTF8 Codepage = 65001)
17683 + F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
17684 + F10 = NULL
17685 + F11 = 9223372036854775807
17686 + F12 = 65566
17687 + F13 = 12:30:45.000
17688 + F14 = NULL
17689 + Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
17690 +
17691 + GRANTS = NULL
17692 + MYFIELD1 = My Field (Charset = UTF8 Codepage = 65001)
17693 + MYFIELD2 = MY Field (Charset = UTF8 Codepage = 65001)
17694 +
17695 + Rows printed = 2
17696 +
17697 + Delete a record
17698 + Row No = 1
17699 + TABLEKEY = 2
17700 + F1 = 2
17701 + F2 = 0.314000010490
17702 + F3 = 0.314123456780
17703 + F4 = 101.314
17704 + F5 = 101.99
17705 + F6 = 25/12/2007
17706 + F7 = 25/12/2007 12:30:29.130
17707 + F8 = XX (Charset = UTF8 Codepage = 65001)
17708 + F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
17709 + F10 = NULL
17710 + F11 = 9223372036854775807
17711 + F12 = 65566
17712 + F13 = 12:30:45.000
17713 + F14 = NULL
17714 + Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
17715 +
17716 + GRANTS = NULL
17717 + MYFIELD1 = My Field (Charset = UTF8 Codepage = 65001)
17718 + MYFIELD2 = MY Field (Charset = UTF8 Codepage = 65001)
17719 +
17720 + Rows printed = 1
17721 +
17722 + Rollback Retaining
17723 + Row No = 1
17724 + TABLEKEY = 1
17725 + F1 = 2
17726 + F2 = 0.314000010490
17727 + F3 = 0.314123456780
17728 + F4 = 101.314
17729 + F5 = 101.99
17730 + F6 = 25/12/2007
17731 + F7 = 25/12/2007 12:30:29.130
17732 + F8 = XX (Charset = UTF8 Codepage = 65001)
17733 + F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
17734 + F10 = (blob), Length = 100
17735 + F11 = 9223372036854775807
17736 + F12 = 65566
17737 + F13 = 12:30:45.000
17738 + F14 (Charset  = UTF8 Codepage = 65001)
17739 +
17740 + If music be the food of love, play on;
17741 + Give me excess of it, that, surfeiting,
17742 + The appetite may sicken, and so die.
17743 + That strain again! it had a dying fall:
17744 + O, it came o'er my ear like the sweet south,
17745 + That breathes upon a bank of violets,
17746 + Stealing and giving odour! Enough; no more:
17747 + 'Tis not so sweet now as it was before.
17748 + O spirit of love! how quick and fresh art thou,
17749 + That, notwithstanding thy capacity      10
17750 + Receiveth as the sea, nought enters there,
17751 + Of what validity and pitch soe'er,
17752 + But falls into abatement and low price,
17753 + Even in a minute: so full of shapes is fancy
17754 + That it alone is high fantastical.
17755 +
17756 + Si la musique est la nourriture de l'amour, continuez à jouer;
17757 + Donnez-m'en un excès, que, surexcité,
17758 + L'appétit peut devenir malade et ainsi mourir.
17759 + Cette souche encore! il a eu une chute mourante:
17760 + Oh, ça m'est venu à l'oreille comme le doux sud,
17761 + Qui souffle sur une banque de violettes,
17762 + Voler et donner de l'odeur! Assez; Pas plus:
17763 + «Ce n'est pas si doux maintenant qu'avant.
17764 + O esprit d'amour! comme tu es rapide et fraîche,
17765 + Que, malgré ta capacité 10
17766 + Reçoit comme la mer, rien n'y entre,
17767 + De quelle validité et de quelle hauteur soe'er,
17768 + Mais tombe dans l'abattement et le prix bas,
17769 + Même en une minute: si plein de formes est fantaisie
17770 + Que cela seul est fantastique.
17771 +
17772 +
17773 +
17774 + Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
17775 +
17776 + GRANTS = NULL
17777 + MYFIELD1 = NULL
17778 + MYFIELD2 = NULL
17779 +
17780 + Row No = 2
17781 + TABLEKEY = 2
17782 + F1 = 2
17783 + F2 = 0.314000010490
17784 + F3 = 0.314123456780
17785 + F4 = 101.314
17786 + F5 = 101.99
17787 + F6 = 25/12/2007
17788 + F7 = 25/12/2007 12:30:29.130
17789 + F8 = XX (Charset = UTF8 Codepage = 65001)
17790 + F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
17791 + F10 = NULL
17792 + F11 = 9223372036854775807
17793 + F12 = 65566
17794 + F13 = 12:30:45.000
17795 + F14 = NULL
17796 + Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
17797 +
17798 + GRANTS = NULL
17799 + MYFIELD1 = My Field (Charset = UTF8 Codepage = 65001)
17800 + MYFIELD2 = MY Field (Charset = UTF8 Codepage = 65001)
17801 +
17802 + Rows printed = 2
17803 +
17804 + Delete a record
17805 + Row No = 1
17806 + TABLEKEY = 2
17807 + F1 = 2
17808 + F2 = 0.314000010490
17809 + F3 = 0.314123456780
17810 + F4 = 101.314
17811 + F5 = 101.99
17812 + F6 = 25/12/2007
17813 + F7 = 25/12/2007 12:30:29.130
17814 + F8 = XX (Charset = UTF8 Codepage = 65001)
17815 + F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
17816 + F10 = NULL
17817 + F11 = 9223372036854775807
17818 + F12 = 65566
17819 + F13 = 12:30:45.000
17820 + F14 = NULL
17821 + Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
17822 +
17823 + GRANTS = NULL
17824 + MYFIELD1 = My Field (Charset = UTF8 Codepage = 65001)
17825 + MYFIELD2 = MY Field (Charset = UTF8 Codepage = 65001)
17826 +
17827 + Rows printed = 1
17828 +
17829 + Rollback
17830 + Row No = 1
17831 + TABLEKEY = 1
17832 + F1 = 2
17833 + F2 = 0.314000010490
17834 + F3 = 0.314123456780
17835 + F4 = 101.314
17836 + F5 = 101.99
17837 + F6 = 25/12/2007
17838 + F7 = 25/12/2007 12:30:29.130
17839 + F8 = XX (Charset = UTF8 Codepage = 65001)
17840 + F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
17841 + F10 = (blob), Length = 100
17842 + F11 = 9223372036854775807
17843 + F12 = 65566
17844 + F13 = 12:30:45.000
17845 + F14 (Charset  = UTF8 Codepage = 65001)
17846 +
17847 + If music be the food of love, play on;
17848 + Give me excess of it, that, surfeiting,
17849 + The appetite may sicken, and so die.
17850 + That strain again! it had a dying fall:
17851 + O, it came o'er my ear like the sweet south,
17852 + That breathes upon a bank of violets,
17853 + Stealing and giving odour! Enough; no more:
17854 + 'Tis not so sweet now as it was before.
17855 + O spirit of love! how quick and fresh art thou,
17856 + That, notwithstanding thy capacity      10
17857 + Receiveth as the sea, nought enters there,
17858 + Of what validity and pitch soe'er,
17859 + But falls into abatement and low price,
17860 + Even in a minute: so full of shapes is fancy
17861 + That it alone is high fantastical.
17862 +
17863 + Si la musique est la nourriture de l'amour, continuez à jouer;
17864 + Donnez-m'en un excès, que, surexcité,
17865 + L'appétit peut devenir malade et ainsi mourir.
17866 + Cette souche encore! il a eu une chute mourante:
17867 + Oh, ça m'est venu à l'oreille comme le doux sud,
17868 + Qui souffle sur une banque de violettes,
17869 + Voler et donner de l'odeur! Assez; Pas plus:
17870 + «Ce n'est pas si doux maintenant qu'avant.
17871 + O esprit d'amour! comme tu es rapide et fraîche,
17872 + Que, malgré ta capacité 10
17873 + Reçoit comme la mer, rien n'y entre,
17874 + De quelle validité et de quelle hauteur soe'er,
17875 + Mais tombe dans l'abattement et le prix bas,
17876 + Même en une minute: si plein de formes est fantaisie
17877 + Que cela seul est fantastique.
17878 +
17879 +
17880 +
17881 + Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
17882 +
17883 + GRANTS = NULL
17884 + MYFIELD1 = NULL
17885 + MYFIELD2 = NULL
17886 +
17887 + Row No = 2
17888 + TABLEKEY = 2
17889 + F1 = 2
17890 + F2 = 0.314000010490
17891 + F3 = 0.314123456780
17892 + F4 = 101.314
17893 + F5 = 101.99
17894 + F6 = 25/12/2007
17895 + F7 = 25/12/2007 12:30:29.130
17896 + F8 = XX (Charset = UTF8 Codepage = 65001)
17897 + F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
17898 + F10 = NULL
17899 + F11 = 9223372036854775807
17900 + F12 = 65566
17901 + F13 = 12:30:45.000
17902 + F14 = NULL
17903 + Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
17904 +
17905 + GRANTS = NULL
17906 + MYFIELD1 = My Field (Charset = UTF8 Codepage = 65001)
17907 + MYFIELD2 = MY Field (Charset = UTF8 Codepage = 65001)
17908 +
17909 + Rows printed = 2
17910 +
17911 + Commit Retaining
17912 + Row No = 1
17913 + TABLEKEY = 1
17914 + F1 = 2
17915 + F2 = 0.314000010490
17916 + F3 = 0.314123456780
17917 + F4 = 101.314
17918 + F5 = 101.99
17919 + F6 = 25/12/2007
17920 + F7 = 25/12/2007 12:30:29.130
17921 + F8 = XX (Charset = UTF8 Codepage = 65001)
17922 + F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
17923 + F10 = (blob), Length = 100
17924 + F11 = 9223372036854775807
17925 + F12 = 65566
17926 + F13 = 12:30:45.000
17927 + F14 (Charset  = UTF8 Codepage = 65001)
17928 +
17929 + If music be the food of love, play on;
17930 + Give me excess of it, that, surfeiting,
17931 + The appetite may sicken, and so die.
17932 + That strain again! it had a dying fall:
17933 + O, it came o'er my ear like the sweet south,
17934 + That breathes upon a bank of violets,
17935 + Stealing and giving odour! Enough; no more:
17936 + 'Tis not so sweet now as it was before.
17937 + O spirit of love! how quick and fresh art thou,
17938 + That, notwithstanding thy capacity      10
17939 + Receiveth as the sea, nought enters there,
17940 + Of what validity and pitch soe'er,
17941 + But falls into abatement and low price,
17942 + Even in a minute: so full of shapes is fancy
17943 + That it alone is high fantastical.
17944 +
17945 + Si la musique est la nourriture de l'amour, continuez à jouer;
17946 + Donnez-m'en un excès, que, surexcité,
17947 + L'appétit peut devenir malade et ainsi mourir.
17948 + Cette souche encore! il a eu une chute mourante:
17949 + Oh, ça m'est venu à l'oreille comme le doux sud,
17950 + Qui souffle sur une banque de violettes,
17951 + Voler et donner de l'odeur! Assez; Pas plus:
17952 + «Ce n'est pas si doux maintenant qu'avant.
17953 + O esprit d'amour! comme tu es rapide et fraîche,
17954 + Que, malgré ta capacité 10
17955 + Reçoit comme la mer, rien n'y entre,
17956 + De quelle validité et de quelle hauteur soe'er,
17957 + Mais tombe dans l'abattement et le prix bas,
17958 + Même en une minute: si plein de formes est fantaisie
17959 + Que cela seul est fantastique.
17960 +
17961 +
17962 +
17963 + Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
17964 +
17965 + GRANTS = NULL
17966 + MYFIELD1 = NULL
17967 + MYFIELD2 = NULL
17968 +
17969 + Row No = 2
17970 + TABLEKEY = 2
17971 + F1 = 2
17972 + F2 = 0.314000010490
17973 + F3 = 0.314123456780
17974 + F4 = 101.314
17975 + F5 = 101.99
17976 + F6 = 25/12/2007
17977 + F7 = 25/12/2007 12:30:29.130
17978 + F8 = XX (Charset = UTF8 Codepage = 65001)
17979 + F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
17980 + F10 = NULL
17981 + F11 = 9223372036854775807
17982 + F12 = 65566
17983 + F13 = 12:30:45.000
17984 + F14 = NULL
17985 + Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
17986 +
17987 + GRANTS = NULL
17988 + MYFIELD1 = My Field (Charset = UTF8 Codepage = 65001)
17989 + MYFIELD2 = MY Field (Charset = UTF8 Codepage = 65001)
17990 +
17991 + Row No = 3
17992 + TABLEKEY = 3
17993 + F1 = 2
17994 + F2 = 0.314000010490
17995 + F3 = 0.314123456780
17996 + F4 = 101.314
17997 + F5 = 101.99
17998 + F6 = 25/12/2007
17999 + F7 = 25/12/2007 12:30:29.130
18000 + F8 = XX (Charset = UTF8 Codepage = 65001)
18001 + F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
18002 + F10 = (blob), Length = 100
18003 + F11 = 9223372036854775807
18004 + F12 = 65566
18005 + F13 = 12:30:45.000
18006 + F14 (Charset  = UTF8 Codepage = 65001)
18007 +
18008 + If music be the food of love, play on;
18009 + Give me excess of it, that, surfeiting,
18010 + The appetite may sicken, and so die.
18011 + That strain again! it had a dying fall:
18012 + O, it came o'er my ear like the sweet south,
18013 + That breathes upon a bank of violets,
18014 + Stealing and giving odour! Enough; no more:
18015 + 'Tis not so sweet now as it was before.
18016 + O spirit of love! how quick and fresh art thou,
18017 + That, notwithstanding thy capacity      10
18018 + Receiveth as the sea, nought enters there,
18019 + Of what validity and pitch soe'er,
18020 + But falls into abatement and low price,
18021 + Even in a minute: so full of shapes is fancy
18022 + That it alone is high fantastical.
18023 +
18024 + Si la musique est la nourriture de l'amour, continuez à jouer;
18025 + Donnez-m'en un excès, que, surexcité,
18026 + L'appétit peut devenir malade et ainsi mourir.
18027 + Cette souche encore! il a eu une chute mourante:
18028 + Oh, ça m'est venu à l'oreille comme le doux sud,
18029 + Qui souffle sur une banque de violettes,
18030 + Voler et donner de l'odeur! Assez; Pas plus:
18031 + «Ce n'est pas si doux maintenant qu'avant.
18032 + O esprit d'amour! comme tu es rapide et fraîche,
18033 + Que, malgré ta capacité 10
18034 + Reçoit comme la mer, rien n'y entre,
18035 + De quelle validité et de quelle hauteur soe'er,
18036 + Mais tombe dans l'abattement et le prix bas,
18037 + Même en une minute: si plein de formes est fantaisie
18038 + Que cela seul est fantastique.
18039 +
18040 +
18041 +
18042 + Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
18043 +
18044 + GRANTS = NULL
18045 + MYFIELD1 = NULL
18046 + MYFIELD2 = NULL
18047 +
18048 + Rows printed = 3
18049 +
18050 + Commit
18051 + Row No = 1
18052 + TABLEKEY = 1
18053 + F1 = 2
18054 + F2 = 0.314000010490
18055 + F3 = 0.314123456780
18056 + F4 = 101.314
18057 + F5 = 101.99
18058 + F6 = 25/12/2007
18059 + F7 = 25/12/2007 12:30:29.130
18060 + F8 = XX (Charset = UTF8 Codepage = 65001)
18061 + F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
18062 + F10 = (blob), Length = 100
18063 + F11 = 9223372036854775807
18064 + F12 = 65566
18065 + F13 = 12:30:45.000
18066 + F14 (Charset  = UTF8 Codepage = 65001)
18067 +
18068 + If music be the food of love, play on;
18069 + Give me excess of it, that, surfeiting,
18070 + The appetite may sicken, and so die.
18071 + That strain again! it had a dying fall:
18072 + O, it came o'er my ear like the sweet south,
18073 + That breathes upon a bank of violets,
18074 + Stealing and giving odour! Enough; no more:
18075 + 'Tis not so sweet now as it was before.
18076 + O spirit of love! how quick and fresh art thou,
18077 + That, notwithstanding thy capacity      10
18078 + Receiveth as the sea, nought enters there,
18079 + Of what validity and pitch soe'er,
18080 + But falls into abatement and low price,
18081 + Even in a minute: so full of shapes is fancy
18082 + That it alone is high fantastical.
18083 +
18084 + Si la musique est la nourriture de l'amour, continuez à jouer;
18085 + Donnez-m'en un excès, que, surexcité,
18086 + L'appétit peut devenir malade et ainsi mourir.
18087 + Cette souche encore! il a eu une chute mourante:
18088 + Oh, ça m'est venu à l'oreille comme le doux sud,
18089 + Qui souffle sur une banque de violettes,
18090 + Voler et donner de l'odeur! Assez; Pas plus:
18091 + «Ce n'est pas si doux maintenant qu'avant.
18092 + O esprit d'amour! comme tu es rapide et fraîche,
18093 + Que, malgré ta capacité 10
18094 + Reçoit comme la mer, rien n'y entre,
18095 + De quelle validité et de quelle hauteur soe'er,
18096 + Mais tombe dans l'abattement et le prix bas,
18097 + Même en une minute: si plein de formes est fantaisie
18098 + Que cela seul est fantastique.
18099 +
18100 +
18101 +
18102 + Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
18103 +
18104 + GRANTS = NULL
18105 + MYFIELD1 = NULL
18106 + MYFIELD2 = NULL
18107 +
18108 + Row No = 2
18109 + TABLEKEY = 2
18110 + F1 = 2
18111 + F2 = 0.314000010490
18112 + F3 = 0.314123456780
18113 + F4 = 101.314
18114 + F5 = 101.99
18115 + F6 = 25/12/2007
18116 + F7 = 25/12/2007 12:30:29.130
18117 + F8 = XX (Charset = UTF8 Codepage = 65001)
18118 + F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
18119 + F10 = NULL
18120 + F11 = 9223372036854775807
18121 + F12 = 65566
18122 + F13 = 12:30:45.000
18123 + F14 = NULL
18124 + Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
18125 +
18126 + GRANTS = NULL
18127 + MYFIELD1 = My Field (Charset = UTF8 Codepage = 65001)
18128 + MYFIELD2 = MY Field (Charset = UTF8 Codepage = 65001)
18129 +
18130 + Row No = 3
18131 + TABLEKEY = 3
18132 + F1 = 2
18133 + F2 = 0.314000010490
18134 + F3 = 0.314123456780
18135 + F4 = 101.314
18136 + F5 = 101.99
18137 + F6 = 25/12/2007
18138 + F7 = 25/12/2007 12:30:29.130
18139 + F8 = XX (Charset = UTF8 Codepage = 65001)
18140 + F9 = The Quick Brown Fox jumps over the lazy dog (Charset = UTF8 Codepage = 65001)
18141 + F10 = (blob), Length = 100
18142 + F11 = 9223372036854775807
18143 + F12 = 65566
18144 + F13 = 12:30:45.000
18145 + F14 (Charset  = UTF8 Codepage = 65001)
18146 +
18147 + If music be the food of love, play on;
18148 + Give me excess of it, that, surfeiting,
18149 + The appetite may sicken, and so die.
18150 + That strain again! it had a dying fall:
18151 + O, it came o'er my ear like the sweet south,
18152 + That breathes upon a bank of violets,
18153 + Stealing and giving odour! Enough; no more:
18154 + 'Tis not so sweet now as it was before.
18155 + O spirit of love! how quick and fresh art thou,
18156 + That, notwithstanding thy capacity      10
18157 + Receiveth as the sea, nought enters there,
18158 + Of what validity and pitch soe'er,
18159 + But falls into abatement and low price,
18160 + Even in a minute: so full of shapes is fancy
18161 + That it alone is high fantastical.
18162 +
18163 + Si la musique est la nourriture de l'amour, continuez à jouer;
18164 + Donnez-m'en un excès, que, surexcité,
18165 + L'appétit peut devenir malade et ainsi mourir.
18166 + Cette souche encore! il a eu une chute mourante:
18167 + Oh, ça m'est venu à l'oreille comme le doux sud,
18168 + Qui souffle sur une banque de violettes,
18169 + Voler et donner de l'odeur! Assez; Pas plus:
18170 + «Ce n'est pas si doux maintenant qu'avant.
18171 + O esprit d'amour! comme tu es rapide et fraîche,
18172 + Que, malgré ta capacité 10
18173 + Reçoit comme la mer, rien n'y entre,
18174 + De quelle validité et de quelle hauteur soe'er,
18175 + Mais tombe dans l'abattement et le prix bas,
18176 + Même en une minute: si plein de formes est fantaisie
18177 + Que cela seul est fantastique.
18178 +
18179 +
18180 +
18181 + Array: (0: 100) (1: 99) (2: 98) (3: 97) (4: 96) (5: 95) (6: 94) (7: 93) (8: 92) (9: 91) (10: 90) (11: 89) (12: 88) (13: 87) (14: 86) (15: 85) (16: 84)
18182 +
18183 + GRANTS = NULL
18184 + MYFIELD1 = NULL
18185 + MYFIELD2 = NULL
18186 +
18187 + Rows printed = 3
18188 +
18189 + Journal Table
18190 + IBX$SESSIONID = 1
18191 + IBX$TRANSACTIONID = 10
18192 + IBX$OLDTRANSACTIONID = NULL
18193 + IBX$USER = SYSDBA (Charset Id = 4 Codepage = 65001)
18194 + IBX$CREATED = 2021/12/07 11:09:47.8910
18195 + IBX$SESSIONID = 1
18196 + IBX$TRANSACTIONID = 15
18197 + IBX$OLDTRANSACTIONID = NULL
18198 + IBX$USER = SYSDBA (Charset Id = 4 Codepage = 65001)
18199 + IBX$CREATED = 2021/12/07 11:09:49.1300
18200 + IBX$SESSIONID = 1
18201 + IBX$TRANSACTIONID = 17
18202 + IBX$OLDTRANSACTIONID = 15
18203 + IBX$USER = SYSDBA (Charset Id = 4 Codepage = 65001)
18204 + IBX$CREATED = 2021/12/07 11:09:49.6100
18205 + Journal Entries
18206 + Journal Entry = jeTransStart(Transaction Start)
18207 + Timestamp = 2021/12/07 11:09:47.9210
18208 + Session ID = 1
18209 + Transaction ID = 10
18210 + Transaction Name = "{20003B11-428F-4AE2-BD86-F56556AE7032}"
18211 + TPB: Item Count = 3
18212 +  isc_tpb_concurrency
18213 +  isc_tpb_wait
18214 +  isc_tpb_write
18215 +
18216 + Default Completion = TACommit
18217 +
18218 + Journal Entry = jeQuery(Query)
18219 + Timestamp = 2021/12/07 11:09:48.0720
18220 + Session ID = 1
18221 + Transaction ID = 10
18222 + Query = Insert Into IBXTEST(TABLEKEY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, f12, F13, F14, MyArray,  GRANTS) Values(1, 2, 0.314, 0.31412345678, 101.314, 101.99, '25/12/2007 12:30:15.0000', '25/12/2007 12:30:29.1300','XX', 'The Quick Brown Fox jumps over the lazy dog', <blob subtype="0">
18223 + FFD8FFE000104A46494600010101004800480000FFE11E0545786966000049492A00080000000C00
18224 + 0E010200200000009E0000000F01020014000000BE0000001001020008000000D200000012010300
18225 + 01000000010000001A01050001000000DA000000
18226 + </blob>
18227 + , 9223372036854775807, 65566, '26/12/2007 12:30:45.0000', 'If music be the food of love, play on;
18228 + Give me excess of it, that, surfeiting,
18229 + The appetite may sicken, and so die.
18230 + That strain again! it had a dying fall:
18231 + O, it came o''er my ear like the sweet south,
18232 + That breathes upon a bank of violets,
18233 + Stealing and giving odour! Enough; no more:
18234 + ''Tis not so sweet now as it was before.
18235 + O spirit of love! how quick and fresh art thou,
18236 + That, notwithstanding thy capacity      10
18237 + Receiveth as the sea, nought enters there,
18238 + Of what validity and pitch soe''er,
18239 + But falls into abatement and low price,
18240 + Even in a minute: so full of shapes is fancy
18241 + That it alone is high fantastical.
18242 +
18243 + Si la musique est la nourriture de l''amour, continuez à jouer;
18244 + Donnez-m''en un excès, que, surexcité,
18245 + L''appétit peut devenir malade et ainsi mourir.
18246 + Cette souche encore! il a eu une chute mourante:
18247 + Oh, ça m''est venu à l''oreille comme le doux sud,
18248 + Qui souffle sur une banque de violettes,
18249 + Voler et donner de l''odeur! Assez; Pas plus:
18250 + «Ce n''est pas si doux maintenant qu''avant.
18251 + O esprit d''amour! comme tu es rapide et fraîche,
18252 + Que, malgré ta capacité 10
18253 + Reçoit comme la mer, rien n''y entre,
18254 + De quelle validité et de quelle hauteur soe''er,
18255 + Mais tombe dans l''abattement et le prix bas,
18256 + Même en une minute: si plein de formes est fantaisie
18257 + Que cela seul est fantastique.
18258 +
18259 +
18260 + ', <array dim = "1" sqltype = "496" length = "4" relation_name = "IBXTEST" column_name = "MYARRAY" scale = "0" bounds="0:16">
18261 + <elt ix="0">100</elt>
18262 + <elt ix="1">99</elt>
18263 + <elt ix="2">98</elt>
18264 + <elt ix="3">97</elt>
18265 + <elt ix="4">96</elt>
18266 + <elt ix="5">95</elt>
18267 + <elt ix="6">94</elt>
18268 + <elt ix="7">93</elt>
18269 + <elt ix="8">92</elt>
18270 + <elt ix="9">91</elt>
18271 + <elt ix="10">90</elt>
18272 + <elt ix="11">89</elt>
18273 + <elt ix="12">88</elt>
18274 + <elt ix="13">87</elt>
18275 + <elt ix="14">86</elt>
18276 + <elt ix="15">85</elt>
18277 + <elt ix="16">84</elt>
18278 + </array>
18279 + , NULL) Returning MyArray
18280 +
18281 + Journal Entry = jeQuery(Query)
18282 + Timestamp = 2021/12/07 11:09:48.0840
18283 + Session ID = 1
18284 + Transaction ID = 10
18285 + Query = Insert Into IBXTEST(TABLEKEY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, f12, F13, F14, MyArray,  GRANTS) Values(2, 2, 0.314, 0.31412345678, 101.314, 101.99, '25/12/2007 12:30:15.0000', '25/12/2007 12:30:29.1300','XX', 'The Quick Brown Fox jumps over the lazy dog', <blob subtype="0">
18286 + FFD8FFE000104A46494600010101004800480000FFE11E0545786966000049492A00080000000C00
18287 + 0E010200200000009E0000000F01020014000000BE0000001001020008000000D200000012010300
18288 + 01000000010000001A01050001000000DA000000
18289 + </blob>
18290 + , 9223372036854775807, 65566, '26/12/2007 12:30:45.0000', 'If music be the food of love, play on;
18291 + Give me excess of it, that, surfeiting,
18292 + The appetite may sicken, and so die.
18293 + That strain again! it had a dying fall:
18294 + O, it came o''er my ear like the sweet south,
18295 + That breathes upon a bank of violets,
18296 + Stealing and giving odour! Enough; no more:
18297 + ''Tis not so sweet now as it was before.
18298 + O spirit of love! how quick and fresh art thou,
18299 + That, notwithstanding thy capacity      10
18300 + Receiveth as the sea, nought enters there,
18301 + Of what validity and pitch soe''er,
18302 + But falls into abatement and low price,
18303 + Even in a minute: so full of shapes is fancy
18304 + That it alone is high fantastical.
18305 +
18306 + Si la musique est la nourriture de l''amour, continuez à jouer;
18307 + Donnez-m''en un excès, que, surexcité,
18308 + L''appétit peut devenir malade et ainsi mourir.
18309 + Cette souche encore! il a eu une chute mourante:
18310 + Oh, ça m''est venu à l''oreille comme le doux sud,
18311 + Qui souffle sur une banque de violettes,
18312 + Voler et donner de l''odeur! Assez; Pas plus:
18313 + «Ce n''est pas si doux maintenant qu''avant.
18314 + O esprit d''amour! comme tu es rapide et fraîche,
18315 + Que, malgré ta capacité 10
18316 + Reçoit comme la mer, rien n''y entre,
18317 + De quelle validité et de quelle hauteur soe''er,
18318 + Mais tombe dans l''abattement et le prix bas,
18319 + Même en une minute: si plein de formes est fantaisie
18320 + Que cela seul est fantastique.
18321 +
18322 +
18323 + ', <array dim = "1" sqltype = "496" length = "4" relation_name = "IBXTEST" column_name = "MYARRAY" scale = "0" bounds="0:16">
18324 + <elt ix="0">100</elt>
18325 + <elt ix="1">99</elt>
18326 + <elt ix="2">98</elt>
18327 + <elt ix="3">97</elt>
18328 + <elt ix="4">96</elt>
18329 + <elt ix="5">95</elt>
18330 + <elt ix="6">94</elt>
18331 + <elt ix="7">93</elt>
18332 + <elt ix="8">92</elt>
18333 + <elt ix="9">91</elt>
18334 + <elt ix="10">90</elt>
18335 + <elt ix="11">89</elt>
18336 + <elt ix="12">88</elt>
18337 + <elt ix="13">87</elt>
18338 + <elt ix="14">86</elt>
18339 + <elt ix="15">85</elt>
18340 + <elt ix="16">84</elt>
18341 + </array>
18342 + , NULL) Returning MyArray
18343 +
18344 + Journal Entry = jeQuery(Query)
18345 + Timestamp = 2021/12/07 11:09:48.1180
18346 + Session ID = 1
18347 + Transaction ID = 10
18348 + Query = Update IBXTEST A Set   A.F1 = 2,  A.F2 = 0.314,  A.F3 = 0.31412345678,  A.F4 = 101.314,  A.F5 = 101.99,  A.F6 = '25/12/2007 12:30:15.0000',  A.F7 = '25/12/2007 12:30:29.1300',  A.F8 = 'XX',  A.F9 = 'The Quick Brown Fox jumps over the lazy dog',  A.F10 = NULL,  A.F11 = 9223372036854775807,  A.f12 = 65566,  A.F13 = '26/12/2007 12:30:45.0000',  A.F14 = NULL,  A.MyArray = <array dim = "1" sqltype = "496" length = "4" relation_name = "IBXTEST" column_name = "MYARRAY" scale = "0" bounds="0:16">
18349 + <elt ix="0">100</elt>
18350 + <elt ix="1">99</elt>
18351 + <elt ix="2">98</elt>
18352 + <elt ix="3">97</elt>
18353 + <elt ix="4">96</elt>
18354 + <elt ix="5">95</elt>
18355 + <elt ix="6">94</elt>
18356 + <elt ix="7">93</elt>
18357 + <elt ix="8">92</elt>
18358 + <elt ix="9">91</elt>
18359 + <elt ix="10">90</elt>
18360 + <elt ix="11">89</elt>
18361 + <elt ix="12">88</elt>
18362 + <elt ix="13">87</elt>
18363 + <elt ix="14">86</elt>
18364 + <elt ix="15">85</elt>
18365 + <elt ix="16">84</elt>
18366 + </array>
18367 + ,   A.My Field  = 'My Field',  A.MY Field = 'MY Field',  A.GRANTS = NULL Where A.TABLEKEY = 2 RETURNING A.MyArray
18368 +
18369 + Journal Entry = jeTransCommit(Commit)
18370 + Timestamp = 2021/12/07 11:09:48.2130
18371 + Session ID = 1
18372 + Transaction ID = 10
18373 +
18374 + Journal Entry = jeTransStart(Transaction Start)
18375 + Timestamp = 2021/12/07 11:09:48.2260
18376 + Session ID = 1
18377 + Transaction ID = 12
18378 + Transaction Name = "{20003B11-428F-4AE2-BD86-F56556AE7032}"
18379 + TPB: Item Count = 3
18380 +  isc_tpb_concurrency
18381 +  isc_tpb_wait
18382 +  isc_tpb_write
18383 +
18384 + Default Completion = TACommit
18385 +
18386 + Journal Entry = jeQuery(Query)
18387 + Timestamp = 2021/12/07 11:09:48.4910
18388 + Session ID = 1
18389 + Transaction ID = 12
18390 + Query = Delete From IBXTEST A Where A.TABLEKEY = 1
18391 +
18392 + Journal Entry = jeTransRollbackRet(Rollback Retaining)
18393 + Timestamp = 2021/12/07 11:09:48.6890
18394 + Session ID = 1
18395 + Transaction ID = 14
18396 + Old TransactionID = 12
18397 +
18398 + Journal Entry = jeQuery(Query)
18399 + Timestamp = 2021/12/07 11:09:48.9240
18400 + Session ID = 1
18401 + Transaction ID = 14
18402 + Query = Delete From IBXTEST A Where A.TABLEKEY = 1
18403 +
18404 + Journal Entry = jeTransRollback(Rollback)
18405 + Timestamp = 2021/12/07 11:09:49.1130
18406 + Session ID = 1
18407 + Transaction ID = 14
18408 +
18409 + Journal Entry = jeTransStart(Transaction Start)
18410 + Timestamp = 2021/12/07 11:09:49.1320
18411 + Session ID = 1
18412 + Transaction ID = 15
18413 + Transaction Name = "{20003B11-428F-4AE2-BD86-F56556AE7032}"
18414 + TPB: Item Count = 3
18415 +  isc_tpb_concurrency
18416 +  isc_tpb_wait
18417 +  isc_tpb_write
18418 +
18419 + Default Completion = TACommit
18420 +
18421 + Journal Entry = jeQuery(Query)
18422 + Timestamp = 2021/12/07 11:09:49.4250
18423 + Session ID = 1
18424 + Transaction ID = 15
18425 + Query = Insert Into IBXTEST(TABLEKEY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, f12, F13, F14, MyArray,  GRANTS) Values(3, 2, 0.314, 0.31412345678, 101.314, 101.99, '25/12/2007 12:30:15.0000', '25/12/2007 12:30:29.1300','XX', 'The Quick Brown Fox jumps over the lazy dog', <blob subtype="0">
18426 + FFD8FFE000104A46494600010101004800480000FFE11E0545786966000049492A00080000000C00
18427 + 0E010200200000009E0000000F01020014000000BE0000001001020008000000D200000012010300
18428 + 01000000010000001A01050001000000DA000000
18429 + </blob>
18430 + , 9223372036854775807, 65566, '26/12/2007 12:30:45.0000', 'If music be the food of love, play on;
18431 + Give me excess of it, that, surfeiting,
18432 + The appetite may sicken, and so die.
18433 + That strain again! it had a dying fall:
18434 + O, it came o''er my ear like the sweet south,
18435 + That breathes upon a bank of violets,
18436 + Stealing and giving odour! Enough; no more:
18437 + ''Tis not so sweet now as it was before.
18438 + O spirit of love! how quick and fresh art thou,
18439 + That, notwithstanding thy capacity      10
18440 + Receiveth as the sea, nought enters there,
18441 + Of what validity and pitch soe''er,
18442 + But falls into abatement and low price,
18443 + Even in a minute: so full of shapes is fancy
18444 + That it alone is high fantastical.
18445 +
18446 + Si la musique est la nourriture de l''amour, continuez à jouer;
18447 + Donnez-m''en un excès, que, surexcité,
18448 + L''appétit peut devenir malade et ainsi mourir.
18449 + Cette souche encore! il a eu une chute mourante:
18450 + Oh, ça m''est venu à l''oreille comme le doux sud,
18451 + Qui souffle sur une banque de violettes,
18452 + Voler et donner de l''odeur! Assez; Pas plus:
18453 + «Ce n''est pas si doux maintenant qu''avant.
18454 + O esprit d''amour! comme tu es rapide et fraîche,
18455 + Que, malgré ta capacité 10
18456 + Reçoit comme la mer, rien n''y entre,
18457 + De quelle validité et de quelle hauteur soe''er,
18458 + Mais tombe dans l''abattement et le prix bas,
18459 + Même en une minute: si plein de formes est fantaisie
18460 + Que cela seul est fantastique.
18461 +
18462 +
18463 + ', <array dim = "1" sqltype = "496" length = "4" relation_name = "IBXTEST" column_name = "MYARRAY" scale = "0" bounds="0:16">
18464 + <elt ix="0">100</elt>
18465 + <elt ix="1">99</elt>
18466 + <elt ix="2">98</elt>
18467 + <elt ix="3">97</elt>
18468 + <elt ix="4">96</elt>
18469 + <elt ix="5">95</elt>
18470 + <elt ix="6">94</elt>
18471 + <elt ix="7">93</elt>
18472 + <elt ix="8">92</elt>
18473 + <elt ix="9">91</elt>
18474 + <elt ix="10">90</elt>
18475 + <elt ix="11">89</elt>
18476 + <elt ix="12">88</elt>
18477 + <elt ix="13">87</elt>
18478 + <elt ix="14">86</elt>
18479 + <elt ix="15">85</elt>
18480 + <elt ix="16">84</elt>
18481 + </array>
18482 + , NULL) Returning MyArray
18483 +
18484 + Journal Entry = jeTransCommitRet(Commit Retaining)
18485 + Timestamp = 2021/12/07 11:09:49.6060
18486 + Session ID = 1
18487 + Transaction ID = 17
18488 + Old TransactionID = 15
18489 +
18490 + Journal Entry = jeTransCommit(Commit)
18491 + Timestamp = 2021/12/07 11:09:49.9880
18492 + Session ID = 1
18493 + Transaction ID = 17
18494 +
18495 + Journal Entry = jeTransStart(Transaction Start)
18496 + Timestamp = 2021/12/07 11:09:50.0030
18497 + Session ID = 1
18498 + Transaction ID = 18
18499 + Transaction Name = "{20003B11-428F-4AE2-BD86-F56556AE7032}"
18500 + TPB: Item Count = 3
18501 +  isc_tpb_concurrency
18502 +  isc_tpb_wait
18503 +  isc_tpb_write
18504 +
18505 + Default Completion = TACommit
18506 +
18507 + Journal Entry = jeTransRollback(Rollback)
18508 + Timestamp = 2021/12/07 11:09:50.4720
18509 + Session ID = 1
18510 + Transaction ID = 18
18511 +
18512 +
18513 +
18514   ------------------------------------------------------
18515   Test Suite Ends

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines