Constant Expressions
Certain expressions that return a fixed value are called constant expressions. These include variant function operators that read the system clock, but that are valid in contexts where literal constants are also valid.
Among these expressions are the following operators (or system
constants) whose returned values are determined at runtime:
- CURRENT returns the current time and date from the system clock.
- CURRENT_ROLE returns the name of the role, if any, whose privileges are enabled for the current user.
- CURRENT_USER is a synonym for USER.
- DEFAULT_ROLE returns the name of the role, if any, that is the default role for the current user.
- DBSERVERNAME returns the name of the current database server.
- SITENAME is a synonym for DBSERVERNAME.
- SYSDATE reads the DATETIME value from the system clock like the CURRENT operator, but has a different default precision.
- TODAY returns the current calendar date from the system clock.
- USER returns the login name (also called the authorization identifier) of the current user.
Besides these operators, the term constant expression can also refer to a quoted string, to a literal value, or to the UNITS operator with its operands.
The Constant Expression segment
has the following syntax.
(explicit id ref1)
ref1
(explicit id ref2)
ref2
(explicit id ref3)
ref3
(explicit id ref5)
ref5
(explicit id ref6)
ref6
(explicit id ref8)
ref8
(explicit id ref10)
ref10
(explicit id ref9)
ref9
Constant Expressions
{ <Quoted String>[] | <Literal Number> [] | { { USER | CURRENT_USER } | [] { CURRENT_ROLE | DEFAULT_ROLE } } | { [] | { SITENAME | DBSERVERNAME } | TODAY | { CURRENT | SYSDATE } [ precision ] | <Literal DATETIME>[] | <Literal INTERVAL> [] | num UNITStime_unit | { [ owner . ] { sequence | synonym } . { CURRVAL | NEXTVAL } | <Literal Collection>[] | <Literal Row> [] | literal opaque type | literal BOOLEAN } } }
Element | Description | Restrictions | Syntax |
---|---|---|---|
literal Boolean | Literal representation of a BOOLEAN value | Must be either t (TRUE) or f (FALSE) | Quoted String |
literal opaque type | Literal representation of value of an opaque data type | Must be recognized by the input support function of opaque type | Defined by UDT developer |
num | How many of specified time units. See UNITS Operator. | If num is not an integer, the fractional part is truncated | Literal Number |
owner | Name of the owner of sequence | Must own sequence | Owner name |
precision | Precision of the returned DATETIME expression | On Windows™ systems the maximum scale of seconds is FRACTION(3). | DATETIME Field Qualifier |
sequence | Name of a sequence | Must exist in current database | Identifier |
synonym | Synonym for the name of a sequence | Must exist in current database | Identifier |
time_unit | Keyword to specify time unit: YEAR, MONTH, DAY, HOUR, MINUTE, SECOND, or FRACTION | Must be one of the keywords at left. Case insensitive but cannot be enclosed within quotes | See the Restrictions column. |
1 See Quoted String
2 See Literal Number
3 Informix® extension
4 See Literal DATETIME
5 See Literal INTERVAL
6 See Owner name
7 See Literal Row
8 See Literal Collection