This section specifies two general-purpose functional profiles for partial SQL
language support that an implementation may claim conformance to, as follows:
SQL/ERI Read-Only Server
SQL/ERI Read-Write Server
Each general-purpose profile has a number of "level of service" alternatives for
data manipulation, schema definiton, transaction management, and binding style.
If an implementation conforms to any one of these profiles, then it may claim to be
a FIPS conforming SQL/ERI Server. Because many of the alternatives in these
profiles identify a proper subset of full-function SQL requirements, conformance
to any one of them does not imply conformance to the standard for Database Language
SQL [8]. These profiles are intended for use by customers and vendors of products
that claim only partial support of an SQL language interface to their data
repository.
Any implementation claiming conformace to one of the SQL/ERI Server profiles shall
provide a written public statement responding to the ten profile items identified
in the following paragraphs. The implementation requirements of each response are
given in Subsection 7.1 for Read-Only Servers and in Subsection 7.2 for Read-Write
Servers. Syntax for deriving specific SQL-related object identifiers is given in
Section 7.3, and popular profiles for CLI and RDA binding alternatives are defined
in Sections 7.4 and 7.5, respectively.
An SQL/ERI Server profile shall specify:
1. A base level of SQL data manipulation language (DML) support, by choosing
exactly one of the following DML alternatives.
Minimal DML
Entry DML
Transitional DML
Intermediate DML
Full DML
2.A base level of SQL schema definition language (SDL) support, by choosing
exactly one of the following SDL alternatives.
No SDL
Minimal SDL
Entry SDL
Transitional SDL
Intermediate SDL
Full SDL
3. A base level of SQL transaction management support, by choosing exactly
one of the following transaction management alternatives.
No Transactions
Commit-Rollback
Transaction Mode
Transaction Isolation
Transaction Diagnostics
Constraints
Note: The alternatives for SQL transaction management support are nested.
Support for any one of them implies support for all those listed above it. The
three alternatives for Transaction Mode, Transaction Isolation, and Transaction
Diagnostics support {transaction mode}, {isolation level}, and {diagnostics
size}, respectively, in the SQL'92 {set transaction statement}, and the
Constraints alternative supports the SQL'92 {set constraints mode statement}.
4. A default isolation level for SQL transaction management, by choosing
exactly one of the following default isolation level alternatives.
Read Uncommitted
Read Committed
Repeatable Read
Serializable
Note: If the default isolation level is anything other than Serializable,
and if other concurrent users are able to update the database, then read statements
may be subject to "dirty read", "non-repeatable read", or "phantom" rows (see
Subclause 4.28, "SQL-transactions", of the SQL'92 standard). Even a read-only
profile is subject to these phenomena if other concurrent users (not through that
profile) can update the database.
5. Which binding styles are supported, by choosing one or more of the
following binding style alternatives.
Module
Embedded SQL
Direct Invocation
SQL/CLI
RDA/SQL
Note: It is expected that the SQL/CLI binding style will be the most
popular choice for SQL/ERI products within a single local client/server
environment and that the Direct Invocation or RDA/SQL binding styles will be the
most popular when the server data repository is an isolated node in a wide area
client/server environment.
6. For each of the Module, Embedded SQL, or SQL/CLI binding styles
chosen, which programming language interfaces are supported, by choosing one
or more of the following programming language alternatives.
Ada
C
COBOL
Fortran
MUMPS
Pascal
PL/I
SAMeDL (via module, embedded, or effect)
Note: The Direct Invocation and RDA/SQL binding styles do not require or
provide a programming language interface. The preferred language interfaces for
SQL/CLI are C and/or COBOL. SAMeDL is an alternative only for the Module binding
style (see [21]).
7. Which SQL session management facilities are supported, by specifying
one or more of the following session management features.
No Session
Set Catalog
Set Schema
Set Names
Set Session Authorization
Set Time Zone
All Session
Note: SQL session management is defined in Clause 16, "Session
management", of SQL'92. If the base level of SQL DML support specified above is
Intermediate DML or above, then implementations shall support both Set Session
Authorization and Set Time Zone, because they are required Intermediate SQL
features. Because of its importance for users, support for "SET SCHEMA
{unqualified schema name}" is required if SQL DML support is Transitional DML or
above.
8. Which optional extensions are supported, by choosing one or more of
the following optional extensions.
No Extensions
SQL Features
Executable SQL/PSM
Definable SQL/PSM
SQL/MM: FullText
SQL/MM: Spatial
SQL/MM: General
ADTs and methods
Object data management
SQL/XA
Note: If SQL Features is chosen, then the implementation shall support
the SQL_FEATURES table as specified in Section 15 of FIPS SQL (see [3]); if
Executable SQL/PSM is chosen, then the implementation shall support {routine
invocation} and the ROUTINES base table as specified in the SQL/PSM specification
(see [11]); if Definable SQL/PSM is chosen, then the implementation shall support
all requirements of the SQL/PSM specification (see [11]); if SQL/MM: Full Text,
SQL/MM: Spatial, or SQL/MM: General is chosen, then the implementation shall point
to the then current SQL/MM specification (see Section 5.3 above and [13]) and
explicitly indicate which Parts, and which conformance alternatives within each
Part, are supported; if ADTs and methods is chosen, then the implementation shall
support the appropriate Abstract Data Type clauses in the then current SQL3
specification (see Section 5.4 above and [12]); if Object data management is
chosen, then the implementation shall support the appropriate object management
clauses in the then current SQL3 specification (see Section 5.5 above and [12]); if
SQL/XA is chosen, then the implementation shall support the SQL specializaion of
the X/Open XA interface specification (see Section 5.6 above and [12]).
9. If the RDA/SQL binding style is chosen, then which underlying
communications protocols are supported, by choosing one or more of the
following alternatives.
Minimal OSI (MOSI)
-- see new
OIW 1994 agreements
Full Stack OSI
-- see [16] for
1992 OIW stable agreements
Internet RFC 1006
-- see
unpublished NIST RDA TestBed Agreements
Other Transport
-- give name &
version of transport mechanism used
Note: All of the above depend upon the International Standard for Remote
Database Access (RDA) [9] in their upper layers; however, they may differ in their
directory services and in their services for making an association at the
application layer and in how that association is propagated through to the
transport and physical layers. It is expected that the Internet RFC 1006
alternative will be the most popular in the near term (because the Internet is so
pervasive) for ad hoc associations among RDA clients and servers in a wide area
network.
10. If the RDA/SQL binding style is chosen, then which RDA options are
supported, by choosing one or more of the following (see Section 6.5
above).
None
RDA Stored Execution
RDA Status
RDA Cancel
RDA TP Application Context
7.1 SQL/ERI Read-Only Server
This profile specifies a read-only interface to a data repository. It does not
include support for any of the Schema Definition or Schema Manipulation SQL
language elements specified in Clause 11 of the SQL'92 standard, or for any of the
SQL data change statements, i.e. Insert, Update, or Delete, specified in Clause
13. It is most likely that the level of support specified for SQL schema definition
language will be "No SDL". Depending upon the various base level attributes
specified, this profile may have Information Schema requirements that differ from
those specified in SQL'92 [8] or FIPS SQL [3].
Schema Definition Rules
1.The SQL/ERI Read-Only Server profile assumes that all schema objects are
owned by a user different from the user accessing the repository through this
profile, and that appropriate privileges have been granted to all accessing users.
If the SQL/CLI binding style is identified, then users are made known to the system
using the Connect routine specified in Subclause 6.10, "Connect", of [10]. If the
RDA/SQL binding style is identified, then users are made known to the system using
the NIST OIW RDA Testbed implementor agreements. Otherwise, as with the SQL'92
standard, the particular method by which users are made known to the system is
implementation-defined.
2. If the level of SQL data manipulation language support claimed for the
SQL/ERI Read-Only Server profile is Minimal DML, Entry DML, or Transitional DML,
then the implicit schema definition may contain some {table constraint}s, or
various {schema element}s, that are not visible to the user but whose existence may
affect the semantics of certain statements.
3. If the level of SQL data manipulation language support claimed for the
SQL/ERI Read-Only Server profile is Minimal DML or Entry DML, and if a table with
table name TN is visible in the Information Schema TABLES view for a user with user
name UN, then one of the following {grant statement}s, executed by the owner of
table TN, is implicit:
GRANT SELECT ON TABLE TN TO UN, or
GRANT SELECT ON TABLE TN TO PUBLIC
It doesn't make any difference to a read-only user which of these statements is
implicit, so the choice is implementation-dependent.
4.Information about schema objects, privileges, and constraints are made
visible to potential users through the Information Schema views, subject to the
Information Schema Rules specified below.
Data Manipulation Rules
1. If the Module, Embedded SQL, or RDA/SQL binding styles are specified, then
the SQL/ERI Read-Only Server profile requires support for the following SQL
statements, as specified in Clause 13, "Data Manipulation", in the SQL'92
standard, with any restrictions specified by the given level of SQL data
manipulation language support and subject to other rules specified in this
profile.
{declare cursor}
{open statement}
{fetch statement}
{close statement}
{select statement: single row}
2. If the Direct Invocation binding style is specified, then the SQL/ERI Read-Only Server
profile requires support for the following {direct SQL statement}s
listed in Clause 20, "Direct invocation of SQL", in the SQL'92 standard, with any
restrictions specified by the given level of SQL data manipulation language
support and subject to other rules specified in this profile:
{direct select statement: multiple rows}
3. If the SQL/CLI binding style is specified, then the SQL/ERI Read-Only
Server profile requires support for the following {preparable statement}s listed
in Subclause 17.6 of the SQL'92 standard, with any restrictions specified by the
given level of SQL data manipulation language support and subject to other rules
specified in this profile:
{dynamic single row select statement}
{dynamic select statement}
4.If an SQL/ERI Server implementation at the Minimal SDL level or below
chooses not to provide support for null values (see item 4 of Section 4.1), then it
may raise an implementation-defined exception in any SQL statement that attempts
to process null values.
Transaction Management Rules
1. If the level of SQL transaction management support is "No Transactions",
then SQL transaction management is not supported for any binding style.
Otherwise, Commit and Rollback transaction management is supported depending on
the specified binding style as follows.
Case:
a.If the Module, Embedded SQL, or Direct Invocation binding style is
specified, then the requirements of the SQL {commit statement} and the SQL
{rollback statement} from Clause 14, "Transaction management", of the SQL'92
standard [8] apply to this profile.
b. If the SQL/CLI binding style is specified, then the requirements of
the routines for transaction management (e.g. EndTran and Cancel) as
specified in the SQL/CLI specification [10] apply to this profile.
c. If the RDA/SQL binding style is specified, then the requirements for
transaction management in the RDA Basic Application Context, as
specified in the RDA standard [9], with implementor agreements
specified in [16], apply to this profile.
d. If the RDA option for TP Application Context is specified, then the
requirements for the TP Application Context, as specified in the RDA
standard [9], with implementor agreements for Distributed
Transaction Processing as specified in [16], apply to this profile.
Note: The purpose of requiring support for SQL Commit and Rollback in Read-Only
profiles is to give the user a standard way to signal to the system that a read-only transaction has
completed. This has semantic implications only if other
concurrent users (not through this profile) are able to update the database.
2. If the level of SQL transaction management support is "No Transactions",
and if the default isolation level is XXX, then the {set transaction statement}
SET TRANSACTION READ ONLY, ISOLATION LEVEL XXX
is implicit for the single implicit transaction of any SQL-session through
this profile.
3. If the level of SQL transaction management support is Commit-Rollback, and
if the default isolation level is XXX, then the {set transaction statement}
SET TRANSACTION READ ONLY, ISOLATION LEVEL XXX
is implicit for every transaction of any SQL-session through this profile.
4. If the level of SQL transaction management support is Transaction Mode or
above, then this profile includes support for the {transaction access mode}
alternative of the SQL {set transaction statement} as specified in Subclause 14.1
of the SQL'92 standard; however, the {transaction access mode} shall always be
READ ONLY.
5. If the level of SQL transaction management support is Transaction Isolation
or above, then this profile includes support for the {isolation level} alternative
of the SQL {set transaction statement} as specified in Subclause 14.1 of the SQL'92
standard. If the default isolation level is XXX, and if an explicit {set
transaction statement} with an explicit {isolation level} is not specified for a
transaction of any SQL-session through this profile, then the {set transaction
statement}
SET TRANSACTION READ ONLY, ISOLATION LEVEL XXX
is implicit for that transaction.
6. If the level of SQL transaction management support is Transaction
Diagnostics or above, then this profile includes support for the {diagnostics
size} alternative of the SQL {set transaction statement} as specified in Subclause
14.1 of the SQL'92 standard.
7. If the level of SQL transaction management support is Constraints, then
this profile includes support for the {set constraints mode statement} as
specified in Subclause 14.2 of the SQL'92 standard.
8. If the optional extension for SQL/XA is specified, then the implementation
shall support the SQL specializaion of the X/Open XA interface specification (see
Section 5.6 above and [12]).
Connection Management Rules
1. If the Module, Embedded SQL, or Direct Invocation binding styles are
specified, and if the level of SQL data manipulation language support is Full DML,
then the SQL/ERI Read-Only Server profile requires support for {SQL connection
statement}s as specified in Clause 15, "Connection management", of the SQL'92
standard. If the level of SQL data manipulation language support is anything other
than Full SQL, then there is no requirement to support any {SQL connection
statement} for these binding styles.
2. If the SQL/CLI binding style is specified, then the requirements of the
routines for connection management (i.e. Connect, Disconnect) as specified in the
SQL/CLI specification [10] apply to this profile.
3. If the RDA/SQL binding style is specified, then the requirements of RDA
Dialogue Management and RDA Resource Handling as specified in the RDA standard
[9], with implementor agreements specified in [16], apply to this profile.
Session Management Rules
1. If the indicated SQL session management support is "No Session", then SQL
session management is not supported for any binding style. Otherwise, for each
feature identified, this profile supports the requirements of that feature as
identified in Clause 16, "Session management", of the SQL'92 standard. If the
indicated SQL session management support is "All Session", then all features of
Clause 16 are supported in this profile.
2. If SQL data manipulation language support specifies Transitional DML or
above, then support for "SET SCHEMA {unqualified schema name}" is implicit in this
profile.
3. If SQL data manipulation language support specifies Intermediate DML or
above, then support for "SET SCHEMA {unqualified schema name}", SET SESSION
AUTHORIZATION, and SET TIME ZONE is implicit in this profile.
4. If SQL data manipulation language support specifies Full DML, then support
for "All Session" is implicit in this profile.
Dynamic SQL and Diagnostics Management Rules
1. If SQL data manipulation language support specifies Minimal DML or Entry
SQL, then support for SQL statements in Clause 17, "Dynamic SQL", and Clause 18,
"Diagnostics management", is not required.
2. If SQL data manipulation language support specifies Transitional DML or
above, then support for all read-only provisions of Clause 17, "Dynamic SQL", and
Clause 18, "Diagnostics management", with any restrictions identified in the
Leveling Rules for higher levels of DML, is required for all implementations that
claim that level of DML support.
Information Schema Rules
1. If the level of SQL data manipulation language support claimed for the
SQL/ERI Read-Only Server profile is Minimal DML or Entry DML, then support for the
following Information Schema views, as specified in Clause 21, "Information
Schema and Definition Schema", of the SQL'92 standard, is required:
TABLES
COLUMNS
Note: See FIPS 127-2 Errata for handling "long" names.
2. If an SQL/ERI Server implementation at the Minimal SDL level or below
chooses not to provide support for null values (see item 4 of Section 4.1), then it
shall provide an implementation-defined conversion of would-be null values in
Information Schema tables to an appropriate non-null value.
3. If the level of SQL data manipulation language support claimed for the
SQL/ERI Read-Only Server profile is Transitional DML, then support for the
following Information Schema views, as specified in Clause 21, "Information
Schema and Definition Schema", of the SQL'92 standard, is required:
TABLES
VIEWS
COLUMNS
TABLE_PRIVILEGES
COLUMN_PRIVILEGES
USAGE_PRIVILEGES
Note: See FIPS 127-2 Errata for handling "long" names.
4. If the level of SQL data manipulation language support claimed for the
SQL/ERI Read-Only Server profile is Intermediate DML or Full DML, then an
implementation conforming to this profile shall provide all of the Information
Schema views required by the SQL'92 standard for Intermediate SQL or Full SQL,
respectively. In many cases some of these tables may be empty, or trivial, but a
conforming SQL/ERI Server at these SQL data manipulation language levels is
required to support them to reflect an accurate picture of the implicit schema
definition.
7.2 SQL/ERI Read-Write Server
This profile specifies a read-write interface to a data repository. It requires support for the SQL
data change statements, i.e. Insert, Update, and Delete, specified in Clause 13, "data
manipulation", of the SQL'92 standard. Depending upon the level of SQL schema definition
language support specified, it may or may not require support for SQL schema definition or
schema manipulation statements. Depending upon the various base level attributes specified, this
profile may have Information Schema requirements that differ from those specified in SQL'92 [8]
or FIPS SQL [3].
Schema Definition Rules
1. The SQL/ERI Read-Write Server profile assumes that some schema objects are owned by
a user different from the user accessing the repository through this profile, and that appropriate
privileges have been granted to all accessing users. If the SQL/CLI binding style is identified,
then
users are made known to the system using the Connect routine specified in Subclause 6.10,
"Connect", of [10]. If the RDA/SQL binding style is identified, then users are made known to
the
system using the NIST OIW RDA Testbed implementor agreements. Otherwise, as with the
SQL'92 standard, the particular method by which users are made known to the system is
implementation-defined.
2. If the level of SQL data manipulation language support claimed for the SQL/ERI Read-
Write Server profile is Minimal DML, Entry DML, or Transitional DML, then the implicit
schema
definition may contain some {table constraint}s, or various {schema element}s, that are not
visible
to the user but whose existence may affect the semantics of certain statements.
3. Information about schema objects, privileges, and constraints are made visible to
potential
users through the Information Schema views, subject to the Information Schema Rules specified
below.
4.If the level of SQL schema definition language support is different from "No SDL", then
Case:
a. If the Module, Embedded SQL, or RDA/SQL binding styles are specified, then the
SQL/ERI Read-Write Server profile requires support for all of the SQL data
definition and manipulation statements, as specified in Clause 11, "Schema
definition and manipulation", of the SQL'92 standard, with any restrictions
specified by the given level of SQL schema definition language support and subject
to other rules specified in this profile.
b. If the Direct Invocation binding style is specified, then the SQL/ERI Read-Write
Server profile requires support for the following {direct SQL statement}s listed in
Clause 20, "Direct invocation of SQL", in the SQL'92 standard, with any
restrictions specified by the given level of SQL schema definition language support
and subject to other rules specified in this profile:
{SQL schema statement}
c. If the SQL/CLI binding style is specified, then the SQL/ERI Read-Write Server
profile requires support for the following {preparable statement}s listed in
Subclause 17.6 of the SQL'92 standard, with any restrictions specified by the given
level of SQL schema defintion language support and subject to other rules specified
in this profile:
{preparable SQL schema statement}
Data Manipulation Rules
1.If the Module, Embedded SQL, or RDA/SQL binding styles are specified, then the
SQL/ERI Read-Write Server profile requires support for the following SQL statements, as
specified in Clause 13, "Data Manipulation", in the SQL'92 standard, with any restrictions
specified by the given level of SQL data manipulation language support and subject to other rules
specified in this profile.
{declare cursor}
{open statement}
{fetch statement}
{close statement}
{select statement: single row}
{delete statement: positioned}
{delete statement: searched}
{insert statement}
{update statement: positioned}
{update statement: searched}
{temporary table declaration} -- Full DML only
2. If the Direct Invocation binding style is specified, then the SQL/ERI Read-Only Server
profile requires support for the following {direct SQL statement}s listed in Clause 20, "Direct
invocation of SQL", in the SQL'92 standard, with any restrictions specified by the given level of
SQL data manipulation language support and subject to other rules specified in this profile:
{direct select statement: multiple rows}
{delete statement: searched}
{insert statement}
{update statement: searched}
3. If the SQL/CLI binding style is specified, then the SQL/ERI Read-Write Server profile
requires support for the following {preparable statement}s listed in Subclause 17.6 of the SQL'92
standard, with any restrictions specified by the given level of SQL data manipulation language
support and subject to other rules specified in this profile:
{dynamic single row select statement}
{dynamic select statement}
{delete statement: searched}
{insert statement}
{update statement: searched}
{preparable dynamic delete statement: positioned}
{preparable dynamic update statement: positioned}
4. If an SQL/ERI Server implementation at the Minimal SDL level or below chooses not to
provide support for null values (see item 4 of Section 4.1), then it may raise an implementation-
defined exception in any SQL statement that attempts to process null values.
Transaction Management Rules
1. The level of SQL transaction management support shall not be "No Transactions". In all
cases, SQL Commit and Rollback transaction management is supported as defined by the
specified
binding style.
Case:
a. If the Module, Embedded SQL, or Direct Invocation binding style is specified, then
the requirements of the SQL {commit statement} and the SQL {rollback statement}
from Clause 14, "Transaction management", of the SQL'92 standard [8] apply to
this profile.
b. If the SQL/CLI binding style is specified, then the requirements of the routines for
transaction management (e.g. EndTran and Cancel) as specified in the SQL/CLI
specification [10] apply to this profile.
c. If the RDA/SQL binding style is specified, then the requirements for transaction
management in the RDA Basic Application Context, as specified in the RDA
specification [9], with implementor agreements specified in [16], apply to this
profile.
d. If the RDA option for TP Application Context is specified, then the requirements
for the TP Application Context, as specified in the RDA standard [9], with
implementor agreements for Distributed Transaction Processing as specified in
[16], apply to this profile.
2. If the level of SQL transaction management support is Commit-Rollback, then the
{set transaction statement}
SET TRANSACTION READ WRITE, ISOLATION LEVEL
SERIALIZABLE
is implicit for every transaction of any SQL-session through this profile.
3. If the level of SQL transaction management support is Transaction Mode or above, then
this profile includes support for the {transaction access mode} alternative of the SQL {set
transaction statement} as specified in Subclause 14.1 of the SQL'92 standard.
Case:
a. If an explicit {set transaction statement} with an explicit {tranaction access
mode} is not specifed for a transaction of any SQL-session through this
profile, then the {set transaction statement}
SET TRANSACTION READ WRITE, ISOLATION LEVEL
SERIALIZABLE
is implicit for that transaction.
b. If an explicit {set transaction statement} with a {tranaction access mode} of
READ ONLY is specifed for a transaction of any SQL-session through this
profile, and if the default isolation level is XXX, then the {set transaction
statement}
SET TRANSACTION READ ONLY, ISOLATION LEVEL
XXX
is implicit for that transaction.
4. If the level of SQL transaction management support is Transaction Isolation or above,
then
this profile includes support for the {isolation level} alternative of the SQL {set transaction
statement} as specified in Subclause 14.1 of the SQL'92 standard. If an explicit {set transaction
statement} with a {tranaction access mode} of READ ONLY is specifed, and if an explicit {set
transaction statement} with an explicit {isolation level} is not specified for a transaction of any
SQL-session through this profile, and if the default isolation level is XXX, then the {set
transaction statement}
SET TRANSACTION READ ONLY, ISOLATION LEVEL
XXX
is implicit for that transaction.
5. If the level of SQL transaction management support is Transaction Diagnostics or above,
then this profile includes support for the {diagnostics size} alternative of the SQL {set
transaction
statement} as specified in Subclause 14.1 of the SQL'92 standard.
6. If the level of SQL transaction management support is Constraints, then this profile
includes support for the {set constraints mode statement} as specified in Subclause 14.2 of the
SQL'92 standard.
7. If the optional extension for SQL/XA is specified, then the implementation shall support
the SQL specializaion of the X/Open XA interface specification (see Section 5.6 above and [12]).
Connection Management Rules
1. If the Module, Embedded SQL, or Direct Invocation binding styles are specified, and if
the
level of SQL data manipulation language support is Full DML, then the SQL/ERI Read-Write
Server profile requires support for {SQL connection statement}s as specified in Clause 15,
"Connection management", of the SQL'92 standard. If the level of SQL data manipulation
language
support is anything other than Full SQL, then there is no requirement to support any {SQL
connection statement} for these binding styles.
2. If the SQL/CLI binding style is specified, then the requirements of the routines for
connection management (i.e. Connect, Disconnect) as specified in the SQL/CLI specification
[10]
apply to this profile.
3. If the RDA/SQL binding style is specified, then the requirements of RDA Dialogue
Management and RDA Resource Handling as specified in the RDA standard [9], with
implementor
agreements specified in [16], apply to this profile.
Session Management Rules
1. If the indicated SQL session management support is "No Session", then SQL session
management is not supported for any binding style. Otherwise, for each feature identified, this
profile supports the requirements of that feature as identified in Clause 16, "Session
management",
of the SQL'92 standard. If the indicated SQL session management support is "All Session", then
all features of Clause 16 are supported in this profile.
2. If SQL data manipulation language support specifies Transitional DML or above, then
support for "SET SCHEMA {unqualified schema name}" is implicit in this profile.
3. If SQL data manipulation language support specifies Intermediate DML or above, then
support for "SET SCHEMA {unqualified schema name}", SET SESSION AUTHORIZATION,
and SET TIME ZONE is implicit in this profile.
4. If SQL data manipulation language support specifies Full DML, then support for "All
Session" is implicit in this profile.
Dynamic SQL and Diagnostics Management Rules
1. If SQL data manipulation language support specifies Minimal DML or Entry SQL, then
support for SQL statements in Clause 17, "Dynamic SQL", and Clause 18, "Diagnostics
management", is not required.
2. If SQL data manipulation language support specifies Transitional DML or above, then
support for all provisions of Clause 17, "Dynamic SQL", and Clause 18, "Diagnostics
management", with any restrictions identified in the Leveling Rules for higher levels of DML, is
required for all implementations that claim that level of DML support.
Information Schema Rules
1. If the level of SQL data manipulation language support claimed for the SQL/ERI Read-
Write Server profile is Minimal DML or Entry DML, then support for the following Information
Schema views, as specified in Clause 21, "Information Schema and Definition Schema", of the
SQL'92 standard, is required:
TABLES
VIEWS
COLUMNS
TABLE_PRIVILEGES
COLUMN_PRIVILEGES
Note: See FIPS 127-2 Errata for handling "long" names.
2. If an SQL/ERI Server implementation at the Minimal SDL level or below chooses not to
provide support for null values (see item 4 of Section 4.1), then it shall provide an
implementation-defined conversion of would-be null values in Information Schema tables to an
appropriate non-null value.
3. If the level of SQL data manipulation language support claimed for the SQL/ERI Read-
Write Server profile is Transitional DML, then support for the following Information Schema
views, as specified in Clause 21, "Information Schema and Definition Schema", of the SQL'92
standard, is required:
TABLES
VIEWS
COLUMNS
TABLE_PRIVILEGES
COLUMN_PRIVILEGES
USAGE_PRIVILEGES
Note: See FIPS 127-2 Errata for handling "long" names.
4. If the level of SQL data manipulation language support claimed for the SQL/ERI Read-
Write Server profile is Intermediate DML or Full DML, then an implementation conforming to
this
profile shall provide all of the Information Schema views required by the SQL'92 standard for
Intermediate SQL or Full SQL, respectively. In many cases some of these tables may be empty,
or
trivial, but a conforming SQL/ERI Server at these SQL data manipulation language levels is
required to support them to reflect an accurate picture of the implicit schema definition.
Object Identifiers for SQL/ERI Server profiles
The National Institute of Standards and Technology is the registration authority for the following
node in the joint ISO/IEC and CCITT branch of the international object-identifier hierarchical
name tree (see CCITT X.660 or ISO/IEC 9834-1):
{ joint-iso-ccitt (2) country (16) us (840) gov (101) sql (4) }
It is NIST's intention to use this node to register objects derived from NIST publications related
to
Database Language SQL, including profiles defined in this FIPS for SQL Environments. Other
registered objects will include FIPS SQL profiles, FIPS SQL test suite reports, FIPS SQL
certificates, client-side profiles in an SQL environment, SQL/ERI Client profiles, a register of
SQL environments, and possibly others. For information on the current state of this register,
including its on-line availability through an SQL/ERI Read-Only RDA Server interface, contact
FIPS SQL registration authority personnel at telephone +1-301-975-3251 or send e-mail to
LGallagher@nist.gov.
The following syntactic productions yield object identifiers for SQL-related objects. See Clause
3.2, "Notation", of ISO/IEC 9075:1992 for definition of the syntactic notation used.
Note: {SQL variant} is defined in Clause 3.4, "Object identifier for SQL", of
Reference [8], with the following extension to accommodate the FIPS SQL definition of
Transitional SQL.
{years value} ::= !!Defined in ISO/IEC 9075 to be an {unsigned integer}
{vsr number} ::= {unsigned integer}
Note: If a NIST validation summary report (VSR) results in the award of a
certificate for conformance to FIPS SQL, then the {years value} and the {certificate number} of
an
entry in the {fips 127 certificate} register will match the {years value} and the {vsr number},
respectively, of an entry in the {nist sql test report} register.
Note: Each of the first ten profile identifiers above identifies a family of profiles,
with support for the specified binding alternative and the specified read-only or read-write
alternative; an explicit profile is given by adding the optional {fips 193 options list}. In each
case, an implementation of the profile is only required to satisfy the minimal conformance
options
specified herein, plus the explicitly specified options. The remaining profile identifiers identify
explicit profiles as defined in Sections 7.4 and 7.5 below; they may also include the optional
{fips
193 options list} to identify support for SQL features above the base requirements of that profile.
Other profile identifiers and profiles may be added later, as appropriate. Requests to add new
profiles to this register may be addressed to the NIST Computer Systems Laboratory, attention:
SQL Environment profiles.