1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
|
# name: test/sql/function/string/null_byte.test
# description: Test string functions with null bytes
# group: [string]
statement ok
PRAGMA enable_verification
query I
SELECT chr(0)
----
\0
query I
SELECT chr(0)::blob
----
\x00
query I
select ascii(chr(0));
----
0
query I
CREATE TABLE null_byte AS SELECT concat('goo', chr(0), 'se') AS v
----
1
query I
SELECT * FROM null_byte
----
goo\0se
query I
SELECT * FROM null_byte WHERE contains(v, chr(0))
----
goo\0se
query I
SELECT instr(v, chr(0)) FROM null_byte
----
4
query I
SELECT * FROM null_byte WHERE v LIKE concat('%', chr(0), '%')
----
goo\0se
query I
SELECT * FROM null_byte WHERE regexp_matches(v, chr(0))
----
goo\0se
query I
SELECT * FROM null_byte WHERE regexp_full_match(v, concat('goo', chr(0), 'se'))
----
goo\0se
# nested types
query I
SELECT {'a': v} FROM null_byte
----
{'a': goo\0se}
query I
SELECT [v] FROM null_byte
----
[goo\0se]
query I
SELECT LENGTH(v) FROM null_byte
----
6
query I
SELECT STRLEN(v) FROM null_byte
----
6
query I
SELECT LENGTH_GRAPHEME(v) FROM null_byte
----
6
query I
SELECT v||v FROM null_byte
----
goo\0segoo\0se
query I
SELECT printf('%s - zzz', v) FROM null_byte
----
goo\0se - zzz
query I
SELECT substr(v, 4) FROM null_byte
----
\0se
statement ok
CREATE TABLE more_null_bytes AS
SELECT 1 AS id, v FROM null_byte
UNION ALL
SELECT 2 AS id, substr(v, 4, 1) FROM null_byte
UNION ALL
SELECT 3 AS id, v FROM null_byte
query II
SELECT * FROM more_null_bytes ORDER BY v, id
----
2 \0
1 goo\0se
3 goo\0se
query II
SELECT v, SUM(id) FROM more_null_bytes GROUP BY v ORDER BY ALL
----
\0 2
goo\0se 4
query II
SELECT v, SUM(id) FROM more_null_bytes GROUP BY v ORDER BY ALL
----
\0 2
goo\0se 4
query I
SELECT COUNT(*) FROM null_byte JOIN more_null_bytes USING(v)
----
2
|