@@ -2839,7 +2839,10 @@ void write_functions()
2839
2839
BURP_verbose (147, temp);
2840
2840
// msg 147 writing function %.*s
2841
2841
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
+
2843
2846
put_int32 (att_function_type, X.RDB$FUNCTION_TYPE);
2844
2847
PUT_TEXT (att_function_query_name, X.RDB$QUERY_NAME);
2845
2848
@@ -2893,7 +2896,10 @@ void write_functions()
2893
2896
put_source_blob (att_function_description2, att_function_description, X.RDB$DESCRIPTION);
2894
2897
PUT_TEXT (att_function_module_name, X.RDB$MODULE_NAME);
2895
2898
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
+
2897
2903
put_int32 (att_function_type, X.RDB$FUNCTION_TYPE);
2898
2904
PUT_TEXT (att_function_query_name, X.RDB$QUERY_NAME);
2899
2905
put(tdgbl, att_end);
@@ -2955,7 +2961,9 @@ void write_function_args(const GDS_NAME package, GDS_NAME funcptr)
2955
2961
BURP_verbose (141, temp);
2956
2962
// msg 141 writing argument for function %s
2957
2963
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
+
2959
2967
put_int32 (att_functionarg_passing_mechanism, X.RDB$MECHANISM);
2960
2968
put_int32 (att_functionarg_field_type, X.RDB$FIELD_TYPE);
2961
2969
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)
3006
3014
MISC_terminate (X.RDB$FUNCTION_NAME, temp, l, sizeof(temp));
3007
3015
BURP_verbose (141, temp);
3008
3016
// 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
+
3010
3021
put_int32 (att_functionarg_passing_mechanism, X.RDB$MECHANISM);
3011
3022
put_int32 (att_functionarg_field_type, X.RDB$FIELD_TYPE);
3012
3023
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)
3034
3045
MISC_terminate (X.RDB$FUNCTION_NAME, temp, l, sizeof(temp));
3035
3046
BURP_verbose (141, temp);
3036
3047
// 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
+
3038
3052
put_int32 (att_functionarg_passing_mechanism, X.RDB$MECHANISM);
3039
3053
put_int32 (att_functionarg_field_type, X.RDB$FIELD_TYPE);
3040
3054
put_int32 (att_functionarg_field_scale, X.RDB$FIELD_SCALE);
0 commit comments