@@ -2806,3 +2806,332 @@ Warning 1292 Truncated incorrect time value: '-1441:00:00'
2806
2806
#
2807
2807
# End of 10.0 tests
2808
2808
#
2809
+ #
2810
+ # Start of 10.1 tests
2811
+ #
2812
+ #
2813
+ # MDEV-10317 EXCTACT(MINUTE_MICROSECOND) truncates data
2814
+ #
2815
+ CREATE TABLE t1 (a DATETIME(6));
2816
+ INSERT INTO t1 VALUES ('1999-12-31 23:59:59.999999');
2817
+ SELECT
2818
+ a,
2819
+ EXTRACT(YEAR FROM a),
2820
+ EXTRACT(YEAR_MONTH FROM a),
2821
+ EXTRACT(QUARTER FROM a),
2822
+ EXTRACT(MONTH FROM a),
2823
+ EXTRACT(WEEK FROM a),
2824
+ EXTRACT(DAY FROM a),
2825
+ EXTRACT(DAY_HOUR FROM a),
2826
+ EXTRACT(DAY_MINUTE FROM a),
2827
+ EXTRACT(DAY_SECOND FROM a),
2828
+ EXTRACT(HOUR FROM a),
2829
+ EXTRACT(HOUR_MINUTE FROM a),
2830
+ EXTRACT(HOUR_SECOND FROM a),
2831
+ EXTRACT(MINUTE FROM a),
2832
+ EXTRACT(MINUTE_SECOND FROM a),
2833
+ EXTRACT(SECOND FROM a),
2834
+ EXTRACT(MICROSECOND FROM a),
2835
+ EXTRACT(DAY_MICROSECOND FROM a),
2836
+ EXTRACT(HOUR_MICROSECOND FROM a),
2837
+ EXTRACT(MINUTE_MICROSECOND FROM a),
2838
+ EXTRACT(SECOND_MICROSECOND FROM a)
2839
+ FROM t1;
2840
+ Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
2841
+ def test t1 t1 a a 12 26 26 Y 128 6 63
2842
+ def EXTRACT(YEAR FROM a) 3 4 4 Y 32896 0 63
2843
+ def EXTRACT(YEAR_MONTH FROM a) 3 6 6 Y 32896 0 63
2844
+ def EXTRACT(QUARTER FROM a) 3 2 1 Y 32896 0 63
2845
+ def EXTRACT(MONTH FROM a) 3 2 2 Y 32896 0 63
2846
+ def EXTRACT(WEEK FROM a) 3 2 2 Y 32896 0 63
2847
+ def EXTRACT(DAY FROM a) 3 2 2 Y 32896 0 63
2848
+ def EXTRACT(DAY_HOUR FROM a) 3 5 4 Y 32896 0 63
2849
+ def EXTRACT(DAY_MINUTE FROM a) 3 7 6 Y 32896 0 63
2850
+ def EXTRACT(DAY_SECOND FROM a) 3 9 8 Y 32896 0 63
2851
+ def EXTRACT(HOUR FROM a) 3 3 2 Y 32896 0 63
2852
+ def EXTRACT(HOUR_MINUTE FROM a) 3 5 4 Y 32896 0 63
2853
+ def EXTRACT(HOUR_SECOND FROM a) 3 7 6 Y 32896 0 63
2854
+ def EXTRACT(MINUTE FROM a) 3 3 2 Y 32896 0 63
2855
+ def EXTRACT(MINUTE_SECOND FROM a) 3 5 4 Y 32896 0 63
2856
+ def EXTRACT(SECOND FROM a) 3 3 2 Y 32896 0 63
2857
+ def EXTRACT(MICROSECOND FROM a) 3 7 6 Y 32896 0 63
2858
+ def EXTRACT(DAY_MICROSECOND FROM a) 8 15 14 Y 32896 0 63
2859
+ def EXTRACT(HOUR_MICROSECOND FROM a) 8 13 12 Y 32896 0 63
2860
+ def EXTRACT(MINUTE_MICROSECOND FROM a) 8 11 10 Y 32896 0 63
2861
+ def EXTRACT(SECOND_MICROSECOND FROM a) 3 9 8 Y 32896 0 63
2862
+ a 1999-12-31 23:59:59.999999
2863
+ EXTRACT(YEAR FROM a) 1999
2864
+ EXTRACT(YEAR_MONTH FROM a) 199912
2865
+ EXTRACT(QUARTER FROM a) 4
2866
+ EXTRACT(MONTH FROM a) 12
2867
+ EXTRACT(WEEK FROM a) 52
2868
+ EXTRACT(DAY FROM a) 31
2869
+ EXTRACT(DAY_HOUR FROM a) 3123
2870
+ EXTRACT(DAY_MINUTE FROM a) 312359
2871
+ EXTRACT(DAY_SECOND FROM a) 31235959
2872
+ EXTRACT(HOUR FROM a) 23
2873
+ EXTRACT(HOUR_MINUTE FROM a) 2359
2874
+ EXTRACT(HOUR_SECOND FROM a) 235959
2875
+ EXTRACT(MINUTE FROM a) 59
2876
+ EXTRACT(MINUTE_SECOND FROM a) 5959
2877
+ EXTRACT(SECOND FROM a) 59
2878
+ EXTRACT(MICROSECOND FROM a) 999999
2879
+ EXTRACT(DAY_MICROSECOND FROM a) 31235959999999
2880
+ EXTRACT(HOUR_MICROSECOND FROM a) 235959999999
2881
+ EXTRACT(MINUTE_MICROSECOND FROM a) 5959999999
2882
+ EXTRACT(SECOND_MICROSECOND FROM a) 59999999
2883
+ CREATE TABLE t2 AS SELECT
2884
+ a,
2885
+ EXTRACT(YEAR FROM a),
2886
+ EXTRACT(YEAR_MONTH FROM a),
2887
+ EXTRACT(QUARTER FROM a),
2888
+ EXTRACT(MONTH FROM a),
2889
+ EXTRACT(WEEK FROM a),
2890
+ EXTRACT(DAY FROM a),
2891
+ EXTRACT(DAY_HOUR FROM a),
2892
+ EXTRACT(DAY_MINUTE FROM a),
2893
+ EXTRACT(DAY_SECOND FROM a),
2894
+ EXTRACT(HOUR FROM a),
2895
+ EXTRACT(HOUR_MINUTE FROM a),
2896
+ EXTRACT(HOUR_SECOND FROM a),
2897
+ EXTRACT(MINUTE FROM a),
2898
+ EXTRACT(MINUTE_SECOND FROM a),
2899
+ EXTRACT(SECOND FROM a),
2900
+ EXTRACT(MICROSECOND FROM a),
2901
+ EXTRACT(DAY_MICROSECOND FROM a),
2902
+ EXTRACT(HOUR_MICROSECOND FROM a),
2903
+ EXTRACT(MINUTE_MICROSECOND FROM a),
2904
+ EXTRACT(SECOND_MICROSECOND FROM a)
2905
+ FROM t1;
2906
+ SELECT * FROM t2;
2907
+ a 1999-12-31 23:59:59.999999
2908
+ EXTRACT(YEAR FROM a) 1999
2909
+ EXTRACT(YEAR_MONTH FROM a) 199912
2910
+ EXTRACT(QUARTER FROM a) 4
2911
+ EXTRACT(MONTH FROM a) 12
2912
+ EXTRACT(WEEK FROM a) 52
2913
+ EXTRACT(DAY FROM a) 31
2914
+ EXTRACT(DAY_HOUR FROM a) 3123
2915
+ EXTRACT(DAY_MINUTE FROM a) 312359
2916
+ EXTRACT(DAY_SECOND FROM a) 31235959
2917
+ EXTRACT(HOUR FROM a) 23
2918
+ EXTRACT(HOUR_MINUTE FROM a) 2359
2919
+ EXTRACT(HOUR_SECOND FROM a) 235959
2920
+ EXTRACT(MINUTE FROM a) 59
2921
+ EXTRACT(MINUTE_SECOND FROM a) 5959
2922
+ EXTRACT(SECOND FROM a) 59
2923
+ EXTRACT(MICROSECOND FROM a) 999999
2924
+ EXTRACT(DAY_MICROSECOND FROM a) 31235959999999
2925
+ EXTRACT(HOUR_MICROSECOND FROM a) 235959999999
2926
+ EXTRACT(MINUTE_MICROSECOND FROM a) 5959999999
2927
+ EXTRACT(SECOND_MICROSECOND FROM a) 59999999
2928
+ SHOW CREATE TABLE t2;
2929
+ Table Create Table
2930
+ t2 CREATE TABLE `t2` (
2931
+ `a` datetime(6) DEFAULT NULL,
2932
+ `EXTRACT(YEAR FROM a)` int(4) DEFAULT NULL,
2933
+ `EXTRACT(YEAR_MONTH FROM a)` int(6) DEFAULT NULL,
2934
+ `EXTRACT(QUARTER FROM a)` int(2) DEFAULT NULL,
2935
+ `EXTRACT(MONTH FROM a)` int(2) DEFAULT NULL,
2936
+ `EXTRACT(WEEK FROM a)` int(2) DEFAULT NULL,
2937
+ `EXTRACT(DAY FROM a)` int(2) DEFAULT NULL,
2938
+ `EXTRACT(DAY_HOUR FROM a)` int(5) DEFAULT NULL,
2939
+ `EXTRACT(DAY_MINUTE FROM a)` int(7) DEFAULT NULL,
2940
+ `EXTRACT(DAY_SECOND FROM a)` int(9) DEFAULT NULL,
2941
+ `EXTRACT(HOUR FROM a)` int(3) DEFAULT NULL,
2942
+ `EXTRACT(HOUR_MINUTE FROM a)` int(5) DEFAULT NULL,
2943
+ `EXTRACT(HOUR_SECOND FROM a)` int(7) DEFAULT NULL,
2944
+ `EXTRACT(MINUTE FROM a)` int(3) DEFAULT NULL,
2945
+ `EXTRACT(MINUTE_SECOND FROM a)` int(5) DEFAULT NULL,
2946
+ `EXTRACT(SECOND FROM a)` int(3) DEFAULT NULL,
2947
+ `EXTRACT(MICROSECOND FROM a)` int(7) DEFAULT NULL,
2948
+ `EXTRACT(DAY_MICROSECOND FROM a)` bigint(15) DEFAULT NULL,
2949
+ `EXTRACT(HOUR_MICROSECOND FROM a)` bigint(13) DEFAULT NULL,
2950
+ `EXTRACT(MINUTE_MICROSECOND FROM a)` bigint(11) DEFAULT NULL,
2951
+ `EXTRACT(SECOND_MICROSECOND FROM a)` int(9) DEFAULT NULL
2952
+ ) ENGINE=MyISAM DEFAULT CHARSET=latin1
2953
+ DROP TABLE t1,t2;
2954
+ CREATE TABLE t1 (a TIME(6));
2955
+ INSERT INTO t1 VALUES ('-838:59:59.999999'),('838:59:59.999999');
2956
+ SELECT
2957
+ a,
2958
+ EXTRACT(YEAR FROM a),
2959
+ EXTRACT(YEAR_MONTH FROM a),
2960
+ EXTRACT(QUARTER FROM a),
2961
+ EXTRACT(MONTH FROM a),
2962
+ EXTRACT(WEEK FROM a),
2963
+ EXTRACT(DAY FROM a),
2964
+ EXTRACT(DAY_HOUR FROM a),
2965
+ EXTRACT(DAY_MINUTE FROM a),
2966
+ EXTRACT(DAY_SECOND FROM a),
2967
+ EXTRACT(HOUR FROM a),
2968
+ EXTRACT(HOUR_MINUTE FROM a),
2969
+ EXTRACT(HOUR_SECOND FROM a),
2970
+ EXTRACT(MINUTE FROM a),
2971
+ EXTRACT(MINUTE_SECOND FROM a),
2972
+ EXTRACT(SECOND FROM a),
2973
+ EXTRACT(MICROSECOND FROM a),
2974
+ EXTRACT(DAY_MICROSECOND FROM a),
2975
+ EXTRACT(HOUR_MICROSECOND FROM a),
2976
+ EXTRACT(MINUTE_MICROSECOND FROM a),
2977
+ EXTRACT(SECOND_MICROSECOND FROM a)
2978
+ FROM t1;
2979
+ Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
2980
+ def test t1 t1 a a 11 17 17 Y 128 6 63
2981
+ def EXTRACT(YEAR FROM a) 3 4 1 Y 32896 0 63
2982
+ def EXTRACT(YEAR_MONTH FROM a) 3 6 1 Y 32896 0 63
2983
+ def EXTRACT(QUARTER FROM a) 3 2 1 Y 32896 0 63
2984
+ def EXTRACT(MONTH FROM a) 3 2 1 Y 32896 0 63
2985
+ def EXTRACT(WEEK FROM a) 3 2 9 Y 32896 0 63
2986
+ def EXTRACT(DAY FROM a) 3 2 2 Y 32896 0 63
2987
+ def EXTRACT(DAY_HOUR FROM a) 3 5 5 Y 32896 0 63
2988
+ def EXTRACT(DAY_MINUTE FROM a) 3 7 7 Y 32896 0 63
2989
+ def EXTRACT(DAY_SECOND FROM a) 3 9 9 Y 32896 0 63
2990
+ def EXTRACT(HOUR FROM a) 3 3 3 Y 32896 0 63
2991
+ def EXTRACT(HOUR_MINUTE FROM a) 3 5 5 Y 32896 0 63
2992
+ def EXTRACT(HOUR_SECOND FROM a) 3 7 7 Y 32896 0 63
2993
+ def EXTRACT(MINUTE FROM a) 3 3 3 Y 32896 0 63
2994
+ def EXTRACT(MINUTE_SECOND FROM a) 3 5 5 Y 32896 0 63
2995
+ def EXTRACT(SECOND FROM a) 3 3 3 Y 32896 0 63
2996
+ def EXTRACT(MICROSECOND FROM a) 3 7 7 Y 32896 0 63
2997
+ def EXTRACT(DAY_MICROSECOND FROM a) 8 15 15 Y 32896 0 63
2998
+ def EXTRACT(HOUR_MICROSECOND FROM a) 8 13 13 Y 32896 0 63
2999
+ def EXTRACT(MINUTE_MICROSECOND FROM a) 8 11 11 Y 32896 0 63
3000
+ def EXTRACT(SECOND_MICROSECOND FROM a) 3 9 9 Y 32896 0 63
3001
+ a -838:59:59.999999
3002
+ EXTRACT(YEAR FROM a) 0
3003
+ EXTRACT(YEAR_MONTH FROM a) 0
3004
+ EXTRACT(QUARTER FROM a) 0
3005
+ EXTRACT(MONTH FROM a) 0
3006
+ EXTRACT(WEEK FROM a) 613566757
3007
+ EXTRACT(DAY FROM a) 34
3008
+ EXTRACT(DAY_HOUR FROM a) -3422
3009
+ EXTRACT(DAY_MINUTE FROM a) -342259
3010
+ EXTRACT(DAY_SECOND FROM a) -34225959
3011
+ EXTRACT(HOUR FROM a) -22
3012
+ EXTRACT(HOUR_MINUTE FROM a) -2259
3013
+ EXTRACT(HOUR_SECOND FROM a) -225959
3014
+ EXTRACT(MINUTE FROM a) -59
3015
+ EXTRACT(MINUTE_SECOND FROM a) -5959
3016
+ EXTRACT(SECOND FROM a) -59
3017
+ EXTRACT(MICROSECOND FROM a) -999999
3018
+ EXTRACT(DAY_MICROSECOND FROM a) -34225959999999
3019
+ EXTRACT(HOUR_MICROSECOND FROM a) -225959999999
3020
+ EXTRACT(MINUTE_MICROSECOND FROM a) -5959999999
3021
+ EXTRACT(SECOND_MICROSECOND FROM a) -59999999
3022
+ a 838:59:59.999999
3023
+ EXTRACT(YEAR FROM a) 0
3024
+ EXTRACT(YEAR_MONTH FROM a) 0
3025
+ EXTRACT(QUARTER FROM a) 0
3026
+ EXTRACT(MONTH FROM a) 0
3027
+ EXTRACT(WEEK FROM a) 613566757
3028
+ EXTRACT(DAY FROM a) 34
3029
+ EXTRACT(DAY_HOUR FROM a) 3422
3030
+ EXTRACT(DAY_MINUTE FROM a) 342259
3031
+ EXTRACT(DAY_SECOND FROM a) 34225959
3032
+ EXTRACT(HOUR FROM a) 22
3033
+ EXTRACT(HOUR_MINUTE FROM a) 2259
3034
+ EXTRACT(HOUR_SECOND FROM a) 225959
3035
+ EXTRACT(MINUTE FROM a) 59
3036
+ EXTRACT(MINUTE_SECOND FROM a) 5959
3037
+ EXTRACT(SECOND FROM a) 59
3038
+ EXTRACT(MICROSECOND FROM a) 999999
3039
+ EXTRACT(DAY_MICROSECOND FROM a) 34225959999999
3040
+ EXTRACT(HOUR_MICROSECOND FROM a) 225959999999
3041
+ EXTRACT(MINUTE_MICROSECOND FROM a) 5959999999
3042
+ EXTRACT(SECOND_MICROSECOND FROM a) 59999999
3043
+ CREATE TABLE t2 AS SELECT
3044
+ a,
3045
+ EXTRACT(YEAR FROM a),
3046
+ EXTRACT(YEAR_MONTH FROM a),
3047
+ EXTRACT(QUARTER FROM a),
3048
+ EXTRACT(MONTH FROM a),
3049
+ EXTRACT(WEEK FROM a),
3050
+ EXTRACT(DAY FROM a),
3051
+ EXTRACT(DAY_HOUR FROM a),
3052
+ EXTRACT(DAY_MINUTE FROM a),
3053
+ EXTRACT(DAY_SECOND FROM a),
3054
+ EXTRACT(HOUR FROM a),
3055
+ EXTRACT(HOUR_MINUTE FROM a),
3056
+ EXTRACT(HOUR_SECOND FROM a),
3057
+ EXTRACT(MINUTE FROM a),
3058
+ EXTRACT(MINUTE_SECOND FROM a),
3059
+ EXTRACT(SECOND FROM a),
3060
+ EXTRACT(MICROSECOND FROM a),
3061
+ EXTRACT(DAY_MICROSECOND FROM a),
3062
+ EXTRACT(HOUR_MICROSECOND FROM a),
3063
+ EXTRACT(MINUTE_MICROSECOND FROM a),
3064
+ EXTRACT(SECOND_MICROSECOND FROM a)
3065
+ FROM t1;
3066
+ SELECT * FROM t2;
3067
+ a -838:59:59.999999
3068
+ EXTRACT(YEAR FROM a) 0
3069
+ EXTRACT(YEAR_MONTH FROM a) 0
3070
+ EXTRACT(QUARTER FROM a) 0
3071
+ EXTRACT(MONTH FROM a) 0
3072
+ EXTRACT(WEEK FROM a) 613566757
3073
+ EXTRACT(DAY FROM a) 34
3074
+ EXTRACT(DAY_HOUR FROM a) -3422
3075
+ EXTRACT(DAY_MINUTE FROM a) -342259
3076
+ EXTRACT(DAY_SECOND FROM a) -34225959
3077
+ EXTRACT(HOUR FROM a) -22
3078
+ EXTRACT(HOUR_MINUTE FROM a) -2259
3079
+ EXTRACT(HOUR_SECOND FROM a) -225959
3080
+ EXTRACT(MINUTE FROM a) -59
3081
+ EXTRACT(MINUTE_SECOND FROM a) -5959
3082
+ EXTRACT(SECOND FROM a) -59
3083
+ EXTRACT(MICROSECOND FROM a) -999999
3084
+ EXTRACT(DAY_MICROSECOND FROM a) -34225959999999
3085
+ EXTRACT(HOUR_MICROSECOND FROM a) -225959999999
3086
+ EXTRACT(MINUTE_MICROSECOND FROM a) -5959999999
3087
+ EXTRACT(SECOND_MICROSECOND FROM a) -59999999
3088
+ a 838:59:59.999999
3089
+ EXTRACT(YEAR FROM a) 0
3090
+ EXTRACT(YEAR_MONTH FROM a) 0
3091
+ EXTRACT(QUARTER FROM a) 0
3092
+ EXTRACT(MONTH FROM a) 0
3093
+ EXTRACT(WEEK FROM a) 613566757
3094
+ EXTRACT(DAY FROM a) 34
3095
+ EXTRACT(DAY_HOUR FROM a) 3422
3096
+ EXTRACT(DAY_MINUTE FROM a) 342259
3097
+ EXTRACT(DAY_SECOND FROM a) 34225959
3098
+ EXTRACT(HOUR FROM a) 22
3099
+ EXTRACT(HOUR_MINUTE FROM a) 2259
3100
+ EXTRACT(HOUR_SECOND FROM a) 225959
3101
+ EXTRACT(MINUTE FROM a) 59
3102
+ EXTRACT(MINUTE_SECOND FROM a) 5959
3103
+ EXTRACT(SECOND FROM a) 59
3104
+ EXTRACT(MICROSECOND FROM a) 999999
3105
+ EXTRACT(DAY_MICROSECOND FROM a) 34225959999999
3106
+ EXTRACT(HOUR_MICROSECOND FROM a) 225959999999
3107
+ EXTRACT(MINUTE_MICROSECOND FROM a) 5959999999
3108
+ EXTRACT(SECOND_MICROSECOND FROM a) 59999999
3109
+ SHOW CREATE TABLE t2;
3110
+ Table Create Table
3111
+ t2 CREATE TABLE `t2` (
3112
+ `a` time(6) DEFAULT NULL,
3113
+ `EXTRACT(YEAR FROM a)` int(4) DEFAULT NULL,
3114
+ `EXTRACT(YEAR_MONTH FROM a)` int(6) DEFAULT NULL,
3115
+ `EXTRACT(QUARTER FROM a)` int(2) DEFAULT NULL,
3116
+ `EXTRACT(MONTH FROM a)` int(2) DEFAULT NULL,
3117
+ `EXTRACT(WEEK FROM a)` int(2) DEFAULT NULL,
3118
+ `EXTRACT(DAY FROM a)` int(2) DEFAULT NULL,
3119
+ `EXTRACT(DAY_HOUR FROM a)` int(5) DEFAULT NULL,
3120
+ `EXTRACT(DAY_MINUTE FROM a)` int(7) DEFAULT NULL,
3121
+ `EXTRACT(DAY_SECOND FROM a)` int(9) DEFAULT NULL,
3122
+ `EXTRACT(HOUR FROM a)` int(3) DEFAULT NULL,
3123
+ `EXTRACT(HOUR_MINUTE FROM a)` int(5) DEFAULT NULL,
3124
+ `EXTRACT(HOUR_SECOND FROM a)` int(7) DEFAULT NULL,
3125
+ `EXTRACT(MINUTE FROM a)` int(3) DEFAULT NULL,
3126
+ `EXTRACT(MINUTE_SECOND FROM a)` int(5) DEFAULT NULL,
3127
+ `EXTRACT(SECOND FROM a)` int(3) DEFAULT NULL,
3128
+ `EXTRACT(MICROSECOND FROM a)` int(7) DEFAULT NULL,
3129
+ `EXTRACT(DAY_MICROSECOND FROM a)` bigint(15) DEFAULT NULL,
3130
+ `EXTRACT(HOUR_MICROSECOND FROM a)` bigint(13) DEFAULT NULL,
3131
+ `EXTRACT(MINUTE_MICROSECOND FROM a)` bigint(11) DEFAULT NULL,
3132
+ `EXTRACT(SECOND_MICROSECOND FROM a)` int(9) DEFAULT NULL
3133
+ ) ENGINE=MyISAM DEFAULT CHARSET=latin1
3134
+ DROP TABLE t1,t2;
3135
+ #
3136
+ # End of 10.1 tests
3137
+ #
0 commit comments