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;