Java Table UDF code example. This example creates a result set.
public static void rowgenerator( int a, int b, ResultSet rset[] ) {
int result = a + b;
// Create the meta data needed for the result set
ResultSetMetaDataImpl rsmd = new ResultSetMetaDataImpl(1);
rsmd.setColumnType(1, Types.INTEGER);
rsmd.setColumnName(1,"sum");
rsmd.setColumnLabel(1,"sum");
rsmd.setTableName(1,"my_sum");
// Create result set
ResultSetImpl rs = null;
try {
rs = new ResultSetImpl( (ResultSetMetaData)rsmd );
rs.beforeFirst();
} catch( Exception e ) {
System.out.println( "Error: couldn't create result set." );
System.out.println( e.toString() );
}
// Add the rows to the result set and populate them
try {
rs.insertRow();
rs.updateInt( 1, result );
} catch( Exception e ) {
System.out.println( "Error: couldn't insert row/data on row 1" );
System.out.println( e.toString() );
}
try {
rs.beforeFirst();
} catch( Exception e ) {
System.out.println( e.toString() );
}
rset[0] = rs;
}
public static void char_result_udf( java.lang.String s, ResultSet rset[]) {
// Create the meta data needed for the result set
ResultSetMetaDataImpl rsmd = new ResultSetMetaDataImpl(1);
rsmd.setColumnType(1, Types.CHAR);
if(s.length()==0){
rsmd.setColumnDisplaySize(1, 1);
} else {
rsmd.setColumnDisplaySize(1,s.length() );
}
rsmd.setColumnName(1,"c1");
rsmd.setColumnLabel(1,"c1");
rsmd.setTableName(1,"my_string");
// Create result set
ResultSetImpl rs = null;
try {
rs = new ResultSetImpl( (ResultSetMetaData)rsmd );
rs.beforeFirst();
//Insert some values into the result set
rs.insertRow();
rs.updateString(1, c);
} catch( Exception e ) {
System.out.println( "Error: couldn't create result set." );
System.out.println( e.toString() );
try {
rs.beforeFirst();
} catch( Exception e ) {
System.out.println( "Error: couldn't insert row/data on row 1" );
System.out.println( e.toString() );
}
rset[0] = rs;