Mapping of Functions to java.lang Methods
Page 1 of 1

Appendix A
Mapping of Functions to java.lang Methods

The methods of the java.lang classes map to many of the functions built into other database systems. This appendix lists the ways the methods map to functions.

Functions are often divided into the following categories:

The Cloudscape installation includes a script that you can run to create aliases for all the java.lang.Math static methods. It also includes a script that you can run to create aliases for some of the VisualNumerics.math static functions. See readme.html in /demo/util/methodalias for more details.

Table A-1 Mapping of Numeric Functions to Java Methods 

Function

Method

Alias with Script

ABS(number)

(CLASS java.lang.Math).
abs(number)

ABS(number)

ACOS(double)

(CLASS java.lang.Math).
acos(double)

ACOS(double)

ASIN(double)

(CLASS java.lang.Math).
asin(double)

ASIN(double)

ATAN(double)

(CLASS java.lang.Math).
atan(double)

ATAN(double)

ATAN2(double1, double2)

(CLASS java.lang.Math).
atan2(double1,double2)

ATAN2(double1, double2)

CEILING(double)

(CLASS java.lang.Math).
ceil(double)

CEILING(double)

COS(double)

(CLASS java.lang.Math).
cos(double)

COS(double)

COT(double)

(CLASS VisualNumerics.math.SFun).cot(double)

COT(double) (with jnl.math.sql script)

DEGREES(number)

not available in java.lang.*


not generally available

(CLASS java.lang.Math)->E


EXP(double)

(CLASS java.lang.Math).
exp(double)

EXP(double)

FLOOR(double)

(CLASS java.lang.Math).
floor(double)

FLOOR(double)

LOG(double)

(CLASS java.lang.Math).
log(double)

LOG(double)

LOG10(double)

(CLASS VisualNumerics.math.SFun).log10(double)

LOG10 (with jnl.math.sql script)

not generally available

(CLASS java.lang.Math).
min(number1, number2)

must modify script

not generally available

(CLASS java.lang.Math).
max(number1, number2)

must modify script


MOD(integer1, integer2)


PI()

(CLASS java.lang.Math)->PI


POWER(number, power)

(CLASS java.lang.Math).
pow(number, power)

POW(number, power)

RADIANS(number)

RAND(integer)

(CLASS java.lang.Math).
random(integer)

RAND(integer)

ROUND(number, places)

(CLASS java.lang.Math).
round(number) rounds to 0 places

ROUND(number)

SIGN(number)

(number >= 0) ? `+' : `-'

SIN(double)

(CLASS java.lang.Math).
sin(double)

SIN(double)

SQRT(double)

(CLASS java.lang.Math).
sqrt(double)

SQRT(double)

TAN(double)

(CLASS java.lang.Math).
tan(double)

TAN(double)

TRUNCATE (number, places)

(NEW java.math.BigDecimal(number.doubleValue()).
setScale(places.
intValue),
(CLASS java.math.
BigDecimal)->
ROUND_FLOOR).
doubleValue()


Table A-2 Mapping of String Functions to Java Methods 

Function

Method

ASCII(string)

not available

CHAR(code)

not available

CONCAT(string1, string2)

string1 || string2 OR

string1.concat(string2)

DIFFERENCE(string1, string2)

INSERT(string1, start, length, string2)

NEW java.lang.StringBuffer(string1).
insert(start,string2.substring(0,length)).
toString()

LCASE(string)

Built-in support with LOWER(string).

string.toLowerCase()

LEFT(string, count)

Built-in support with SUBSTRING.

string.substring(0,count)

LENGTH(string)

Built-in support with CHAR_LENGTH(string).

string.length()

LOCATE(string1, string2, start)

string1.indexOf(string2, start)

LTRIM(string)

Built-in support with LTRIM.

REPEAT(string, count)

REPLACE(string1, string2, string3)

string1.replace(string2, string3)

strings 2 and 3 must be one char

RIGHT(string, count)

string.substring(string.length()-count, string.length())

RTRIM(string)

Built-in support with RTRIM.

SOUNDEX(string)

SPACE(string)

SUBSTRING(string,length)

Built-in support with SUBSTRING, SUBSTR.

UCASE(string)

Built-in support with UPPER.

Table A-3 Mapping of Time and Date Functions to Java Methods 

Function

Method

CURDATE()

Built-in support with CURRENT_DATE.

CURTIME()

Built-in support with CURRENT_TIME.

DAYNAME(date)

