ISO/IEC JTC 1/SC 32 N 1862a Date: 2009-04-23 REPLACES: — ISO/IEC JTC 1/SC 32 Data Management and Interchange Secretariat: United States of America (ANSI) Administered by Farance Inc. on behalf of ANSI DOCUMENT TYPE Summary of Voting/Table of Replies TITLE Summary of Voting on 32N1822 CD 9075-2 Information technology - Database languages - SQL - Part 2: Foundation (SQL/Foundation) SOURCE SC32 Secretariat PROJECT NUMBER 1.32.03.07.02.00 STATUS WG3 is requested to resolve the comments. The document did obtain substantial support. REFERENCES ACTION ID. ACT REQUESTED ACTION DUE DATE Number of Pages 101 LANGUAGE USED English DISTRIBUTION P & L Members SC Chair WG Conveners and Secretaries Dr. Timothy Schoechle, Secretary, ISO/IEC JTC 1/SC 32 Farance Inc *, 3066 Sixth Street, Boulder, CO, United States of America Telephone: +1 303-443-5490; E-mail: [email protected] available from the JTC 1/SC 32 WebSite http://www.jtc1sc32.org/ *Farance Inc. administers the ISO/IEC JTC 1/SC 32 Secretariat on behalf of ANSI ISO/IEC JTC 1/SC 32 N1862a Summary of Voting on Document SC 32 N 1822 Title: Summary of Voting on 32N1822 CD 9075-2 Information technology Database languages - SQL - Part 2: Foundation (SQL/Foundation) Project: 1.32.03.07.02.00 “P” Member Australia Belgium Brazil Canada China Czech Republic Egypt Finland Germany Japan Korea, Republic of Portugal Sweden United Kingdom United States Total “P” “O” Member Austria Denmark France Italy Kazakhstan Netherlands, The Norway Russian Federation Switzerland Total “O” Approval Approval with Comments Disapprov al with Comments Abstention with Comments 1 1 1 1 1 1 1 1 6 0 1 1 4 Dr. Timothy Schoechle, Secretary, ISO/IEC JTC 1/SC 32 Farance Inc *, 3066 Sixth Street, Boulder, CO, United States of America Telephone: +1 303-443-5490; E-mail: [email protected] available from the JTC 1/SC 32 WebSite http://www.jtc1sc32.org/ *Farance Inc. administers the ISO/IEC JTC 1/SC 32 Secretariat on behalf of ANSI 0 COMMENTS: Canada No. See comments attached below: Japan No. See comments attached below: United Kingdom No. See comments attached below: United States No. See comments attached below: National Body CAN Comments — 2009-04-08 SEQ # Cmnt ID See Also Addressed By Severity Reference Description CD SQL/Framework P01-CAN-020 1-Major Technical P01-No specific location All Possible Problems and Editor’s Notes must be satisfactorily resolved and all problems discovered during the course of the ballot resolution process must be satisfactorily resolved. Solution P01-CAN-001 3-Major Editorial P01-Foreword None provided with comment. The Foreword refers to SQL parts that are NOT part of this (third) edition. In particular the text reads: ISO/IEC 9075 consists of the following parts, under the general title Information technology — Database languages — SQL: — Part 1: Framework (SQL/Framework) — Part 2: Foundation (SQL/Foundation) — Part 3: Call-Level Interface (SQL/CLI) — Part 4: Persistent Stored Modules (SQL/PSM) — Part 9: Management of External Data (SQL/MED) — Part 10: Object Language Bindings (SQL/OLB) — Part 11: Information and Definition Schema (SQL/Schemata) — Part 13: SQL Routines and Types Using the Java™ Programming Language (SQL/JRT) — Part 14: XML-Related Specifications (SQL/XML) We recommend that text be added to this part of the Foreword to notify the reader that only Parts 1, 2, 4, 11 and 14 are being revised as part of this edition. This change should also be made to the Forewords to the other parts as well. Solution None provided with comment. P01-CAN-002 3-Major Editorial P01-02.01, ISO and IEC standards The following normative references are INCORRECT since they are NOT part of this edition of ISO 9075: [ISO9075-3] ISO/IEC 9075-3:2008, Information technology — SEQ # Cmnt ID See Also Addressed By Severity Reference Description Database languages — SQL — Part 3: Call-Level Interface (SQL/CLI) [ISO9075-9] ISO/IEC 9075-9:2008, Information technology — Database languages — SQL — Part 9: Management of External Data (SQL/MED) [ISO9075-10] ISO/IEC 9075-10:2008, Information technology — Database languages — SQL — Part 10: Object Language Bindings (SQL/OLB) [ISO9075-13] ISO/IEC 9075-13:2008, Information technology — Database languages — SQL — Part 13: SQL Routines & Types Using the Java™ Programming Language (SQL/JRT) Solution P01-CAN-003 3-Major Editorial P01-04.02.04, SQL-client modules None provided with comment. This sub-clause makes a reference to SQL/CLI is which NOT part of this edition of ISO 9075: Exactly one SQL-client module is associated with an SQL-agent at any time. However, in the case of either direct binding style or SQL/CLI, this may a default SQL-client module whose existence is not apparent to the user. Solution P01-CAN-004 3-Major Editorial P0104.06.02.02, Collations Remove the text “or SQL/CLI”. This sub-clause contains the following text which references the “ISO 14561” standard that is NOT in the listed Normative References: Every collation shall be defined by or derived from an International Standard such as ISO/IEC 14561 or by a National Standard, or shall be an implementation-defined collation. First we should point out that the correct number of this standard is “ISO/IEC 14651”! There is a reference to ISO/IEC 14651 in this specification’s Bibliography SEQ # Cmnt ID See Also Addressed By Severity Reference Description but since the reference is in normative text we recommend the reference be moved to the Normative References. Note that the Reference in the Foundation is in the Normative References. Solution P01-CAN-005 3-Major Editorial None provided with comment. P01-04.08.01, This sub-clause contains references to parts 3 and 10 of ISO 9075 that Host Languages are not part of this edition: [ISO9075-2], [ISO9075-3], and [ISO9075-10] define bindings between an SQL-implementation and several programming languages, mostly languages for which there is an International Standard. — The Call-Level Interface (specified in [ISO9075-3]). In this case, the SQL-agent invokes one of a number of standard routines, passing appropriate arguments, such as a character string whose value is some SQL-statement. — Embedded SQL (specified in [ISO9075-2] and [ISO9075-10]). In this case, SQL-statements are coded into the application program; an implementation-dependent mechanism is then used to: - Generate from each SQL-statement an externally-invoked procedure. These procedures are collected together into a module, for subsequent use as an SQL-client module. In Object Language Bindings, described in [ISO9075-10], the roles of modules and procedures are served by classes and their methods. [ISO9075-10] specifies the actions of a method of an SQL-client class when it is invoked from a host program. Solution P01-CAN-006 3-Major P01-05.01, Overview None provided with comment. This sub-clause refers to SQL parts that are NOT part of this (third) SEQ # Cmnt ID See Also Addressed By Severity Editorial Reference Description edition. In particular the following text contains these incorrect references: [ISO9075-3], Call-level interface, specifies another mechanism of communication between an SQL-agent and an SQLimplementation. [ISO9075-9], Management of External Data, specifies significant additions to SQL that permit an SQL-agent to access data not under the control of SQL-servers in the SQL-environment. [ISO9075-10], Object Language Bindings, specifies the manner in which SQL statements can be embedded into Java programs. [ISO9075-13], Routines & Types Using the Java Programming Language, specifies the ability to invoke static methods written in the Java programming language as SQL-invoked routines and to use classes defined in the Java programming language as SQL structured types. Solution P01-CAN-007 3-Major Editorial P01-CAN-008 3-Major Editorial P01-CAN-009 3-Major Editorial None provided with comment. This sub-clause describes a SQL part that is NOT part of this (third) edition. P01-05.04, ISO/IEC 90753: Call Level Interface Solution (SQL/CLI)1 Host Languages None provided with comment. P01-05.06, This sub-clause describes a SQL part that is NOT part of this (third) ISO/IEC 9075edition. 9: Management of External Data Solution (SQL/MED) None provided with comment. P01-05.07, This sub-clause describes a SQL part that is NOT part of this (third) ISO/IEC 9075edition. 10: Object Language Solution Bindings None provided with comment. (SQL/OLB) SEQ # Cmnt ID P01-CAN-010 P01-CAN-011 P01-CAN-012 P01-CAN-013 P01-CAN-014 P01-CAN-015 See Also Addressed By Severity 3-Major Editorial 3-Major Editorial 3-Major Editorial 3-Major Editorial 3-Major Editorial 3-Major Editorial Reference P01-05.09, ISO/IEC 907513: Java Routines & Types Using the Java Programming Language (SQL/JRT) P0106.03.05.01, New and modified Clauses, Subclauses, and Annexes P0106.03.05.02, New and modified tables and figures P0106.03.05.04, New and modified Format items P0106.03.05.05, New and modified paragraphs and rules P01-07.01, SQL conformance summary Description This sub-clause describes a SQL part that is NOT part of this (third) edition. Solution None provided with comment. This sub-clause refers to the [ISO9075-3] part that is NOT part of this (third) edition. All references to this discontinued part should be removed from this sub-clause. Solution None provided with comment. This sub-clause refers to the [ISO9075-3] part that is NOT part of this (third) edition. All references to this discontinued part should be removed from this sub-clause. Solution None provided with comment. This sub-clause refers to the [ISO9075-3] part that is NOT part of this (third) edition. All references to this discontinued part should be removed from this sub-clause. Solution None provided with comment. This sub-clause refers to the [ISO9075-3] part that is NOT part of this (third) edition. All references to this discontinued part should be removed from this sub-clause. Solution None provided with comment. This sub-clause refers to the [ISO9075-3] part that is NOT part of this (third) edition. All references to this discontinued part should be removed from this sub-clause. Solution P01-CAN-016 4-Minor Editorial P01-08.04.04, Basic object support None provided with comment. The following text contains an extraneous “>” character that should be removed: — Feature S051, “Create ”> SEQ # Cmnt ID See Also Addressed By Severity Reference Description Solution P01-CAN-017 3-Major Editorial P01-08.05, SQL Flagger None provided with comment. This sub-clause refers to the several parts that are NOT part of this (third) edition. — Invocations of SQL/CLI routines. All references to discontinued parts should be removed from this subclause. Solution P01-CAN-018 3-Major Editorial P01-08.06.01, Requirements for SQL applications None provided with comment. This sub-clause refers to the several parts that are NOT part of this (third) edition. For example the following reference to SQL/CLI should be removed: NOTE 16 — Further details can be found in Annex F, “SQL feature taxonomy”, in [ISO9075-2], Annex F, “SQL feature taxonomy”, in [ISO9075-3], Annex F, “SQL feature taxonomy”, in [ISO9075-4], Annex F, “SQL feature taxonomy”, in [ISO9075-9], Annex F, “SQL feature taxonomy”, in [ISO9075-10], Annex F, “SQL feature taxonomy”, in [ISO9075-11], Annex F, “SQL feature taxonomy”, in [ISO9075-13], and Annex F, “SQL feature taxonomy”, in [ISO9075-14]. All references to these discontinued parts should be removed from this sub-clause. Solution P01-CAN-019 3-Major Editorial None provided with comment. P01-Annex E,, This Annex should contain the following incompatibility which is included Incompatibilities the corresponding Annex in Foundation since Profile were defined in this with ISO/IEC part: 9075:2008 In ISO/IEC 9075-1:2008, SQL Profiles were defined for Database Language SQL. In this edition of this part of ISO/IEC 9075, the definition of SQL Profiles has been eliminated. We believe that the incompatibility can also appear in Foundation. Solution None provided with comment. CD SQL/Foundation SEQ # Cmnt ID P02-CAN-007 See Also Addressed By Severity 1-Major Technical Reference P02-No specific location Description All Possible Problems and Editor’s Notes must be satisfactorily resolved and all problems discovered during the course of the ballot resolution process must be satisfactorily resolved. Solution P02-CAN-001 3-Major Editorial P02-Foreword None provided with comment. The Foreword refers to SQL parts that are NOT part of this (third) edition. In particular the text reads: ISO/IEC 9075 consists of the following parts, under the general title Information technology — Database languages — SQL: — Part 1: Framework (SQL/Framework) — Part 2: Foundation (SQL/Foundation) — Part 3: Call-Level Interface (SQL/CLI) — Part 4: Persistent Stored Modules (SQL/PSM) — Part 9: Management of External Data (SQL/MED) — Part 10: Object Language Bindings (SQL/OLB) — Part 11: Information and Definition Schema (SQL/Schemata) — Part 13: SQL Routines and Types Using the Java™ Programming Language (SQL/JRT) — Part 14: XML-Related Specifications (SQL/XML) We recommend that text be added to this part of the Foreword to notify the reader that only Parts 1, 2, 4, 11 and 14 are being revised as part of this edition. This change should also be made to the Forewords to the other parts as well. Solution P02-CAN-002 3-Major Editorial P02-03, Definitions, notations, and conventions None provided with comment. The sub-clause contains the markup as defined in the Framework to indicate which incremental and other parts modify this sub-clause: This Clause is modified by Clause 3, “Definitions, notations, and conventions”, in ISO/IEC 9075-3. This Clause is modified by Clause 3, “Definitions, notations, and conventions”, in ISO/IEC 9075-4. This Clause is modified by Clause 3, “Definitions, notations, and conventions”, in ISO/IEC 9075-10. SEQ # Cmnt ID See Also Addressed By Severity Reference Description This Clause is modified by Clause 3, “Definitions, notations, and conventions”, in ISO/IEC 9075-11. This Clause is modified by Clause 3, “Definitions, notations, and conventions”, in ISO/IEC 9075-13. This Clause is modified by Clause 3, “Definitions, notations and conventions”, in ISO/IEC 9075-14. This Clause is modified by Clause 3, “Definitions, notations, and conventions”, in ISO/IEC 9075-15. We recommend that markup for parts 3 (SQL/CLI), 10 (SQL/OLB), and 13 ISQL/JRT) be removed since these parts are not part of his edition. In general the only markup that should be shown should be for parts that are being included in this edition of ISO 9075. We also recommend that the markup for part 15 be removed since we do not know what this pertains to. We believe this would leave the following correct markup for this subclause: This Clause is modified by Clause 3, “Definitions, notations, and conventions”, in ISO/IEC 9075-4. This Clause is modified by Clause 3, “Definitions, notations, and conventions”, in ISO/IEC 9075-11. This Clause is modified by Clause 3, “Definitions, notations and conventions”, in ISO/IEC 9075-14. If this ballot comment is accepted then this type of change should be applied to ALL other sub-clauses in the Foundation. Solution P02-CAN-003 3-Major Editorial P02-04.01.02, Naming of predefined types None provided with comment. The sub-clause contains markup to indicate which incremental and other parts modify this sub-clause but this markup is NOT defined in the Framework: SQL defines predefined data types named by the following <key word>s: 09 14 SEQ # Cmnt ID See Also Addressed By Severity Reference Description The leading text “09 14” should be defined in the Framework so that readers know what it means. In addition we recommend that this special markup for parts 3 (SQL/CLI), 10 (SQL/OLB), and 13 ISQL/JRT) be removed since these parts are not part of his edition. In general the only markup that should be shown should be for parts that are being included in this edition of ISO 9075. Solution P02-CAN-004 2-Minor Technical None provided with comment. P02-13.04, Calls The sub-clause contains a reference to SQL/CLI that can be removed this to an ISO 9075-3 is not part of this edition of ISO 9075: <externallyinvoked CLI_SPECIFIC_CONDITION_NO_SUBCLASS: procedure> constant SQLSTATE_TYPE :="HY000"; Solution P02-CAN-005 1-Major Technical None provided with comment. This Annex contains two defects that are not yet fixed: P02-Annex G, Defect Reports not addressed 1) Subclause 10.4, “<routine invocation>”: in this edition of There is no definition of how to pass values of type BOOLEAN or ISO/IEC 9075 of large object types as arguments to invocations of external routines. More generally, the question of how to convert a value of any SQL type to a value of an appropriate host language type at the interface to an SQL-invoked routine is not addressed. The rules in Subclause 13.4, “Calls to an <externally-invoked procedure>”, are appropriate, but they are not referenced by the rules of Subclause 10.4, “<routine invocation>”. 2) Subclause 21.1, “<embedded SQL host program>”: SR 21)h)i)6) and SR 21)l)i)3)B)VI) both refer to the SQL data type that corresponds to a given host language data type, as determined by application of the rules in Subclause 13.6, “Data type correspondences”. These two syntax rules are sometimes ambiguous, because Subclause 13.6, “Data type correspondences” SEQ # Cmnt ID See Also Addressed By Severity Reference Description does not always give exactly one SQL data type for a given host language type, as can be seen by inspection of the data type correspondence tables given in that Subclause. For example, Table 17, “Data type correspondences for C”, in which the C data type “pointer to long” maps to both INTEGER and BOOLEAN. These defects should be fixed before the specification advances to FCD. Solution P02-CAN-006 3-Major Editorial P02Bibiliography None provided with comment. The following references are INCORRECT since they are NOT part of this edition of ISO 9075: [ISO9075-3] ISO/IEC 9075-3:2008, Information technology — Database languages — SQL — Part 3: Call-Level Interface (SQL/CLI) [ISO9075-9] ISO/IEC 9075-9:2008, Information technology — Database languages — SQL — Part 9: Management of External Data (SQL/MED) [ISO9075-10] ISO/IEC 9075-10:2008, Information technology — Database languages — SQL — Part 10: Object Language Bindings (SQL/OLB) [ISO9075-13] ISO/IEC 9075-13:2008, Information technology — Database languages — SQL — Part 13: SQL Routines & Types Using the Java™ Programming Language (SQL/JRT) Solution None provided with comment. CD SQL/PSM P04-CAN-004 1-Major Technical P04-No specific location All Possible Problems and Editor’s Notes must be satisfactorily resolved and all problems discovered during the course of the ballot resolution process must be satisfactorily resolved. Solution SEQ # Cmnt ID P04-CAN-001 See Also Addressed By Severity 3-Major Editorial Reference P04-Foreword Description None provided with comment. The Foreword refers to SQL parts that are NOT part of this (third) edition. In particular the text reads: ISO/IEC 9075 consists of the following parts, under the general title Information technology — Database languages — SQL: — Part 1: Framework (SQL/Framework) — Part 2: Foundation (SQL/Foundation) — Part 3: Call-Level Interface (SQL/CLI) — Part 4: Persistent Stored Modules (SQL/PSM) — Part 9: Management of External Data (SQL/MED) — Part 10: Object Language Bindings (SQL/OLB) — Part 11: Information and Definition Schema (SQL/Schemata) — Part 13: SQL Routines and Types Using the Java™ Programming Language (SQL/JRT) — Part 14: XML-Related Specifications (SQL/XML) We recommend that text be added to this part of the Foreword to notify the reader that only Parts 1, 2, 4, 11 and 14 are being revised as part of this edition. This change should also be made to the Forewords to the other parts as well. Solution P04-CAN-002 4-Minor Editorial None provided with comment. P04-18.07, This sub-clause contains the following text with the word “clause” ROUTINES view misspelled: Replace the outermost WHERE cluase of the VIEW definition with: Solution P04-CAN-003 1-Major Technical None provided with comment. This Annex contains one defect that are not yet fixed: P04-Annex G, Defect Reports not addressed 1) Subclause 10.3, “<revoke statement>” in this edition of This subclause extends Subclause 12.7, “<revoke statement>”, in ISO/IEC 9075 [ISO9075-2], but fails to make any extension to GR 19) of that Subclause to take into account the fact that the <triggered action> of a trigger might be an SQL-control statement that SEQ # Cmnt ID See Also Addressed By Severity Reference Description includes (for example) a <scalar subquery> that references some schema object. Thus, the Syntax and General Rules of an SQLprocedure statement that would cause destruction of such a schema object do not necessarily take into account that some trigger might cease to be valid as a result of that destruction. These defects should be fixed before the specification advances to FCD. Solution None provided with comment. CD SQL/Schemata P11-CAN-003 1-Major Technical P11-No specific location All Possible Problems and Editor’s Notes must be satisfactorily resolved and all problems discovered during the course of the ballot resolution process must be satisfactorily resolved. Solution P11-CAN-001 3-Major Editorial P11-Foreword None provided with comment. The Foreword refers to SQL parts that are NOT part of this (third) edition. In particular the text reads: ISO/IEC 9075 consists of the following parts, under the general title Information technology — Database languages — SQL: — Part 1: Framework (SQL/Framework) — Part 2: Foundation (SQL/Foundation) — Part 3: Call-Level Interface (SQL/CLI) — Part 4: Persistent Stored Modules (SQL/PSM) — Part 9: Management of External Data (SQL/MED) — Part 10: Object Language Bindings (SQL/OLB) — Part 11: Information and Definition Schema (SQL/Schemata) — Part 13: SQL Routines and Types Using the Java™ Programming Language (SQL/JRT) — Part 14: XML-Related Specifications (SQL/XML) We recommend that text be added to this part of the Foreword to notify the reader that only Parts 1, 2, 4, 11 and 14 are being revised as part of this edition. This change should also be made SEQ # Cmnt ID See Also Addressed By Severity Reference Description to the Forewords to the other parts as well. Solution P11-CAN-002 3-Major Editorial P02-03, Definitions, notations, and conventions None provided with comment. The sub-clause contains the markup as defined in the Framework to indicate which incremental and other parts modify this sub-clause: This Clause is modified by ISO/IEC 9075-4. This Clause is modified by ISO/IEC 9075-9. This Clause is modified by ISO/IEC 9075-13. This Clause is modified by ISO/IEC 9075-14. This Clause is modified by ISO/IEC 9075-15. Clause 18, “Information Schema”, in Clause 24, “Information Schema”, in Clause 13, “Information Schema”, in Clause 20, “Information Schema”, in Clause 12, “Information Schema”, in We recommend that markup for part 13 ISQL/JRT) be removed since this part is not part of his edition. In general the only markup that should be shown should be for parts that are being included in this edition of ISO 9075. We also recommend that the markup for part 15 be removed since we do not know what this pertains to. This change should be made throughout this part and other parts of this Edition. Solution None provided with comment. CD SQL/XML P14-CAN-008 1-Major Technical P14-No specific location All Possible Problems and Editor’s Notes must be satisfactorily resolved and all problems discovered during the course of the ballot resolution process must be satisfactorily resolved. Solution P14-CAN-001 3-Major Editorial P14-Foreword None provided with comment. The Foreword refers to SQL parts that are NOT part of this (third) edition. In particular the text reads: SEQ # Cmnt ID See Also Addressed By Severity Reference Description ISO/IEC 9075 consists of the following parts, under the general title Information technology — Database languages — SQL: — Part 1: Framework (SQL/Framework) — Part 2: Foundation (SQL/Foundation) — Part 3: Call-Level Interface (SQL/CLI) — Part 4: Persistent Stored Modules (SQL/PSM) — Part 9: Management of External Data (SQL/MED) — Part 10: Object Language Bindings (SQL/OLB) — Part 11: Information and Definition Schema (SQL/Schemata) — Part 13: SQL Routines and Types Using the Java™ Programming Language (SQL/JRT) — Part 14: XML-Related Specifications (SQL/XML) We recommend that text be added to this part of the Foreword to notify the reader that only Parts 1, 2, 4, 11 and 14 are being revised as part of this edition. This change should also be made to the Forewords to the other parts as well. Solution P14-CAN-002 3-Major Editorial P14-02.02, Other international standards None provided with comment. The following entries are confusing and possibly incorrect: [Namespaces] is used to reference either [Namespaces 1.0] or [Namespaces 1.1] when there is no significant difference between the two for the purposes of a given citation. [Namespaces 1.0] (Recommendation) Namespaces in XML 1.0 (Second Edition), First published 14 January 1999, revised 16 August 2006 http://www.w3.org/TR/2006/REC-xml-names-20060816 [Namespaces 1.1] (Recommendation) Namespaces in XML 1.1 (Second Edition), First published 4 February 2004, revised 16 August 2006 http://www.w3.org/TR/2006/REC-xml-names-20060816 SEQ # Cmnt ID See Also Addressed By Severity Reference Description The titles of these references appear to be different but the link to the W3C site is the same. The link for the second reference should perhaps be: http://www.w3.org/TR/2006/REC-xml-names11-20060816. Solution P14-CAN-004 2-Minor Technical P14-02.02, Other international standards See comment. This specification refers to an out of date version of the XQuery Update language: [XQueryUpdate] (Candidate Recommendation) XQuery Update Facility 1.0, W3C Working Draft, 14 March 2008 http://www.w3.org/TR/xquery-update-10/ Although this document is still in the W3C CR stage, we recommend that that status be tracked during processing of this part so that this reference can be updated in the referenced material advances to Recommendation status. Solution P14-CAN-005 2-Minor Technical None provided with comment. This sub-clause includes the following definition: P14-03.01.03, Definitions provided in Part 3.1.3.8 URI: Uniform Resource Identifier as defined in 14 [RFC2396], as updated by [RFC2732]. There are no references provided for [RFC2396] and [RFC2732]. We believe they may have been replaced by the reference to [RFC3986]. Solution P14-CAN-006 3-Major Editorial P14-Annex D None provided with comment. This Annex includes the following text which we believe needs to be corrected and/or replaced: (Invalid use of NoAdditional: Please report this to the Editor) SEQ # Cmnt ID See Also Addressed By Severity Reference Description Solution P14-CAN-007 3-Major Editorial P14-Annex E None provided with comment. This Annex includes the following text which we believe needs to be corrected and/or replaced: (Invalid use of NoAdditional: Please report this to the Editor) Solution None provided with comment. Ballot comments on SC32 N 1822: ISO/IEC CD 9075-2:201x(E) SQL/Foundation JPN-P02-001 3-Major Editorial 4.2.1 Introduction to character strings The first sentence of the 5th paragraph is not appropriate, because NATIONAL CHARACTER specifies not only a character set but also a data type. Solution Replace the 5th paragraph with: JPN-P02-002 4-Minor Editorial 4.2.6 Collations The <key word>s NATIONAL CHARACTER are used to specify the character string type with an implementation-defined character set. Special syntax (N'string') is provided for representing literals in that character set. The phrase “The following supported collation names” is desirable rather than “The supported collation names” in the first sentence of the second paragraph, like subclause 4.2.7. Solution Replace the second paragraph with: JPN-P02-003 4-Minor Editorial 4.2.7 Character sets The following supported collation names are specified as part of ISO/IEC 9075: — SQL_CHARACTER is an implementation-defined collation. It is applicable to the SQL_CHARACTER character repertoire. — GRAPHIC_IRV is a collation in which the ordering is determined by treating the code points defined by [ISO646] as unsigned integers. It is applicable to the GRAPHIC_IRV character repertoire. ….. In the dashed list in the 2nd paragraph, only UTF8 is described as the name of a character set. It is desirable to describe in the same way as other character sets. Solution Page 20 of 127 ISO/IEC JTC1/SC32/WG3 Replace the 9th element in the dashed list in the 2nd paragraph with: JPN-P02-004 1-Major 4.14.6, Technical Operations involving tables ….. — UTF32 is a character set whose repertoire is UCS and whose character encoding form is UTF32. It is implementationdefined whether the name of its default collation is UCS_BASIC or UNICODE. — UTF16 is a character set whose repertoire is UCS and whose character encoding form is UTF16. It is implementationdefined whether the name of its default collation is UCS_BASIC or UNICODE. — UTF8 is the name of a character set whose repertoire is UCS and whose character encoding form is UTF8. It is implementation-defined whether the name of its default collation is UCS_BASIC or UNICODE. There are no description that the primary effects of a <delete statement: positioned>, a <delete statement: searched>, an <update statement: positioned> and an <update statement: searched> on a system-versioned table are those only for current system versions and don’t affect for any historical system versions. Solution None provided with comment. JPN-P02-005 4-Minor Editorial 4.17.3 Table The 13th paragraph does not involve the dashed list item for the constraints case that MATCH SIMPLE is specified. Solution Replace the 13th paragraph with: A referential constraint is satisfied if one of the following conditions is true, depending on the <match type> specified in the <referential constraint definition>: Page 21 of 127 ISO/IEC JTC1/SC32/WG3 JPN-P02-006 3-Major Editorial 4.18.4 Known functional dependencie s in a transition table — If no <match type> was specified or MATH SIMPLE was specified then, for each row R1 of the referencing table, either at least one of the values of the referencing columns in R1 shall be a null value, or the value of each referencing column in R1 shall be equal to the value of the corresponding referenced column in some row of the referenced table. — If MATCH FULL was specified then, ….. — If MATCH PARTIAL was specified then, ….. The third sentence of 4.18.4 is unnecessary, because it states the prohibited case due to SR13) of 11.48 <trigger definition>, which .reads: 13) If BEFORE is specified, then: a) ….. b) Neither OLD TABLE nor NEW TABLE shall be specified. Solution JPN-P02-007 3-Major Editorial JPN-P02-008 JPN-P02-198 3-Major Editorial JPN-P02-009 Page 22 of 127 3-Major 4.18.7 Known functional dependencie s in a <table primary> 4.18.15 Known functional dependencie s in a <query expression>, Annex B 4.27.4, None provided with comment. The term “ordinality column” in the last item of the dashed list is not defined anywhere in the standards.. Solution None provided with comment. The second sentence of the first paragraph should be added in Annex B. Solution Insert the following item immediately after 16)a) of Annex B: b) If RECURSIVE is specified, then the BPK-sets, BUCsets, and non-axiomatic known functional dependencies are implementation-defined. The indication specified in GR3)v) of subclause 11.51, quoted ISO/IEC JTC1/SC32/WG3 Editorial Routine below, is not included in dashed list in 4.27.4. descriptor, 11.59 <SQLv) 04 The routine descriptor includes an indication that the invoked routine is a schema-level routine. routine> The indication mentioned in this rule corresponds to SCHEMA_LEVEL_ROUTINE column in ROUTINES base table specified in Part11. Because the domain of the column is YES_OR_NO, the phrase “an indication of whether …..” is appropriate rather than “an indication that …”. Solution 1. Add the following item to the dashed list in 4.27.4. – An indication of whether the routine is a schemalevel routine. 2. Replace GR3)v) of 11.59 with: v) 04 The routine descriptor includes an indication that of whether the routine is a schema-level routine. JPN-P02-010 4-Minor Editorial 6.1, <data type> The terms “row data type” and “boolean data type” should be “row type” and “boolean type” in SR45) and SR46), respectively, because terms “row type” and “boolean type” are used elsewhere in the standards. Solution Replace SR45) and SR46) with: JPN-P02-011 Page 23 of 127 2-Minor 6.1, <data Technical type>, 45) <row type> specifies the row data type. 46) BOOLEAN specifies the boolean data type. The degree of a row type is initially set to 0(zero) in GR17) of subclause 6.1 <data type>, which reads: ISO/IEC JTC1/SC32/WG3 6.2 <field definition> 17) For a <row type> RT, the degree of RT is initially set to 0 (zero). The General Rules of Subclause 6.2, “<field definition>”, specify the degree of RT during the definition of the fields of RT. The degree is increased in GR2) of subclause 6.2, which reads: 2) The degree of the row type RT being defined in the simply containing <row type> is increased by 1 (one). Therefore, subclause 6.2 is for each field definition immediately contained in the row type, like GR5)c) of subclause 11.3 <table definition> for column definitions in a table definition, which reads: c) The column descriptors of every column of T, according to the Syntax Rules and General Rules of Subclause 11.4, “<column definition>”, applied to the <column definition>s contained in TEL, in the order in which they were specified. In addition, GR3)c) of subclause 6.2 should mention the degree increased in GR2). Solution 1. Replace GR18) of 6.1 with: 18) If the <data type> is a <row type>, then a row type descriptor is created. The row type descriptor includes a field descriptor for every <field definition> of the <row type>, according to the Syntax Rules and General Rules of Subclause 6.2, “<field definition>”, applied to the <field definition>s, in the order in which they were specified. Page 24 of 127 ISO/IEC JTC1/SC32/WG3 2. Replace GR3)c) of 6.2 with: c) The ordinal position of the field, which is equal to the degree of in RT. JPN-P02-012 3-Major Editorial 6.4 <value specification > and <target specification >, Annex A CR8) reads: 8) Without Feature B031, “Basic dynamic SQL”, conforming SQL language shall not contain a <general value specification> that contains a <dynamic parameter specification>. This rule leads to the undesirable conformance that an SQL language may contain <target specification> that contains a <dynamic parameter specification> without B031, because it does not mention <dynamic parameter specification> contained in <target specification>. Solution Replace CR8) of 6.4 with: 8) Without Feature B031, “Basic dynamic SQL”, conforming SQL language shall not contain a <general value specification> that contains a <dynamic parameter specification>. Replace 9)b)i) of Annex A with: i) Without Feature B031, “Basic dynamic SQL”, conforming SQL language shall not contain a <general value specification> that contains a <dynamic parameter specification>. JPN-P02-013 Page 25 of 127 3-Major Editorial 6.11, <case expression> There are no conformance rules for <character like predicate part 2>, <octet like predicate part 2>, <similar predicate part 2>, ISO/IEC JTC1/SC32/WG3 <regex like predicate part 2>, <normalized predicate part 2>,| <match predicate part 2>, <overlaps predicate part 2>, <distinct predicate part 2>, <member predicate part 2>, <submultiset predicate part 2>, <set predicate part 2>, <type predicate part 2> in <when operand>. It is desirable to require the Feature ID for each kind of predicate. While a predicate is not allowed to be specified without the corresponding Feature ID, a part of the predicate is allowed without that Feature ID. CR1 of subclause 8.6, for example, prohibits to specify <similar predicate> without Feature T141, “SIMILAR predicate”. It does not, however, prohibit to specify <similar predicate part 2>. Solution JPN-P02-014 4-Minor Editorial 6.12 <cast specification > None provided with comment. Undefined symbol “P” appears in GR19)d)ii). Solution Replace GR19)d) with: d) If SD is interval and TD and SD have different interval precisions, then let P and Q be the most and least significant <primary datetime field>s of TD, respectively. i) Let Y be the result of converting SV to a scalar in units Q according to the natural rules for intervals as defined in the Gregorian calendar (that is, there are 60 seconds in a minute, 60 minutes in an hour, 24 hours in a day, and 12 months in a year). ii) Normalize Y to conform to the <interval qualifier> “P TO Q” of TD (again, observing the rules that there are 60 seconds in a minute, 60 minutes in an hour, 24 hours in a day, and 12 months in a year). Whether to truncate or round in the least significant field of the result is implementation-defined. If this would result in loss of Page 26 of 127 ISO/IEC JTC1/SC32/WG3 JPN-P02-015 4-Minor Editorial 6.21 <method reference> precision of the leading datetime field of Y, then an exception condition is raised: data exception — interval field overflow. iii) TV is the value of Y. The term “declared type” should be used rather than “data type” on the top of SR1) and SR4), because those are static types. Solution Replace SR1) and the lead text of SR4) with: 1) The data declared type of the <value expression primary> VEP shall be a reference type and the scope included in its reference type descriptor shall not be empty. JPN-P02-016 3-Major Editorial 6.25 <value expression> 4) The data declared type of <method reference> is the data type of the expression: SR7)i) and j) read: i) A <member predicate> simply containing a <row value predicand> RVP and a <multiset value expression> MVP such that the declared type of the only field F of RVP and the element type of MVP have corresponding constituents such that one constituent is datetime with time zone and the other is datetime without time zone. j) A <submultiset predicate> simply containing a <row value predicand> RVP and a <multiset value expression> MVP such that the declared type of the only field F of RVP and the declared type of MVP have corresponding constituents such that one constituent is datetime with time zone and the other is datetime without time zone. While the phrase “the element type of MVP” is used in SR7)i), “the declared type of MVP” is used in SR7)j) as the corresponding phrase. The same phrase should be used. Page 27 of 127 ISO/IEC JTC1/SC32/WG3 Solution JPN-P02-017 4-Minor Editorial 6.29 <string value function> None provided with comment. 1. A term “maximum variable length” is used in SR7)b), SR13)b), SR18)a), and SR19)b)i). According to 4.2.1, however, “maximum length” is the correct term instead of “maximum variable length”. 2. A term “fixed” or “fixed length” is used for the length of a fixedlength character string in SR13)b), SR18)a), and SR19)b)i). The term “length” means, however, the length of a fixed-length string according to 4.2.1, while “fixed-length” is used for characteristic of a character string type. 3. In SR7)b)i), the first <character value expression> may have a fixed-length character type. So, “the maximum variable length of the first <character value expression>” should be “the length or maximum length”. Solution 1. Replace SR7)b) with: b) Case: i) If the declared type of the first <character value expression> is fixed-length character string or variablelength character string, then the declared type of the <regular expression substring function> is variablelength character string with maximum length equal to the length or maximum variable length of the first <character value expression>. ii) Otherwise, the declared type of the <regular expression substring function> is a character large object type with maximum length equal to the maximum variable length of the first <character value expression>. 2. Replace SR13)b) with: Page 28 of 127 ISO/IEC JTC1/SC32/WG3 b) Case: i) If the declared type of <character value expression> is fixed-length character string or variable length character string, then the declared type of the <trim function> is variable-length character string with maximum length equal to the fixed length or maximum variable length of the <trim source>. ii) Otherwise, the declared type of the <trim function> is a character large object type with maximum length equal to the maximum variable length of the <trim source>. 3. Replace SR18)a) with: a) If DTBVE is fixed-length binary string or variable-length binary string, then variable-length binary string type with maximum length equal to the fixed length or maximum variable length of DTBVE. 4. Replace SR19)b)i) with: i) If the declared type of <binary value expression> is fixedlength binary string or variable-length binary string, then the declared type of the <binary trim function> is variable-length binary string type with maximum length equal to the fixed length or maximum variable length of the <binary trim source>. JPN-P02-018 4-Minor Editorial 6.29 <string value function> The phrase of “the maximum length of the <binary value expression>” in SR18)b) should be similar to the corresponding phrase in SR18)a) which uses the symbol DTBVE. Solution b) Otherwise, binary large object string type with maximum Page 29 of 127 ISO/IEC JTC1/SC32/WG3 JPN-P02-019 3-Major Editorial 6.29 <string value function>, Annex F length equal to the maximum length of the <binary value expression> DTBVE. The feature name “SUBSTRING_REGEXP” for F844 mentioned in CR11) is a little bit different from “SUBSTRING_REGEX function” in Table 37 of Annex F. The feature name “TRANSLATE_REGEX” for F845 mentioned in CR13) is a little bit different from “TRANSLATE_REGEX function” in Table 37 of Annex F. Solution JPN-P02-020 4-Minor Editorial 6.38 <multiset value expression> None provided with comment. Although the first operand of MULTISET EXCEPT is <multiset value expression> and the second operand is <multiset term>, the description of SR4) does not correspond with it. Solution Replace the lead text of SR4) with: JPN-P02-021 2-Minor 7.1 <row Technical value constructor> 4) If ME is a <multiset value expression> that immediately contains MULTISET EXCEPT, then let OP1 be the first operand (the <multiset term value expression>) and let OP2 be the second operand (the <multiset primary term>). CR7), which is quoted below, mentions the <contextually typed row value constructor> that is a <row subquery>. 7) Without Feature F641, “Row and table constructors”, conforming SQL language shall not contain a <contextually typed row value constructor> that is a <row subquery>. The following BNF of <contextually typed row value constructor> defined in 7.1, “<row value constructor>”, however, does not contain <row subquery>, and therefore CR7) is unnecessary. Otherwise, <row subquery> is missing in alternatives in the BNF. <contextually typed row value constructor> ::= Page 30 of 127 ISO/IEC JTC1/SC32/WG3 <common value expression> | <boolean value expression> | <contextually typed value specification> | <left paren> <contextually typed value specification> <right paren> | <left paren> <contextually typed row value constructor element> <comma> <contextually typed row value constructor element list> <right paren> | ROW <left paren> <contextually typed row value constructor element list> <right paren> Solution JPN-P02-022 4-Minor Editorial 7.6 <table reference> None provided with comment. It is desirable to clarify the connection between “<table reference>TR” and “immediately contained <table factor> or <joined table>” in GR3)f). Solution Replace GR3)f) with: JPN-P02-023 4-Minor Editorial 7.12 <query specification > f) The result of a <table reference> TR is the result of its immediately contained <table factor> or <joined table>. An unnecessary right parenthesis appears the very end of SR8)a). Solution Replace SR8)a) with: a) If <all fields column name list> AFCNL is specified, then the number of <column name>s simply contained in AFCNL shall be n. Let AFCNi, 1 (one) ≤ i ≤ n, be these <column name>s in order from left to right. AFR is equivalent to VEP . F1 AS AFCN1, ... , VEP Page 31 of 127 ISO/IEC JTC1/SC32/WG3 JPN-P02-024 4-Minor Editorial 7.13 <query expression> . Fn AS AFCNn) The <query expression>at the end of the first sentence of SR3)e), which is shown below, is the outmost query expression. If the <with clause> is non-recursive, then for all i between 1 (one) and n, the scope of the <query name> WQN immediately contained in the i-th <with list element> WLEi is the <query expression> simply contained in every <with list element> WLEk, where k ranges from i+1 to n, and the <query expression body> immediately contained in <query expression>. For clearness, the symbol QE defined in SR1) should be used rather than <query expression>. Solution Replace SR2)e) with: JPN-P02-025 3-Major Editorial 7.13 <query expression> e) If the <with clause> is non-recursive, then for all i between 1 (one) and n, the scope of the <query name> WQN immediately contained in the i-th <with list element> WLEi is the <query expression> simply contained in every <with list element> WLEk, where k ranges from i+1 to n, and the <query expression body> immediately contained in <query expression> QE. …… Which <query expression> is indicated by the <query expression> in the lead text of SR3)g), which is shown below, is ambiguous, because a <query expression> may be nested. Solution Replace the lead text of SR3)g) with: g) For every <with list element> WLE, let WQE be the <query Page 32 of 127 ISO/IEC JTC1/SC32/WG3 JPN-P02-026 3-Major Editorial 7.13 <query expression> expression> specified by simply contained in WLE and let WQT be the table defined by WQE. SR3)i)iii)6) mentions <qualified join> that immediately contains a <table factor>. Such a <table factor>, however, cannot be immediately contained according to BNF of <qualified join>, which reads: <qualified join> ::= { <table reference> | <partitioned join table> } [ <join type> ] JOIN { <table reference> | <partitioned join table> } <join specification> Solution Replace SR3)i)iii)6) with: JPN-P02-027 3-Major Editorial 7.13 <query expression> 6) WQEi shall not contain a <qualified join> QJ in which: A) QJ immediately contains a <join type> that specifies FULL and a <table reference> or <table factor><partitioned join table> that contains a <query name> referencing WQNj. B) QJ immediately contains a <join type> that specifies LEFT and a <table factor><partitioned join table> following the <join type> that contains a <query name> referencing WQNj. C) QJ immediately contains a <join type> that specifies RIGHT and a <table reference> preceding the <join type> that contains a <query name> referencing WQNj. SR3)i)iii)7) mentions <natural join> that immediately contains a <table primary>. Such a <table primary>, however, cannot be immediately contained according to BNF of <natural join>, which reads: <natural join> ::= Page 33 of 127 ISO/IEC JTC1/SC32/WG3 { <table reference> | <partitioned join table> } NATURAL [ <join type> ] JOIN { <table factor> | <partitioned join table> } Solution Replace SR3)i)iii)7) with: JPN-P02-028 4-Minor Editorial 7.13 <query expression> 7) WQEi shall not contain a <natural join> QJ in which: A) QJ immediately contains a <join type> that specifies FULL and a <table reference> or <table primary><partitioned join table> that contains a <query name> referencing WQNj. B) QJ immediately contains a <join type> that specifies LEFT and a <table primary><partitioned join table> following the <join type> that contains a <query name> referencing WQNj. C) QJ immediately contains a <join type> that specifies RIGHT and a <table reference> preceding the <join type> that contains a <query name> referencing WQNj. The phrase “applying Subclause 9.3” in SR19)b) should be “applying the Syntax Rules of Subclause 9.3” Solution Replace SR19)b) with: JPN-P02-029 4-Minor Editorial 7.13 <query expression> b) The declared type of the i-th column of TR is determined by applying the Syntax Rules of Subclause 9.3, “Result of data type combinations”, to the declared types of the i-th column of T1 and the i-th column of T2. The symbol QE should be used instead of “<query expression>” immediately after “then” in SR28)c) for clearness. Solution Page 34 of 127 ISO/IEC JTC1/SC32/WG3 Replace SR28)c) with: JPN-P02-030 JPN-P02-200 4-Minor Editorial c) If QE is a <query expression body> that is a <query term> that is a <query primary> that is a <simple table> that is a <query specification>, then the <query expression> QE is said to be a simple table query. 7.13 <query The following incomplete feature names appear in Conformance expression>, Rules of 7.13 and in the corresponding items in Annex A. Annex A Feature Feature Feature Feature Feature Feature Feature Feature Feature Feature Feature Feature Feature Feature Feature T121, “ (excluding ” appears in CR1). T122, “ (excluding ” appears in CR2). F302, “ ” appears in CR7). F304, “ ” appears in CR10). F850, “Top-level ” appears in CR11). F851, “ in subqueries” appears in CR12) F855, “Nested ” appears in CR13). F856, “Nested” CR14). F857, “Top-level ” appears in CR15). F858, “ in subqueries” appears in CR16). F860, “dynamic ” appears in CR17). F861, “Top-level ” appears in CR18). F862, “ in subqueries” appears in CR19). F863, “Nested ” appears in CR20). F865, “dynamic ” appears in CR21). Solution None provided with comment. JPN-P02-031 3-Major Editorial 7.14 <search There is no conformance rule for <search or cycle clause>. or cycle clause> Solution JPN-P02-032 4-Minor Editorial 8.5 <like predicate> Page 35 of 127 None provided with comment. “i-th substring specifier of PCV” is correct instead of “i-th substring of PCV” in GR3)d)ii)2), 3), and 4), because the string PCV is a ISO/IEC JTC1/SC32/WG3 sequence of substring specifiers according to GR3)c).(See GR4)f)ii)2), 3), and 4).) Solution Replace GR3)d)ii)2), 3), and 4) with: JPN-P02-033 2-Minor 8.5 <like Technical predicate> 2) If the i-th substring specifier of PCV is an arbitrary character specifier, then the i-th substring of MCV is any single character. 3) If the i-th substring specifier of PCV is an arbitrary string specifier, then the i-th substring of MCV is any sequence of 0 (zero) or more characters. 4) If the i-th substring specifier of PCV is a single character specifier, then the i-th substring of MCV contains exactly 1 (one) character that is equal to the character represented by the single character specifier according to the collation of the <like predicate>. GR4)f)i) reads: i) If the lengths of both MBV and PBV are 0 (zero), then ….. The condition following “If” is incomplete, because the description of the condition allows that the declared type of MBV or PBV is the character string with fixed length. The condition that lengths of declared types of MBV and PBV are variable is necessary to be imposed like GR3)d)i). Solution Replace the lead text of GR4)f)i) with: i) If MBV and PBV are character strings whose lengths are variable and the lengths of both MBV and PBV are 0 (zero), then Page 36 of 127 ISO/IEC JTC1/SC32/WG3 JPN-P02-034 JPN-P02-039 2-Minor 8.16 Technical <member predicate> While syntax rules of subcluse 9.11, “Multiset element grouping operations” are applied for a multiset operand in SR4) of subclause 8.17 <submultiset predicate>and in SR2) of subclause 8.18 <set predicate>, there is no rule for that application in subclause 8.16. Solution 1. Add a new Syntax Rule immediately after SR4): 4.1) MVE is a multiset operand of a multiset element grouping operation. The Syntax Rules of Subclause 9.11, “Multiset element grouping operations”, apply. 2. Replace NOTE235 in Conformance Rules with: JPN-P02-035 3-Major Editorial NOTE 235 — The Conformance Rules of Subclause 9.9, “Equality operations”, also apply. The Conformance Rules of Subclause 9.11, “Multiset element grouping operations”, also apply. 8.17 The same symbol is used for two indices that have different <submultiset domains of 1 ≤ i ≤ M and 1 ≤ i ≤ N. It is necessary to use predicate> different symbols, like GR3)c)ii). Solution Replace GR3)c)iii) with: iii) If there exist an enumeration CEi for 1 (one) ≤ i ≤ M of the elements of CV and an enumeration MEij for 1 (one) ≤ ij ≤ N of the elements of MV such that for all i, 1 (one) ≤ i ≤ M, CEi = MEi is either True or Unknown, then the <submultiset predicate> is Unknown. Page 37 of 127 ISO/IEC JTC1/SC32/WG3 JPN-P02-036 4-Minor Editorial 9.3 Result of Although the subject “names” of SR3)h)i) is plural, the verb is “is”. data type combinations Solution Replace SR3)h)i) with: JPN-P02-037 3-Major Editorial i) If the names of fields in the same ordinal position as FDi in every row type in DTS ishave the same name F, then the <field name> in FDi is F. Access rules and general rules are missing in the subclause.. 9.5 Type precedence list Solution determinatio n Add Access Rules and General Rules: Access Rules None General Rules None 9.9 Equality operations, 9.10 Grouping operations, 9.11 Multiset element grouping operations, 9.12 Ordering operations JPN-P02-039 JPN-P02-034 2-Minor 9.11 Multiset Technical element grouping JPN-P02-038 Page 38 of 127 3-Major Editorial Although subclause 9.13, “Collation determination” has a parameter, an argument is not specified in application of Subclause 9.13, “Collation determination” in SR4) of subclause 9.9, in SR4) of subclause 9.10, in SR4) of subclause 9.11, and in SR4) of subclause 9.12. Solution None provided with comment. While a <multiset value expression> simply contained in a <member predicate> is included in the list of multiset operands of a multiset element grouping operation specified in SR2), a ISO/IEC JTC1/SC32/WG3 operations <member predicate> is not included in the list of multiset element grouping operations in SR1). Solution Add a new list item immediately after SR1)e): JPN-P02-040 3-Major Editorial 9.14 Execution of arrayreturning functions e.1) A <member predicate>. GR8) reads: 8) 13 If the call type data item has a value of –1 (indicating “open call”), then P is executed with a list of EN parameters PDi whose parameter names are PNi and whose values are set as follows: ….. Although undefined symbol PNi for parameter names appears in the rule, a parameter name is not significant, while values passed to an executed program is significant. And PNi is not referred in subsequent rules. Solution JPN-P02-041 4-Minor Editorial 9.14 Execution of arrayreturning functions None provided with comment. The term “data type” should be used rather than “<data type>” in GR10)a)i) and GR11)a) like GR8)b), because any syntax element is not referred in those rules. Solution Replace GR10)a)i) and GR11)a) with: 10) … a) … i) For i varying from 1 (one) to EN, the <data type> DTi of PDi is the data type listed in the host data type Page 39 of 127 ISO/IEC JTC1/SC32/WG3 column of the row in the data type correspondences table whose value in the SQL data type column corresponds to the data type of ESPi. ….. JPN-P02-042 4-Minor Editorial 10.4 <routine invocation> 11) … a) For i varying from 1 (one) to EN, the <data type> DTi of PDi is the data type listed in the host data type column of the row in the data type correspondences table whose value in the SQL data type column corresponds to the data type of ESPi. The phrase of “The subject routine SR of XAL” in SR8)c)i)2)is incorrect, because XAL is an argument list and the concept of a subject routine defined for a routine invocation. Solution Replace SR8)c)i)2) with: JPN-P02-043 Page 40 of 127 3-Major Editorial 10.4 <routine invocation> 2) The subject routine SR of XAL RI is the SQL-invoked routine SIRCR1 that is a candidate routine of RI such that there is no other candidate routine R2 for which the <schema name> of the schema that includes R2 precedes in DP the <schema name> of the schema that includes SIRCR1. In GR3), which is quoted below, the declared type of a SQL parameter is passed to TARGET parameter in an application of Syntax Rules of 9.2. 3) Let N and PN be the number of values Vi in DAL. Let Ti be the declared type of the i-th SQL parameter Pi of R. For i ranging from 1 (one) to PN, Case: a) 14 If Pi is an input SQL parameter or both an input SQL parameter and an output SQL parameter, then let CPVi be the result an application of the General Rules of Subclause 9.2, “Store assignment”, with Vi as VALUE and Ti as TARGET. b) ….. ISO/IEC JTC1/SC32/WG3 Subclause 9.2 requires, however, that TARGET parameter is a value, not a data type, because the declared type of TARGET parameter is referred in SR1), which reads: 1) Let T be the TARGET and let V be the VALUE in an application of this Subclause. Let TD and SD be the declared types of T and V, respectively. In addition, although GR3)a) of subclause 10.4 refers the result of an application of subclause 9.2, Subclause Signature of 9.2 has no “returns”. There are also the similar issues in GR9)a)iii). Solution JPN-P02-044 2-Minor 10.4 Technical <routine invocation> None provided with comment. In GR3), the value of SQL parameter Pi of R is set applying the General Rules of Subclause 9.2, “Store assignment”. In GR7), quoted below, however, the value of SQL parameter Pi is set again. 7) If R is an SQL routine, then Case: a) If R is a null-call function and if any of CPVi is the null value, then let RV be the null value. b) Otherwise: i) For i ranging from 1 (one) to PN, set the value of Pi to CPVi. ….. Solution JPN-P02-045 2-Minor 10.4 Technical <routine invocation> Page 41 of 127 None provided with comment. GR10)e), which quoted below, specifies that rows which have already fetched during a routine execution are excepted from a with-return cursor. ISO/IEC JTC1/SC32/WG3 e) For each i, 1 (one) ≤ i ≤ RTN, Case: i) If FRCi is a scrollable cursor, then the initial cursor position of RSi is the current cursor position of FRCi. ii) Otherwise, Case: 1) If the application of Subclause 15.3, “Determination of the current row of a cursor”, with FRCi as CURSOR and NEXT as FETCH ORIENTATION, would position the cursor on or before some row in RSi, then let RN be the ordinal position of that row in RSi. 2) Otherwise, let RN be one greater than the number of rows in RSi. The first RN rows are deleted from RSi and the initial cursor position of RSi is before the first row. There are problems in GR10)e)ii). 1. As the result the application of 15.3, the cursor position proceeds to the next row in RSi. Because RN is the number that denotes that position, the deletion of first RN rows excepts that next row which has not been fetched yet from RSi. 2. In case of GR10)e)ii)2), RN exceeds the number of rows in RSi by 1(one). So the first RN rows include the row that is not present and the deletion from RSi in the last sentence of GR10)e)ii) does not work. Solution JPN-P02-046 4-Minor Editorial 10.6 <specific routine designator> None provided with comment. The phrase “method of the type identified by <schema-resolved user-defined type name>” appears in SR3)c)i)3)A), B), and C). The term “the user-defined type” used in SR3)c)ii)3) is more suitable rather than “the type” in this phrase. Solution Page 42 of 127 ISO/IEC JTC1/SC32/WG3 Replace SR3)c)i)3)A), B), and C) with: JPN-P02-047 Page 43 of 127 4-Minor Editorial 10.6 <specific routine designator> A) If STATIC is specified, then there shall be exactly one static SQL-invoked method of the user-defined type identified by <schema-resolved user-defined type name> whose <method name> is METH, such that for all i the Syntax Rules of Subclause 9.18, “Data type identity”, when applied with the declared type of its i-th SQL parameter and the i-th <data type> in the <data type list> of MN, are satisfied. The <specific routine designator> identifies that static SQLinvoked method. B) If CONSTRUCTOR is specified, then there shall be exactly one SQL-invoked constructor method of the user-defined type identified by <schema-resolved user-defined type name> whose <method name> is METH, such that for all i the Syntax Rules of Subclause 9.18, “Data type identity”, when applied with the declared type of its i-th SQL parameter in the unaugmented <SQL parameter declaration list> and the i-th <data type> in the <data type list> of MN, are satisfied. The <specific routine designator> identifies that SQLinvoked constructor method. C) Otherwise, there shall be exactly one instance SQL-invoked method of the user-defined type identified by <schemaresolved user-defined type name> whose <method name> is METH, such that for all i the Syntax Rules of Subclause 9.18, “Data type identity”, when applied with the declared type of its i-th SQL parameter in the unaugmented <SQL parameter declaration list> and the i-th <data type> in the <data type list> of MN, are satisfied. The <specific routine designator> identifies that instance SQL-invoked method. Because the keyword FUNCTION is for an SQL-invoked regular function, in SR3)c)ii)1) the term “SQL-invoked regular function” that is used in SR3)c)i)1) should be used rather than “SQLinvoked function”. ISO/IEC JTC1/SC32/WG3 Solution Replace SR3)c)ii)1) with: JPN-P02-048 4-Minor Editorial 10.6 <specific routine designator> 1) If <routine type> specifies FUNCTION, then there shall be exactly one SQL-invoked regular function in the schema identified by SCN whose <schema qualified routine name> is RN. The <specific routine designator> identifies that SQLinvoked function. In SR4), while in case that FUNCTION, PROCEDURE, STATIC METHOD, or ROUTINE is specified, “SQL-invoked routine” is followed by “that is identified”, in case of CONSTRUCTOR METHOD and INSTANCE METHOD it is not followed. Solution Replace SR4) with: JPN-P02-049 Page 44 of 127 4-Minor Editorial 10.9 <aggregate function> 4) If FUNCTION is specified, then the SQL-invoked routine that is identified shall be an SQL-invoked regular function. If PROCEDURE is specified, then the SQL-invoked routine that is identified shall be an SQL-invoked procedure. If STATIC METHOD is specified, then the SQL-invoked routine that is identified shall be a static SQL-invoked method. If CONSTRUCTOR METHOD that is identified is specified, then the SQL-invoked routine shall be an SQL-invoked constructor method. If INSTANCE METHOD that is identified is specified or implicit, then the SQL-invoked routine shall be an instance SQL-invoked method. If ROUTINE is specified, then the SQL-invoked routine that is identified is either an SQL-invoked function or an SQLinvoked procedure. CR8) reads: 8) Without Feature F441, “Extended set function support”, conforming SQL language shall not contain a column reference contained in an <aggregate function> that contains a reference to a column derived from a <value expression> ISO/IEC JTC1/SC32/WG3 that generally contains an <aggregate function> SFS2 without an intervening <routine invocation>. The first occurrence of <aggregate function>in this rule should be “<aggregate function> SFS1” in order to distinguish clearly the first occurrence from the second. Solution Replace CR8) with: JPN-P02-050 3-Major Editorial 10.9 <aggregate function>, Annex A 8) Without Feature F441, “Extended set function support”, conforming SQL language shall not contain a column reference contained in an <aggregate function> SFS1 that contains a reference to a column derived from a <value expression> that generally contains an <aggregate function> SFS2 without an intervening <routine invocation>. CR2) should be added to Annex A 108) Specifications for Feature F801, “Full set function”: Solution Add the following item to 108) of Annex A: JPN-P02-051 Page 45 of 127 4-Minor Editorial 108) Specifications for Feature F801, “Full set function”: a) ….. b) Subclause 10.9, “<aggregate function>”: i) Without Feature F561, “Full value expressions”, or Feature F801, “Full set function”, conforming SQL language shall not contain a <general set function> that immediately contains DISTINCT and contains a <value expression> that is not a column reference. 10.11 The phrase “the schema identified by the <table name>” in GR2) Determinatio is not appropriate, because a schema name identifies a schema ISO/IEC JTC1/SC32/WG3 n of view privileges name, not a table name. Solution Replace GR2) with: JPN-P02-052 4-Minor Editorial 2) Let A be the <authorization identifier> that owns the schema identified by the <schema name> of the <table name> of V. 10.12 The phrase “one-to-one with” in GR4)a)ii)1) of subclause 10.12 Determinatio should be “one-to-one with respect to” according to the definition n of view in SR21)c) of subclause 7.12. The same issue is also in GR4)a)ii)1) component of subclause 10.12, GR4) in subclause 20.20 and GR4) in privileges, subclause 20.21. 20.20 <dynamic Solution delete statement: 1. GR4)a)ii)1) of 10.12 with: positioned>, 20.21 1) If, for every leaf underlying table LUT of VCi such that VCi is <dynamic one-to-one with respect to LUT, the applicable privileges for update A include DELETE on LUT, then a view component table statement: privilege descriptor is created whose identified object is VCi, positioned> action is DELETE, grantor is the special grantor value “_SYSTEM”, and the grantee is A. The privilege is grantable if and only if the applicable privileges for A includes grantable DELETE privilege on each such LUT. ….. 2. GR4) of 20.20 with: 4) Let T be the simply underlying table of CR. Let LUT be the leaf underlying table of T such that T is one-to-one with respect to LUT. 3. GR4) of 20.21 with: Page 46 of 127 ISO/IEC JTC1/SC32/WG3 JPN-P02-053 3-Major Editorial 11.2 <drop schema statement>, Annex A 4) Let T be the simply underlying table of CR. Let LUT be the leaf underlying table of T such that T is one-to-one with respect to LUT. While there is a conformance rule for F032, “CASCADE drop behavior” in 11.30 <drop table statement> and in a few subclauses, there is not the rule in 11.2 <drop schema statement>, in which the BNF of <drop behavior> is defined. Solution 1. Add the following CR to Conformance Rules of 11.2: 1.1) Without Feature F032, “CASCADE drop behavior”, conforming SQL language shall not contain a <drop behavior> that contains CASCADE. 2. Insert the following item immediately before Annex A 31)a): a.0) Subclause 11.2, “<drop schema statement>”: i) Without Feature F032, “CASCADE drop behavior”, conforming SQL language shall not contain a <drop behavior> that contains CASCADE. JPN-P02-054 4-Minor Editorial 11.3 <table definition> The column name LCNj appears twice in SR7)b)iv)6)B). The second occurrence needs to be replaced with LNCj, which denotes a null constraint. In SR7)b)iv)7), there is the same issue. Solution Replace SR7)b)iv)6) and 7) with: 6) If INCLUDING GENERATED is specified, then let GCDj, 1 (one) ≤ j ≤ D, be the column descriptors included in the descriptor of LT, with j being the ordinal position of the column described by GCDj. For each GCDj that indicates that the column it describes is a generated column: Page 47 of 127 ISO/IEC JTC1/SC32/WG3 JPN-P02-055 3-Major Editorial 11.5 <default clause> A) Let GEj be the <generation expression> included in GCDj, where the <table name> contained in any contained <column reference> is replaced by TN. B) The value of CDj is replaced by LCNj LDTj GENERATED ALWAYS AS GEj LCNj LNCj 7) If INCLUDING DEFAULTS is specified, then let DCDm, 1 (one) ≤ m ≤ D, be the column descriptors included in the descriptor of LT, with m being the ordinal position of the column described by DCDm. For each DCDm, if DCDm includes a <default option> DOm, then the value of CDm is replaced by LCNm LDTm DEFAULT DOm LCNm LNCm The term “data descriptor” used in GR3)b) and c) is not defined. Solution Replace GR3)b) and c) with: JPN-P02-056 b) If the data descriptor for the site includes a <default option>, then S is set to the value specified by that <default option>. c) If the data descriptor for the site includes a <domain name> that identifies a domain descriptor that includes a <default option>, then S is set to the value specified by that <default option>. 1-Major P02-11.11, An <add column definition> to a system-versioned table is Technical <add column prohibited by the following Syntax Rules in subclause 11.11: definition>, P02-11.12, <alter column definition>, P02-11.23, <drop column Page 48 of 127 1) Let T be the table identified by the <table name> immediately contained in the containing <alter table statement>. 2) T shall not be a referenceable table or a system-versioned table. Generally, some columns may be necessarily added to a base ISO/IEC JTC1/SC32/WG3 definition> table due to changes of a user application. A system-versioned table is not usable for actual user applications because of the above-mentioned restriction. There is the same problem in <alter column definition> and in <drop column definition>. Solution JPN-P02-057 JPN-P02-058 4-Minor Editorial 11.19 <alter column data type clause>, 11.20 <alter identity column specification > None provided with comment. Feature F381, “Extended scheme manipulation” is required for specifying <alter column definition>. While there are the conformance rules about Feature F381 in 11.13 <set column default clause>, 11.14 <drop column default clause>, 11.17 <add column scope clause>, 11.18 <drop column scope clause>, there is not that rule in subclause 11.26, there are no conformance rules in subclause 11.19 and 11.20. Solution None provided with comment. 1-Major 11.19 <alter The change of the column data type that reduces the size of the Technical column data data type is prohibited. As for an interval type, however, no type clause> restriction on the interval precision is specified in SR13)h) and i). The rules need to prohibit, for example, the change from INTERVAL YEAR TO MONTH type to INTERVAL MONTH type. Solution JPN-P02-059 4-Minor Editorial 11.20 <alter identity column specification > None provided with comment. The phrase “in conforming SQL language” is missing in CR1). In addition, CR2) has a small typo that a comma is missing. Solution Replace CR1) and 2) with: Page 49 of 127 ISO/IEC JTC1/SC32/WG3 JPN-P02-060 JPN-P02-061 3-Major Editorial 3-Major Editorial 11.23 <drop column definition>,1 1.30 <drop table statement>, 11.32 <drop view statement>, 11.47 <drop assertion statement>, 11.58 <drop data type statement>, 11.61 <drop routine statement> 11.26 <drop table constraint definition> 1) Without Feature T174, “Identity columns”, in conforming SQL language, an <alter column definition> shall not contain an <alter identity column specification>. 2) Without Feature T178, “Identity columns: ”, in conforming SQL language, an <alter sequence generator restart option> contained in an <alter identity column specification> shall contain a <sequence generator restart value>. NOTE 308 in SR5)e) of 11.23 reads: NOTE 308 — If CASCADE is specified, then any such dependent object will be dropped by the execution of the <revoke statement> specified in the General Rules of this Subclause. This Note is incorrect, because dependant objects are dropped not only by the execution of the <revoke statement>. The <drop trigger statement> in GR1) also drop such objects. There is the similar issues in NOTE317 in SR7)f) of 11.30, NOTE325 in SR5)d) of 11.32, NOTE336 in SR10)e) of 11.47, NOTE351 in SR4)h) of 11.58, and NOTE369 in SR5)b) of 11.61. Solution Replace “<revoke statement>” in the NOTE308 in SR5)e) of 11.23, NOTE317 in SR7)f) of 11.30, NOTE325 in SR5)d) of 11.32, NOTE336 in SR10)e) of 11.47, NOTE351 in SR4)h) of 11.58, and NOTE369 in SR5)b) of 11.61 with “SQL schema manipulation statements”. Feature F491, “Constraint management” is required for specifying <constraint name>. While there is the conformance rule about Feature F491 in 11.38 <drop domain constraint definition>, there is not that rule in subclause 11.26. Solution None provided with comment. Page 50 of 127 ISO/IEC JTC1/SC32/WG3 JPN-P02-062 3-Major Editorial 11.31 <view Although the feature of a subtable is implied for a <subview definition>, clause>, the conformance rule for S081, “Subtables” is missing in Annex A the subclause. Solution 1. Add the following CR to Conformance Rules of 11.31: 3.1) Without Feature S081, “Subtables”, conforming SQL language shall not contain a <subview clause>. 2. Insert the following items immediately after Annex 142)a) : a.1) Subclause 11.31, “ <view definition>”: i) Without Feature S081, “Subtables”, conforming SQL language shall not contain a <subview clause>. JPN-P02-063 4-Minor Editorial 11.40 <character set definition> There are a few typos in SR3) and GR4). The word “been” is missing between “have” and “associated” and an unnecessary “it” is between “with” and “a privilege” in SR3). An unnecessary “be” appears immediately after “this character set”. Solution 1. Replace SR3) with: 3) The character set CS identified by the <character set specification> contained in <character set source> shall have been associated with it a privilege descriptor that was effectively defined by the <grant statement> ….. 2. Replace GR4) with: 4) A privilege descriptor is created that defines the USAGE Page 51 of 127 ISO/IEC JTC1/SC32/WG3 JPN-P02-064 4-Minor Editorial 11.45 <drop transliteratio n statement> privilege on this character set to be the <authorization identifier> of the <schema definition> or <SQL-client module definition> in which the <character set definition> appears. The grantor of the privilege descriptor is set to the special grantor value “_SYSTEM”. This privilege is grantable. The description “transliteration identified by T” in SR2) is inappropriate, because a transliteration name identifies a transliteration and T is a transliteration, not a transliteration name. Solution Replace SR2) with: JPN-P02-065 4-Minor Editorial 11.48 <trigger definition> 2) Let A be the <authorization identifier> that owns the schema identified by the <schema name> of the transliteration identified by TN. The representation “privileges for A for T” in AR2) is not in conventional wording. Solution Replace AR2) with: JPN-P02-066 4-Minor Editorial 11.48 <trigger definition> 2) The applicable privileges for A for T shall include TRIGGER on T. The phrase “view V identified by the subject table” in GR6)a) is not appropriate, because a view is identified by a table name, not by a table. Solution Replace GR6)a) with: a) Let VD be the view descriptor of the view V identified bythat is the subject table of TR. Let VN be the <table Page 52 of 127 ISO/IEC JTC1/SC32/WG3 JPN-P02-067 2-Minor 11.49 <drop Technical trigger statement> name> included in VD. Let QE be the <query expression> included in VD. Let U be the <authorization identifier> that owns the schema identified by the <schema name> of VN. Although there is no syntax rule in the subclause, the rule that requires the existence of the trigger descriptor of the trigger identified by the <trigger name> specified in <drop trigger statement>. Solution JPN-P02-068 2-Minor 11.49 <drop Technical trigger statement> None provided with comment. The intent of GR1)b)i)2)B)II)2) is to revoke the grant option on INSERT privilege granted to the owner of the view that is the subject table of an INSTEAD OF trigger. Therefore the grantee from which is revoked it by <drop trigger statement> must be the owner of the view that is denoted by U, not the owner of the trigger that is denoted by A. (See GR1)b)i)2)B)II)1)) There are similar issues in GR1)b)ii)2)B)II)2) and GR1)b)iii)2)B)II)2). Solution 1. Replace GR1)b)i)2)B)II)2) with: 2) Otherwise, let VCTPD be the view component table privilege descriptor whose identified object is QE, whose action is INSERT, whose grantor is “_SYSTEM”, and whose grantee is AU. If VCTPD indicates that the privilege is not grantable, then the following <revoke statement> is effectively executed with a current authorization identifier of “_SYSTEM” and without further Access Rule checking: REVOKE GRANT OPTION FOR INSERT ON VN FROM U CASCADE 2. Replace GR1)b)ii)2)B)II)2) with: Page 53 of 127 ISO/IEC JTC1/SC32/WG3 2) Otherwise, let VCTPD be the view component table privilege descriptor whose identified object is QE, whose action is UPDATE, whose grantor is “_SYSTEM”, and whose grantee is AU. If VCTPD indicates that the privilege is not grantable, then the following <revoke statement> is effectively executed with a current authorization identifier of “_SYSTEM” and without further Access Rule checking: REVOKE GRANT OPTION FOR UPDATE ON VN FROM U CASCADE 3. Replace GR1)b)iii)2)B)II)2) with: 2) Otherwise, let VCTPD be the view component table privilege descriptor whose identified object is QE, whose action is DELETE, whose grantor is “_SYSTEM”, and whose grantee is AU. If VCTPD indicates that the privilege is not grantable, then the following <revoke statement> is effectively executed with a current authorization identifier of “_SYSTEM” and without further Access Rule checking: REVOKE GRANT OPTION FOR DELETE ON VN FROM U CASCADE JPN-P02-069 2-Minor 11.49 <drop Technical trigger statement> View component privilege descriptors still remains at the end of general rules of the subcluase. They should be removed like GR8) of subclause 10.11 Determination of view privileges, because a view component privilege descriptor is just used temporally. Solution JPN-P02-070 4-Minor Editorial None provided with comment. 11.50 <user- The index “i” in its definition does not coincide with that postfixed defined type in symbols such as PCOMSj and POVMSj. definition> Solution Replace SR9)b)xv)3)D) with: Page 54 of 127 ISO/IEC JTC1/SC32/WG3 JPN-P02-071 3-Major Editorial D) For i j varying from 1 (one) to Ni, the Syntax Rules of Subclause 9.18, “Data type identity”, are applied with the declared type of PCOMSj and the declared type of POVMSj. 11.50 <user- The condition specified in if clause in GR1)g)vii) can not be defined type satisfied, because a parameter style can be specified only in SQL definition> routine. Solution Replace GR1)g)vii) with: JPN-P02-072 JPN-P02-073 3-Major Editorial 4-Minor Editorial 11.55 <add original method specification >, 11.56 <add overriding method specification > 11.57 <drop method specification > vii) 13 The explicit or implicit <parameter style> if the <language name> is not SQL. The term “parameter descriptor” or the phrase “descriptor of a parameter” appears in GR1)f) of 11.55, and SR12)b), SR12)e), SR12)f), and GR1)e) of 11.56. As for a parameter, however, its descriptor is not defined anywhere. Solution None provided with comment. The words “an indications” in SR3)d)i) is not grammatically correct. Two indications are mentioned in the rule. One is that of whether or not a method is original and the other is that of whether a method is a static or constructor. So, “an indications” should be “indications”. The words “an indication” in SR3)d)i) should be also “indications”. Solution Replace SR3)d)i) and ii) with: i) If STATIC is specified, then the descriptor of D shall include Page 55 of 127 ISO/IEC JTC1/SC32/WG3 JPN-P02-074 3-Major Editorial 11.58 <drop data type statement> exactly one method specification descriptor DOOMS that includes an indications that the method specification is both original and STATIC. ii) If CONSTRUCTOR is specified, then the descriptor of D shall include exactly one method specification descriptor DOOMS that includes an indications that the method specification is both original and CONSTRUCTOR. NOTE351 in SR4)h) reads: NOTE 351 — If CASCADE is specified, then such referenced objects will be dropped by the execution of the <revoke statement> specified in the General Rules of this Subclause.. This NOTE is incorrect, because this note mentions only referenced objects, but dependent objects are also mentioned in SR4). Solution None provided with comment. JPN-P02-075 3-Major Editorial 11.59 <SQL- SR18) is the rule to avoid the confliction of the signature of the invoked defining SQL-invoked regular function and the existing method routine> specification. SR18)c) and d) state that the range of the index i for PDMSi which is the declared type of the parameter in the unaugmented SQL parameter declaration list of a method specification is from 1 to PN. PN is, however, the number of the parameters of the augmented SQL parameter declaration list defined in SR12). According to SR5)a)vi) and b)iii), the number of the parameters in the unaugmented SQL parameter declaration list is MN. On the other hand, PMSi is the declared type of the parameter of the defining SQL-invoked regular function. Because the confliction is checked between the augmented SQL parameter declaration list of a method specification and the specified SQL parameter declaration list of SQL-invoked regular function, the range of the index i for PMSi shall be from 1 to PN. Page 56 of 127 ISO/IEC JTC1/SC32/WG3 Solution Replace SR18)c) and b) with: JPN-P02-076 4-Minor Editorial c) Let PDMSi, 1 (one) ≤ i ≤ PNMN, be the declared type of the i-th SQL parameter in the unaugmented SQL parameter declaration list in DMS and let PMSi, 1 (one) ≤ i ≤ PN, be the declared type of the i-th SQL parameter contained in <function specification>. d) One of the following conditions shall be false: i) The declared type of PDMSi, 1 (one) ≤ i ≤ NMN is compatible with the declared type of SQL parameter PMSi+1. ii) ….. 11.59 <SQL- SR20)d)iii)2)A)II)3) defines the symbol PT. While in this rule, the invoked definition forms “let PT …”, in rules other than 3) in routine> SR20)d)iii)2)A)II) form “PT is …”. It is better that rule 3) takes the same form as other rules. Solution Replace SR20)d)iii)2)A)II) with: JPN-P02-077 Page 57 of 127 4-Minor Editorial 1) … 2) … ….. ii) Otherwise, PT is the <parameter type> of the first SQL parameter of TSF. 3) If R is an array-returning external function or a multisetreturning external function, then let PT beis the element type of RT. 4) Otherwise, PT is RT. 11.59 <SQL- The incorrect term “SQL parameter type list” appears in invoked SR20)d)iii)8)A) and B). routine> ISO/IEC JTC1/SC32/WG3 Solution Replace SR20)d)iii)8)A) and B) with: JPN-P02-078 4-Minor Editorial 11.60 <alter routine statement> A) Effective SQL parameter type list entry (PN+FRN)+(N+FRN)+5 is an SQL parameter whose <data type> is character string of implementation-defined length and character set SQL_TEXT with <parameter mode> INOUT. B) Effective SQL parameter type list entry (PN+FRN)+(N+FRN)+6 is an SQL parameter whose <data type> is an exact numeric type with scale 0 (zero) and with <parameter mode> IN. “SQL data type” column in SR9)b) and SQL data type column in SR9)c) should be “SQL data type column”. In addition, host data type column in SR9)c) should be “host data type column”. Solution Replace SR9)b) with: b) Depending on whether the <language clause> specifies ADA, C, COBOL, FORTRAN, M, PASCAL, or PLI, let the operative data type correspondences table be Table 16, “Data type correspondences for Ada”, Table 17, “Data type correspondences for C”, Table 18, “Data type correspondences for COBOL”, Table 19, “Data type correspondences for Fortran”, Table 20, “Data type correspondences for M”, Table 21, “Data type correspondences for Pascal”, or Table 22, “Data type correspondences for PL/I”, respectively. Refer to the two columns of the operative data type correspondences table as the “SQL data type” column” and the “host data type column”. c) Any <data type> in the effective SQL parameter list entry of SR shall specify a data type listed in the ”SQL data type Page 58 of 127 ISO/IEC JTC1/SC32/WG3 JPN-P02-079 3-Major Editorial 11.60 <alter routine statement> column” for which the corresponding row in the ”host data type column” is not “None”. Several subrules in GR1) is incomplete. Subrule a), for example, does not describe how the descriptor item is modified. It should be such that: a) If <returned result sets characteristic> is specified, then the maximum number of returned result sets is the value of <maximum returned result sets>. Solution None provided with comment. JPN-P02-080 4-Minor Editorial 11.73 <drop The words “referenced objects” are incorrect in NOTE375 in SR3), sequence quoted below, because an SQL routine and a trigger reference a generator sequence generator, but they are not referenced. statement> 3) If RESTRICT is specified, then SEQ shall not be referenced in any of the following: a) The SQL routine body of any routine descriptor. b) The triggered action of any trigger descriptor. NOTE 375 — If CASCADE is specified, then such referenced objects will be dropped by the execution of the <revoke statement> specified in the General Rules of this Subclause. Solution Replace NOTE375 with: JPN-P02-081 Page 59 of 127 4-Minor Editorial 12.1 <grant statement> NOTE 375 — If CASCADE is specified, then such referenced referencing objects will be dropped by the execution of the <revoke statement> specified in the General Rules of this Subclause Unnecessary period appears between <method reference> and MR in GR4)b)iii) and GR4)c)i)1)C). ISO/IEC JTC1/SC32/WG3 Solution 1. Replace GR4)b)iii) with: iii) The applicable privileges for G include grantable SELECT privilege on every table T1 and every method M such that there is a <method reference>. MR contained in QE such that T1 is in the scope of the <value expression primary> of MR and M is the method identified by the <method name> of MR. 2. Replace GR4)c)i)1)C) with: C) The applicable privileges for G include grantable SELECT privilege on every table T1 and every method M such that there is a <method reference>. MR contained in QE such that T1 is in the scope of the <value expression primary> of MR and M is the method identified by the <method name> of MR. JPN-P02-082 4-Minor Editorial 12.2 <grant privilege statement> “grantee G, and grantor A” at the end of the lead text of GR11) shown below seems to lack connection with the preceding words “every privilege descriptor in SWH”. Some word such as “with” seem to be missing between “in SWH” and “grantee G, and grantor A” 11) Let SWH be the set of privilege descriptors in CPD whose action is SELECT WITH HIERARCHY OPTION. Let ST be the set of subtables of O. For every table T in ST and for every privilege descriptor in SWH grantee G, and grantor A, Solution JPN-P02-083 Page 60 of 127 4-Minor Editorial 12.7 <revoke None provided with comment. The description “column privilege descriptor that identifies a <column name>” in GR7)c)i) and GR12)b)i) is a little bit incorrect, ISO/IEC JTC1/SC32/WG3 statement> because column privilege descriptor identifies a column, not a column name. Solution 1. Replace GR7)c)i) with: i) If P is neither a SELECT nor a REFERENCES column privilege descriptor that identifies a column CV identified by a <column name> CVN explicitly or implicitly contained in the <view column list> of a <view definition> V, then let XO and XA respectively be the identifier of the object identified by a privilege descriptor X and the action of X. ….. 2. Replace GR12)b)i) with: JPN-P02-084 4-Minor Editorial 12.7 <revoke statement> i) P is a column privilege descriptor that identifies a column CV identified by a <column name> CVN explicitly or implicitly contained in the <view column list> of a <view definition> V, with an action PA of REFERENCES or SELECT. Terms of “SELECT column descriptor” and “REFERENCES column descriptor” appear in GR7)c)i). Those terms are not found anywhere else in this document. Instead of those, the phrase that forms “column descriptor … with an action …” should be used like GR7)c)ii) . ii) If P is a column privilege descriptor that identifies a column CV identified by a <column name> CVN explicitly or implicitly contained in the <view column list> of a <view definition> V with an action PA of REFERENCES or SELECT, then let SP be the set of privileges upon which P directly depends. ….. Solution Replace GR7)c)i) with: Page 61 of 127 ISO/IEC JTC1/SC32/WG3 JPN-P02-085 4-Minor Editorial 12.7 <revoke statement> i) If P is neither a SELECT nor a REFERENCES column privilege descriptor that identifies a column CV identified by a <column name> CVN explicitly or implicitly contained in the <view column list> of a <view definition> V with an action of neither REFERENCES nor SELECT, then let XO and XA respectively be the identifier of the object identified by a privilege descriptor X and the action of X. ….. Although the keyword sequence “GRANT ADMIN OPTION FOR” appears in GR13)b), it can not be specified in <revoke role statement> “ ADMIN OPTION FOR” is correct, instead. Solution Replace GR13)b) with: JPN-P02-086 4-Minor Editorial 12.7 <revoke statement> b) If the <revoke statement> is a <revoke role statement>, then the destruction of all abandoned role authorization descriptors, all abandoned privilege descriptors and, if GRANT ADMIN OPTION FOR is not specified, all identified role authorization descriptors. An incorrect syntax element “<routine body>” in GR29)a) shall be replaced with the correct one “<SQL routine body>”. “SQL routine body” that is not enclosed in angle brackets should be replaced with the enclosed form “<SQL routine body>” Solution 1. Replace GR29)a) with: a) 04 EXECUTE privilege on the SQL-invoked routine that is the subject routine of any <routine invocation>, <method invocation>, <static method invocation>, or <method reference> that is contained in the <SQL routine body> of RD. 2. Replace “SQL routine body” with “<SQL routine body>” Page 62 of 127 ISO/IEC JTC1/SC32/WG3 throughout GR29). JPN-P02-087 4-Minor Editorial 13.4 Calls to an <externallyinvoked procedure> In the last sentence of SR2)b)ii), “have” is missing between “shall” and “parameter”. In addition, a period is missing that sentence. Solution Replace SR2)b)ii) with: JPN-P02-088 3-Major Editorial 13.4 Calls to an <externallyinvoked procedure> ii) The parameters in each Ada procedure declaration APD shall appear in the same order as the <host parameter declaration>s of the corresponding <externally-invoked procedure> EIP. If the names of the parameters declared in the <host parameter declaration>s of EIP are valid Ada identifiers, then the parameters in APD shall have parameter names that are equivalent to the names of the corresponding parameters declared in the <host parameter declaration>s contained in EIP; otherwise, the parameters in APD shall have parameter names that are implementation-defined. SR3)c), which is quoted below, states that the data type of a host parameter shall be a C data type corresponding to its SQL data type. It does not make sense, because <data type> specified in <host parameter declaration> is an SQL data type and therefore it can not be a host language data type. c) For each i, 1 (one) ≤ i ≤ n, the type of the i-th host parameter shall be the data type listed in the “C data type” column of Table 17, “Data type correspondences for C”, for which the corresponding row in the “SQL data type” column is PDTi. If the words such as “the type of the argument corresponding to the i-th host parameter on the call to an <externally-invoked procedure>” is used instead of “the type of the i-th host parameter“, it makes sense. There are same issues in SR4)c), SR5)c), SR6)c), SR7)c), and Page 63 of 127 ISO/IEC JTC1/SC32/WG3 SR8)c). Solution JPN-P02-089 JPN-P02-090 JPN-P02-091 4-Minor Editorial 3-Major Editorial 3-Major Editorial 13.4 Calls to an <externallyinvoked procedure> 13.4 Calls to an <externallyinvoked procedure> 13.4 Calls to an <externallyinvoked procedure> None provided with comment. Although ARG is specified as a parameter in an application of General Rules of 13.4, it is not referenced anywhere in General Rules of this subclause. Solution None provided with comment. The descriptions when DT is a character string type and a caller language is ADA in GR2) and GR3) are missing. Solution None provided with comment. A character length units of character types mentioned in GR2)a) and b) should be clarified, because length units are specified for some length mentioned in the rules.. Solution Replace GR3)a) and b) with: a) If DT identifies CHARACTER(L U) or CHARACTER VARYING(L) data types and the caller language of EP is C, then let CL be k greater than the maximum possible length in octets of PN, where k is the size in octets of the largest character in the character set of DT. A reference to PN that assigns some value SV to PN implicitly assigns a value that is an SQL CHARACTER(CL OCTETS) data type in which octets of the value are the corresponding octets of SV, padded on the right with <space>s as necessary to reach the length CL – k, concatenated with a single implementation-defined null Page 64 of 127 ISO/IEC JTC1/SC32/WG3 character that terminates a C character string. ….. b) If DT identifies a CHARACTER(L U) data type and the caller language of EP is either COBOL, FORTRAN, or PASCAL, then let CL be the maximum possible length in octets of PN. A reference to PN that assigns some value SV to PN implicitly assigns a value that is an SQL CHARACTER(CL OCTETS) data type in which octets of the value are the corresponding octets of SV, padded on the right with <space>s as necessary to reach the length CL. JPN-P02-092 2-Minor 13.4 Calls to Technical an <externallyinvoked procedure> If the intent of SR3)c) is to require that the data type of the argument in a host program correspond to that of the host parameter of external-invoked procedure as specified in Table 17, then the length of the data types must completely match. It raises a few questions. 1. Is it really possible that the following condition specified in GR2)g)i) is true? If DT identifies a BINARY(L) data type and the length in octets LPI of PI is less than L,” 2. Is the following action described in GR3)b), c), d)ii), i), k), and l)ii) really necessary? , padded on the right with <space>s as necessary to reach the length CL. Solution JPN-P02-093 Page 65 of 127 3-Major Editorial 13.4 Calls to an <externallyinvoked procedure> None provided with comment. The symbol CL is not defined in GR3)c). It should be defined as similar to GR3)b) quoted below, or GR3)d). b) If DT identifies a CHARACTER(L) data type and the caller language of EP is either COBOL, FORTRAN, or PASCAL, then ISO/IEC JTC1/SC32/WG3 let CL be the maximum possible length in octets of PN. A reference to PN that assigns some value SV to PN implicitly assigns a value that is an SQL CHARACTER(CL) data type in which octets of the value are the corresponding octets of SV, padded on the right with <space>s as necessary to reach the length CL. Solution Replace GR3)c) with: c) If DT identifies a CHARACTER VARYING(L) data type and the caller language of EP is M, then let CL be the maximum possible length in octets of PN. aA reference to PN that assigns some value SV to PN implicitly assigns a value that is an SQL CHARACTER VARYING(ML) data type in which octets of the value are the corresponding octets of SV, padded on the right with <space>s as necessary to reach the length CL. ML is the implementationdefined maximum length of variable-length character strings. JPN-P02-094 4-Minor Editorial 13.4 Calls to an <externallyinvoked procedure> The value of the host parameter whose data type is CHARACTER LARGE OBJECT is described in the word “character string” in GR2)f)i)1), GR2)f)ii)1),GR2)f)iii)1), and GR2)f)iv)1). The word “large object character string” is more appropriate for that value. Solution 1. Replace GR2)f)i)1) with: 1) If DT identifies a CHARACTER LARGE OBJECT type, then a large object character string containing the PN.PN_length characters of PN.PN_data starting at character number 1 (one) in the same order that the characters appear in PN.PN_data. Page 66 of 127 ISO/IEC JTC1/SC32/WG3 2. Replace GR2)f)ii)1) with: 1) If DT identifies a CHARACTER LARGE OBJECT type, then a large object character string containing the PN-LENGTH OF PN characters of PN-DATA OF PN starting at character number 1 (one) in the same order that the characters appear in PN-DATA OF PN. 3. Replace GR2)f)iii)1) with: 1) If DT identifies a CHARACTER LARGE OBJECT type, then a large object character string containing the PN_LENGTH characters of PN_DATA starting at character number 1 (one) in the same order that the characters appear in PN_DATA. 4. Replace GR2)f)iv)1) with: 1) If DT identifies a CHARACTER LARGE OBJECT type, then a large object character string containing the PN.PN_length characters of PN.PN_data starting at character number 1 (one) in the same order that the characters appear in PN.PN_data. JPN-P02-095 JPN-P02-096 JPN-P02-097 Page 67 of 127 3-Major Editorial 3-Major Editorial 4-Minor 13.4 Calls to an <externallyinvoked procedure> 13.4 Calls to an <externallyinvoked procedure> 13.4 Calls to GR2)f) and GR3)h), which ate rules for a large object type, do not include subrules when the caller language is ADA or PASCAL. Solution None provided with comment. GR2)h) and GR3)k), which ate rules for a large object type, do not include subrules when the caller language is ADA or PASCAL. Solution None provided with comment. Some of host variable names in GR3)h)ii) does not correspond to ISO/IEC JTC1/SC32/WG3 Editorial an <externallyinvoked procedure> those defined in Table 18. And some references to a host variable are incorrect in terms of the grammar of the corresponding host language. Solution Replace GR3)h)ii) with: JPN-P02-098 3-Major Editorial 13.4 Calls to an <externallyinvoked procedure> ii) If the caller language of EP is COBOL, then a reference to PN that assigns some value SV to PN implicitly assigns the value OCTET_LENGTH(SV) to PN.PN-OCTET_LENGTH OF PN and the value SV to PN.PN-DATA OF PN. The phrase “in which octets of the value are the corresponding octets of SV” should be added immediately after “an SQL CHARACTER(CL) data type” in GR3)l)i), like GR3)b) and c). Solution Replace GR3)l)i) with: i) If DT identifies BINARY(L), then an SQL BINARY(CL) data type in which octets of the value are the corresponding octets of SV. JPN-P02-099 4-Minor Editorial 13.5 <SQL procedure statement> ( Note whether the text of “padded on the right with …” is necessary to follow the above replacement depends on the solution of JPN-P02-083. ) A comma is missing immediate before “no further subrules of this General Rule are evaluated,” in GR5)a)iii)5) and 8). Solution Replace GR5)a)iii)5) and 8) with: 5) If S contains an <SQL schema statement> and the access mode of the current SQL-transaction is read-only, then an exception condition is raised: invalid transaction state, no Page 68 of 127 ISO/IEC JTC1/SC32/WG3 JPN-P02-100 4-Minor Editorial 13.6 Data type corresponde nces further subrules of this General Rule are evaluated, and evaluation continues with the next General Rule. 6) ….. 7) ….. 8) If S does not conform to the Syntax Rules and Access Rules of an <SQL procedure statement>, then an exception condition is raised: syntax error or access rule violation, no further subrules of this General Rule are evaluated, and evaluation continues with the next General Rule. Several subclauses that reference tables in 13.6 should be mentioned in NOTE397. Solution Replace NOTE397 with: NOTE 397 — These tables are referenced in Subclause 11.59, “<SQL-invoked routine>”, for the definitions of external routines, and in Subclause 11.60, “<alter routine statement>” , for the alteration of external routines, and in Subclause 10.4, “<routine invocation>”, for the invocation of external routines, and in Subclause 9.14, “Execution of array-returning functions” , for the execution of array-returning external functions or multiset-returning external functions, and in Subclause 13.4, “Calls to an <externally-invoked procedure>” , for the call to externally-invoked procedures, and in Subclause 21.3, “<embedded SQL Ada program>”, Subclause 21.4, “<embedded SQL C program>”, Subclause 21.5, “<embedded SQL COBOL program>”, Subclause 21.6, “<embedded SQL Fortran program>”, Subclause 21.7, “<embedded SQL MUMPS program>”, Subclause 21.8, “<embedded SQL Pascal program>” and Subclause 21.9, “<embedded SQL PL/I program>”, for the user-defined type variable of embedded SQL host program. Page 69 of 127 ISO/IEC JTC1/SC32/WG3 JPN-P02-101 3-Major Editorial 13.6 Data type corresponde nces In C data type corresponding to SQL data type CHAR LARGE OBJECT in Table 17, a character length unit should be taken account of. Solution Replace C data Type column in the row whose SQL Data Type column is CHAR LARGE OBJECT in Table 17 with: struct { long hvn_reserved; unsigned long hvn_length; unit hvn_data[L1*k]; } hvn1 2; JPN-P02-102 2-Minor 13.6 Data Technical type corresponde nces <MUMPS type specification> defined in 21.7 <embedded SQL MUMPS program> does not contain NUMERIC type. So, the implied SQL client module for an <embedded SQL MUMPS program> can not have a host parameter whose data type is NUMERIC. Table 20 - Data type correspondences for M, however, defines M data type corresponding to SQL NUMERIC type. The value in the column of M data type corresponding to SQL NUMERIC type in Table 20 should be “None”. Solution JPN-P02-103 3-Major Editorial 13.6 Data type corresponde nces None provided with comment. In SQL data type CHARACTER(1) in Table 21, a character set and a character length unit should be taken account of. Because the corresponding Pascal data type is CHAR, the restriction that the maximum number of octets per character is 1 is required. Solution None provided with comment. JPN-P02-104 3-Major Editorial 14.5 <fetch In SR9)a)i) of 14.5, which is quoted below, a row type is passed to VALUE statement>, parameter in an application of Syntax Rules of 9.2. 14.7 <select i) 04 If TS is an <SQL parameter reference>, then the Syntax Rules of Page 70 of 127 ISO/IEC JTC1/SC32/WG3 statement: single row> Subclause 9.2, “Store assignment”, apply to TS as TARGET and the row type of T as VALUE. Subclause 9.2 requires, however, that VALUE parameter is a value, not a type, because the declared type of VALUE parameter is mentioned in SR1), which reads: 1) Let T be the TARGET and let V be the VALUE in an application of this Subclause. Let TD and SD be the declared types of T and V, respectively. There are similar problems in SR9)a)ii) of 14.5, SR3)a)i) and ii) of 14.7. Solution JPN-P02-105 3-Major Editorial 14.5 <fetch statement> None provided with comment. GR6) of 14.5 reads: 6) If an exception condition occurs during the assignment of a value to a target, then the values of all targets are implementation-dependent. GR6) of 20.17 <dynamic fetch statement> reads: 6) If an exception condition is raised during the assignment of a value to a target, then the values of all targets are implementation-dependent and CR remains positioned on the current row. The description about a cursor position is missing in GR6) of 14.5. It was still in the corresponding rule GR8) of 14.3 <fetch statement> of SQL:2003. Solution JPN-P02-106 Page 71 of 127 4-Minor 14.5 <fetch None provided with comment. The phrase “in conforming SQL language” is missing in CR1). ISO/IEC JTC1/SC32/WG3 Editorial statement> Solution Replace CR1) with: JPN-P02-107 4-Minor Editorial 14.7 <select statement: single row> 1) Without Feature F431, “Read-only ”, in conforming SQL language, a <fetch statement> shall not contain a <fetch orientation>. It would be desirable to describe clearly that “for each <target specification> TS” in SR3)b)iii) and iv) ranges over <select list>, like SR9)b)iii) and iv) of 14.5 <fetch statement>. Solution Replace SR3)b)iii), iii), and iv) with: ii) 04 For i varying from 1 (one) to NOE, let TS1i be the i-th <target specification> in the <select target list> that is either an <SQL parameter reference> or a <target array element specification>, and let SLi be the i-th element of the <select list> that corresponds to the <target specification> in the <select target list>. Case: 1) If <target array element specification> is specified, then the Syntax Rules of Subclause 9.2, “Store assignment”, apply to an arbitrary site whose declared type is the declared type of TS1i and SLi as TARGET and VALUE, respectively. 2) Otherwise, the Syntax Rules of Subclause 9.2, “Store assignment”, apply to TS1i and the corresponding element of the <select list>, as TARGET and VALUE, respectively. iii) For each <target specification> TS2i, 1 (one) ≤ i, ≤ NOE, that is a <host parameter specification>, the Syntax Rules of Subclause 9.1, “Retrieval assignment”, apply to TS2i and the corresponding element of the <select list>, as Page 72 of 127 ISO/IEC JTC1/SC32/WG3 TARGET and VALUE, respectively. For each <target specification> TS2i, 1 (one) ≤ i, ≤ NOE, that is an <embedded variable specification>, the Syntax Rules of Subclause 9.1, “Retrieval assignment”, apply to TS2i and the corresponding element of the <select list>, as TARGET and VALUE, respectively. 14.8 <delete The symbol CN is used to denote a correlation name in SR11), statement: while the same symbol denotes a cursor name in the preceding positioned> rules in the subclause. It is desirable to use the different symbols. iv) JPN-P02-108 4-Minor Editorial 10 Solution JPN-P02-109 4-Minor Editorial None provided with comment. 14.8 <delete The phrase ”privileges for the owner” in AR1)a) of subclause 14.8, statement: AR1)a) of subclause 20.20, and AR1)a) of subclause 20.22 is a positioned>, little bit incorrect, because a privilege is for an authorization 20.20 identifier. In addition, the phrase such as “DELETE for TN” is not <dynamic in conventional wording. delete statement: Solution positioned>, 20.22 1. Replace AR1)a) of 14.8 with: <preparable dynamic a) If DSP is contained, without an intervening <SQL routine delete spec> that specifies SQL SECURITY INVOKER, in an <SQL statement: schema statement>, then the applicable privileges for the positioned> <authorization identifier> of the owner of that schema shall include DELETE foron TN. b) Otherwise, the current privileges shall include DELETE foron TN. 2. Replace AR1)a) of 20.20 with: a) If DDSP is contained, without an intervening <SQL routine spec> that specifies SQL SECURITY INVOKER, in an <SQL schema statement>, then the applicable privileges for the Page 73 of 127 ISO/IEC JTC1/SC32/WG3 <authorization identifier> of the owner of that schema shall include DELETE foron TN. b) Otherwise, the current privileges shall include DELETE foron TN. 3. Replace AR1)a) of 20.22 with: JPN-P02-110 3-Major Editorial 14.12 <merge statement> a) If PDDSP is contained, without an intervening <SQL routine spec> that specifies SQL SECURITY INVOKER, in an <SQL schema statement>, then the applicable privileges for the <authorization identifier> of the owner of that schema shall include DELETE foron TN. b) Otherwise, the current privileges shall include DELETE foron TN. The definition of an exposed <correlation name> and an exposed <table or query name> of <merge statement> are needed, because an <identifier chain> may be contained in scope of it and it is referred in SR8)b) of subclause 6.6 <identifier chain> in order to resolve the reference by a qualifier. There is that definition, for example, in SR11) of 14.9 <delete statement: searched>. Solution Replace SR7) with: JPN-P02-111 1-Major 14.9, Technical <delete statement: searched>, Page 74 of 127 7) Case: a) If <merge correlation name> is specified, then let CN be the <correlation name> contained in <merge correlation name>. CN is an exposed <correlation name>. b) Otherwise, let CN be the <table name> contained in <target table>. CN is an exposed <table or query name>. In the execution of a <delete statement: searched>, an <merge statement> or an <update statement: searched> on a systemversioned table, the rows of historical system versions are automatically removed from the set of modified rows, whereas in ISO/IEC JTC1/SC32/WG3 JPN-P02-112 3-Major Editorial 14.12, <merge statement>, 14.14, <update statement: searched>, 15.13 Effect of replacing rows in base tables 14.12 <merge statement> the execution of an <update statement: positioned>, for the row of historical system versions, an exception condition is raised: data exception — invalid row version. Such a mismatch between behavior of an <update statement: positioned> and those of other statements is not desirable. Solution None provided with comment. SR8) of subclause 7.6 <table reference> defines an exposed <correlation name> and an exposed <table or query name> through a range variable for references to those terms in SR8)b) of subclause 6.6 <identifier chain>. The terms used in “The <correlation name> or exposed <table name> that is exposed by TR (table reference)” in SR10) of 14.12 are a little bit incorrect. Solution Replace SR10) with: JPN-P02-113 4-Minor Editorial 10) The <correlation name> or exposed <table or query name> that is exposed by TR shall not be equivalent to CN. 14.13 The term “exposed correlation name” in SR11)a) of subclause <update 14.13 should be “exposed <correlation name>”, because it is statement: referred as “exposed <correlation name>” in SR8)b) of subclause positioned>, 6.6 <identifier chain>. There is the same issue in SR8)a) of 14.14. 14.14 <update statement: searched> Solution 1. Replace SR11)a) of 14.13 with: a) If <correlation name> is specified, then let CN be that <correlation name>. CN is an exposed <correlation name>. Page 75 of 127 ISO/IEC JTC1/SC32/WG3 2. Replace SR8)a) of 14.14 with: JPN-P02-114 4-Minor Editorial 14.15 <set clause list> a) If <correlation name> is specified, then let CN be that <correlation name>. CN is an exposed <correlation name>. “Case” in SR7)b)vi)1) does not make sense, because subrules of SR7)b)vi)1) does not describe any conditions. Solution Replace SR6)7)vi) with: JPN-P02-115 vi) For 1 (one) ≤ j ≤ Mi: Case: 1) If j = 1 (one), then Case: A) Let MTi,1 be the <mutated target> immediately contained in MSCi. B) Let MNi,1 be the <method name> immediately contained in MSCi. C) Let Vi,1 be: MTi,1 . MNi,1 ( RCVEi ) 2) Otherwise: ….. 1-Major 15.1 Effect While there are the description for positioning a cursor in GR3)e) Technical of opening a of 14.2 <open statement> of SQL:2003, there are no description cursor in the corresponding rule GR4)f) of 15.1. GR3)e) of SQL:2003: e) Case: i) If S specifies INSENSITIVE, then a copy of T is effectively created and cursor CR is placed in the open state and its position is before the first row of the copy of T. ii) Otherwise, cursor CR is placed in the open state and its position is before the first row of T. Page 76 of 127 ISO/IEC JTC1/SC32/WG3 GR4)f) of 15.1 of this CD: f) Case: i) If the operational sensitivity property of RSD is INSENSITIVE, then let TT be a copy of T. ii) Otherwise, let TT be T. Because a cursor position is not determined, the application of 15.3, “Determination of the current row of a cursor” does not work at the first execution of a fetch statement after a cursor opening. For example, the result of GR7)b) of 15.3 depends on a cursor position as follows: b) If FO specifies NEXT or specifies RELATIVE with a positive value of J, then: i) If T is empty or if the position of CR is on or after the last row of T, then let Tt be a sequence of no rows. ii) If the position of CR is on a row R that is other than the last row of T, then let Tt contain all rows of T ordered after row R, preserving their order in T. iii) If the position of CR is before a row R, then let Tt contain row R and all rows of T ordered after row R, preserving their order in T. Solution JPN-P02-116 4-Minor Editorial None provided with comment. 15.3 Two terms “sequence of no rows” and “empty sequence of rows” Determinatio appear in GR7). If the two different terms have the same n of the meaning, the same term should be used. current row of a cursor Solution None provided with comment. JPN-P02-117 Page 77 of 127 4-Minor Editorial 15.3 A grammatically invalid sequence of words “row all rows” appears Determinatio in GR7)c)iii). ISO/IEC JTC1/SC32/WG3 JPN-P02-118 n of the current row of a cursor 1-Major 15.7, Effect Technical of deleting rows from base tables Solution iii) If the position of CR is before a row R that is not the first row of T, then let Tt contain row all rows of T ordered before row R, preserving their order in T. In 15.7 Effect of deleting rows from base tables, there are no rules for system-versioned table. Solution None provided with comment. JPN-P02-119 4-Minor Editorial 15.9 Effect GR3)a)ii)1) of subclause 15.9 reads: of deleting some rows 1) The set of transitions of SC consists of one copy of every from a row of V that is identified for deletion. viewed table, 15.12 Effect “each” is missing between “one copy” and “of every row” by of inserting a analogy with GR4)a) of subclause 15.7, which reads: table into a viewed table a) If a state change SC exists in SSC with subject table ST and trigger event DELETE, then one copy each of every row of ST that is identified for deletion in ST is added to the set of transitions of SC. There is the same issue in GR3)a)ii)1) subclause 15.12. Solution 1. Replace GR3)a)ii)1) of 15.9 with: 1) The set of transitions of SC consists of one copy each of every row of V that is identified for deletion. Page 78 of 127 ISO/IEC JTC1/SC32/WG3 2. Replace GR3)a)ii)1) of 15.12 with: JPN-P02-120 4-Minor Editorial 1) The set of transitions of SC consists of one copy each of every row of S. 15.11 Effect SV is passed to SOURCE parameter in an application of General of inserting a Rules of subclause 9.2 in GR2)b)iii)2) of subclause 15.11, which table into a reads: derived table, 15.14 Effect of replacing some rows in a derived table 2) For j ranging from 1 (one) to n, let C be a column of some candidate row identified by VEj, and let SV be the j-th value of R. The General Rules of Subclause 9.2, “Store assignment”, are applied to C and SV as TARGET and SOURCE, respectively. In Subclause Signature of subclause 9.2, however, VALUE parameter is declared instead of SOURCE. There is the same issue in GR3)c)iii)3) of subclause 15.14. Solution 1. Replace GR2)b)iii)2) of 15.11 with: 2) For j ranging from 1 (one) to n, let C be a column of some candidate row identified by VEj, and let SV be the j-th value of R. The General Rules of Subclause 9.2, “Store assignment”, are applied to C and SV as TARGET and SOURCEVALUE, respectively. 2. Replace GR3)c)iii)3) of 15.14 with: 3) For j ranging from 1 (one) to n, let C be a column of some candidate row identified by VEj, and let SV be the j-th value of CNR. The General Rules of Subclause 9.2, “Store assignment”, are applied to C and SV as TARGET and Page 79 of 127 ISO/IEC JTC1/SC32/WG3 JPN-P02-121 SOURCEVALUE, respectively. 15.13 is invoked in general rules of subclause 14.13 <update statement: positioned> and subclause 14.14 <update statement: rows in base searched>, if the update target is a base table. In GR5)a) of tables 15.13, quoted below, the value of an identity column is updated. 1-Major 15.13 Effect Technical of replacing 5) For every table ST that is identified for replacement processing, let TL be the set consisting of the names of the columns of ST. For every subset STL of TL such that either STL is empty or the intersection of STL and OC is not empty: a) If some column IC of T is the identity column of ST, then, for each row identified for replacement in ST whose site ICS corresponding to IC is marked as unassigned: i) Let NV be the result of applying the General Rules of Subclause 9.23, “Generation of the next value of a sequence generator”, with the sequence generator descriptor included in the column descriptor of IC as SEQUENCE. Case: 1) If the declared type of IC is a distinct type DIST, then let ICNV be DIST(NV). 2) Otherwise, let ICNV be NV. ii) The General Rules of Subclause 9.2, “Store assignment”, are applied with ICS as TARGET and ICNV as VALUE. This rule is, however, applied regardless of which an identity column is specified in set clause, whenever an update statement whose target table includes an identity column is executed. Take the following table for example. CREATE TABLE T1 (C1 INT GENERATED ALWAYS AS IDENTITY (START WITH 1) PRIMARY KEY, C2 CHAR(10)) Page 80 of 127 ISO/IEC JTC1/SC32/WG3 Consider the update statement that set just the column other than the identity column. UPDATE T1 SET C2=’A’ WHERE … This statement causes the increment of the value of the identity column due to GR5)a). It does not seem reasonable that the value of a surrogate key is changed every time some column in a table is updated. Solution JPN-P02-122 None provided with comment. STL appearing in GR5) is some combination of columns in a target table which include some object columns. GR5)a) is applied for rows in base every STL and invokes subclause 9.23 “Generation of the next tables value of a sequence generator”. Since a state change is added for every STL that matches a column list of trigger event UPDATE in GR5)c), the values of the identity column in transitions are different among row-level UPDATE triggers activated by just one update operation on a row. They should be the same value within an update operation. 1-Major 15.13 Effect Technical of replacing Solution JPN-P02-123 None provided with comment. 1-Major 15.13 Effect The site in a transition corresponding to a generated column is Technical of replacing updated in GR7). The row identified for replacement is, however, rows in base replaced with its new transition variable, not the transition. tables Therefore the change of the generated column is not reflected to the row. Solution None provided with comment. Page 81 of 127 ISO/IEC JTC1/SC32/WG3 JPN-P02-124 1-Major 15.13 Effect Technical of replacing When just one row in a system-versioned table is updated multiple times in an SQL-transaction, multiple rows are inserted rows in base into the table due to iii)2) of GR8)a), which reads: tables a) If T is a system-versioned table, then: i) Let START be the system-version start column of T and let END be the system-version end column of T. Let DT be the data type of system-version start column of T. ii) Let TTS be the transaction timestamp of the current SQLtransaction. Let CTTS be the result of CAST (TTS AS DT) iii) For every row R that is identified for replacement in T, let STARTVAL be the value of system version start column. 1) If CTTS ≤ STARTVAL, then an exception condition is raised: data exception — invalid row version. 2) A copy of the old transition variable with the value of END effectively replaced by CTTS is inserted into T. 3) R is replaced by its new transition variable with the value of START effectively replaced by CTTS. 4) R is no longer identified for replacement. T is no longer identified for replacement processing. iv) Let S be the set consisting of every R. S is the new delta table of update operation on T. While the row inserted by GR8)a)iii)2) for the final update operation in the SQL-transaction has committed data, those rows for other update operations have uncommitted data. It is desirable to insert only the row that includes committed data, because the timestamp of the row in a system-versioned table is a transaction timestamp, not the timestamp when an update operation is performed. Solution None provided with comment. Page 82 of 127 ISO/IEC JTC1/SC32/WG3 JPN-P02-125 4-Minor Editorial 15.14 Effect of replacing some rows in a derived table In the definitions of symbols CL1 and CL2 in the lead text of GR3)b), the meanings of the symbols are immediately after “let” and the symbols are on the right side immediately after “be”. This is, however, different from other descriptions that define symbols using “let”. The symbols CL1 and CL2 and the meanings should be reversed. Solution Replace the lead text of GR3)b) with: JPN-P02-126 1-Major 15.17 Technical Execution of referential actions b)…..Let T1 and T2 be the tables identified by LO and RO, respectively. Let the object columns CL1 and CL2 be the columns of T1 and T2 that are underlying columns of the object columns of CL be the object columns CL1 and CL2, respectively. Let RS1 and RS2 be the initially empty replacement sets for T1 and T2, respectively. GR10)a)ii) is the update rule in case that the referential action is SET NULL. In this rule, there is no difference between 1), the rule in case that the match type is SIMPLE and 2), in case that match type is FULL. ii) If UR specifies SET NULL, then Case: 1) If M specifies SIMPLE, then: A) Each matching row MR in F is paired with the candidate replacement row NMR, formed by copying MR and setting each referencing column in the copy to the null value. MR is identified for replacement by NMR in F. The set of (MR, NMR) pairs is the replacement set for F. B) F is identified for replacement processing with subtables with respect to the referencing columns. C) The General Rules of Subclause 15.13, “Effect of replacing rows in base tables”, are applied. 2) If M specifies FULL, then: Page 83 of 127 ISO/IEC JTC1/SC32/WG3 A) Each matching row MR in F is paired with the candidate replacement row NMR, formed by copying MR and setting each referencing column in the copy to the null value. MR is identified for replacement by NMR in F. The set of (MR, NMR) pairs is the replacement set for F. B) F is identified for replacement processing with subtables with respect to the referencing columns. C) The General Rules of Subclause 15.13, “Effect of replacing rows in base tables”, are applied. The corresponding rule GR8)a)ii) of 11.8 <referential constraint definition> of SQL:2003 Part2, quoted below, has a difference for two cases ii) If the <update rule> specifies SET NULL, then Case: 1) If SIMPLE is specified or implicit, then: A) For every F, for each matching row MR in F, a transition is formed by pairing MR with the value formed by copying MR and setting each referencing column in the copy to the null value. ….. 2) If <match type> specifies FULL, then: A) For every F, for each matching row MR in F, a transition is formed by pairing MR with the value formed by copying MR and setting each referencing column in the copy that corresponds with a referenced column to the null value. ….. Solution JPN-P02-127 Page 84 of 127 3-Major Editorial 15.17 Execution of None provided with comment. The symbol T defined in GR17) that is quoted below and is the last rule in the subclause, is not referred anywhere in this ISO/IEC JTC1/SC32/WG3 referential actions subclause. 17) If any table T is the subject table of a state change in SSC that has been created or modified during evaluation of the preceding General Rules of this subclause, then, for every referential constraint descriptor RC2 of an enforced referential constraint, General Rules of this Subclause are applied with RC2 as CONSTRAINT. Solution JPN-P02-128 4-Minor Editorial 15.19 Execution of triggers None provided with comment. “in” immediately before “ST” is duplicated in GR4)a)iii). Solution Replace GR4)a)iii) with: JPN-P02-129 4-Minor Editorial 18.2 <set connection statement> iii) If TE is UPDATE, then the old transition table for the invocation of TA is the multiset formed by taking the old rows of the transitions in in ST and the new transition table for the invocation of TA is the multiset formed by taking the new rows of the transitions in ST. If TR is a row-level trigger, then the value of the old transition variable for the invocation of TA is the old row of T and the new transition variable for the invocation of TA is the new row of T. Throughout the subclause, the term “SQL-session context information” is used. It is not exact. The term “SQL-session context” is exact. Solution JPN-P02-130 Page 85 of 127 4-Minor Editorial 19.2 <set session user Replace “SQL-session context information” with “SQL-session context” throughout the subclause. “then” immediately before “restriction” is duplicated in GR4). ISO/IEC JTC1/SC32/WG3 identifier statement> Solution Replace GR4) with: JPN-P02-131 4-Minor Editorial 19.8 <set path statement> 4) If V is not equal to the current value of the SQL-session user identifier of the current SQL-session context, then then restrictions on the permissible values for V are implementation-defined. Unnecessary word “respectively” appears immediately after “<direct SQL statement>” in Function. Solution Replace Function with: JPN-P02-132 4-Minor Editorial 20.1 Description of SQL descriptor areas Function Set the SQL-path used to determine the subject routine of <routine invocation>s with unqualified <routine name>s in <preparable statement>s that are prepared in the current SQL-session by an <execute immediate statement> or a <prepare statement> and in <direct SQL statement>s, respectively, that are invoked directly. The SQL-path remains the current SQL-path of the SQL-session until another SQLpath is successfully set. “(L)” is missing immediately after the second occurrence of “BINARY VARYING” in SR7)e). Solution Replace SR7)e) with: JPN-P02-133 Page 86 of 127 3-Major 20.1 e) Either TYPE indicates BINARY VARYING and T is specified by BINARY VARYING(L) or TYPE indicates BINARY LARGE OBJECT and T is specified by BINARY LARGE OBJECT(L), and ….. The phrase of “the row type of SVT“ appears in SR7)q) which ISO/IEC JTC1/SC32/WG3 Editorial Description of SQL descriptor areas specifies some descriptor fields for a REF type value . A row type is, however, not an attribute of a REF type value. Solution Replace SR7)q) with: JPN-P02-134 4-Minor Editorial 20.1 Description of SQL descriptor areas q) TYPE indicates REF and T is specified by REF, where the <user-defined type name> formed by the values of USER_DEFINED_TYPE_CATALOG, USER_DEFINED_TYPE_SCHEMA, and USER_DEFINED_TYPE_NAME identifies the row referenced type of SVT, and SCOPE_CATALOG, SCOPE_SCHEMA, and SCOPE_NAME identify the scope of the reference type. The description that a data type matches a descriptor area in SR7)s), t), u) and v) is not appropriate, because what a data type matches is a data type according to the definition in the lead text of SR7), which reads: 7) The declared type T of a <simple value specification> or a <simple target specification> SVT is said to match the data type specified by a valid item descriptor area IDA if and only if one of the following conditions is true. Solution Replace SR7)s), t), u) and v) with: s) TYPE indicates ARRAY and T is an array type with maximum cardinality C and the data type of the element type of T matches the data type specified by the immediately subordinate descriptor area of IDA, and Case: i) ….. ii) ….. t) TYPE indicates ARRAY LOCATOR and T is an array locator Page 87 of 127 ISO/IEC JTC1/SC32/WG3 JPN-P02-135 4-Minor Editorial 20.1 Description of SQL descriptor areas type whose associated array type has maximum cardinality C and the data type of the element type of the associated array type of T matches the data type specified by the immediately subordinate descriptor area of IDA, and Case: i) ….. ii) ….. u) TYPE indicates MULTISET and T is a multiset type and the data type of the element type of T matches the data type specified by the immediately subordinate descriptor area of IDA. v) TYPE indicates MULTISET LOCATOR and T is a multiset locator type and the data type of the element type of T matches the data type specified by the immediately subordinate descriptor area of IDA. GR5) states that Table 32, “SQL-statement codes”, specifies the identifier of the SQL-statements. Table32 specifies, however, the code of the SQL-statements. Solution Replace GR5) with: JPN-P02-136 2-Minor 20.3 Technical <deallocate descriptor statement>, 20.4 <get descriptor statement> Page 88 of 127 5) The value of DYNAMIC_FUNCTION_CODE is a number that identifies the type of the prepared or executed SQLstatement. Table 32, “SQL-statement codes”, specifies the identifier code of the SQL-statements. There is no rule in the case that the value of <extended descriptor name> does not conform to the Format and Syntax Rules of an <identifier>. Such a rule is in 20.2 <allocate descriptor statement>, indeed, and the validity of the value of <extended descriptor name> is checked when a descriptor is allocated. The variable used for <extended descriptor name>, however, may be modified or the wrong variable, which is different from that used on allocation of descriptor, is specified possibly due to bugs of an application program. ISO/IEC JTC1/SC32/WG3 Solution JPN-P02-137 4-Minor Editorial 20.4 <get descriptor statement>, 20.5 <set descriptor statement> None provided with comment. The description of “the <descriptor name> was allocated” in GR2) of subclause 20.4 is inappropriatet, because a descriptor area is allocated and a name is not. The same issue is also in GR2) of subclause 20.5 Solution 1. Replace GR2) of 20.4 with: 2) If the <item number> specified in a <get descriptor statement> is greater than the value of <occurrences> specified when the SQL descriptor area identified by the <descriptor name> was allocated or less than 1 (one), then an exception condition is raised: dynamic SQL error — invalid descriptor index. 2. Replace GR2) of 20.5 with: JPN-P02-138 4-Minor Editorial 20.4 <get descriptor statement> 2) If the <item number> specified in a <set descriptor statement> is greater than the value of <occurrences> specified when the SQL descriptor areas identified by the <descriptor name> was allocated or less than 1 (one), then an exception condition is raised: dynamic SQL error — invalid descriptor index. “the value of” immediately before “TYPE” is unnecessary in GR5)b). Solution Replace GR5)b) with: b) If the value of TYPE in IDA indicates ROW, then an Page 89 of 127 ISO/IEC JTC1/SC32/WG3 JPN-P02-139 4-Minor Editorial 20.5 <set descriptor statement> exception condition is raised: dynamic SQL error — undefined DATA value. It is better that word “shown” is inserted between “that” and “in the Data Type column of the row of Table 23” in SR1) like other rules such as SR2) etc. Solution Replace SR1) with: JPN-P02-140 4-Minor Editorial 20.6 <prepare statement> 1) For each <set header information>, <header item name> shall not be KEY_TYPE, TOP_LEVEL_COUNT, DYNAMIC_FUNCTION, or DYNAMIC_FUNCTION_CODE, and the declared type of <simple value specification 1> shall be that shown in the Data Type column of the row of Table 23, “Data types of <key word>s used in the header of SQL descriptor areas”, whose <key word> column value is equivalent to <header item name>. The description of “DP is the value of …” should be “DP represents the value of …” in GR5)a)xxxi) by analogy with other rules such as GR5)a)xxvii). Solution Replace GR5)a)xxxi) with: JPN-P02-141 Page 90 of 127 4-Minor Editorial 20.6 <prepare statement> xxxi) 04 If DP is an <SQL argument> of RI or if DP is represents the value of a subfield SF of the declared type of a <value expression> immediately contained in such an <SQL argument>, and if DP is the i-th <SQL argument> of RI or is contained in the i-th <SQL argument> of RI, then let RT denote the declared type of the i-th SQL parameter of SR. “of SR” is duplicated in GR7)a)iii)1). Solution ISO/IEC JTC1/SC32/WG3 Replace GR7)a)iii)1) with: 1) D is an input <dynamic parameter specification> if the <parameter mode> of the k-th SQL parameter of SR of SR is IN or INOUT. JPN-P02-142 2-Minor 20.9 Technical <describe statement> The expression “(k+NSj+1)” for the ordinal position of the item descriptor for the next column to j-th column in GR6)f)iii)1), quoted below, is incorrect. iii) If the descriptor for the j-th column or <dynamic parameter specification> is assigned to the k-th item descriptor area, then: 1) The descriptor for the (j+1)-th column or <dynamic parameter specification> is assigned to the (k+NSj+1)-th item descriptor area. Because subordinate descriptors of j-th column follow the item descriptor for j-th column, NSj+1 must be replaced with NSj, the number of subordinate descriptors of j-th column. But the expression “(k+NSj)” still does not work. When the item descriptor for j-th column is assigned to k-th item descriptor, if NSj is 0(zero), for example, the expression raises the fallacy that j+1-th column is also assigned to k-th item descriptor. Avoiding the fallacy, (k+NSj) is necessary to increase by +1. Solution Replace GR6)f)iii)1) with: 1) The descriptor for the (j+1)-th column or <dynamic parameter specification> is assigned to the (k+NSj+1+1)th item descriptor area. JPN-P02-143 Page 91 of 127 4-Minor Editorial 20.9 <describe “implementation-defined value” for the value of NAME in GR7)c)iii)2)B) seems to be incorrect according to other rules ISO/IEC JTC1/SC32/WG3 statement> related with UNMAMED and NAME. “implementation-dependent name” is correct. Solution Replace GR7)c)iii)2)B) with: JPN-P02-144 2-Minor 20.9 Technical <describe statement> B) Otherwise, UNNAMED is set to 1 (one) and NAME is set to an implementation-defined value dependent name. While LENGTH and OCTET_LENGTH for a character string have different values, those for binary string have the same value, because unlike the case of a character string, length in octets of a binary string is uniquely determined for each binary string value. The phrase of “the maximum possible length in octets of the binary string” in GR7)d)ii) is not appropriate to describe an unique value. Solution Replace GR7)d)ii) with: JPN-P02-145 2-Minor 20.9 Technical <describe statement> ii) If TYPE indicates a <binary string type>, then LENGTH and OCTET_LENGTH is are set to the length or maximum length in octets of the binary string and OCTET_LENGTH is set to the maximum possible length in octets of the binary string. Although GR7)d)viii)2) mentions only a base table as a referenceable table, is it not possible that a referenceable table is a viewed table? 2) SCOPE_CATALOG, SCOPE_SCHEMA, and SCOPE_NAME are set to the fully qualified name of the referenceable base table. Solution Page 92 of 127 ISO/IEC JTC1/SC32/WG3 JPN-P02-146 4-Minor Editorial 20.11 <output using clause> None provided with comment. The term “data type” in GR5)b)ii) should be “declared type”. Solution Replace GR5)b)ii) with: JPN-P02-147 4-Minor Editorial 20.15 <allocate cursor statement> ii) If <into arguments> is specified, then let TDT be the datadeclared type of the i-th <into argument>. The term “<extended statement name>” in GR1)b) is inappropriate, because V is the value given by <extended cursor name>. Solution Replace GR1)b) with: JPN-P02-148 4-Minor Editorial 20.15 <allocate cursor statement> b) Otherwise, let ECN be the <extended statementcursor name>. The value of ECN is V. Subrules following the description “… includes:” in GR3)d) and e) and GR4)e) enumerate items that a cursor declaration descriptor includes. Each of the subrules, however, is not an item. The description “… includes” should be replaced with “… includes indications that:” like GR4)d) Solution 1. Replace GR3)d) and e) with: d) A cursor declaration descriptor CDD is created. CDD includes indications that: i) The kind of cursor is an extended statement cursor. ii) The provenance of the cursor is Case: ….. Page 93 of 127 ISO/IEC JTC1/SC32/WG3 iii) The name of the cursor is the extended name V and the explicit or implicit <scope option> of the <extended cursor name>. iv) The cursor origin is P. v) The cursor's declared properties are as determined by the <cursor properties>. e) A cursor instance descriptor CID is created. CID includes indications that: i) The cursor declaration descriptor is CDD. ii) The SQL-session identifier is the current SQL-session identifier. iii) The cursor's state is closed. 2. Replace GR4)e) with: JPN-P02-149 3-Major Editorial 20.23 <preparable dynamic cursor name> e) A cursor instance descriptor CID is created. CID includes indications that: i) The cursor declaration descriptor is CDD. ii) The SQL-session identifier is the current SQL-session identifier. iii) The cursor's state is open. According to SR1), a <prepare statement> is one of the statements that contain a <preparable dynamic cursor name>. The production rule of the <prepare statement>, however, does not derive a <preparable dynamic cursor name>. Solution 1. Replace SR1) of 20.23 with: JPN-P02-150 Page 94 of 127 4-Minor 20.23 1) Let PDCN be the <preparable dynamic cursor name>, let CN be the <cursor name> contained in PDCN, and let P be the <prepare statement>, <preparable dynamic delete statement: positioned>, or <preparable dynamic update statement: positioned> that contains PDCN. An incorrect term “SLI-client module” appears in SR1)b)i). ISO/IEC JTC1/SC32/WG3 Editorial <preparable dynamic cursor name> Solution Replace SR1)b)i) with: The potentially referenced cursors of PDCN include every declared dynamic cursor whose <cursor name> is equivalent to CN and whose scope is the containing SQL-client module (minus any <SQL schema statement>s contained in the SQLclient module) and every extended dynamic cursor having an <extended cursor name> that has a scope of the containing SLISQL-client module (minus any <SQL schema statement>s contained in the SQL-client module) and whose <cursor name> is equivalent to CN. An incorrect term “user-defined locator” appears in SR10)a) and c). i) JPN-P02-151 4-Minor Editorial 21.1 <embedded SQL host program> 03 Solution Replace SR10)a) and c) with: a) If <embedded transform group specification> is not specified, then an <embedded transform group specification> containing a <multiple group specification> with a <group specification> GS for each <host variable definition> that has an associated user-defined type UDT, but is not a user-defined type locator variable is implicit. The <group name> of GS is implementation-defined and its <path-resolved user-defined type name> is the <userdefined type name> of UDT. b) ….. c) If <embedded transform group specification> contains a <multiple group specification> MGS, then an <embedded transform group specification> containing a <multiple group specification> that contains MGS extended with a <group specification> GS for each <host variable definition> that has an associated user-defined type UDT, but is not a user- Page 95 of 127 ISO/IEC JTC1/SC32/WG3 JPN-P02-152 JPN-P02-153 4-Minor Editorial 4-Minor Editorial 21.1 <embedded SQL host program> 21.1 <embedded SQL host program> defined type locator variable and no equivalent of UDT is contained in any <group specification> contained in MGS is implicit. The <group name> of GS is implementation-defined and its <path-resolved user-defined type name> is the <user-defined type name> of UDT. An undefined symbol “V” appears in SR21)h)i)3), 4), and 5). Solution Replace SR21)h)i)3), 4), and 5) with: 3) If EVN identifies an array locator variable, then PT is AAT AS LOCATOR, where AAT is the associated array type of V EVN. 4) If EVN identifies a multiset locator variable, then PT is AMT AS LOCATOR, where AMT is the associated multiset type of V EVN. 5) 14 If EVN identifies a user-defined type locator variable, then PT is UDT AS LOCATOR, where UDT is the associated userdefined type of V EVN. In the definitions of the symbol TPT in SR21)h)ii)1)C), the meaning of the symbol is immediately after “let” and the symbol is on the right side immediately after “be”. This is, however, different from other description that defines a symbol using “let”. The symbol TPT and the meaning should be reversed. Solution Replace SR21)h)ii)1)C) with: JPN-P02-154 1-Major 21.1 Technical <embedded SQL host program> Page 96 of 127 C) Let TPT be the declared type of the single SQL parameter of TSF be TPT. PT shall be assignable to TPT. SR21)l)i) defines host parameter declarations of the externallyinvoked procedure in the implied SQL client module for an SQL embedded host program. i) If ES is not an <open statement>, then: 1) The <procedure name> of PS is implementation- ISO/IEC JTC1/SC32/WG3 dependent. 2) Let n be the number of distinct <embedded variable name>s contained in ES. Let HVNi, 1 (one) ≤ i ≤ n, be the i-th such <embedded variable name> and let HVi be the host variable identified by HVNi. 3) For each HVNi, 1 (one) ≤ i ≤ n, PS contains a <host parameter declaration> PDi defining a host parameter Pi such that: A) The <host parameter name> PNi of PDi is implementation-dependent. B) The <host parameter data type> PTi of PDi is determined as follows. Case: I) If HVi is a binary large object locator variable, then PTi is BLOB AS LOCATOR. ….. V) 14 If HVi is user-defined type locator variable, then PTi is UDT AS LOCATOR, where UDT is the associated user-defined type of HVi. VI) Otherwise, PTi is the SQL data type that corresponds to the host language data type of HVi as specified in Subclause 13.6, “Data type correspondences”. ….. As reported in Annex G, SR21)l)i)3)B)VI) does not work, because the mapping from a host language data type to an SQL data type is not injective in Table16 of subclause 13.6. Especially, in the case of MUMPS, MUMPS characters correspond to many SQL data types. It seems to be appropriate that for a derived type specification, the host parameter data type is the type specified following to SQL TYPE and for a MUMPS type specification, that is the type specified in itself regardless of Table16 of subclause 13.6. Page 97 of 127 ISO/IEC JTC1/SC32/WG3 Solution JPN-P02-155 4-Minor Editorial 21.1 <embedded SQL host program> None provided with comment. The description of “Syntax Rule in <embedded SQL Ada program>,…” appears in SR22)b). It is not appropriate, because syntax rules are in a subclause, not in a syntax element. Solution Replace SR22)b) with: JPN-P02-156 Page 98 of 127 3-Major Editorial 21.3 <embedded SQL Ada program>, 21.4 <embedded SQL C program>, 21.5 <embedded SQL COBOL program>, 21.6 <embedded SQL Fortran b) Each <host variable definition> in an <embedded SQL declare section> has been replaced by a valid data definition in the target host language according to the Syntax Rules specified in an Subclause 21.3, “ <embedded SQL Ada program>”, Subclause 21.4, “<embedded SQL C program>”, Subclause 21.5, “<embedded SQL COBOL program>”, Subclause 21.6, “<embedded SQL Fortran program>”, Subclause 21.8, “<embedded SQL Pascal program>”, or an Subclause 21.9, “<embedded SQL PL/I program>” clause. SR6) of 21.3 defines the term “referenced type” of the reference as follows: 6) The reference type identified by <reference type> contained in an <Ada REF variable> is called the referenced type of the reference. “The reference type” at the beginning of the rule is not appropriate, because the defined term is called “referenced type”. “The referenced type identified by <referenced type> contained in <reference type>” is appropriate instead of “The reference type identified by <reference type>”. The same issue is also in SR6) of 21.4, SR6) of 21.5, SR7) of 21.6, SR10) of 21.7, SR6) of 21.8, and SR6) of 21.9. ISO/IEC JTC1/SC32/WG3 program>, 21.7 <embedded SQL MUMPS program>, 21.8 <embedded SQL Pascal program>, 21.9 <embedded SQL PL/I program> Solution 1. Replace SR6) of 21.3 with: 6) The referenced type identified by <referenced type> contained in <reference type> contained in an <Ada REF variable> is called the referenced type of the reference. 2. Replace SR6) of 21.4 with: 6) The referenced type identified by <referenced type> contained in <reference type> contained in a <C REF variable> is called the referenced type of the reference. 3. Replace SR6) of 21.5 with: 6) The referenced type identified by <referenced type> contained in <reference type> contained in a <COBOL REF variable> is called the referenced type of the reference. 4. Replace SR7) of 21.6 with: 7) The referenced type identified by <referenced type> contained in <reference type> contained in an <Fortran REF variable> is called the referenced type of the reference. 5. Replace SR10) of 21.7 with: 10) The referenced type identified by <referenced type> contained in <reference type> contained in an <MUMPS REF variable> is called the referenced type of the reference. 6. Replace SR6) of 21.8 with: 6) The referenced type identified by <referenced type> contained in <reference type> contained in an <Pascal REF Page 99 of 127 ISO/IEC JTC1/SC32/WG3 variable> is called the referenced type of the reference. 7. Replace SR6) of 21.9 with: 6) The referenced type identified by <referenced type> contained in <reference type> contained in an <PL/I REF variable> is called the referenced type of the reference. JPN-P02-157 4-Minor Editorial 21.4 <embedded SQL C program> There is a typo in SR5)h) that host variable identifier “hvn” is in upper case. Solution Replace SR5)h) with: JPN-P02-158 JPN-P02-159 21.5 <embedded SQL COBOL program>, 21.9 <embedded SQL PL/I program> 1-Major 21.7 Technical <embedded SQL MUMPS program> 3-Major Editorial h) The syntax SQL TYPE IS BINARY ( L ) for a given <C host identifier> hvn shall be replaced by unsigned char HVN hvn [L] in any <C BINARY variable>. The conformance rule for T071, “BIGINT” is missing in subclause 21.5 and subclause 21.9. Solution None provided with comment. The whole <embedded SQL MUMPS declare> shall be removed from the program derived from an <embedded SQL MUMPS program>, because M language has no data type declaration. The modified <MUMPS variable definition> in SR9) is not necessary. Solution None provided with comment. Page 100 of 127 ISO/IEC JTC1/SC32/WG3 JPN-P02-160 1-Major 21.7 Technical <embedded SQL MUMPS program> M language has no data type declaration and any data in MUMPS program is treated as a character string. Is it really possible that an implementation supports data types specified in <MUMPS derived type specification> which is not castable from and to a character type? Solution JPN-P02-161 2-Minor 21.7 Technical <embedded SQL MUMPS program> None provided with comment. SR5), quoted below, needs to provide the rule when CHARACTER SET is explicitly specified. In addition, a character length is necessary to be defined based on the character set specification and the char length units, like other host languages. 5) The <MUMPS character variable> describes a variablelength character string. The equivalent SQL data type is CHARACTER VARYING whose maximum length is the <character length> of the <MUMPS length specification> and whose character set is implementation-defined. Solution JPN-P02-162 3-Major Editorial 21.9 <embedded SQL PL/I program> None provided with comment. While SR5)a) states that the specified character set specification is removed for CHARACTER type and CHARACTER VARYING TYPE, it is not mentioned for CLOB type. Solution Replace SR5)a) with: JPN-P02-163 Page 101 of 127 4-Minor 23.1 <get a) Any optional CHARACTER SET specification shall be removed from the CHARACTER or CHARACTER VARYING alternatives of a <PL/I type specification> and a <PL/I CLOB variable>. ….. In the definitions of the symbol STS in SR1), the meaning of the ISO/IEC JTC1/SC32/WG3 Editorial diagnostics statement> symbol is immediately after “let” and the symbol is on the right side immediately after “be”. This is, however, different from other description that defines a symbol using “let”. The symbol STS and the meaning should be reversed. Solution Replace SR1) with: JPN-P02-164 3-Major Editorial 23.1 <get diagnostics statement> 1) Let STS be the <simple target specification> contained in a <statement information item> or <condition information item> be STS. ….. ….. The following title of Table 32 includes “03” denoting that Part3 SQL/CLI modifies this table. 03 04 09 14 15 Table 32 — SQL-statement codes Part3 does not, however, add any new SQL statement. In addition, “15” denotes Part15, but it does not exist. Solution Replace the title of Table 32: 03 04 09 14 15 JPN-P02-165 2-Minor 23.1 <get Technical diagnostics statement> Table 32 — SQL-statement codes GR2)f), quoted below, mentions the <table name> directly contained in S. If S is an insert statement or a merge statement, however, one or more <table name>s may be directly contained. So, subrules of GR2)f) may not work. f) The value of ROW_COUNT is the number of rows affected as the result of executing a <delete statement: searched>, <insert statement>, <merge statement>, or <update statement: searched> or as a direct result of executing the previous SQL-statement. Let S be the <delete statement: Page 102 of 127 ISO/IEC JTC1/SC32/WG3 searched>, <insert statement>, <merge statement>, or <update statement: searched>. Let T be the table identified by the <table name> directly contained in S. Case: i) If S is an <insert statement>, then the value of ROW_COUNT is the number of rows inserted into T. ii) … ….. Solution JPN-P02-166 4-Minor Editorial 23.1 <get diagnostics statement> None provided with comment. In GR4)h)i)1)A), it is not clear what name is the <qualified identifier>. It should be clarified like “<qualified identifier> of that view” in GR4)j). Solution Replace GR4)h)i)1)A) with: JPN-P02-167 2-Minor 23.1 <get Technical diagnostics statement> Page 103 of 127 A) If the specific table referenced was not a declared local temporary table, then the <catalog name>, the <unqualified schema name> of the <schema name> of the schema that contains the table that caused the syntax error or access rule violation, and the <qualified identifier> of that table, respectively. GR4)l) reads: l) If the value of RETURNED_SQLSTATE corresponds to external routine invocation exception, external routine exception, SQL routine exception, or warning, then i) The values of ROUTINE_CATALOG and ROUTINE_SCHEMA are the <catalog name> and the <unqualified schema name>, respectively, of the <schema name> of the schema containing the SQLinvoked routine. ii) … ISO/IEC JTC1/SC32/WG3 … According to this rule, when SQL statement completes with a warning, the values of ROUTINE_CATALOG and ROUTINE_SCHEMA are assigned to a diagnostics area regardless of whether or not a routine has been executed. The same issue is also in GR4)m). Solution JPN-P02-168 3-Major Editorial 23.1 <get diagnostics statement> None provided with comment. GR4)l)iii)1) reads: 1) If the condition is related to parameter Pi of the SQLinvoked routine, then: A) The value of PARAMETER_MODE is the <parameter mode> of Pi. B) The value of PARAMETER_ORDINAL_POSITION is the value of i. C) The value of PARAMETER_NAME is a zero-length string. Like GR4)q)iii)3), PARAMETER_NAME should be set to the name of Pi, if any. Solution Replace GR4)l)iii)1)C) with: JPN-P02-169 Page 104 of 127 4-Minor Editorial 24.1 SQLSTATE C) If an <SQL parameter name> was specified for the SQL parameter when the SQL-invoked routine was created, then the value of PARAMETER_NAME is the <SQL parameter name> of Pi. Otherwise, Tthe value of PARAMETER_NAME is a zero-length string. The term “implementation-specified” appears. The term “implementation-defined” is correct rather than it. ISO/IEC JTC1/SC32/WG3 Solution 1. Replace the second paragraph with: Class values that begin with one of the <digit>s '0', '1', '2', '3', or '4' or one of the <simple Latin upper case letter>s 'A', 'B', 'C', 'D', 'E', 'F', 'G', or 'H' are returned only for conditions defined in ISO/IEC 9075 or in any other International Standard. The range of such class values is called standarddefined classes. Some such class codes are reserved for use by specific International Standards, as specified elsewhere in this Clause. Subclass values associated with such classes that also begin with one of those 13 characters are returned only for conditions defined in ISO/IEC 9075 or some other International Standard. The range of such subclass values is called standarddefined subclasses. Subclass values associated with such classes that begin with one of the <digit>s '5', '6', '7', '8', or '9' or one of the <simple Latin upper case letter>s 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', or 'Z' are reserved for implementation-specified defined conditions and are called implementation-defined subclasses. 2. Replace the third paragraph with: Class values that begin with one of the <digit>s '5', '6', '7', '8', or '9' or one of the <simple Latin upper case letter>s 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', or 'Z' are reserved for implementation- specified defined exception conditions and are called implementation-defined classes. All subclass values except '000', which means no subclass, associated with such classes are reserved for implementationspecified defined conditions and are called implementationdefined subclasses. An implementation-defined completion condition shall be indicated by returning an implementationdefined subclass in conjunction with one of the classes successful completion, warning, or no data. Page 105 of 127 ISO/IEC JTC1/SC32/WG3 3. Replace the fifth paragraph with: JPN-P02-170 4-Minor Editorial 24.1 SQLSTATE An implementation- specified defined condition may duplicate, in whole or in part, a condition defined in ISO/IEC 9075; however, if such a condition occurs as a result of executing a statement, then the corresponding implementation-defined SQLSTATE value shall not be returned in the SQLSTATE parameter but may be returned in the diagnostics area. The term “subcode” appears in NOTE497. The term “subclass” is correct rather than it. Solution Replace NOTE 497 with: JPN-P02-171 3-Major Editorial 24.1 SQLSTATE NOTE 497 — One consequence of this is that an SQLimplementation may, but is not required by ISO/IEC 9075 to, provide subcodessubclases for exception condition syntax error or access rule violation that distinguish between the syntax error and access rule violation cases. In the Subcondition column of the row in Table 33 whose Condition column is “Remote Database Access”, Table 34 is referred for the description of a subcondition. In Table34, however, any subcondition is not described but subclass origin does. Solution Replace Table 33 with: … X Page 106 of 127 ….. Remote DataBase Access … NZ ….. (See Table 12, “SQLSTATE class and subclass values for ….. ISO/IEC JTC1/SC32/WG3 RDA-specific conditions” in [ISO9579], Subclause 8.1, “Exception codes for RDA-specific Conditions”Table 34, “SQLSTATE class codes for RDA”, for the definition of protocol subconditions and subclass code values) JPN-P02-172 JPN-P02-173 JPN-P02-174 3-Major Editorial 3-Major Editorial 4-Minor Editorial … ….. … ….. ….. 24.2 Remote Although the subclause states to reserve subclass codes for RDA, Database they are not provided in the text of the subclause and in Table 34. Access SQLSTATE Subclasses Solution None provided with comment. 24.2 Remote Although the first paragraph states that [ISO8649] and Database [ISO10026] define some exception conditions, they do not define Access them. SQLSTATE Subclasses, Solution 2.1 ISO and IEC None provided with comment. standards 24.2 Remote The value of SUBCLASS_ORIGIN column in Table 34 does not Database form a literal denoting a standard like ‘ISO9579’. Access SQLSTATE Solution Subclasses SQLSTATE Class HZ Page 107 of 127 Subclass Origin See [ISO9579] ISO/IEC JTC1/SC32/WG3 JPN-P02-175 4-Minor Editorial 24.2 Remote The fourth paragraph states that an exception may result in an Database SQL completion condition. This is inappropriate, because an Access exception results in an SQL exception condition SQLSTATE Subclasses Solution Replace fourth paragraph with: JPN-P02-176 3-Major Editorial A Remote Database Access exception may also result in an SQL completion exception condition defined in Table 33, “SQLSTATE class and subclass values” (such as '40000', transaction rollback); if such a condition occurs, then the 'HZ' class SQLSTATE shall not be returned in the SQLSTATE parameter, but may be returned in the Diagnostics Area. 25.3 Implied Feature S097, “Array element assignment” and Feature S098, feature “ARRAY_AGG” imply Feature S091, “Basic array support”. Table relationships 35 — Implied feature relationships of SQL/Foundation, however, of does not include those features. SQL/Foundat ion JPN-P02-177 JPN-P02-198 3-Major Editorial AnnexB Solution Add the following two rows immediately after the row of Feature S096: S096 Optional array bounds S091 Basic array support S09 Array element S09 Basic array support 7 assignment 1 S09 ARRAY_AGG S09 Basic array support 8 1 The following implementation-defined elements in 1) of Annex B are not found in 2.2.2. 1) Subclause 4.2.2, “Comparison of character strings”: a) The specific character set associated with the subtype of character string represented by the <key word>s NATIONAL CHARACTER is implementation-defined. b) The circumstances in which conversion of non-UCS Page 108 of 127 ISO/IEC JTC1/SC32/WG3 character string expressions from one character set to another is automatic is implementation-defined. As for Annex B 1)a), it seems to correspond to the first sentence of the 5th paragraph of 4.2.1, which reads: The <key word>s NATIONAL CHARACTER are used to specify an implementation-defined character set. Solution JPN-P02-178 4-Minor Editorial AnnexB None provided with comment. Although 54)b) corresponds to SR4) of subclause 10.1, the value of the upper bound of the maximum value of <interval fractional seconds precision> is different from that specified in subclause 10.1. Solution Replace 54)b) with: JPN-P02-179 JPN-P02-198 4-Minor Editorial AnnexB b) The maximum value of <interval fractional seconds precision> is implementation-defined, but shall not be less than 26. Although 55)a) corresponds to GR3)b)ii) of subclause 10.4, the description is less precise than that in subclause 10.4. The condition specified in subclause 10.4 that R is not an SQL routine is lacking in 55)a). Solution Replace 55)a) with: a) If pi Pi is an output SQL parameter and R is not an SQL routine, then CPVi is an implementation-defined value of most specific type Ti. Page 109 of 127 ISO/IEC JTC1/SC32/WG3 JPN-P02-180 4-Minor Editorial AnnexB The term “the top cell” should be used rather than “the first cell” in 55)h), because “the top cell” should be used everywhere other than in55)h). Solution Replace 55)h) with: JPN-P02-181 4-Minor Editorial AnnexB h) If the external security characteristic of an external SQLinvoked routine is IMPLEMENTATION DEFINED, then the user identifier and role name in the first top cell of the authorization stack of the new SQL-session context are implementation-defined. 93)b) has a typo that an incorrect symbol “m” is used. Solution Replace 93)b)with: JPN-P02-182 4-Minor Editorial AnnexB b) If H does not contain an <embedded authorization declaration>, then mM contains a <module authorization clause> that specifies “SCHEMA SN”, where SN is an implementation-defined <schema name>. The term “transaction” in 100)c) and d) should be “SQLtransaction”. Solution Replace 100)c) and d)with: JPN-P02-183 Page 110 of 127 4-Minor AnnexC c) Whether a <direct implementation-defined statement> may be associated with an active SQL-transaction is implementation-defined. d) Whether a <direct implementation-defined statement> initiates an SQL-transaction is implementation-defined. The symbol “c” should be an upper case letter “C” in 10)a). ISO/IEC JTC1/SC32/WG3 Editorial Solution Replace 10)a) with: JPN-P02-184 4-Minor Editorial AnnexC a) If QCR is a group-invariant column reference and the most specific type of QCR is character string, datetime with time zone, or a user-defined type, then QCR denotes an implementation-dependent value that is not distinct from the value of cC in every row of a given group of the qualifying query of QCR. A subclause title is missing in 25). Solution Replace 25) with: 25) Subclause 8.15, “<distinct predicate>”: a) … JPN-P02-185 3-Major Editorial AnnexF F401, ”Extended joined table”, F402, “Named column joins for LOBs, arrays, and multisets”, and F403, “Partitioned join tables” are optional features. These should be excluded from the description about F041, “Basic joined table” in Table 36,”Feature taxonomy and definition for mandatory features”. Solution Replace Feature Description column of the row whose number is 116 in Table 36. JPN-P02-186 Page 111 of 127 4-Minor Editorial AnnexF —Subclause 7.7, “<joined table>” : Without support for feature F401 through F403 The description of “the value of <unquoted timestamp string> is simply <time value>” in Feature Description of row 127 in Table 36 should be “the value of <unquoted timestamp string> simply ISO/IEC JTC1/SC32/WG3 contains <time value>”, because an <unquoted timestamp string> contains also <date value> not only <time value>. Solution Replace Feature Description of row 127 in Table 36 with: JPN-P02-187 3-Major Editorial AnnexF — Subclause 5.3, “<literal>”: The <timestamp literal> form of <datetime literal>, where the value of <unquoted timestamp string> is simply contains <time value> that does not include the optional <time zone interval> — Subclause 6.1, “<data type>”: The TIMESTAMP <datetime type> without the <with or without time zone> clause — Subclause 6.30, “<datetime value expression>”: For values of type TIMESTAMP There is an annotation in the footnote of Table36. The annotation number of it, however, is not referenced anywhere in the table. Solution JPN-P02-188 4-Minor Editorial AnnexF None provided with comment. Table 37 includes features F231, and F502 which are specified in Part11 SQL/Schemata. They are necessary to be removed. Solution Delete row 54 through row 57, row 108 through row 110 and row 214 in Table 37: ….. 54 55 56 57 Page 112 of 127 ….. F231 F23101 F23102 F231- ….. Privilege tables TABLE_PRIVILEGES view COLUMN_PRIVILEGES view USAGE_PRIVILEGES view ISO/IEC JTC1/SC32/WG3 03 ….. F502 F50202 110 F50203 ….. ….. 214 T011 ….. ….. An invalid character 186 of Table 37. ….. 108 109 JPN-P02-189 4-Minor Editorial AnnexF ….. Enhanced documentation tables SQL_IMPLEMENTATION_INFO view SQL_PACKAGES view ….. Timestamp in Information Schema ….. appears in the row number column of row Solution Replace row 186 in Table 37 with: JPN-P02-190 No specific 1-Major Technical location ….. ….. ….. 186/ S098 ARRAY_AGG > ….. ….. ….. The approach described in SQL system-versioned table is not a valid approach to the issue of capturing historical data changes. This approach is essentially different extension of the function of constraints and data manipulations such as insert/update/delete operations on a base table that forms the basis of SQL functionality. This approach is such that it is said in the proverb of Japan, “To engraft a bamboo upon a tree.” This extension of the function should be manipulated in SQL application program itself or provided by applications upon SQL databases. Solution JPN-P02-191 Page 113 of 127 No specific 1-Major Technical location None provided with comment. The rows that include the specified historical system versions can be retrieved, but the specific operations for historical data are not ISO/IEC JTC1/SC32/WG3 defined. Solution JPN-P02-192 No specific 1-Major Technical location None provided with comment. It is necessary to examine the interoperability between the functional specification that supports a system-versioned table and the functional specification that supports an existing table. There are some issues of transaction and recovery to be discussed. Solution JPN-P02-193 No specific 1-Major Technical location None provided with comment. It is uncertain whether the rows that are deleted after the expiration time are recoverable or not. There is no rule of expiration specification after the retention period. Solution JPN-P02-194 No specific 1-Major Technical location None provided with comment. It is very hard to understand the function "system-versioned tables" easily from the current CD. A system-versioned table has very different aspect from a regular table in various terms. Also, the function should be individually operatable, but it seems that the explanation itself is dispersed over a lot of Clauses, so that the reader has to check the related sentence in whole contents and understand how to use the function exactly. Solution 1. Add a new subclause for the concept of a system-versioned table in clause 4. 2. Develop a new part of the Technical Report 19075 to provide a tutorial about a system-versioned table. The Use Case might be useful to understand the operation. Page 114 of 127 ISO/IEC JTC1/SC32/WG3 JPN-P02-195 No specific 1-Major Technical location It is necessary to recognize the falsification including the leakage and the deletion of data. The session security context is introduced into SQL-server, and the number of rows processed as a result of data operation, such as SELECT, INSERT, UPDATE, DELETE, and MERGE, are limited in an SQL-session. Solution JPN-P02-196 No specific 1-Major Technical location None provided with comment. SQL-server security is protected by privileges. The information that can be referenced, the information that can be updated, and the objects that can be manipulated (schema objects, etc.) are restricted by privileges. SQL-server can keep track of various operations on the database in order to make it possible to determine whether or not the privileges are operating appropriately. This facility is called the security audit facility, and the record of actions that is output is called an audit trail. The audit trail that is output can be examined to check for inappropriate accesses. The audit trail collects information on who performed what action on what using what privilege. A threat agent who has connected to SQL system impersonates an authorized user or an authorized user impersonates another authorized user. This leads to the situation that a user can access with privileges that the user should not have. Authorized access to assets by a threat agent can not be protected by means of privileges. This access must be detected or restrained by auditing. This work should focus on standardizing audit trail data and format. Solution JPN-P02-197 Page 115 of 127 No specific 1-Major Technical location None provided with comment. Numerical calculations in SQL approximate numeric types are based on Binary Floating Point arithmetic, and therefore, it is wellknown that the results may not be always identical to what users can obtain naturally by using pencil and paper. IEEE had been ISO/IEC JTC1/SC32/WG3 discussing a new Decimal Floating Point arithmetic to overcome this deficiency, and that was published in 2008 as IEEE 754R. Following this movement, computer hardware (processors of Intel, Unix, host systems) and language compilers like C/C++ started to support the Decimal Floating Point arithmetic. In the areas of financial, insurance, and accounting applications, those frameworks are desiring Decimal Floating Point arithmetic as exact and reliable calculations. In these circumstances, the SQL standard should support a Decimal Floating Point type and its arithmetic as a new numeric type. Solution JPN-P02-198 JPN-P02-008 3-Major JPN-P02-177 Editorial JPN-P02-179 No specific location None provided with comment. A lot of implementation-defined elements in rules specified in the standard are not included in Annex B. A number of implementation-defined elements included in Annex B are described differently from the corresponding rules or does not have the corresponding rules specified in the standard. Solution JPN-P02-199 3-Major Editorial No specific location None provided with comment. A lot of implementation-dependant elements in rules specified in the standard are not included in Annex C. A number of implementation-dependant elements included in Annex C are described differently from the corresponding rules or does not have the corresponding rules specified in the standard. Solution JPN-P02-200 JPN-P02-030 4-Minor Editorial No specific location None provided with comment. A lot of feature names are incomplete, such as Feature F821, “Local ”, whose complete name is “Local table references”. Solution Page 116 of 127 ISO/IEC JTC1/SC32/WG3 None provided with comment. Page 117 of 127 Template for comments and secretariat observations Date: 2008 April 15th Document: CD 9075-2 1 2 (3) 4 5 (6) (7) MB1 Clause No./ Subclause No./ Annex (e.g. 3.1) Paragraph/ Figure/Table /Note (e.g. Table 1) Type of comment2 Comment (justification for change) by the MB Proposed change by the MB Secretariat observations on each comment submitted GB-01 3.1.6 ed GB-02 4.2.2 GB-03 4.7.1 te GB-04 4.14.2 ed 1 te In the Definitions in Part 2, and in other subclauses, “data type” is frequently written simply as “type”. Either is acceptable, but in the interests of mindnumbing consistency, one style should be used throughout the standard. The first paragraph says that two character strings are comparable if either they have the same character set or there exists a collation that is applicable to both. However, 8.2 <comparison predicate> SR 5)a) subrules i) and ii) refer to Subclauses 9.9 "Equality operations" and 9.12 "Ordering operations", which both refer to 9.13 "Collation determination", which refers to 9.3 "Result of data type combinations", where SR 3)a)i) requires that all character strings to be compared have the same repertoire. Thus it seems that even if there were a collation that applied to two character sets with different repertoires, the character sets would not be comparable. To solve this, we can either reword Concepts to say that comparability requires a single shared character repertoire, or we can change 9.13 "Collation derivation" to say that the collation determined by the rules must be applicable to all comparands. The latter course appears more general. The descriptor of a method specification seems not to be correctly initialized by subclauses 11.46 “<add original method specification>” GR 1 and 11.47 “<add overriding method specification>” GR 1. They identify different sets of attributes and present the attributes described in both places in a different sequence. The definition of current system version is really the system version at time T, and the current system version should be the system version at the current time. 1 MB = Member body (enter the ISO 3166 two-letter country code, e.g. CN for China; comments from the ISO/CS editing unit are identified by **) 2 Type of comment: ge = general te = technical ed = editorial NOTE Columns 1, 2, 4, 5 are compulsory. page 1 of 127 ISO electronic balloting commenting template/version 2001-10 Template for comments and secretariat observations Date: 2008 April 15th Document: CD 9075-2 1 2 (3) 4 5 (6) (7) MB1 Clause No./ Subclause No./ Annex (e.g. 3.1) Paragraph/ Figure/Table /Note (e.g. Table 1) Type of comment2 Comment (justification for change) by the MB Proposed change by the MB Secretariat observations on each comment submitted GB-05 4.14.2 te System version tables use a transaction timestamp that is set before any steps of a transaction are executed, so that each step can then use the same one and thus all appear to have been executed at the same time. While the actual value of a transaction timestamp is implementation dependent, generating it at the start of a transaction cannot provide the behaviour that would be expected for transaction sequencing, which would require the transaction end time. A better approach might be to record a transaction identifier in system version tables rather than transaction end time, and record transaction end time elsewhere (in some system table) that can be set after completion of a transaction (though perhaps still implementation dependent). A function such as SYS_TIME(TRANSACTION_ID) could provide the transaction time for subsequent use. GB-06 4.18.7 te We have added some new kinds of <table primary> that are not discussed in this Subclause. The missing kinds are: first bullet about immediately containing a <table or query name> assumes that this includes <only spec>, but actually <only spec> is not a kind of <table or query name>. need <table function derived table> need to support parenthesized <join table> 1 MB = Member body (enter the ISO 3166 two-letter country code, e.g. CN for China; comments from the ISO/CS editing unit are identified by **) 2 Type of comment: ge = general te = technical ed = editorial NOTE Columns 1, 2, 4, 5 are compulsory. page 2 of 127 ISO electronic balloting commenting template/version 2001-10 Template for comments and secretariat observations Date: 2008 April 15th Document: CD 9075-2 1 2 (3) 4 5 (6) (7) MB1 Clause No./ Subclause No./ Annex (e.g. 3.1) Paragraph/ Figure/Table /Note (e.g. Table 1) Type of comment2 Comment (justification for change) by the MB Proposed change by the MB Secretariat observations on each comment submitted GB-07 7.6 te GB-08 7.6 te GB-09 7.6 te GB-10 7.7 te Syntax Rule 7)a), which covers the case of a <table factor> simply containing a <joined table>, defines a symbol JT that is not referenced in any subsequent rule. Otherwise, SR 7)b) defines symbols that are used in SR8) to identify a <correlation name> or, if none is present, a <table or query name>, as a range variable. There is no definition of range variable for a <table factor> that simply contains a <joined table>. Syntax Rule 8 assumes that every <table factor> simply contains either a <correlation name> or a <table or query name>. This is not the case when a <table primary> TP immediately contains a <parenthesized joined table> PJT. A possible solution is to make SR8) part of case b) or SR7). Another is to add an appropriate guard to SR8). Syntax Rule 8) assumes that every <table factor> has either a <correlation name> or a <table or query name>. But in the case <table factor> ::= <table primary> ::= <left paren> <joined table> <right paren>, this is not true. This causes problems elsewhere. For example, 7.7 <joined table> assumes the <table reference>s have range variables, but they don't in the case of nested <joined table>s. For example, (T1 LEFT OUTER JOIN T2 ON T1.K = T2.K) CROSS JOIN T3. The Syntax Rules contain multiple definitions of the symbol TP. It is not always obvious whether or not these refer to the same thing. It would be a useful clarification to factor out the redefinitions into a single rule and introduce other symbols where appropriate. Syntax Rule 2) assumes that every <table reference> or <table factor> that is an operand of a <joined table> has a range variable. This is not so when one of the operands contains a <joined table>. 1 MB = Member body (enter the ISO 3166 two-letter country code, e.g. CN for China; comments from the ISO/CS editing unit are identified by **) 2 Type of comment: ge = general te = technical ed = editorial NOTE Columns 1, 2, 4, 5 are compulsory. page 3 of 127 ISO electronic balloting commenting template/version 2001-10 Template for comments and secretariat observations Date: 2008 April 15th Document: CD 9075-2 1 2 (3) 4 5 (6) (7) MB1 Clause No./ Subclause No./ Annex (e.g. 3.1) Paragraph/ Figure/Table /Note (e.g. Table 1) Type of comment2 Comment (justification for change) by the MB Proposed change by the MB Secretariat observations on each comment submitted GB-11 No specific location te GB-12 No specific location te The time at which the effects of a transaction become visible to other transactions should be available. Further, some symbolic representation of this time should be available within the transaction. One possible solution is to introduce a “transaction identifier” which is known to the transaction, and a system table, generally accessible, in which the termination time of each transaction is recorded against its transaction identifier. Such a mechanism would facilitate audit processes. There are a number of areas where the current specification does not address requirements that are becoming visible, or have been visible for some time in the market place, for example the handling of streaming data from sensors, security concerns and temporal functionality. Since the increased functionality relative to the established standard that is proposed is relatively small, this CD should not be progressed until some at least of these evolving requirements have been addressed. 1 MB = Member body (enter the ISO 3166 two-letter country code, e.g. CN for China; comments from the ISO/CS editing unit are identified by **) 2 Type of comment: ge = general te = technical ed = editorial NOTE Columns 1, 2, 4, 5 are compulsory. page 4 of 127 ISO electronic balloting commenting template/version 2001-10 Template for comments and secretariat observations Document: ISO/ Date: 1 2 3 4 5 6 7 MB1 Clause / Subclause/ Annex/Figure/Tabl e (e.g. 3.1, Table 2) Paragraph/ List item/ Note/ (e.g. Note 2) Type of comment2 Comment (justification for change) Proposed change Secretariat observations on each comment submitted USA Comments on ISO/IEC CD 9075-2 (SQL/Foundation) SEQ # Cmnt ID 001. USA-P02-010 See Also Severit y 4-Minor Editorial Reference Description P02-04.13, The phrase “associated table constraint definition” should be Columns, fields, italicized in the last m-dash of the sixth paragraph. and attributes Solution 002. USA-P02-020 P02-07.06, 1-Major Technical <table reference> See above. General Rule 1) c) ii) 1) specifies the behavior of <table reference> containing a <system-version specification>. The rules currently in place for VERSIONS BEFORE SYSTEM TIME and VERSIONS AFTER SYSTEM TIME options are not quite correct. We believe VERSIONS BEFORE SYSTEM TIME TS1 should behave like VERSIONS BETWEEN SYSTEM TIME min-ts AND TS1, and VERSIONS AFTER SYSTEM TIME TS1 should behave like VERSIONS BETWEEN SYSTEM TIME TS1 AND max-ts, where mints and max_ts are the smallest and the largest value, respectively, of the value space of the data type of system-version start and system-version end columns. Solution 003. USA-P02-030 P02-08.06, 1-Major Technical <similar predicate> None provided with comment. <similar predicate> was replaced by the <regex like predicate> in SQL/Foundation:2008. The <similar predicate> should now be deprecated. Solution 004. USA-P02-040 P02-09.05, 2-Minor Technical Type precedence list None provided with comment. TIMESTAMP should be added to the list of data types in the type precedence list of DATE. This enhances the pool of routines that Page 5 of 127 Addressed By See comment. SEQ # Cmnt ID See Also Severit y Reference determination Description Addressed By can be invoked with date values. If the routine expects a timestamp value as input, then the date supplied as the argument is implicitly cast to a timestamp (i.e., the time portion of the timestamp is all zeros, which makes it deterministic and is consistent with explicit CAST rules DATE -> TIMESTAMP). Solution 005. USA-P02-050 3-Major Editorial None provided with comment. P02-10.08, The name of Feature F492 in Conformance Rule 3) is incomplete. <constraint It should be “Optional table constraint enforcement“. name definition> and There are more instances in Foundation where a feature name is incomplete (e.g., Subclause 11.15, <set column not null clause>, <constraint characteristics> CR 1). Maybe there is something wrong with the style sheet(s) used to produce the PDF files. Partially by comment. Solution See above. 006. USA-P02-060 4-Minor Editorial P02-11.15, <set In General Rule 1) c) i), one of the instances of “is added” needs column not null to be removed. clause> See comment. Solution 007. USA-P02-070 3-Major Editorial P02-11.20, <alter identity column specification> See above. In the Format, in the production of <alter identity column specification>, in the first alternative “<set identity column generation clause> [ <alter identity column option> ]“ as well as in Syntax Rule 1), 1)b), Note 306, and General Rule 1), the ellipsis (“…”) are missing after “<alter identity column option>” as was proposed by BWU-032r1. See comment. Solution 008. USA-P02-080 3-Major Editorial P02-11.26, <drop table constraint definition> See above. In Syntax Rules 7) and 8), at the end of the first sentence, the See comment. symbol “TC” is preceded by the words “a table constraint” making is look as if the symbol was defined/redefined here. However, since it was already correctly defined in SR2), The words “table constraint” should be removed. Solution See above. Page 6 of 127 SEQ # Cmnt ID 009. USA-P02-090 010. USA-P02-100 011. USA-P02-110 See Also Severit y 4-Minor Editorial 4-Minor Editorial Reference P02-11.26, <drop table constraint definition> P02-15.19, Execution of triggers Description In Syntax Rule 4), the last sentence starts with “If the TC is needed…”. Remove the definitive article before ”TC”. Addressed By See comment. Solution See above. In General Rule 4) a) iii), the words “…transition in in ST…” appear. One “in” should be removed. See comment. Solution See above. P02-19.01, <set The System Versioned Tables added at the WG3 FAO meeting 1-Major Technical session introduced <system version specification> that can be used in characteristics queries. It would be useful if there were a Set Session statement statement> <system version specification> that effectively added the <system version specification> to all queries in that session that involved system versioned tables. This would make it easy to build applications that retrieved data as of a particular time. Instead of adding the <system version specification> to each query, the application developer could set the parameter for the session. Solution 012. USA-P02-120 P02-20.06, 2-Minor Technical <prepare statement> None provided with comment. GR 5)a)xviii) says “If DP is a <case operand> or <when operand> simply contained in a <simple case> CE or DP represents the value of a subfield SF of the declared type of such a <case operand> or <when operand>, then RT is the result of applying the Syntax Rules of Subclause 9.3, “Result of data type combinations”, to the declared types of the <case operand> and <when operand>s simply contained in CE.” But not all <when operand>s have a declared type. For example, <character like predicate part 2> has no declared type, at least not in the SRs of 8.5 <like predicate>. The problem dates back to SQL:2003 (Foundation 19.6 <prepare statement> GR 6)a)xviii)). We need to look at each kind of <when operand> to ascertain an appropriate declared type. Page 7 of 127 SEQ # Cmnt ID See Also Severit y Reference Description Addressed By In principle, this comment potentially applies to any part that adds a data type. I have checked SQL/XML and it appears to be okay, though someone responding to this comment should probably double check to be sure. Solution 013. USA-P02-130 P02-No specific 1-Major Technical location None provided with comment. The SQL standard currently supports time zones for TIME and TIMESTAMP values in the form of a <time zone interval>; e.g., ‘+10:00’ or ‘-11:00’. However, there are other ways to express a timezone component, like the region in which the time zone is in effect; e.g. ‘PDT’ or ‘pacific’, etc. The SQL standard should be enhanced to support those “named” time zones as well. Solution 014. USA-P02-140 P02-No specific 1-Major Technical location None provided with comment. The SQL standard is missing operators on binary data types (BINARY, VARBINARY, BLOB) that allow users to bitwise manipulate values. These operators (with straightforward semantics) are: - BITAND - BITOR - BITNOT Additionally, these operators could be enhanced to support binary integer values as well. Solution 015. USA-P02-150 P02-No specific 1-Major Technical location None provided with comment. When calling a procedure, all arguments have to be provided in the order in which they were specified when the procedure was created. This is not always the most user-friendly way. Programming languages provide an alternative for this in the form “named parameters”. The SQL standard should embrace this concept as well. Solution 016. USA-P02-160 1-Major P02-No specific location None provided with comment. When defining and calling a procedure, it may be beneficial to Page 8 of 127 SEQ # Cmnt ID See Also Severit y Reference Technical Description Addressed By provide default values for some or all of the parameters/arguments. This allows the user to omit certain arguments when calling a procedure and if the default values for those arguments should be used. However, when introducing the concept of default values for parameters, special attention needs to be paid to overloading of procedures and the existing routine resolution process to ensure that any extensions are backwardcompatible. Solution 017. USA-P02-190 P02-No specific 1-Major Technical location None provided with comment. All Possible Problems and Editor’s Notes must be satisfactorily resolved and all problems discovered during the course of the ballot resolution process must be satisfactorily resolved. Solution 018. USA-P02-200 P02-No specific 1-Major Technical location None provided with comment. Over the last several years, there has been increasing concern with preventing disclosure of personally identifiable data. One obstacle to preventing this disclosure is the lack of a standard mechanism for identifying which tables and/or columns contain such information. It would be useful if the create and alter table statements supported the capability of tagging tables and columns to indicate the type of sensitive information they hold. This would allow queries of the schema information tables and views to review what sensitive information is in a database, To accomplish this tagging, the following would be needed: an easily updatable table of standard sensitivity tags syntax to specify the sensitivity tag(s) associated with a column or table Additions to the schema information tables and views to support storing and retrieving the sensitivity tags. While the origins of this comment are in the area of Personally Identifiable Information, it would be useful to support more general user-extensible metadata attributes. Solution Page 9 of 127 SEQ # 019. Cmnt ID USA-P022120 See Also Severit y Reference P02-No specific 1-Major Technical location Description Addressed By None provided with comment. All Possible Problems and Editor’s Notes must be satisfactorily resolved and all problems discovered during the course of the ballot resolution process must be satisfactorily resolved. Solution 020. USA-P02-220 P02-No specific 2-Minor Technical location None provided with comment. Conformance Rules now have truncated names. The editor is aware of this and describes it as “"obviously a bug in my stylesheets". Solution None provided with comment. ========================== End of paper ========================== Page 10 of 127
© Copyright 2026 Paperzz