! THE FOLLOWING FILE (upd600.ted) IS THE TEd CHANGE FILE FOR ! UPDATING THE SQL TEST SUITE. PLEASE SEE NIST SQL TEST EDITOR ! DOCUMENTATION (TEd User's Guide) FOR INFORMATION ON HOW TO USE ! THE FILE. ! ! Use the new feature (two "-t" options) of TEd for this file ! **** or **** ! Copy this entire file and any future maintenance changes into the ! MAINTENANCE SECTION of any TEd files you use among the following: ! CHGALL.TED, CHGSCH.TED, CHGSQL.TED, ! CHGPC.TED, CHGPCO.TED, CHGPFO.TED, CHGPPA.TED, CHGPAD.TED, ! CHGMC.TED, CHGMCO.TED, CHGMFO.TED, CHGMPA.TED, and CHGMAD.TED. ! Each of the above TED files is located in the directory to which ! it applies. For example CHGMC.TED is located in the MC ! directory for Module C. You may then delete these leading ! comments as well as any changes not designated as MANDATORY ! for the test suite type(s) to which this TEd file is applied. ! ! ! Updates to this file will be available through the NIST ftp archive ! ftp://speckle.ncsl.nist.gov/sql-testing/upd600.ted ! ! ************************************************** ! * NIST SQL Test Suite, Version 6.0.0, 12/31/96 * ! * Maintenance changes * ! * To be applied by you to Version 6.0.0 * ! ************************************************** ! ---------------------------Corrections to Version 6.0.0: ! ---------------------------6.0.0 #1 changed 01-13-97 ! four files have been added: ! pc/runpc.89 -- pseudo-script to assist in running profile SQL-89 with IEF ! pc/runpc.86 -- pseudo-script to assist in running profile SQL-89 without IEF ! sql/check89.lst -- interactive SQL checklist for SQL-89 with IEF ! sql/check86.lst -- interactive SQL checklist for SQL-89 without IEF ! one file has been modified: ! other/readme.1st -- item 11 added to describe new directories: report & schema ! This "correction" consists entirely of comments. ! ! ---------------------------6.0.0 #2 changed 01-30-97 ! MANDATORY FOR: CHGPC, CHGPCO, CHGPFO, CHGPPA, CHGPAD ! MANDATORY FOR: CHGMC, CHGMCO, CHGMFO, CHGMPA, CHGMAD ! MANDATORY FOR: CHGSQL ! Thanks to Juergen Vollmer ! ! Remove violation of 13.1, Format of . ! The column name in a sort key must not contain the table name. sub *dml015.* /ORDER/ /TEMP_S.EMPNUM/1/ sub *dml148.* /ORDER/ /HU.STAFF.CITY/1/ /YY.T_INT/2/ sub *xts733.* /ORDER/ /TEST6840B.NUM_B, CN1.NUM_A/1, 3/ /CN3.NUM_A/1/ ! ! The in a is an ! and must follow the syntax rules in 5.2 SR 1. ! Modify three constraint names in two programs to begin with a letter. ! The last change is needed to restore table name TAB722B. sub *xts72[23].* // /722ACONS/X22ACONS/ /722B/X22B/ /TABX22B/TAB722B/ ! ! 13.10 Format of specifies , ! not
. Remove the "AS X" syntax and correct the ! outer reference. sub *yts797.* // /AS X// /X.A/TV.A/ ! ! 5.2 list includes DEC. ! Replace column name DEC with DEK, not a reserved word. ! This column is not used in any programs. sub *cts5sch2.sql / DEC / / DEC DECIMAL/ DEK DECIMAL/ ! ! ---------------------------6.0.0 #3 changed 01-30-97 ! MANDATORY FOR: CHGSQL ! Thanks to Juergen Vollmer ! These errors occur only in the Interactive SQL test suite type. ! ! Remove violation of 13.1, Format of . ! The column name in a sort key must not contain the table name. sub *dml073.* /ORDER BY/ /STAFF.EMPNUM/1/ ! ! Remove violation of 11.20, Format of . ! Insert of CASCADE into last two DROP VIEW statements. sub *xts731.sql /DROP VIEW/;/ / ;/ CASCADE;/ ! ! In 20.2, Format of does not ! allow , so remove it from two queries. sub *xts732.sql /FOR READ ONLY/ /FOR READ ONLY// ! ! Semicolons are required in the format of in 20.1. ! Correct four typos by inserting semicolon before end of line. sub *yts759.sql /SET SESSION AUTHORIZATION/ -c /\n/;\n/ ! ! ---------------------------6.0.0 #4 changed 04-02-97 ! OPTIONAL FOR: CHGPC, CHGPCO, CHGPFO, CHGPPA, CHGPAD ! OPTIONAL FOR: CHGMC, CHGMCO, CHGMFO, CHGMPA, CHGMAD ! ! Modify subroutine NOSUBLCASS to accept as evidence of successful completion ! SQLSTATE value 01000 and positive SQLCODE values (excluding value 100). ! Reference SQL-92, Clause 22.1, paragraph 4. ! Reference SQL Technical Corrigendum 2, Clause 22.2, SQLCODE. ! ins> *.[ps]c /P213:/ /* A warning is acceptable when success is expected. */ if (strcmp(NORMSQ,"01000")== 0) strcpy(NORMSQ,"00000"); if (SQLCODE > 0 && SQLCODE != 100) SQLCODE = 0; rep *.[ps]co / EXIT./ if (NORMSQ = "01000") then MOVE "00000" to NORMSQ END-IF if( SQLCODE > 0 AND SQLCODE NOT = 100) then MOVE 0 to SQLCODE END-IF . ins> *.[ps]fo /213 *CONTINUE/ -p IF (NORMSQ .EQ. '01000') NORMSQ = '00000' ins> *.[ps]fo /CALL NOSUBC(SQLSTZ,NORMSQ)/ IF (SQLCOZ .GT. 0 .AND. SQLCOZ .NE. 100) SQLCOZ = 0 ins> *.[ps]ad /<>/ if (NORMSQ = "01000") then NORMSQ := "00000"; end if; if (SQLCODE > 0) and (SQLCODE /= 100) then SQLCODE := 0; end if; ins> *.[ps]pa /213:/ if (NRMQ = '01000') then NRMQ := '00000'; ins> *.[ps]pa /NOSUBCLASS(SSTATE, NRMQ);/ if (SQLC > 0) and (SQLC <> 100) then SQLC := 0; ! ! ---------------------------6.0.0 #5 changed 07-10-97 ! OPTIONAL FOR: CHGSQL ! ! Correct misleading comment. ! sub *cugtab.sql /HERD/ /ID HERD ****/ID CUGINI **/ ! ! ---------------------------6.0.0 #6 changed 07-25-97 ! TMCB Reference SQL600.002 ! MANDATORY FOR: CHGPC, CHGPCO, CHGPFO, CHGPPA, CHGPAD ! MANDATORY FOR: CHGMC, CHGMCO, CHGMFO, CHGMPA, CHGMAD ! ! Test 0853 will be made obsolete by TC3 removal of 13.3 GR 7 and GR 9 ! sub *reporta.* /DL#1/ /DL#1/0853/ ! ! ---------------------------6.0.0 #7 changed 10-3-97 ! MANDATORY FOR: CHGPC, CHGPCO, CHGPFO, CHGPAD ! MANDATORY FOR: CHGMC, CHGMCO, CHGMAD ! MANDATORY FOR: CHGSQL ! Thanks to Bengt Gunne for the next 7 corrections. ! ! Correction of interval literals ! Reference SQL2, Clause 5.3, SR 20 ! Literal must match specified precision. ! sub *dml10[67].* /DAY TO SECOND/ /13 0:10/13 0:10:0/ sub *dml11[23].* // /20:0/20 0/ ! ! Reference SQL2, Clause 10.1, SR 5 ! Default is 2 ! Other precisions must be specified ! sub *dml10[67].* /9999-11/ /YEAR TO MONTH/YEAR(4) TO MONTH/ ! ! ---------------------------6.0.0 #8 changed 10-3-97 ! MANDATORY FOR: CHGPC, CHGPCO, CHGPFO, CHGPAD ! MANDATORY FOR: CHGMC, CHGMCO, CHGMAD ! MANDATORY FOR: CHGSQL ! ! AS column name from SELECT not usable in WHERE clause ! Reference SQL2, Clause 7.6, SR 1 ! sub *dml114.* /FLATERstaff_fLATER/ -i /.WHATSHISNUMBER/.EMPNUM/ /.whatshisnumber/.empNUM/ ! ! ---------------------------6.0.0 #9 changed 10-3-97 ! MANDATORY FOR: CHGPC, CHGPCO, CHGPFO, CHGPAD ! MANDATORY FOR: CHGMC, CHGMCO, CHGMAD ! MANDATORY FOR: CHGSQL ! ! WITH GRANT OPTION on underlying tables needed to grant view ! Reference SQL2, Clause 11.36, SR 7 ! Fix by using grantable table and view names in CREATE VIEW ! sub *dml121.* /CREATE VIEW VERBOSE_PEOPLE/PNUM)/ /HU.STAFF/HU.STAFF3/ /HU.PROJ/HU.STAFF3/ /HU.WORKS/HU.VSTAFF3/ /SELECT EMPNUM/SELECT HUPROJ.EMPNUM/ /PTYPE = 'Design'/HUPROJ.GRADE < 13/ /PTYPE = ''Design''/HU.PROJ.GRADE < 13/ /.PNUM/.EMPNUM/ ! COBOL line continuation corrected for longer line. sub *dml121.*co /DISPLAY/ -c /AS HUPROJ/"\n DISPLAY " AS HUPROJ/ sub *dml121.*co /STAFF3 AS/ / / / ! ! ---------------------------6.0.0 #10 changed 10-3-97 ! MANDATORY FOR: CHGPC, CHGPCO, CHGPFO, CHGPAD ! MANDATORY FOR: CHGMC, CHGMCO, CHGMAD ! ! Remove redundant, nonstandard UNIQUE syntax in PRIMARY KEY ! Reference SQL2, Clause 11.7, Format of ! sub *xts758.* /PRIMARY KEY UNIQUE/ /PRIMARY KEY UNIQUE/PRIMARY KEY/ ! ! ---------------------------6.0.0 #11 changed 10-3-97 ! MANDATORY FOR: CHGPC, CHGPCO, CHGPFO, CHGPAD ! MANDATORY FOR: CHGMC, CHGMCO, CHGMAD ! MANDATORY FOR: CHGSQL ! ! ORDER BY column must be SELECTED ! Reference SQL2, Clause 13.1, SR 10 a ! Fix by ordering by the selected column and ! substituting column values in order to maintain sort order. ! sub *yts754.* // /ORDER BY numm/ORDER BY litt1/ /ORDER BY NUMM/ORDER BY LITT1/ /'z'/'x'/ /"z"/"x"/ /'A'/'y'/ /"A"/"y"/ /should be z;/should be x;/ /should be A;/should be y;/ ! ! ---------------------------6.0.0 #12 changed 10-3-97 ! MANDATORY FOR: CHGPC, CHGPCO, CHGPFO, CHGPAD ! MANDATORY FOR: CHGMC, CHGMCO, CHGMAD ! MANDATORY FOR: CHGSQL ! ! GRANT USAGE syntax on a domain requires keyword DOMAIN ! Reference SQL2, Clause 11.36, Format of ! sub *yts759.* /emp_nos TO/ -i /GRANT USAGE ON/GRANT USAGE ON DOMAIN/ ! ! ---------------------------6.0.0 #13 changed 10-9-97 ! MANDATORY FOR: CHGPC, CHGPCO, CHGPFO, CHGPAD ! MANDATORY FOR: CHGMC, CHGMCO, CHGMAD ! ! file CONCATBUF needed for test does not exist for user HU ! use table FLATER.CONCATBUF ! ins> *schema5* /CREATE TABLE CONCATBUF/ GRANT ALL PRIVILEGES ON CONCATBUF TO HU sub *schema5.smi /ON CONCATBUF TO HU / /HU /HU;/ sub *dml140.* / CONCATBUF/ / CONCATBUF/ FLATER.CONCATBUF/ ! and adjust COBOL line wrap sub *dml140.pco /FROM FLATER.CONCATBUF/ -c / FROM / FROM \n / ! ! ---------------------------6.0.0 #14 changed 10-14-97 ! MANDATORY FOR: CHGPC, CHGMC ! correct typo - missing semicolon ! sub *mp[ab]009.*c /TEd Version/ -c /)\n/);\n/ ! ! ---------------------------6.0.0 #15 changed 11-11-97 ! MANDATORY FOR: CHGSCH ! Thanks to Bengt Gunne for the next 11 corrections. ! ! GRANT USAGE syntax on a domain requires keyword DOMAIN ! Reference SQL2, Clause 11.36, Format of ! sub *cts5sch1.* /USAGE/ /GRANT USAGE ON numdom/GRANT USAGE ON DOMAIN numdom/ ! ! ---------------------------6.0.0 #16 changed 11-11-97 ! MANDATORY FOR: CHGPC, CHGPCO, CHGPFO, CHGPAD ! MANDATORY FOR: CHGMC, CHGMCO, CHGMAD ! ! Typo! Wrong variable used in second half of test! ! Modify test to use variable intended. ! sub *dml140.* /not affected by/END TEST0829/ /longst/dstmt/ /LONGST/DSTMT/ ! ! ---------------------------6.0.0 #17 changed 11-11-97 ! MANDATORY FOR: CHGPC, CHGPCO, CHGPFO, CHGPAD ! MANDATORY FOR: CHGMC, CHGMCO, CHGMAD ! ! The data type of a containing both ! and literal (of the form "? / 100") ! is the data type of the literal. ! Change the literal to have the precision required by test logic. ! Reference SQL2, Clause 17.6, GR 5 Case h) ! sub *dml09[56].* "? / 100, " "? / 100, "?/100.00," ! ! ---------------------------6.0.0 #18 changed 11-11-97 ! MANDATORY FOR: CHGPC, CHGPCO, CHGPFO, CHGPAD ! MANDATORY FOR: CHGMC, CHGMCO, CHGMAD ! MANDATORY FOR: CHGSQL ! ! Reference SQL2, Clause 10.1, SR 5 ! Default is 2 ! Other precisions must be specified ! sub *dml186.* /INSERT INTO TIMEPREC/'9999999' SECOND/ /' YEAR TO/' YEAR(7) TO/ /' MONTH,/' MONTH(7),/ /' DAY TO/' DAY(7) TO/ /' HOUR TO/' HOUR(7) TO/ /' MINUTE TO/' MINUTE(7) TO/ /' SECOND,/' SECOND(7),/ /' SECOND)/' SECOND(7))/ ! ! ---------------------------6.0.0 #19 changed 11-11-97 ! Remove this TEd change for Intermediate SQL testing. ! OPTIONAL FOR: CHGPC, CHGPCO, CHGPFO, CHGPAD ! OPTIONAL FOR: CHGMC, CHGMCO, CHGMAD ! OPTIONAL FOR: CHGSQL ! ! Remove an Intermediate SQL feature from a Transitional SQL test. ! Reference FIPS 127-2, Section 14.2, #28, LIKE enhancements. ! Relaxation of SQL2, Clause 8.5, LR 2 b, is an Intermediate SQL feature. ! Make the LIKE subtest optional, rather than promoting the entire test ! to Intermediate. The LIKE subtest is logically deleted by changing the LIKE ! clause to an = clause. (This is easier to specify for TEd than a delete.) ! The subtest is required, and not to be modified, for Intermediate SQL. ! sub *dml129.* /LIKE FAHRENHEIT/= FAHRENHEIT/ / 3/ 5/ /LIKE FAHRENHEIT/= FAHRENHEIT/ ! ! ---------------------------6.0.0 #20 changed 11-11-97 ! MANDATORY FOR: CHGPC, CHGPCO, CHGPFO, CHGPAD ! MANDATORY FOR: CHGMC, CHGMCO, CHGMAD ! MANDATORY FOR: CHGSQL ! ! Reference SQL2, Clause 11.37, SR 18 ! VIEW MUL_SCH created on explicit GRANT SELECT by HU. ! REVOKE FROM PUBLIC ... RESTRICT should succeed. ! Change expected result from failure to success. ! sub *dml140.* /schema1/violates 11.37/ /violates 11.37/fails to violate 11.37/ ins> *dml140.* /schema4/EXEC SQL EXECUTE/ #TEd HOOK# rep *dml140.[ps]c /#TEd HOOK#/SQLSTATE accepted/ CHCKOK (); rep *dml140.[ps]co /#TEd HOOK#/SQLSTATE accepted/ PERFORM CHCKOK rep *dml140.[ps]ad /#TEd HOOK#/SQLSTATE accepted/ CHCKOK; rep *dml140.pfo /#TEd HOOK#/SQLSTATE accepted/ CALL CHCKOK (SQLSTA, NORMSQ, SQLCOD, FLAG) ! ! ---------------------------6.0.0 #21 changed 11-11-97 ! MANDATORY FOR: CHGPC, CHGPCO, CHGPFO, CHGPAD ! MANDATORY FOR: CHGMC, CHGMCO, CHGMAD ! MANDATORY FOR: CHGSQL ! ! ORDER BY column must be SELECTED ! Reference SQL2, Clause 13.1, SR 10 a ! sub *dml135.* /DECLARE C13531/ORDER BY/ /MINUTE FROM HOURS)/MINUTE FROM HOURS), PNUM/ sub *dml135.* /FETCH C13531/ /:int2/:int2, :tchar/ /:INT2/:INT2, :TCHAR/ sub *dml135.* /DECLARE C13532/ORDER BY/ /SECONDS)/SECONDS), JOB_TYPE/ sub *dml135.* /FETCH C13532/ /:flt1/:flt1, :tchar/ /:FLT1/:FLT1, :TCHAR/ ! sub *xts798.* /DECLARE F /ORDER BY/ /HOURS)/HOURS), PNUM/ sub *xts798.* /FETCH F / /:indic1/:indic1, :uidx/ /:INDIC1/:INDIC1, :UIDX/ sub *xts798.* /DECLARE G /ORDER BY/ /SALARY/SALARY, PNUM/ sub *xts798.* /FETCH G / /:sal/:sal, :uidx/ /:SAL/:SAL, :UIDX/ ! ! tchar and uidx declarations needed in module language and Pascal procedures ! ! ! ---------------------------6.0.0 #22 changed 11-11-97 ! OPTIONAL FOR: CHGPC, CHGMC ! ! Declare functions properly to avoid compiler warnings. ! A recommendation, not a requirement, of the ANSI C standard. ! sub *ccc004s.*c // /lookup(uiddx)/void lookup(uiddx)/ /totalup()/void totalup()/ /pass0194()/void pass0194()/ /fail0194()/void fail0194()/ ins< *ccc004s.*c /long SQLCODE/ #include #include ins> *ccc004.*c /stdlib/ void lookup(); void totalup(); void pass0194(); void fail0194(); sub *ccc00[56].*c // -c /fetchrow()\n/void fetchrow()\n/ ins> *ccc00[56].*c /stdlib/ void fetchrow(); sub *ccc007.*c // -c /gosql()\n/void gosql()\n/ ins> *ccc007.* /stdlib/ void gosql(); ins> *ccc008.* /stdlib/ long get_num(); int fac(int); sub *ccc009s.*c // /ccc009sub()/void ccc009sub()/ ins> *ccc009.*c /stdlib/ void ccc009sub(); ! ! ---------------------------6.0.0 #23 changed 11-11-97 ! MANDATORY FOR: CHGPC, CHGPCO, CHGPFO, CHGPAD ! MANDATORY FOR: CHGMC, CHGMCO, CHGMAD ! ! A SET TRANSACTION statement must be executed ! when an SQL-transaction is not currently active. ! Reference SQL2, Clause 14.1, GR 1. ! Insert ROLLBACKs before the SET TRANSACTION statements. ! ins< *mpa01[23].pc /P137:/ EXEC SQL ROLLBACK WORK; ins< *mpa01[23].pc /P153:/ EXEC SQL ROLLBACK WORK; ins< *mpa01[23].pc /P173:/ EXEC SQL ROLLBACK WORK; rep *mpa013.pc /if (fails > 3)/SLEEEP (20);/ if (fails > 3) { SLEEEP (20); EXEC SQL ROLLBACK WORK; } ! ! ---------------------------6.0.0 #24 changed 11-11-97 ! OPTIONAL FOR: CHGPC, CHGPCO ! ! X/Open Profile: ! Version 2 CAE redefines SQLSTATE values. ! Old Version 1 format was S00ii (where i is a digit). ! New Version 2 format is 42Sii (where ii is preserved from the old value). ! Also, SQLSTATE 42000 is allowed instead of 42Sii. ! Fortunately, the text "S00" occurs only in SQLSTATE values in xop* programs. ! This TEd change is appropriate for Version 2 of the X/Open SQL standard. ! This TEd change is NOT appropriate for Version 1 of the X/Open SQL standard, ! and it should be omitted when testing for strict conformance to Version 1. ! sub *xop70[236].* /S00/ /S00/42S/ sub *xop70[236].* /42S/ /, it/ or '42000', it/ /!= 0/!= 0 && strcmp(SQLSTATE,"42000") != 0/ /") then/" AND SQLSTATE NOT = "42000") then/ / NOT = / NOT = / ! ! ---------------------------6.0.0 #25 changed 11-12-97 ! MANDATORY FOR: CHGPC, CHGPCO ! ! X/Open Profile: ! Escape clause allowed only in SQL statement text processed by ! PREPARE and EXECUTE IMMEDIATE ! Reference SQL 1992 CAE, Section 7.2.1 ! Change static SQL to dynamic SQL ! ! remove all previous escape clauses del *xop709.* /--(*/*)--/ ! ! Embedded C changes follow: ins> *xop709.pc /BEGIN DECLARE SECTION/ char SQLcommand[201]; ins> *xop709.pc /should execute successfully/ strcpy(SQLcommand,"--(* YEAR(1992), CONFORMANCE(1), \ UPDATE ECCO SET C1 = 'X' *)--"); EXEC SQL EXECUTE IMMEDIATE :SQLcommand; ins> *xop709.pc /escape clause should be supplied by the vendor/ /* Substitute vendor extension below. For purposes of this test, use */ /* an SQL statement where part of a valid SQL statement is escaped. */ strcpy(SQLcommand,\ "SELECT EMPNUM, --(* VENDOR(YourNameGoesHere),\ PRODUCT(YourProductGoesHere), YourExtensionGoesHere *)-- FROM STAFF"); EXEC SQL PREPARE XOPCURSOR FROM :SQLcommand; ins> *xop709.pc /escape clause should be skipped/ strcpy(SQLcommand,"INSERT INTO HU.STAFF(EMPNUM) --(* VENDOR(NoMatch), \ PRODUCT(MatchNot), This junk is intentional *)-- VALUES('A')"); EXEC SQL EXECUTE IMMEDIATE :SQLcommand; rep *xop709.pc /been executed/"xopen"/ CHCKOK(); if (strncmp(NORMSQ,"00000",5) !=0 && SQLCODE !=0) ! fix typo in printf sub *xop709.pc /printf/ /\=/=/ ! ! Embedded COBOL commands follow:: sub *xop709.* /escape clause should be skipped/line: It's junk/ "line: It's junk"lines: They're junk */ " ins> *xop709.pco /BEGIN DECLARE SECTION/ 01 SQLcommand PIC X(200). ins> *xop709.pco /should execute successfully/ MOVE "--(* YEAR(1992), CONFORMANCE(1), - " UPDATE ECCO SET C1 = 'X' *)--" TO SQLcommand EXEC SQL EXECUTE IMMEDIATE :SQLcommand END-EXEC ins> *xop709.pco /escape clause should be defined / * Substitute vendor extension in sample statement below. * For purposes of this test, use an SQL statement * where part of a valid SQL statement is escaped. MOVE "SELECT EMPNUM, - "--(* VENDOR(YourNameGoesHere), - " PRODUCT(YourProductGoesHere), - " YourExtensionGoesHere *)-- - " FROM STAFF" TO SQLcommand EXEC SQL PREPARE XOPCURSOR FROM :SQLcommand END-EXEC ins> *xop709.pco /escape clause should be skipped/ MOVE "INSERT INTO HU.STAFF(EMPNUM) --(* VENDOR(NoMatch), - "PRODUCT(MatchNot), - " This junk is intentional *)-- VALUES('A')" TO SQLcommand EXEC SQL EXECUTE IMMEDIATE :SQLcommand END-EXEC rep *xop709.pco /been executed/"xopen"/ PERFORM CHCKOK if (NORMSQ2 NOT = "00000" AND SQLCODE NOT = 0) then ! ! ---------------------------6.0.0 #26 changed 02-10-98 ! MANDATORY FOR: CHGPC, CHGPCO, CHGPFO, CHGPAD ! MANDATORY FOR: CHGMC, CHGMCO, CHGMAD ! Thanks to Bengt Gunne for the next 9 corrections. ! ! Allow extensions. Syntax error, warning, or success are all OK. ! Reference SQL2, subclause 23.3, "Exensions and options" ! sub *dml156.pc // /should be < 0/should not be 100/ /should be 42000/should be 42xxx, 00xxx, or 01xxx/ /SQLCODE >= 0/SQLCODE == 100/ /(NORMSQ, "42000", 5) != 0/(NORMSQ,"42000",5)!=0 && strncmp(NORMSQ,"00000",5)!=0/ ! ! For implementor-defined warnings, SQLSTATE starts with 01 ! and NORMSQ is changed to 00000. ! ! ---------------------------6.0.0 #27 changed 02-10-98 ! MANDATORY FOR: CHGPFO ! ! Correct FORTRAN syntax errors. ! Wrap SQL comment and literal correctly. ! Remove significant, erroneous blanks from FORTRAN literals. ! sub *xts701.pfo /1 HERE/ /1 HERE/1 -- HERE/ sub *xts729.pfo // / 2 1234/ 21234/ / 2 3456/ 23456/ / 2 5678/ 25678/ / 2 6789/ 26789/ / 2 8901/ 28901/ / 3 0123/ 30123/ / 3 5678/ 35678/ / 3 6789/ 36789/ sub *xts731.pfo / 1 'LONG/ -c /FFFFFFFFFF/FFFF\n 2FFFFFF/ ! ! ---------------------------6.0.0 #28 changed 02-10-98 ! MANDATORY FOR: CHGPC, CHGPCO, CHGPFO, CHGPAD ! MANDATORY FOR: CHGMC, CHGMCO, CHGMAD ! MANDATORY FOR: CHGSQL ! ! Clarify pass criteria. Program logic allows 19 or 20. ! sub *dml135.pc /should be 20/ /should be 20/should be 19 or 20/ ! ! ---------------------------6.0.0 #29 changed 02-10-98 ! MANDATORY FOR: CHGPC, CHGPCO, CHGPFO, CHGPAD ! MANDATORY FOR: CHGMC, CHGMCO, CHGMAD ! ! Remove illegal cast between DOUBLE PRECISION (approximate numeric type AN). ! and INTERVAL SECOND (date time type DT). ! Reference SQL2 17.9 GR 5.e and 6.10 SR4. ! sub *dml124.pc /TYPE = 8/ /TYPE = 8/TYPE=1, LENGTH=50, INDICATOR=-1, DATA=:dstmt/ ! ! ---------------------------6.0.0 #30 changed 02-10-98 ! MANDATORY FOR: CHGPC, CHGPCO, CHGPFO, CHGPAD ! MANDATORY FOR: CHGMC, CHGMCO, CHGMAD ! ! Successful insertion into column CH1B CHAR(1) requires shorter value. ! sub *dml094.pc /INSERT INTO CH1/ /VALUES ('FOO', 'FOO', ?)/VALUES ('FOO', 'F', ?)/ ! ! ---------------------------6.0.0 #31 changed 02-10-98 ! MANDATORY FOR: CHGPC, CHGPCO, CHGPFO, CHGPAD ! MANDATORY FOR: CHGMC, CHGMCO, CHGMAD ! MANDATORY FOR: CHGSQL ! ! Provide mandatory key word FROM in syntax. ! Reference SQL2, 13.3 Format of . ! sub *yts778.pc /data78 INTO/ /FETCH FIRST data78/FETCH FIRST FROM data78/ /FETCH NEXT data78/FETCH NEXT FROM data78/ ! ! ---------------------------6.0.0 #32 changed 02-10-98 ! MANDATORY FOR: CHGPC, CHGPCO, CHGPFO, CHGPAD ! MANDATORY FOR: CHGMC, CHGMCO, CHGMAD ! ! This change is virtually identical to change #9. ! WITH GRANT OPTION on underlying tables needed to grant view ! Reference SQL2, Clause 11.36, SR 7 ! Fix by using grantable table and view names in CREATE VIEW ! sub *dml122.pc /CREATE VIEW VERBOSE_PEOPLE/PNUM)/ /HU.STAFF/HU.STAFF3/ /HU.PROJ/HU.STAFF3/ /HU.WORKS/HU.VSTAFF3/ /SELECT EMPNUM/SELECT HUPROJ.EMPNUM/ /PTYPE = 'Design'/HUPROJ.GRADE < 13/ /PTYPE = ''Design''/HUPROJ.GRADE < 13/ /.PNUM/.EMPNUM/ ! COBOL line continuation corrected for longer line. sub *dml122.*co /CREATE VIEW VERBOSE_PEOPLE/< 13/ /HUPROJ, HU.VSTAFF3/HUPROJ,/ / WHERE HUPROJ.GRADE < 13/ HU.VSTAFF3 WHERE HUPROJ.GRADE < 13/ ! ! ---------------------------6.0.0 #33 changed 02-10-98 ! MANDATORY FOR: CHGPC, CHGPCO, CHGPFO, CHGPAD ! MANDATORY FOR: CHGMC, CHGMCO, CHGMAD ! ! Correct typo in interval literal. ! sub *dml136.pc /15.22/ /15.22/15:22/ ! ! ---------------------------6.0.0 #34 changed 02-10-98 ! MANDATORY FOR: CHGSCH ! ! Remove illegal
syntax from column definition. ! sub *schem12.std /FOREIGN KEY REFERENCES UNITS/ /FOREIGN KEY REFERENCES UNITS/REFERENCES UNITS/ ! ! ---------------------------6.0.0 #35 changed 03-06-98 ! MANDATORY FOR: CHGPCO ! ! correct typo: ! sub *dml164.pco /DISPALY/ /DISPALY/DISPLAY/ ! ! ! CAVEAT!!!! ! corrections number 26, 28, 29, 30, 31, 32 and 33 are applicable to ! all interfaces -- not just Embedded C, ! but corrections for other interfaces have not yet been debugged. ! These corrections will be re-issued with broader scope, when ! debugging is completed.