From 9dc05f1f11bfd9a066d9154e5c6022af5a9538ac Mon Sep 17 00:00:00 2001 From: Alexander Barkov Date: Fri, 5 Nov 2021 16:27:08 +0400 Subject: MDEV-25610 Assertion `escape != -1' failed in Item_func_like::val_int --- mysql-test/r/ctype_cp850.result | 1050 +++++++++++++++++++++++++++++++++++++++ mysql-test/r/ctype_cp866.result | 12 + mysql-test/t/ctype_cp850.test | 32 ++ mysql-test/t/ctype_cp866.test | 14 + sql/item.h | 13 + sql/item_cmpfunc.cc | 4 +- 6 files changed, 1123 insertions(+), 2 deletions(-) create mode 100644 mysql-test/r/ctype_cp866.result create mode 100644 mysql-test/t/ctype_cp866.test diff --git a/mysql-test/r/ctype_cp850.result b/mysql-test/r/ctype_cp850.result index c028f72b58a..c6aba9d3f4e 100644 --- a/mysql-test/r/ctype_cp850.result +++ b/mysql-test/r/ctype_cp850.result @@ -12,3 +12,1053 @@ DROP TABLE t1; # # End of 5.5 tests # +# +# Start of 10.2 tests +# +# +# MDEV-25610 Assertion `escape != -1' failed in Item_func_like::val_int +# +SET NAMES cp850; +SELECT '' LIKE '' ESCAPE _cp850 0xFF; +'' LIKE '' ESCAPE _cp850 0xFF +1 +BEGIN NOT ATOMIC +DECLARE ch INT DEFAULT 0x00; +DECLARE query TEXT DEFAULT 'SELECT _cp850'''' LIKE _cp850'''' ESCAPE _cp850 0xFF'; +WHILE ch <= 0xFF DO +SET @query= REPLACE(query, 'FF', CONV(ch, 10, 16)); +SELECT @query; +PREPARE stmt FROM @query; +EXECUTE stmt; +DEALLOCATE PREPARE stmt; +SET ch=ch+1; +END WHILE; +END; +$$ +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x0 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x0 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x1 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x1 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x2 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x2 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x3 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x3 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x4 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x4 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x5 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x5 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x6 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x6 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x7 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x7 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x8 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x8 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x9 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x9 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xA +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xA +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xB +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xB +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xC +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xC +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xD +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xD +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xE +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xE +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xF +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xF +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x10 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x10 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x11 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x11 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x12 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x12 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x13 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x13 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x14 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x14 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x15 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x15 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x16 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x16 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x17 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x17 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x18 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x18 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x19 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x19 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x1A +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x1A +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x1B +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x1B +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x1C +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x1C +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x1D +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x1D +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x1E +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x1E +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x1F +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x1F +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x20 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x20 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x21 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x21 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x22 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x22 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x23 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x23 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x24 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x24 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x25 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x25 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x26 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x26 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x27 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x27 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x28 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x28 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x29 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x29 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x2A +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x2A +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x2B +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x2B +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x2C +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x2C +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x2D +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x2D +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x2E +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x2E +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x2F +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x2F +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x30 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x30 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x31 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x31 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x32 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x32 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x33 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x33 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x34 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x34 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x35 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x35 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x36 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x36 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x37 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x37 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x38 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x38 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x39 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x39 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x3A +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x3A +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x3B +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x3B +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x3C +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x3C +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x3D +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x3D +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x3E +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x3E +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x3F +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x3F +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x40 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x40 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x41 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x41 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x42 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x42 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x43 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x43 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x44 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x44 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x45 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x45 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x46 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x46 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x47 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x47 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x48 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x48 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x49 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x49 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x4A +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x4A +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x4B +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x4B +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x4C +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x4C +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x4D +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x4D +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x4E +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x4E +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x4F +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x4F +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x50 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x50 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x51 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x51 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x52 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x52 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x53 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x53 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x54 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x54 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x55 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x55 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x56 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x56 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x57 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x57 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x58 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x58 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x59 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x59 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x5A +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x5A +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x5B +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x5B +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x5C +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x5C +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x5D +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x5D +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x5E +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x5E +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x5F +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x5F +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x60 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x60 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x61 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x61 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x62 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x62 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x63 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x63 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x64 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x64 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x65 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x65 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x66 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x66 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x67 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x67 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x68 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x68 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x69 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x69 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x6A +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x6A +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x6B +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x6B +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x6C +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x6C +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x6D +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x6D +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x6E +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x6E +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x6F +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x6F +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x70 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x70 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x71 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x71 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x72 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x72 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x73 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x73 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x74 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x74 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x75 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x75 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x76 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x76 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x77 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x77 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x78 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x78 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x79 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x79 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x7A +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x7A +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x7B +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x7B +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x7C +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x7C +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x7D +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x7D +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x7E +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x7E +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x7F +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x7F +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x80 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x80 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x81 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x81 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x82 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x82 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x83 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x83 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x84 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x84 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x85 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x85 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x86 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x86 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x87 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x87 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x88 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x88 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x89 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x89 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x8A +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x8A +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x8B +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x8B +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x8C +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x8C +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x8D +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x8D +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x8E +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x8E +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x8F +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x8F +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x90 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x90 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x91 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x91 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x92 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x92 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x93 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x93 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x94 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x94 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x95 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x95 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x96 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x96 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x97 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x97 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x98 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x98 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x99 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x99 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x9A +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x9A +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x9B +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x9B +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x9C +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x9C +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x9D +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x9D +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x9E +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x9E +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0x9F +_cp850'' LIKE _cp850'' ESCAPE _cp850 0x9F +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xA0 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xA0 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xA1 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xA1 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xA2 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xA2 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xA3 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xA3 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xA4 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xA4 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xA5 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xA5 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xA6 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xA6 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xA7 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xA7 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xA8 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xA8 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xA9 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xA9 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xAA +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xAA +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xAB +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xAB +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xAC +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xAC +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xAD +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xAD +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xAE +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xAE +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xAF +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xAF +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xB0 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xB0 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xB1 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xB1 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xB2 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xB2 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xB3 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xB3 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xB4 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xB4 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xB5 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xB5 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xB6 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xB6 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xB7 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xB7 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xB8 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xB8 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xB9 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xB9 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xBA +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xBA +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xBB +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xBB +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xBC +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xBC +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xBD +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xBD +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xBE +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xBE +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xBF +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xBF +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xC0 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xC0 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xC1 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xC1 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xC2 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xC2 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xC3 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xC3 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xC4 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xC4 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xC5 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xC5 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xC6 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xC6 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xC7 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xC7 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xC8 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xC8 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xC9 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xC9 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xCA +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xCA +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xCB +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xCB +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xCC +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xCC +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xCD +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xCD +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xCE +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xCE +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xCF +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xCF +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xD0 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xD0 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xD1 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xD1 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xD2 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xD2 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xD3 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xD3 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xD4 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xD4 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xD5 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xD5 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xD6 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xD6 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xD7 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xD7 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xD8 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xD8 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xD9 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xD9 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xDA +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xDA +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xDB +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xDB +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xDC +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xDC +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xDD +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xDD +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xDE +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xDE +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xDF +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xDF +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xE0 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xE0 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xE1 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xE1 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xE2 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xE2 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xE3 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xE3 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xE4 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xE4 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xE5 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xE5 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xE6 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xE6 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xE7 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xE7 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xE8 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xE8 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xE9 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xE9 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xEA +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xEA +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xEB +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xEB +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xEC +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xEC +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xED +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xED +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xEE +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xEE +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xEF +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xEF +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xF0 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xF0 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xF1 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xF1 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xF2 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xF2 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xF3 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xF3 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xF4 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xF4 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xF5 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xF5 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xF6 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xF6 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xF7 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xF7 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xF8 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xF8 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xF9 +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xF9 +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xFA +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xFA +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xFB +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xFB +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xFC +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xFC +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xFD +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xFD +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xFE +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xFE +1 +@query +SELECT _cp850'' LIKE _cp850'' ESCAPE _cp850 0xFF +_cp850'' LIKE _cp850'' ESCAPE _cp850 0xFF +1 +# +# End of 10.2 tests +# diff --git a/mysql-test/r/ctype_cp866.result b/mysql-test/r/ctype_cp866.result new file mode 100644 index 00000000000..008f94f3c79 --- /dev/null +++ b/mysql-test/r/ctype_cp866.result @@ -0,0 +1,12 @@ +# +# Start of 10.2 tests +# +# +# MDEV-25610 Assertion `escape != -1' failed in Item_func_like::val_int +# +SELECT _cp866'' LIKE _cp866'' ESCAPE _cp866 0xFF; +_cp866'' LIKE _cp866'' ESCAPE _cp866 0xFF +1 +# +# End of 10.2 tests +# diff --git a/mysql-test/t/ctype_cp850.test b/mysql-test/t/ctype_cp850.test index 358829eb351..d2fac6f3646 100644 --- a/mysql-test/t/ctype_cp850.test +++ b/mysql-test/t/ctype_cp850.test @@ -14,3 +14,35 @@ DROP TABLE t1; --echo # --echo # End of 5.5 tests --echo # + +--echo # +--echo # Start of 10.2 tests +--echo # + +--echo # +--echo # MDEV-25610 Assertion `escape != -1' failed in Item_func_like::val_int +--echo # + +SET NAMES cp850; +SELECT '' LIKE '' ESCAPE _cp850 0xFF; + +DELIMITER $$; +BEGIN NOT ATOMIC + DECLARE ch INT DEFAULT 0x00; + DECLARE query TEXT DEFAULT 'SELECT _cp850'''' LIKE _cp850'''' ESCAPE _cp850 0xFF'; + WHILE ch <= 0xFF DO + SET @query= REPLACE(query, 'FF', CONV(ch, 10, 16)); + SELECT @query; + PREPARE stmt FROM @query; + EXECUTE stmt; + DEALLOCATE PREPARE stmt; + SET ch=ch+1; + END WHILE; +END; +$$ +DELIMITER ;$$ + + +--echo # +--echo # End of 10.2 tests +--echo # diff --git a/mysql-test/t/ctype_cp866.test b/mysql-test/t/ctype_cp866.test new file mode 100644 index 00000000000..cdc694d2fc7 --- /dev/null +++ b/mysql-test/t/ctype_cp866.test @@ -0,0 +1,14 @@ +--echo # +--echo # Start of 10.2 tests +--echo # + +--echo # +--echo # MDEV-25610 Assertion `escape != -1' failed in Item_func_like::val_int +--echo # + +SELECT _cp866'' LIKE _cp866'' ESCAPE _cp866 0xFF; + + +--echo # +--echo # End of 10.2 tests +--echo # diff --git a/sql/item.h b/sql/item.h index 35700129243..2a904c1691a 100644 --- a/sql/item.h +++ b/sql/item.h @@ -6236,6 +6236,19 @@ public: }; +/* + fix_escape_item() sets the out "escape" parameter to: + - native code in case of an 8bit character set + - Unicode code point in case of a multi-byte character set + + The value meaning a not-initialized ESCAPE character must not be equal to + any valid value, so must be outside of these ranges: + - -128..+127, not to conflict with a valid 8bit charcter + - 0..0x10FFFF, not to conflict with a valid Unicode code point + The exact value does not matter. +*/ +#define ESCAPE_NOT_INITIALIZED -1000 + /* It's used in ::fix_fields() methods of LIKE and JSON_SEARCH functions to handle the ESCAPE parameter. diff --git a/sql/item_cmpfunc.cc b/sql/item_cmpfunc.cc index 8a2c532f621..3a76982d80e 100644 --- a/sql/item_cmpfunc.cc +++ b/sql/item_cmpfunc.cc @@ -5266,7 +5266,7 @@ void Item_func_like::print(String *str, enum_query_type query_type) longlong Item_func_like::val_int() { DBUG_ASSERT(fixed == 1); - DBUG_ASSERT(escape != -1); + DBUG_ASSERT(escape != ESCAPE_NOT_INITIALIZED); String* res= args[0]->val_str(&cmp_value1); if (args[0]->null_value) { @@ -5370,7 +5370,7 @@ bool fix_escape_item(THD *thd, Item *escape_item, String *tmp_str, return TRUE; } - IF_DBUG(*escape= -1,); + IF_DBUG(*escape= ESCAPE_NOT_INITIALIZED,); if (escape_item->const_item()) { -- cgit v1.2.1