Method

This chapter describes methods which are built-in functions of the CUBRID database system.

The methods are written in C and called by the CALL statement. A method program is loaded and linked with the application currently running by the dynamic loader when the method is called. The return value created as a result of the method execution is passed to the caller.

Method Type

The CSQL language supports the following two types of methods: class and instance methods.

  • The class method is a method called by a class object. It is usually used to create a new class instance or to initialize it. It is also used to access or update class attributes.
  • The instance method is a method called by a class instance. It is used more often than the class method because most operations are executed in the instance. For example, an instance method can be written to calculate or update the instance attribute. This method can be called from any instance of the class in which the method is defined or of the sub class that inherits the method.

The method inheritance rules are similar to those of the attribute inheritance. The sub class inherits classes and instance methods from the super class. The sub class can follow the class or instance method definition from the super class.

The rules for resolving method name conflicts are same as those for attribute name conflicts. For details about attribute/method inheritance conflicts, see Class Conflict Resolution.

CALL Statement

The CALL statement is used to call a method defined in the database. Both class and instance methods can be called by the CALL statement. If you want to see example of using the CALL statement, see User Authorization Management METHOD.

CALL method_call [ ; ]

method_call :
• method_name ( [ arg_value [ {, arg_value }_ ] ] ) ON call_target [ to_variable ]
• method_name ( call_target [, arg_value [ {, arg_value }_ ] ] ) [ to_variable ]

arg_value :
• any CSQL expression

call_target :
• an object-valued expression

to_variable :
• INTO variable
• TO variable
  • The method_name is either the method name defined in the table or the system-defined method name. A method requires one or more parameters. If there is no parameter for the method, a set of blank parentheses must be used.
  • call_target can use an object-valued expression that contains a class name, a variable, another method call (which returns an object). To call a class method for a class object, you must place the CLASS keyword before the call_target. In this case, the table name must be the name of the class where the table method is defined. To call a record method, you must specify the expression representing the record object. You can optionally store the value returned by the table or record method in the to_variable. This returned variable value can be used in the CALL statement just like the call_target or arg_value parameter.
  • Calling nested methods is possible when other method_call is the call_target of the method or given as one of the arg_value parameters.