NEW java.text.SimpleDateFormat('E').
format(date,
   NEW java.lang.StringBuffer(),
   NEW java.text.FieldPosition
((CLASS java.text.DateFormat)->
DAY_OF_WEEK_FIELD))

DAYOFMONTH(date)

Built-in support with EXTRACT(DAY FROM date).
date.getDate()+1

DAYOFWEEK(date)

date.getDay()+1

DAYOFYEAR(date)

NEW java.text.SimpleDateFormat('D').
format(date,
NEW java.lang.StringBuffer(),
NEW java.text.FieldPosition(
(CLASS java.text.DateFormat)
->DAY_OF_YEAR_FIELD))

HOUR(time)

Built-in support with EXTRACT(HOUR FROM time).

time.getHours()

MINUTE(time)

Built-in support with EXTRACT(MINUTE FROM time).

time.getMinutes()

MONTH(date)

Built-in support with EXTRACT(MONTH FROM date).

date.getMonth()+1

MONTHNAME(date)

NEW java.text.SimpleDateFormat('MMMM').
format(date,
NEW java.lang.StringBuffer(),
NEW java.text.FieldPosition(
(CLASS java.text.DateFormat)->
MONTH_FIELD))

NOW()

Built-in support with CURRENT_TIMESTAMP.

QUARTER(date)

Built-in support with EXTRACT(MONTH FROM date)

date.getMonth()+1)/4 + 1

SECOND(time)

Built-in support with EXTRACT(SECOND FROM time)

time.getSeconds()

TIMESTAMPADD(interval, count, timestamp)

intervals are not yet supported; can use longs

TIMESTAMPDIFF(interval, timestamp1,
timestamp2)

intervals are not yet supported; can use longs

WEEK(date)

NEW java.text.SimpleDateFormat('w').
format(date,
NEW java.lang.StringBuffer(),
NEW java.text.FieldPosition
( (CLASS java.text.DateFormat)->
WEEK_OF_YEAR_FIELD))

YEAR(date)

Built-in support with EXTRACT (YEAR FROM date).

date.getYear()

Table A-4 Mapping of System Functions to Java Methods

Function

Method

DATABASE()

not supported yet

(Use JDBC to get the database connection URL. See Retrieving the Database Connection URL.)

IFNULL(expression, value)

(expression = IS NULL)?value:expression

USER()


Built-in support with USER.

(OR use JDBC)

Table A-5 Mapping of CONVERT Functions to Methods and CAST Expressions 

Function

Method

Equivalent SQL-J CAST Expression

CONVERT(value, BIGINT)

(value).longValue()

CAST (value AS LONGINT)

CONVERT(value, BINARY)

not available

CAST (value AS BIT(length))

CONVERT(value, BIT)

(value).booleanValue()

CAST (value AS BOOLEAN)

CONVERT(value, CHAR)

(value).toString()

CAST (value AS CHAR(length))

CONVERT(value, DATE)

(CLASS java.sql.Date).
valueOf(
(CLASS
java.lang.String).
valueOf(value))

(If source value is a string,
do not use String.valueOf)

CAST (value AS DATE)

CONVERT(value, DECIMAL)

NEW java.math.
BigDecimal(
(value).
doubleValue())

CAST (value AS DECIMAL(precision, scale))

CONVERT(value, DOUBLE)

(value).doubleValue()

CAST (value AS DOUBLE PRECISION)

CONVERT(value, FLOAT)

(value).doubleValue()

CAST (value AS FLOAT (precision))

CONVERT(value, INTEGER)

(value).intValue()

CAST (value AS INTEGER)

CONVERT(value, LONGVARBINARY)

CAST (value AS BITVARYING(length))

CONVERT(value, LONGVARCHAR)

(value).toString()

CAST (value AS VARCHAR(length))

CONVERT(value, REAL)

(value).floatValue()

CAST (value AS REAL)

CONVERT(value, SMALLINT)

(value).shortValue()

CAST (value AS SMALLINT)

CONVERT(value, TIME)

(CLASS java.sql.Time).
valueOf((CLASS
java.lang.String).
valueOf(value))

CAST (value AS TIME)

CONVERT(value, TIMESTAMP)

(CLASS java.sql.Timestamp).
valueOf((CLASS
java.lang.String).
valueOf(value))

(If source value is a string, do not use String.valueOf)

CAST (value AS TIMESTAMP)

CONVERT(value, TINYINT)

(value).byteValue()

CAST (value AS TINYINT)

CONVERT(value, VARBINARY)

not available

CAST (value AS BITVARYING(length))

CONVERT(value, VARCHAR)

(value).toString()

CAST (value AS VARCHAR(length))