1
+ # Licensed to the Apache Software Foundation (ASF) under one
2
+ # or more contributor license agreements. See the NOTICE file
3
+ # distributed with this work for additional information
4
+ # regarding copyright ownership. The ASF licenses this file
5
+ # to you under the Apache License, Version 2.0 (the
6
+ # "License"); you may not use this file except in compliance
7
+ # with the License. You may obtain a copy of the License at
8
+
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
18
+ ########
19
+ ## Test setup
20
+ ########
21
+
22
+ statement ok
23
+ create table test_source as values
24
+ ('Andrew', 'X'),
25
+ ('Xiangpeng', 'Xiangpeng'),
26
+ ('Raphael', 'R'),
27
+ (NULL, 'R')
28
+ ;
29
+
30
+ # Table with the different combination of column types
31
+ statement ok
32
+ CREATE TABLE test AS
33
+ SELECT
34
+ arrow_cast(column1, 'Utf8') as column1_utf8,
35
+ arrow_cast(column2, 'Utf8') as column2_utf8,
36
+ arrow_cast(column1, 'Binary') AS column1_binary,
37
+ arrow_cast(column2, 'Binary') AS column2_binary,
38
+ arrow_cast(arrow_cast(column1, 'Binary'), 'BinaryView') AS column1_binaryview,
39
+ arrow_cast(arrow_cast(column2, 'Binary'), 'BinaryView') AS column2_binaryview,
40
+ arrow_cast(column1, 'Dictionary(Int32, Binary)') AS column1_dict,
41
+ arrow_cast(column2, 'Dictionary(Int32, Binary)') AS column2_dict
42
+ FROM test_source;
43
+
44
+ statement ok
45
+ drop table test_source
46
+
47
+ ########
48
+ ## BinaryView to BinaryView
49
+ ########
50
+
51
+ # BinaryView scalar to BinaryView scalar
52
+
53
+ query BBBB
54
+ SELECT
55
+ arrow_cast(arrow_cast('NULL', 'Binary'), 'BinaryView') = arrow_cast(arrow_cast('Andrew', 'Binary'), 'BinaryView') AS comparison1,
56
+ arrow_cast(arrow_cast('NULL', 'Binary'), 'BinaryView') <> arrow_cast(arrow_cast('Andrew', 'Binary'), 'BinaryView') AS comparison2,
57
+ arrow_cast(arrow_cast('Andrew', 'Binary'), 'BinaryView') = arrow_cast(arrow_cast('Andrew', 'Binary'), 'BinaryView') AS comparison3,
58
+ arrow_cast(arrow_cast('Xiangpeng', 'Binary'), 'BinaryView') <> arrow_cast(arrow_cast('Andrew', 'Binary'), 'BinaryView') AS comparison4;
59
+ ----
60
+ false true true true
61
+
62
+
63
+ # BinaryView column to BinaryView column comparison as filters
64
+
65
+ query TT
66
+ select column1_utf8, column2_utf8 from test where column1_binaryview = column2_binaryview;
67
+ ----
68
+ Xiangpeng Xiangpeng
69
+
70
+ query TT
71
+ select column1_utf8, column2_utf8 from test where column1_binaryview <> column2_binaryview;
72
+ ----
73
+ Andrew X
74
+ Raphael R
75
+
76
+ # BinaryView column to BinaryView column
77
+ query TTBB
78
+ select
79
+ column1_utf8, column2_utf8,
80
+ column1_binaryview = column2_binaryview,
81
+ column1_binaryview <> column2_binaryview
82
+ from test;
83
+ ----
84
+ Andrew X false true
85
+ Xiangpeng Xiangpeng true false
86
+ Raphael R false true
87
+ NULL R NULL NULL
88
+
89
+ # BinaryView column to BinaryView scalar comparison
90
+ query TTBBBB
91
+ select
92
+ column1_utf8, column2_utf8,
93
+ column1_binaryview = arrow_cast(arrow_cast('Andrew', 'Binary'), 'BinaryView'),
94
+ arrow_cast(arrow_cast('Andrew', 'Binary'), 'BinaryView') = column1_binaryview,
95
+ column1_binaryview <> arrow_cast(arrow_cast('Andrew', 'Binary'), 'BinaryView'),
96
+ arrow_cast(arrow_cast('Andrew', 'Binary'), 'BinaryView') <> column1_binaryview
97
+ from test;
98
+ ----
99
+ Andrew X true true false false
100
+ Xiangpeng Xiangpeng false false true true
101
+ Raphael R false false true true
102
+ NULL R NULL NULL NULL NULL
103
+
104
+ ########
105
+ ## BinaryView to Binary
106
+ ########
107
+
108
+ # test BinaryViewArray with Binary columns
109
+ query TTBBBB
110
+ select
111
+ column1_utf8, column2_utf8,
112
+ column1_binaryview = column2_binary,
113
+ column2_binary = column1_binaryview,
114
+ column1_binaryview <> column2_binary,
115
+ column2_binary <> column1_binaryview
116
+ from test;
117
+ ----
118
+ Andrew X false false true true
119
+ Xiangpeng Xiangpeng true true false false
120
+ Raphael R false false true true
121
+ NULL R NULL NULL NULL NULL
122
+
123
+ # BinaryView column to Binary scalar
124
+ query TTBBBB
125
+ select
126
+ column1_utf8, column2_utf8,
127
+ column1_binaryview = arrow_cast('Andrew', 'Binary'),
128
+ arrow_cast('Andrew', 'Binary') = column1_binaryview,
129
+ column1_binaryview <> arrow_cast('Andrew', 'Binary'),
130
+ arrow_cast('Andrew', 'Binary') <> column1_binaryview
131
+ from test;
132
+ ----
133
+ Andrew X true true false false
134
+ Xiangpeng Xiangpeng false false true true
135
+ Raphael R false false true true
136
+ NULL R NULL NULL NULL NULL
137
+
138
+ # Binary column to BinaryView scalar
139
+ query TTBBBB
140
+ select
141
+ column1_utf8, column2_utf8,
142
+ column1_binary = arrow_cast(arrow_cast('Andrew', 'Binary'), 'BinaryView'),
143
+ arrow_cast(arrow_cast('Andrew', 'Binary'), 'BinaryView') = column1_binary,
144
+ column1_binary <> arrow_cast(arrow_cast('Andrew', 'Binary'), 'BinaryView'),
145
+ arrow_cast(arrow_cast('Andrew', 'Binary'), 'BinaryView') <> column1_binary
146
+ from test;
147
+ ----
148
+ Andrew X true true false false
149
+ Xiangpeng Xiangpeng false false true true
150
+ Raphael R false false true true
151
+ NULL R NULL NULL NULL NULL
152
+
153
+ statement ok
154
+ drop table test;
0 commit comments