You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: mysql-test/suite/compat/oracle/r/sp-package.result
+210Lines changed: 210 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -2925,3 +2925,213 @@ END $$
2925
2925
CALL xyz.xyz123(17,18,@R);
2926
2926
DROP PACKAGE xyz;
2927
2927
DROP TABLE t1;
2928
+
#
2929
+
# MDEV-28166 sql_mode=ORACLE: fully qualified package function calls do not work: db.pkg.func()
2930
+
#
2931
+
SELECT `db `.pkg.func();
2932
+
ERROR 42000: Incorrect database name 'db '
2933
+
SELECT db.`pkg `.func();
2934
+
ERROR 42000: Incorrect routine name 'pkg '
2935
+
SELECT db.pkg.`func `();
2936
+
ERROR 42000: Incorrect routine name 'func '
2937
+
CREATE DATABASE db1;
2938
+
USE db1;
2939
+
CREATE PACKAGE pkg1 AS
2940
+
FUNCTION f1 RETURN TEXT;
2941
+
FUNCTION f2_db1_pkg1_f1 RETURN TEXT;
2942
+
FUNCTION f2_pkg1_f1 RETURN TEXT;
2943
+
FUNCTION f2_f1 RETURN TEXT;
2944
+
END;
2945
+
$$
2946
+
CREATE PACKAGE BODY pkg1
2947
+
AS
2948
+
FUNCTION f1 RETURN TEXT IS
2949
+
BEGIN
2950
+
RETURN 'This is db1.pkg1.f1';
2951
+
END;
2952
+
FUNCTION f2_db1_pkg1_f1 RETURN TEXT IS
2953
+
BEGIN
2954
+
RETURN db1.pkg1.f1();
2955
+
END;
2956
+
FUNCTION f2_pkg1_f1 RETURN TEXT IS
2957
+
BEGIN
2958
+
RETURN pkg1.f1();
2959
+
END;
2960
+
FUNCTION f2_f1 RETURN TEXT IS
2961
+
BEGIN
2962
+
RETURN f1();
2963
+
END;
2964
+
END;
2965
+
$$
2966
+
USE db1;
2967
+
SELECT pkg1.f2_db1_pkg1_f1();
2968
+
pkg1.f2_db1_pkg1_f1()
2969
+
This is db1.pkg1.f1
2970
+
SELECT pkg1.f2_pkg1_f1();
2971
+
pkg1.f2_pkg1_f1()
2972
+
This is db1.pkg1.f1
2973
+
SELECT pkg1.f2_f1();
2974
+
pkg1.f2_f1()
2975
+
This is db1.pkg1.f1
2976
+
SELECT db1.pkg1.f2_db1_pkg1_f1();
2977
+
db1.pkg1.f2_db1_pkg1_f1()
2978
+
This is db1.pkg1.f1
2979
+
SELECT db1.pkg1.f2_pkg1_f1();
2980
+
db1.pkg1.f2_pkg1_f1()
2981
+
This is db1.pkg1.f1
2982
+
SELECT db1.pkg1.f2_f1();
2983
+
db1.pkg1.f2_f1()
2984
+
This is db1.pkg1.f1
2985
+
USE test;
2986
+
SELECT db1.pkg1.f2_db1_pkg1_f1();
2987
+
db1.pkg1.f2_db1_pkg1_f1()
2988
+
This is db1.pkg1.f1
2989
+
SELECT db1.pkg1.f2_pkg1_f1();
2990
+
db1.pkg1.f2_pkg1_f1()
2991
+
This is db1.pkg1.f1
2992
+
SELECT db1.pkg1.f2_f1();
2993
+
db1.pkg1.f2_f1()
2994
+
This is db1.pkg1.f1
2995
+
DROP DATABASE db1;
2996
+
CREATE DATABASE db1;
2997
+
CREATE DATABASE db2;
2998
+
CREATE PACKAGE db1.pkg1 AS
2999
+
FUNCTION f1 RETURN TEXT;
3000
+
END;
3001
+
$$
3002
+
CREATE PACKAGE BODY db1.pkg1 AS
3003
+
FUNCTION f1 RETURN TEXT AS
3004
+
BEGIN
3005
+
RETURN 'This is db1.pkg1.f1';
3006
+
END;
3007
+
END;
3008
+
$$
3009
+
CREATE PACKAGE db2.pkg1 AS
3010
+
FUNCTION f1 RETURN TEXT;
3011
+
FUNCTION var1 RETURN TEXT;
3012
+
FUNCTION var2 RETURN TEXT;
3013
+
END;
3014
+
$$
3015
+
CREATE PACKAGE BODY db2.pkg1 AS
3016
+
m_var1 TEXT;
3017
+
m_var2 TEXT;
3018
+
FUNCTION f1 RETURN TEXT AS
3019
+
BEGIN
3020
+
RETURN 'This is db2.pkg1.f1';
3021
+
END;
3022
+
FUNCTION var1 RETURN TEXT AS
3023
+
BEGIN
3024
+
RETURN m_var1;
3025
+
END;
3026
+
FUNCTION var2 RETURN TEXT AS
3027
+
BEGIN
3028
+
RETURN m_var2;
3029
+
END;
3030
+
BEGIN
3031
+
m_var1:= db1.pkg1.f1();
3032
+
m_var2:= db2.pkg1.f1();
3033
+
END;
3034
+
$$
3035
+
SELECT db2.pkg1.var1(), db2.pkg1.var2();
3036
+
db2.pkg1.var1() db2.pkg1.var2()
3037
+
This is db1.pkg1.f1 This is db2.pkg1.f1
3038
+
DROP DATABASE db1;
3039
+
DROP DATABASE db2;
3040
+
CREATE PACKAGE pkg1 AS
3041
+
FUNCTION f1(a TEXT) RETURN TEXT;
3042
+
END;
3043
+
$$
3044
+
CREATE PACKAGE BODY pkg1 AS
3045
+
FUNCTION f1(a TEXT) RETURN TEXT AS
3046
+
BEGIN
3047
+
RETURN a;
3048
+
END;
3049
+
END;
3050
+
$$
3051
+
SELECT test.pkg1.f1('xxx');
3052
+
test.pkg1.f1('xxx')
3053
+
xxx
3054
+
SELECT test.pkg1.f1('xxx' AS a);
3055
+
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'AS a)' at line 1
3056
+
DROP PACKAGE pkg1;
3057
+
#
3058
+
# MDEV-19328 sql_mode=ORACLE: Package function in VIEW
3059
+
#
3060
+
SET sql_mode=ORACLE;
3061
+
CREATE PACKAGE test1 AS
3062
+
FUNCTION f_test RETURN number;
3063
+
END test1;
3064
+
$$
3065
+
CREATE PACKAGE BODY test1
3066
+
AS
3067
+
FUNCTION f_test RETURN NUMBER IS
3068
+
BEGIN
3069
+
RETURN 1;
3070
+
END;
3071
+
END test1;
3072
+
$$
3073
+
SET sql_mode=ORACLE;
3074
+
CREATE VIEW v_test AS SELECT 1 AS c1 FROM DUAL WHERE 1=test1.f_test();
3075
+
SELECT * FROM v_test;
3076
+
c1
3077
+
1
3078
+
SHOW CREATE VIEW v_test;
3079
+
View v_test
3080
+
Create View CREATE VIEW "v_test" AS select 1 AS "c1" from DUAL where 1 = "test"."test1"."f_test"()
3081
+
character_set_client latin1
3082
+
collation_connection latin1_swedish_ci
3083
+
SET sql_mode=DEFAULT;
3084
+
SELECT * FROM v_test;
3085
+
c1
3086
+
1
3087
+
SHOW CREATE VIEW v_test;
3088
+
View v_test
3089
+
Create View CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v_test` AS select 1 AS `c1` from DUAL where 1 = `test`.`test1`.`f_test`()
3090
+
character_set_client latin1
3091
+
collation_connection latin1_swedish_ci
3092
+
DROP VIEW v_test;
3093
+
SET sql_mode=DEFAULT;
3094
+
CREATE VIEW v_test AS SELECT 1 AS c1 FROM DUAL WHERE 1=test1.f_test();
3095
+
ERROR 42000: FUNCTION test1.f_test does not exist
3096
+
SET sql_mode=ORACLE;
3097
+
CREATE VIEW v_test AS SELECT 1 AS c1 FROM DUAL WHERE 1=test.test1.f_test();
3098
+
SELECT * FROM v_test;
3099
+
c1
3100
+
1
3101
+
SHOW CREATE VIEW v_test;
3102
+
View v_test
3103
+
Create View CREATE VIEW "v_test" AS select 1 AS "c1" from DUAL where 1 = "test"."test1"."f_test"()
3104
+
character_set_client latin1
3105
+
collation_connection latin1_swedish_ci
3106
+
SET sql_mode=DEFAULT;
3107
+
SELECT * FROM v_test;
3108
+
c1
3109
+
1
3110
+
SHOW CREATE VIEW v_test;
3111
+
View v_test
3112
+
Create View CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v_test` AS select 1 AS `c1` from DUAL where 1 = `test`.`test1`.`f_test`()
3113
+
character_set_client latin1
3114
+
collation_connection latin1_swedish_ci
3115
+
DROP VIEW v_test;
3116
+
SET sql_mode=DEFAULT;
3117
+
CREATE VIEW v_test AS SELECT 1 AS c1 FROM DUAL WHERE 1=test.test1.f_test();
3118
+
SELECT * FROM v_test;
3119
+
c1
3120
+
1
3121
+
SHOW CREATE VIEW v_test;
3122
+
View v_test
3123
+
Create View CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v_test` AS select 1 AS `c1` from DUAL where 1 = `test`.`test1`.`f_test`()
3124
+
character_set_client latin1
3125
+
collation_connection latin1_swedish_ci
3126
+
SET sql_mode=ORACLE;
3127
+
SELECT * FROM v_test;
3128
+
c1
3129
+
1
3130
+
SHOW CREATE VIEW v_test;
3131
+
View v_test
3132
+
Create View CREATE VIEW "v_test" AS select 1 AS "c1" from DUAL where 1 = "test"."test1"."f_test"()
0 commit comments