agora inbox for pljava-dev@postgresql.org  
help / color / mirror / Atom feed
Subject: [Pljava-dev] Custom java objects
Date: Tue, 8 Aug 2006 17:51:09 +0400
Message-ID: <12743.060808@yandex.ru> (raw)

Hello,

I try to write aggregate function in Java for PostgeeSQL 8.1.

I just want to know, are there any ways to pass custom java objects
thorough iterations of row handler?

For example, I have functions in PostgreSQL (a is a table):

CREATE FUNCTION handler1(a, a)
returns a
as 'functions.handler1'
immutable language java;

CREATE FUNCTION handler2(a)
returns a
as 'functions.handler2'
immutable language java;

CREATE AGGREGATE aa ( BASETYPE = a, SFUNC = handler1, STYPE = a, FINALFUNC = handler2);


And two functions in Java:

    public static boolean handler1(ResultSet a, ResultSet record, ResultSet result) throws Exception {
        int v = a == null ? Integer.MIN_VALUE : a.getInt(1);
        if (record.getInt(1) > v) {
            result.updateInt(1, record.getInt(1));
            result.updateString(2, record.getString(2));
        } else {
            result.updateInt(1, a.getInt(1));
            result.updateString(2, a.getString(2));
        }
        return true;
    }

    public static boolean handler2(ResultSet a, ResultSet result) throws Exception {
        if (a == null) return false;
        result.updateInt(1, a.getInt(1));
        result.updateString(2, a.getString(2));
        return true;
    }

    
I Just want to use custom java object instead of "ResultSet a".



-- 
Best regards,
 Maxim Karavaev,
 ISP RAS (www.ispras.ru)







view thread (2+ messages)  latest in thread

Message-ID: <12743.060808@yandex.ru>
Permalink:  ../12743.060808@yandex.ru/
Also on:    postgresql.org/message-id/12743.060808@yandex.ru

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pljava-dev@postgresql.org
  Subject: Re: [Pljava-dev] Custom java objects
  In-Reply-To: <12743.060808@yandex.ru>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox