incubator-empire-db-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Francis De Brabandere <franci...@gmail.com>
Subject Re: reverse function in postgresql
Date Thu, 02 Jul 2009 19:27:16 GMT
Yep, got postrgesql running on my other machine so I can actually test with it

On Thu, Jul 2, 2009 at 9:21 PM, Rainer Döbele<doebele@esteam.de> wrote:
> Francis you are unbelievable. I've just created the issue in JIRA and two minutes later
you've already checked the code in. You must have been waiting for that all day.
> Thanks a lot for that.
> Apparently you don't have the right to create JIRA issues yourself. I always thought
you had.
> I will see if I am able to give you the right to do so.
>
> As you have probably seen, I have just created another issue for the reverse function
problem.
> I am not yet sure how to deal with this in this case and in general.
> The original idea was to take all common SQL functions and support them for all database
drivers.
> For database specific functions additional functions could be implemented either on the
database driver or on the DBCommand object that is created through the driver. An example
for this is Oracle where we support the "connect by prior" function with the DBCommandOracle
object.
> What I think we should not do, is to create the function in postgre without the user's
consent, i.e. without him telling us to do so. This in turn means that we have to put the
code Frank suggested in a special method on the driver and anyone who wishes to use the reverse
function must call this method if the reverse function does not already exist.
>
> I will think about this some more and give you my opinion how to deal with this.
> However one problem for me is, that I don't have any postgre SQL database running here
and I cannot test it.
> Francis have you?
>
> Rainer
>
> P.S. @Frank Lupo: Thanks a log Frank for your contributions, they are very helpful.
>
> Francis De Brabandere wrote:
>> Re: reverse function in postgresql
>>
>> Rainer, what do you think about such workarounds??
>>
>> On Thu, Jul 2, 2009 at 5:39 PM, Frank Lupo<frank_lupo@email.it> wrote:
>> > Hi all,
>> > in postgreql the reverse function not exist.
>> > Is posible create function reverse when connect to db?
>> >
>> > thanks
>> >
>> > =====================================================
>> > CREATE OR REPLACE FUNCTION reverse(TEXT) RETURNS TEXT AS '
>> >  DECLARE
>> >     original ALIAS FOR $1;
>> >     reversed TEXT := \'\';
>> >     onechar  VARCHAR;
>> >     mypos    INTEGER;
>> >  BEGIN
>> >     SELECT LENGTH(original) INTO mypos;
>> >     LOOP
>> >        EXIT WHEN mypos < 1;
>> >        SELECT substring(original FROM mypos FOR 1) INTO onechar;
>> >        reversed := reversed || onechar;
>> >        mypos := mypos -1;
>> >     END LOOP;
>> >     RETURN reversed;
>> >  END
>> > ' LANGUAGE plpgsql IMMUTABLE RETURNS NULL ON NULL INPUT;
>> >
>> > =====================================================
>> > CREATE OR REPLACE FUNCTION reverse(TEXT) RETURNS TEXT AS '
>> >  DECLARE
>> >   original ALIAS FOR $1;
>> >   reversed TEXT := \'\';
>> >   onechar  VARCHAR;
>> >   mypos    INTEGER;
>> >  BEGIN
>> >   SELECT LENGTH(original) INTO mypos;
>> >   LOOP
>> >     EXIT WHEN mypos < 1;
>> >     SELECT substring(original FROM mypos FOR 1) INTO onechar;
>> >     reversed := reversed || onechar;
>> >     mypos := mypos -1;
>> >   END LOOP;
>> >   RETURN reversed;
>> >  END
>> > ' LANGUAGE plpgsql IMMUTABLE RETURNS NULL ON NULL INPUT;
>> > =====================================================
>> > create or replace function reverse_string(text) returns text as
>> > '
>> > DECLARE
>> > reversed_string text;
>> > incoming alias for $1;
>> >
>> > BEGIN
>> >
>> > reversed_string = '''';
>> >
>> > for i in reverse char_length(incoming)..1 loop
>> >  reversed_string = reversed_string || substring(incoming from i for
>> 1);
>> > end loop;
>> >
>> > return reversed_string;
>> > END'
>> > language plpgsql;
>> >
>> >
>> >
>> >
>> > --
>> > Caselle da 1GB, trasmetti allegati fino a 3GB e in piu' IMAP, POP3 e
>> SMTP
>> > autenticato? GRATIS solo con Email.it http://www.email.it/f
>> >
>> > Sponsor:
>> > Se ci racconti i tuoi gesti d'amore per il tuo cane, Cesar ti premia.
>> > Partecipa anche tu!
>> > Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid=9205&d=2-7
>> >
>>
>>
>>
>> --
>> http://www.somatik.be
>> Microsoft gives you windows, Linux gives you the whole house.
>



-- 
http://www.somatik.be
Microsoft gives you windows, Linux gives you the whole house.

Mime
View raw message