@@ -2839,7 +2839,10 @@ void write_functions()
28392839 BURP_verbose (147, temp);
28402840 // msg 147 writing function %.*s
28412841 put_source_blob (att_function_description2, att_function_description, X.RDB$DESCRIPTION);
2842- put_int32 (att_function_return_arg, X.RDB$RETURN_ARGUMENT);
2842+
2843+ if (!X.RDB$RETURN_ARGUMENT.NULL)
2844+ put_int32 (att_function_return_arg, X.RDB$RETURN_ARGUMENT);
2845+
28432846 put_int32 (att_function_type, X.RDB$FUNCTION_TYPE);
28442847 PUT_TEXT (att_function_query_name, X.RDB$QUERY_NAME);
28452848
@@ -2893,7 +2896,10 @@ void write_functions()
28932896 put_source_blob (att_function_description2, att_function_description, X.RDB$DESCRIPTION);
28942897 PUT_TEXT (att_function_module_name, X.RDB$MODULE_NAME);
28952898 PUT_TEXT (att_function_entrypoint, X.RDB$ENTRYPOINT);
2896- put_int32 (att_function_return_arg, X.RDB$RETURN_ARGUMENT);
2899+
2900+ if (!X.RDB$RETURN_ARGUMENT.NULL)
2901+ put_int32 (att_function_return_arg, X.RDB$RETURN_ARGUMENT);
2902+
28972903 put_int32 (att_function_type, X.RDB$FUNCTION_TYPE);
28982904 PUT_TEXT (att_function_query_name, X.RDB$QUERY_NAME);
28992905 put(tdgbl, att_end);
@@ -2955,7 +2961,9 @@ void write_function_args(const GDS_NAME package, GDS_NAME funcptr)
29552961 BURP_verbose (141, temp);
29562962 // msg 141 writing argument for function %s
29572963
2958- put_int32 (att_functionarg_position, X.RDB$ARGUMENT_POSITION);
2964+ if (!X.RDB$ARGUMENT_POSITION.NULL)
2965+ put_int32 (att_functionarg_position, X.RDB$ARGUMENT_POSITION);
2966+
29592967 put_int32 (att_functionarg_passing_mechanism, X.RDB$MECHANISM);
29602968 put_int32 (att_functionarg_field_type, X.RDB$FIELD_TYPE);
29612969 put_int32 (att_functionarg_field_scale, X.RDB$FIELD_SCALE);
@@ -3006,7 +3014,10 @@ void write_function_args(const GDS_NAME package, GDS_NAME funcptr)
30063014 MISC_terminate (X.RDB$FUNCTION_NAME, temp, l, sizeof(temp));
30073015 BURP_verbose (141, temp);
30083016 // msg 141 writing argument for function %s
3009- put_int32 (att_functionarg_position, X.RDB$ARGUMENT_POSITION);
3017+
3018+ if (!X.RDB$ARGUMENT_POSITION.NULL)
3019+ put_int32 (att_functionarg_position, X.RDB$ARGUMENT_POSITION);
3020+
30103021 put_int32 (att_functionarg_passing_mechanism, X.RDB$MECHANISM);
30113022 put_int32 (att_functionarg_field_type, X.RDB$FIELD_TYPE);
30123023 put_int32 (att_functionarg_field_scale, X.RDB$FIELD_SCALE);
@@ -3034,7 +3045,10 @@ void write_function_args(const GDS_NAME package, GDS_NAME funcptr)
30343045 MISC_terminate (X.RDB$FUNCTION_NAME, temp, l, sizeof(temp));
30353046 BURP_verbose (141, temp);
30363047 // msg 141 writing argument for function %s
3037- put_int32 (att_functionarg_position, X.RDB$ARGUMENT_POSITION);
3048+
3049+ if (!X.RDB$ARGUMENT_POSITION.NULL)
3050+ put_int32 (att_functionarg_position, X.RDB$ARGUMENT_POSITION);
3051+
30383052 put_int32 (att_functionarg_passing_mechanism, X.RDB$MECHANISM);
30393053 put_int32 (att_functionarg_field_type, X.RDB$FIELD_TYPE);
30403054 put_int32 (att_functionarg_field_scale, X.RDB$FIELD_SCALE);
0 commit comments