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

[FB4, UDF] Prohibition of "return BY VALUE" for ISC_TIMESTAMP_TZ, ISC_TIME_TZ and so on #7884

Open
wants to merge 1 commit into
base: v4.0-release
Choose a base branch
from

Conversation

dmitry-lipetsk
Copy link
Contributor

It is a fix for issue #7883.

Test SQLs:

DECLARE EXTERNAL FUNCTION UDF_DUMMY6__3 RETURNS INT128 BY VALUE ENTRY_POINT 'IB_UDF_abs' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION UDF_DUMMY6__3 RETURNS NUMERIC(19,0) BY VALUE ENTRY_POINT 'IB_UDF_abs' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION UDF_DUMMY6__3 RETURNS NUMERIC(19,1) BY VALUE ENTRY_POINT 'IB_UDF_abs' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION UDF_DUMMY6__3 RETURNS DECIMAL(19,0) BY VALUE ENTRY_POINT 'IB_UDF_abs' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION UDF_DUMMY6__3 RETURNS DECIMAL(19,1) BY VALUE ENTRY_POINT 'IB_UDF_abs' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION UDF_DUMMY6__3 RETURNS DECFLOAT(16) BY VALUE ENTRY_POINT 'IB_UDF_abs' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION UDF_DUMMY6__3 RETURNS DECFLOAT(34) BY VALUE ENTRY_POINT 'IB_UDF_abs' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION UDF_DUMMY6__3 RETURNS TIMESTAMP WITH TIME ZONE BY VALUE ENTRY_POINT 'IB_UDF_abs' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION UDF_DUMMY6__3 RETURNS TIME WITH TIME ZONE BY VALUE ENTRY_POINT 'IB_UDF_abs' MODULE_NAME 'ib_udf';

ISQL returns for all the cases:

Statement failed, SQLSTATE = HY000
unsuccessful metadata update
-CREATE FUNCTION UDF_DUMMY6__3 failed
-SQL error code = -607
-Invalid command
-Return mode by value not allowed for this data type

…_TZ and so on

It is a fix for issue FirebirdSQL#7883.

Test SQLs:

DECLARE EXTERNAL FUNCTION UDF_DUMMY6__3 RETURNS INT128 BY VALUE ENTRY_POINT 'IB_UDF_abs' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION UDF_DUMMY6__3 RETURNS NUMERIC(19,0) BY VALUE ENTRY_POINT 'IB_UDF_abs' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION UDF_DUMMY6__3 RETURNS NUMERIC(19,1) BY VALUE ENTRY_POINT 'IB_UDF_abs' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION UDF_DUMMY6__3 RETURNS DECIMAL(19,0) BY VALUE ENTRY_POINT 'IB_UDF_abs' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION UDF_DUMMY6__3 RETURNS DECIMAL(19,1) BY VALUE ENTRY_POINT 'IB_UDF_abs' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION UDF_DUMMY6__3 RETURNS DECFLOAT(16) BY VALUE ENTRY_POINT 'IB_UDF_abs' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION UDF_DUMMY6__3 RETURNS DECFLOAT(34) BY VALUE ENTRY_POINT 'IB_UDF_abs' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION UDF_DUMMY6__3 RETURNS TIMESTAMP WITH TIME ZONE BY VALUE ENTRY_POINT 'IB_UDF_abs' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION UDF_DUMMY6__3 RETURNS TIME WITH TIME ZONE BY VALUE ENTRY_POINT 'IB_UDF_abs' MODULE_NAME 'ib_udf';

ISQL returns for all the cases:

Statement failed, SQLSTATE = HY000
unsuccessful metadata update
-CREATE FUNCTION UDF_DUMMY6__3 failed
-SQL error code = -607
-Invalid command
-Return mode by value not allowed for this data type
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant