Consultor Eletrônico



Kbase P41190: 4GL/ABL: What happens to ETIME function return value when it reaches its upper  or lower limit?
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   2/10/2011
Status: Unverified

GOAL:

4GL/ABL: What happens to ETIME function return value when it reaches its upper or lower limit?

GOAL:

When did the data type of the ETIME function return value change from INTEGER to INT64?

GOAL:

What is the upper limit of the ETIME function return value?

GOAL:

What is the range of the INTEGER data type value?

GOAL:

What is the range of the INT64 data type value?

FACT(s) (Environment):

All Supported Operating Systems
Progress 8.x
Progress 9.x
OpenEdge 10.x

FIX:

When the ETIME function return value exceeds its upper limit, it rolls over to its negative values starting with its lower limit values. That is, adding one to the ETIME function maximum positive value, (upper limit), returns its minimum negative value (lower limit).
The data type of the return value of the ETIME function was changed from the INTEGER data type (i.e. INT32) to INT64 data type in OpenEdge 10.1B.
The upper limit of the INTEGER ETIME function return value, (i.e. pre OpenEdge 10.1B) , is the maximum INTEGER data type value which is 2^31 - 1 = Decimal 2,147,483,647 ; that is, hexadecimal 0X7FFFFFFF.
The upper limit of the INT64 ETIME function return value, (i.e. OpenEdge 10.1B and later) , is the maximum INT64 data type which is 2^63 - 1 = Decimal 9,223,372,036,854,775,807; that is, hexadecimal 0X7FFFFFFFFFFFFFFF.
The range of the INTEGER data type is from negative 2,147,483,648 to positive 2,147,483,647; that is, from hexadecimal 0X80000000 to hexadecimal 0X7FFFFFFF.
The range of the INT64 data type is from negative 9,223,372,036,854,775,808 to positive 9,223,372,036,854,775,807; that is, hexadecimal 0X8000000000000000 to hexadecimal 0X7FFFFFFFFFFFFFFF.