%SYS
SQL Class Reference

This class allows you to modify and view the [SQL] section of the CPF file through programatic APIs. More...

Inheritance diagram for SQL:
Collaboration diagram for SQL:

Public Attributes

 ANSIPrecedence
 Apply SQL92 operator precedence if this flag is set
More...
 
 AdaptiveMode
 Enable Adaptive mode (RTPC and automatic tuning)
More...
 
 AllowRowIDUpdate
 1 - The table compiler omits the checks to see if the RowID field(s) are being updated. More...
 
 AutoParallel
 Enable auto hinting for PARALLEL
More...
 
 AutoParallelThreshold
 The threshold for auto hinting for PARALLEL, the lower the value is, the higher the chance this query would be paralleded executed
More...
 
 BiasQueriesAsOutlier
 Set to 1 if queries on fields with non-null outliers often refer to the outlier. More...
 
 ClientMaxIdleTime
 Enable XDBC max idle time
More...
 
 Comment
 Set the flag that determines if embedded SQL statements are retained as comments in the .INT code version of the routine. More...
 
 DBMSSecurity
 Set the flag that determines if SQL security is enabled. More...
 
 DDLDefineBitmapExtent
 Sets the flag which determines if a class created by a DDL CREATE TABLE statement defines a bitmap extent index for the class. More...
 
 DDLFinal
 Sets the flag which determines if a class created by a DDL CREATE TABLE statement is Final. More...
 
 DDLNo201
 Set the flag that determines if an SQLCODE -201 error is returned when an attempt is made to CREATE a previously existing table through DDL. More...
 
 DDLNo30
 Set the flag that determines if an SQLCODE -30 error is returned when an attempt is made to DROP a non-existing table through DDL. More...
 
 DDLNo307
 Set the flag that determines if an SQLCODE -307 error is returned when an attempt is made to a primary key constraint to a table through DDL, when a primary key constraint already exists for that table. More...
 
 DDLNo311
 Setting this parameter to 'Yes' allows you to ADD a foreign key through DDL even if one with the same name already exists. More...
 
 DDLNo315
 Set the flag that determines if an SQLCODE -315 error is returned when an attempt is made to DROP a non-existant constraint through DDL. More...
 
 DDLNo324
 Set the flag that determines if an SQLCODE -324 error is returned when an attempt is made to CREATE a previously existing index through DDL. More...
 
 DDLNo333
 Set the flag that determines if an SQLCODE -333 error is returned when an attempt is made to drop a non-existant index through DDL. More...
 
 DDLSQLOnlyCompile
 1 - any class compilation performed as a result of executing a DDL statement will compile the class with the "q" (sqlonly) flag. More...
 
 DDLUseExtentSet
 Sets the flag which determines if a class created by a DDL CREATE TABLE statement defines the USEEXTENTSET class parameter to a value of 1. More...
 
 DDLUseSequence
 Sets the flag which determines if a class created by a DDL CREATE TABLE statement uses $Sequence for ID assignment. More...
 
 DefaultSchema
 This setting provides the ability to define a default schema name other than SQLUser, the default. More...
 
 DelimitedIds
 Set the flag that determines if double quotes (") in an SQL statement are used for delimited (quoted) identifiers or string constants. If "Yes", a double quoted string ("My String") will be considered an identifier within an SQL statement. If "No", a double quoted string ("My String") will be considered a string literal within an SQL statement. More...
 
 DropDelete
 Set the flag that determines whether a DDL DROP TABLE statement deletes the table's data. More...
 
 ECPSync
 When an SQL Select statement is executed, forces all pending ECP requests to the DB-server. More...
 
 ExtrinsicFunctions
 Allows/disallows extrinsic functions to be used in SQL statements through ODBC, JDBC, and Dynamic Query. More...
 
 FastDistinct
 Set the flag that determines if SQL DISTINCT optimization is turned on. More...
 
 IdKey
 Set the flag that determines whether a Primary Key constraint specified through DDL also
More...
 
 IdTrxFrom
 Modifies the DDL Identifier Translation mappings. More...
 
 IdTrxTo
 Modifies the DDL Identifier Translation mappings. More...
 
 LockThreshold
 The value n is the lock threshold. More...
 
 LockTimeout
 Set the Lock Timeout for locks made during execution of SQL statements. More...
 
 ODBCVarcharMaxlen
 Defines the MaxLen for ODBC fields of type VarChar. More...
 
 ParameterSampling
 Enable parameter sampling
More...
 
 QueryProcedures
 Defines whether or not all class queries project as SQL Stored Procedures. More...
 
 RTPC
 Enable Run Time Plan Choice
More...
 
 ReferentialChecks
 For INSERT, UPDATE, and DELETE, setting this parameter to 'Yes' instructs InterSystems IRIS to validate the foreign key constraint. More...
 
 SaveMAC
 Defines whether or not the source code (.MAC and .INT) is saved or not. More...
 
 TCPKeepAlive
 Set the TCP Keep Alive timeout for xDBC TCP connections. More...
 
 TODATEDefaultFormat
 Default date format for the SQL TO_DATE() function. More...
 
 TimePrecision
 Set the default precision for the Time component of the value returned by the GETDATE(), CURRENT_TIME, and CURRENT_TIMESTAMP SQL Scalar functions. More...
 
- Public Attributes inherited from CommonProperties
 CPFFile
 CPF file which the object maps to. More...
 
 Comments
 Embedded comments in the CPF file. More...
 
 Flags
 Flags governing how the object is processed when Save() is called. More...
 
 Name
 Name of the object instance. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from CommonSingleMethods
_.Library.Status Get (_.Library.String Properties, _.Library.String CPFFile, _.Library.Integer Flags)
 Get a sections properties from a CPF file. More...
 
_.Library.Status GetList (_.Library.String CPFFile, _.Library.Integer Flags)
 Returns the properties from a section in a CPF file by value in $list format
More...
 
_.Library.Status Modify (_.Library.String Properties, _.Library.String CPFFile, _.Library.Integer Flags)
 Modify a sections properties in a CPF file. More...
 
_.Library.ObjectHandle Open (_.Library.String CPFFile, _.Library.Integer concurrency, _.Library.Status Status, _.Library.Integer Flags)
 Open an instance of an section object in a CPF file. More...
 
- Static Public Attributes inherited from CommonProperties
 DOMAIN = None
 This class contains properties which are included by classes which manipulate sections in the CPF file. More...
 

Detailed Description

This class allows you to modify and view the [SQL] section of the CPF file through programatic APIs.

While properties are usually modified through the System Management portal, there may be some occasion where modifying them through the API's is best for your system. In all the Config methods, if you do not specify the CPFFile parameter, the currently active CPF file is used. If you wish to modify a CPF file which is not the currently active one, then specify the CPFFile you wish to modify in the method call.
The Flags parameter does not normally need to be specified; the defaults are usually sufficient for most cases.
You can use either the provided API's (Get/Modify) to modify the properties by passing in the correct parameters, or use Object syntax to open and directly manipulate the config objects.

EXAMPLE:

    ; Use class methods to modify properties
    SYS>s Status=##Class(Config.SQL).Get(.Properties)
    SYS>i 'Status w !,"Error="_$SYSTEM.Status.GetErrorText(Status)
    SYS>zw Properties("TCPKeepAlive")
    Properties("TCPKeepAlive")=300
    SYS>s Properties("TCPKeepAlive")=200
    SYS>s Status=##Class(Config.SQL).Modify(.Properties)
    SYS>i 'Status w !,"Error="_$SYSTEM.Status.GetErrorText(Status)
    ; Now use Objects to modify properties
    SYS>s Obj=##Class(Config.SQL).Open()
    SYS>w Obj.TCPKeepAlive
    200
    SYS>s Obj.TCPKeepAlive=300
    SYS>s Status=Obj.Save()
    SYS>i 'Status w !,"Error="_$SYSTEM.Status.GetErrorText(Status)
    

Member Data Documentation

◆ ANSIPrecedence

ANSIPrecedence

Apply SQL92 operator precedence if this flag is set

 

◆ AdaptiveMode

AdaptiveMode

Enable Adaptive mode (RTPC and automatic tuning)

 

◆ AllowRowIDUpdate

AllowRowIDUpdate

1 - The table compiler omits the checks to see if the RowID field(s) are being updated.


0 - The checks are performed.  

◆ AutoParallel

AutoParallel

Enable auto hinting for PARALLEL

 

◆ AutoParallelThreshold

AutoParallelThreshold

The threshold for auto hinting for PARALLEL, the lower the value is, the higher the chance this query would be paralleded executed

 

◆ BiasQueriesAsOutlier

BiasQueriesAsOutlier

Set to 1 if queries on fields with non-null outliers often refer to the outlier.


 

◆ ClientMaxIdleTime

ClientMaxIdleTime

Enable XDBC max idle time

 

◆ Comment

Comment

Set the flag that determines if embedded SQL statements are retained as comments in the .INT code version of the routine.


 

◆ DBMSSecurity

DBMSSecurity

Set the flag that determines if SQL security is enabled.

If SQL security is ON, all SQL security is active. This means: Each user must specify a valid username and password when logging in through ODBC (or by setting the msql variable directly); Privilege-based table/view security is active, and the user may only perform actions on a table or view they have been granted access to. If SQL Security is off: Any user may access SQL through ODBC, and may be prompted for a username/password but will not be validated; Privilege-based table/view security is suppressed, and user's may perform actions on tables and views to which they have not been given access.

 

◆ DDLDefineBitmapExtent

DDLDefineBitmapExtent

Sets the flag which determines if a class created by a DDL CREATE TABLE statement defines a bitmap extent index for the class.

This setting only applies to classes created through DDL that do not also define an explicit IdKey index. DDLDefineBitmapExtent=0 means a bitmap extent index will not be defined. DDLDefineBitmapExtent=1 means a bitmap extent index will be defined, if possible.  

◆ DDLFinal

DDLFinal

Sets the flag which determines if a class created by a DDL CREATE TABLE statement is Final.


DDLFinal=0 means the class created by the statement will not be defined as Final
DDLFinal=1 means the class created by the statement will be defined as Final.
 

◆ DDLNo201

DDLNo201

Set the flag that determines if an SQLCODE -201 error is returned when an attempt is made to CREATE a previously existing table through DDL.


 

◆ DDLNo30

DDLNo30

Set the flag that determines if an SQLCODE -30 error is returned when an attempt is made to DROP a non-existing table through DDL.


 

◆ DDLNo307

DDLNo307

Set the flag that determines if an SQLCODE -307 error is returned when an attempt is made to a primary key constraint to a table through DDL, when a primary key constraint already exists for that table.


 

◆ DDLNo311

DDLNo311

Setting this parameter to 'Yes' allows you to ADD a foreign key through DDL even if one with the same name already exists.

Setting this parameter to 'No' disallows this action and returns an error code.

 

◆ DDLNo315

DDLNo315

Set the flag that determines if an SQLCODE -315 error is returned when an attempt is made to DROP a non-existant constraint through DDL.


 

◆ DDLNo324

DDLNo324

Set the flag that determines if an SQLCODE -324 error is returned when an attempt is made to CREATE a previously existing index through DDL.


 

◆ DDLNo333

DDLNo333

Set the flag that determines if an SQLCODE -333 error is returned when an attempt is made to drop a non-existant index through DDL.


 

◆ DDLSQLOnlyCompile

DDLSQLOnlyCompile

1 - any class compilation performed as a result of executing a DDL statement will compile the class with the "q" (sqlonly) flag.


0 - the "q" flag is not used. This is the default.  

◆ DDLUseExtentSet

DDLUseExtentSet

Sets the flag which determines if a class created by a DDL CREATE TABLE statement defines the USEEXTENTSET class parameter to a value of 1.

USEEXTENTSET=1 will generally bind the table to better improving global names, especially the index globals. It does mean the global names the class is mapped to is not a name that attempts to match the classname. See documentation for USEEXTENTSET parameter for more information.  

◆ DDLUseSequence

DDLUseSequence

Sets the flag which determines if a class created by a DDL CREATE TABLE statement uses $Sequence for ID assignment.

The storage keyword IDFUNCTION can be defined as INCREMENT or SEQUENCE. This keyword value is used by the class compiler to determine which system function - $increment or $sequence - is to be used for assigning new ID values for a persistent class using default storage. The default value for IDFUNCTION is INCREMENT, however the default behavior for classes defined through DDL is to define IDFUNCTION as SEQUENCE. To configure the system to have classes created through DDL to define IDFUNCTION as INCREMENT, define DDLUseSequence=0. To configure the system to have classes created through DDL to define IDFUNCTION as SEQUENCE, define DDLUseSequence=1.  

◆ DefaultSchema

DefaultSchema

This setting provides the ability to define a default schema name other than SQLUser, the default.

When an unqualified table name is encountered in an SQL statement (and there is no #import statement specified), the default schema will be used. You may specify _CURRENT_USER for the default schema name if you wish to use the SQL username the process logged in as the name of the default schema. If the process has not logged in to SQL, SQLUser will be used as the default schema name. You may also specify _CURRENT_USER/<default name>. In this case, if the process has not logged in to SQL, <default name> will be used as the default schema name. For example: _CURRENT_USER/HMO will use HMO as the default schema if the process has not logged in to SQL. This setting has nothing to do with the mappings between SQL schema names and the class package name, it only specifies the default schema.

 

◆ DelimitedIds

DelimitedIds

Set the flag that determines if double quotes (") in an SQL statement are used for delimited (quoted) identifiers or string constants. If "Yes", a double quoted string ("My String") will be considered an identifier within an SQL statement. If "No", a double quoted string ("My String") will be considered a string literal within an SQL statement.


 

◆ DropDelete

DropDelete

Set the flag that determines whether a DDL DROP TABLE statement deletes the table's data.


 

◆ ECPSync

ECPSync

When an SQL Select statement is executed, forces all pending ECP requests to the DB-server.

On completion it guarantees that the client cache is in sync.  

◆ ExtrinsicFunctions

ExtrinsicFunctions

Allows/disallows extrinsic functions to be used in SQL statements through ODBC, JDBC, and Dynamic Query.


 

◆ FastDistinct

FastDistinct

Set the flag that determines if SQL DISTINCT optimization is turned on.

If true (the default) many SQL queries involving DISTINCT (and GROUP BY)

will run much more efficiently by making better use of indices (if available). The downside of this is that the values returned by such queries will be collated in the same way they are stored within the index (i.e., results may be in upper case). Some applications care about the case of values returned by such queries. If "Fast DISTINCT" is set to false (0), the SQL will revert to its pre-Cache 5.1 behavior with regards to DISTINCT behavior.
 

◆ IdKey

IdKey

Set the flag that determines whether a Primary Key constraint specified through DDL also

becomes the IDKey index in the class definition or not. By default, the primary key does
also become the idkey index. This generally gives better performance, but means that
the Primary Key fields cannot be updated.
 

◆ IdTrxFrom

IdTrxFrom

Modifies the DDL Identifier Translation mappings.

This is for filtering/modifying valid SQL identifier characters when translating SQL identifiers into Objects identifiers. When converting an SQL identifier to an Objects identifier at DDL run-time, the characters in the 'From' list are converted to the characters in the 'To' list.

 

◆ IdTrxTo

IdTrxTo

Modifies the DDL Identifier Translation mappings.

This is for filtering/modifying valid SQL identifier characters when translating SQL identifiers into Objects identifiers. When converting an SQL identifier to an Objects identifier at DDL run-time, the characters in the 'From' list are converted to the characters in the 'To' list.

 

◆ LockThreshold

LockThreshold

The value n is the lock threshold.

This is the number of inserts, updates, or deletes for a single table

within a single transaction that will trigger a table-level lock when reached. For example, if the lock threshold is 1000 and a process starts a transaction and then inserts 2000 rows, after the 1001st row is inserted the process will attempt to acquire a table-level lock instead of continue to lock individual rows. This is to help keep the lock table from becoming too full.  

◆ LockTimeout

LockTimeout

Set the Lock Timeout for locks made during execution of SQL statements.

This value is in seconds.

 

◆ ODBCVarcharMaxlen

ODBCVarcharMaxlen

Defines the MaxLen for ODBC fields of type VarChar.


 

◆ ParameterSampling

ParameterSampling

Enable parameter sampling

 

◆ QueryProcedures

QueryProcedures

Defines whether or not all class queries project as SQL Stored Procedures.

regardless of the query's SqlProc setting.
Default is 0, only class queries defined with SqlProc=1 will project as Stored Procedures. When set to 1, all class queries will project as stored procedures. When changing this setting, you must recompile the classes with the class queries in order for this change to have an affect.  

◆ RTPC

RTPC

Enable Run Time Plan Choice

 

◆ ReferentialChecks

ReferentialChecks

For INSERT, UPDATE, and DELETE, setting this parameter to 'Yes' instructs InterSystems IRIS to validate the foreign key constraint.

Setting this parameter to 'No' will bypass foreign key constraint checking.

 

◆ SaveMAC

SaveMAC

Defines whether or not the source code (.MAC and .INT) is saved or not.

The default is that no source code is saved. This setting is made on a per-system basis.

 

◆ TCPKeepAlive

TCPKeepAlive

Set the TCP Keep Alive timeout for xDBC TCP connections.


This is the number of seconds between keep alive-messages. The default for this is 300 seconds (5 minutes).]]>  

◆ TODATEDefaultFormat

TODATEDefaultFormat

Default date format for the SQL TO_DATE() function.


 

◆ TimePrecision

TimePrecision

Set the default precision for the Time component of the value returned by the GETDATE(), CURRENT_TIME, and CURRENT_TIMESTAMP SQL Scalar functions.

The precision, the number of decimal places for the millisecond portion of the time value, has a default is 0, which means milliseconds are not returned in the values returned by the GETDATE(), CURRENT_TIME, and CURRENT_TIMESTAMP functions.