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

Gpre produces invalid DDL for FB3 [CORE4413] #4735

Open
firebird-automations opened this issue May 1, 2014 · 6 comments
Open

Gpre produces invalid DDL for FB3 [CORE4413] #4735

firebird-automations opened this issue May 1, 2014 · 6 comments

Comments

@firebird-automations
Copy link
Collaborator

Submitted by: Claudio Valderrama C. (robocop)

When GPRE v3 is asked to generate code for DB objects creation, it emits DYN, but DYN is not available in FB3.

@firebird-automations
Copy link
Collaborator Author

Modified by: @dyemanov

Regression: 3.0 Alpha 1 [ 10331 ]

Version: 3.0 RC 1 [ 10584 ] =>

Version: 3.0 Beta 2 [ 10586 ] =>

Version: 3.0.0 [ 10048 ] =>

@firebird-automations
Copy link
Collaborator Author

Modified by: @dyemanov

Fix Version: 3.0 RC 1 [ 10584 ]

@firebird-automations
Copy link
Collaborator Author

Commented by: @asfernandes

And it has said since the start DYN was planned to be removed, that the alternative would be EXECUTE IMMEDIATE in GPRE, left for the user, as nobody except ourselves uses GPRE in this way.

Why would we care to do a major development for a obsolete tool?

@firebird-automations
Copy link
Collaborator Author

Commented by: @dyemanov

While GPRE is obviously somewhat outdated, I would not call it obsolete or deprecated. It's still in use by some customers. But so far everybody was OK with GPRE lagging behind, so this ticket should not be a showstopper for v3 even if we do nothing for DDL support right now.

@firebird-automations
Copy link
Collaborator Author

Modified by: @dyemanov

Fix Version: 3.0 RC 1 [ 10584 ] =>

@firebird-automations
Copy link
Collaborator Author

Commented by: Eberhard Leba (eleba)

In one of our projects we use GPRE and were happy with FB 2.5 so far. But FB 2.5
does not exist on Debian 9 and now we are forced to switch to FB 3.
Unfortunately the compile failed because 'isc_dyn_def_function' is now undefined.

The problematic SQL is DECLARE EXTERNAL FUNCTION which leads gpre to call
declare_udf(..) in src/gpre/cmd.cpp

IMHO to be clean the tool shall at least emit sth. like "Statement unsupported"
while parsing the source rather to produce wrong secondary code.
Because no one else complained about this so far we seem to be the only ones to
use features like this. We'll find a workaround for that, but it would have
reduced the effort to pin down the issue.

And finally having 'gpre is deprecated please switch to ...' hint in the text
emitted by gpre -? and in some release note would help allot to understand that
we need to swallow the bitter pill mid to long term:
Completely change our FB access layer in a product being on the market for 16 years now.

The workaround for this issue is to do the declaration during database creation.

Never the less embeded SQLusing gpre is still the primary method described in
https://www.firebirdsql.org/pdfmanual/html/ufb-cs-appdev.html

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

1 participant