1
0
mirror of https://github.com/MariaDB/server.git synced 2025-11-18 07:48:43 +03:00
Files
mariadb/sql/sql_help.cc
unknown ccc051cd40 fix for bug #12595 (ESCAPE must be exactly 1 character long)
ESCAPE has length of 1 if specified and sql_mode is NO_BACKSLASH_ESCAPES
or has length of 0 or 1 in every other situation.
(approved patch applied on a up-to-date tree re-commit) 


mysql-test/r/select.result:
  results of test for bug 12595
mysql-test/t/select.test:
  test for bug #12595 (ESCAPE must be exactly one character long)
sql/item_cmpfunc.cc:
  if ESCAPE was in the statement check whether its length is
  different than 1. In NO_BACKSLASH_ESCAPES mode only length of 1 is
  allowed, otherwise the length could be 0 or 1 character (code point
  in the sense of Unicode).
sql/item_cmpfunc.h:
  pass variable from the parsing stage - whether
  ESCAPE clause was found in the statement
sql/sql_help.cc:
  pass FALSE for escape_used_in_parsing because we
  want the default mode of no error checking - our internal code.
sql/sql_lex.cc:
  initialized variable used to transfer information during
  parsing up in the stack when reducing in the grammar
sql/sql_lex.h:
  new variable used for transfering information when
  reducing in the grammar.
sql/sql_yacc.yy:
  initialize Lex->escape_used and then use it when reducing.
  This is needed as fix for bug #12595 to distinguish between
  situation where ESCAPE was found and when not because internally
  we may pass a string an empty string and there is no other way
  to find out whether this is correct or not in case of 
  NO_BACKSLASH_ESCAPES mode, which allows only length of 1 if
  ESCAPE is part of the SQL statement.
2005-10-21 04:01:52 +03:00

22 KiB