Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Aggregate UDF [CORE1326] #1745

Open
firebird-automations opened this issue Jun 17, 2007 · 13 comments
Open

Aggregate UDF [CORE1326] #1745

firebird-automations opened this issue Jun 17, 2007 · 13 comments

Comments

@firebird-automations
Copy link
Collaborator

Submitted by: Igor Lobov (ivl)

Is duplicated by CORE3162

Votes: 9

Create a way to create aggregate UDFs

@firebird-automations
Copy link
Collaborator Author

Modified by: @pcisar

Workflow: jira [ 12350 ] => Firebird [ 14884 ]

@firebird-automations
Copy link
Collaborator Author

Commented by: Ivan (patuljak)

mysql support this and maybe other databases.

http://books.google.com/books?id=kVB1wiF87ooC&pg=PA265&lpg=PA265&dq=mysql+udf+aggregate+example&source=bl&ots=HOlP34LbdM&sig=Fcj_7w5NycrtKhxpUbAREpMQ5K0&hl=en&ei=saTdSub8OIGUjAe838xt&sa=X&oi=book_result&ct=result&resnum=5&ved=0CBkQ6AEwBA#v=onepage&q=mysql%20udf%20aggregate%20example&f=false

why is this important?

if I need functions which contains few aggregate function then the best way for this problem is aggregate UDF.

firebird c-api does not support this and I don't know why?

many special functions which people need can't be write in sql query.
can be but with two or more stored procedures.

for example consider standard deviation

http://en.wikipedia.org/wiki/Standard_deviation

first query is avg(x) on stored procedures.
input parameter is one column-> x.
then must using cursor and for each x calculate
(x-avg(x))^2 as y

then
must run query
sqrt(sum(y)/count(x))

I know that somebody will say that database is not for processing data.

cursor is very slow, ETL (SISS) is fast but for processing data is slow.
ETL(SISS) is only for transform and migrate data.

application for statistics is also not very good.

what users want is only enable aggregate UDF in c-api and nothing else.

@firebird-automations
Copy link
Collaborator Author

Modified by: @asfernandes

assignee: Adriano dos Santos Fernandes [ asfernandes ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @asfernandes

Link: This issue is duplicated by CORE3162 [ CORE3162 ]

@firebird-automations
Copy link
Collaborator Author

Modified by: Ivan (patuljak)

Link: This issue is duplicated by CORE3163 [ CORE3163 ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @dyemanov

Link: This issue is duplicated by CORE3163 [ CORE3163 ] =>

@firebird-automations
Copy link
Collaborator Author

Commented by: adnanoncevarlik (adnanoncevarlik)

Hi All,

May be wrong place to say but we want to create functions on FIREBIRD and want to use in SELECT statements. Like this,

CREATE MY_FUNC_CALC_AGE(prmBirthDay TIMESTAMP) RETURNS RET_AGE INTEGER
BEGIN
RET_AGE = DATEDIFF(YEAR FROM prmBirthDay TO CURRENT_DATE) ;
SUSPEND ;
END

SELECT NAME, SIRNAME, MY_FUNC_CALC_AGE( BIRTHDAY)
FROM MY_TABLE

When this issue will planned to solve ?

Thank you and best regards
Adnan

@firebird-automations
Copy link
Collaborator Author

Commented by: @dyemanov

It's implemented in FB v3.0.

@firebird-automations
Copy link
Collaborator Author

Commented by: Mason Wheeler (masonwheeler)

Is there any documentation available on this, as to how one would go about creating an external aggregate function in FB 3.0?

@firebird-automations
Copy link
Collaborator Author

Commented by: @asfernandes

It's simple PSQL functions which is implemented. Aggregate function is not nor will be in FB 3.0.

@firebird-automations
Copy link
Collaborator Author

Commented by: Juan Antonio Castillo (jachguate)

Sadly. is there any plan to support it on a later version? It's known which version?

@firebird-automations
Copy link
Collaborator Author

Commented by: Mason Wheeler (masonwheeler)

What's the rationale for this? Most other serious RDBMSes have a way to define external aggregates. It's something that's very noticeably lacking from Firebird.

@firebird-automations
Copy link
Collaborator Author

Commented by: @asfernandes

Probably in the next major version.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants