1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-03 05:41:09 +03:00
Files
mariadb/mysql-test/t
unknown ad104d5bfd Bug#28318 CREATE FUNCTION (UDF) requires a schema
Bug#29816 Syntactically wrong query fails with misleading error message

The core problem is that an SQL-invoked function name can be a <schema
qualified routine name> that contains no <schema name>, but the mysql
parser insists that all stored procedures (function, procedures and
triggers) must have a <schema name>, which is not true for functions.
This problem is especially visible when trying to create a function
or when a query contains a syntax error after a function call (in the
same query), both will fail with a "No database selected" message if
the session is not attached to a particular schema, but the first
one should succeed and the second fail with a "syntax error" message.

Part of the fix is to revamp the sp name handling so that a schema
name may be omitted for functions -- this means that the internal
function name representation may not have a dot, which represents
that the function doesn't have a schema name. The other part is
to place schema checks after the type (function, trigger or procedure)
of the routine is known.


mysql-test/r/sp-error.result:
  Add test case result for Bug#29816
mysql-test/r/udf.result:
  Add test case result for Bug#28318
mysql-test/t/sp-error.test:
  Add test case for Bug#29816
mysql-test/t/udf.test:
  Add test case for Bug#28318
sql/sp.cc:
  Copy the (last) nul byte of the stored routine key and move name parsing
  code to the sp_name class constructor.
sql/sp_head.cc:
  Revamp routine name parsing for when no schema is specified and
  omit dot from the qualified name if the routine is not associated
  with a scheme name.
sql/sp_head.h:
  Name parsing got bigger, uninline by moving to a single unit -- the sp_head.cc
  file.
sql/sql_yacc.yy:
  Only copy the schema name if one is actually set and check for schema
  name presence only where it's necessary.
2007-10-09 20:46:33 -03:00
..
2007-08-29 12:44:43 +02:00
2007-05-17 19:38:34 +03:00
2007-07-30 21:05:56 +05:00
2007-06-07 20:25:22 +02:00
2007-08-07 05:35:20 -04:00
2007-02-23 18:49:41 +02:00
2007-04-10 16:55:48 +03:00
2007-03-08 00:27:42 +03:00
2007-07-23 23:35:43 -07:00
2007-06-28 16:03:01 -07:00
2007-06-28 16:03:01 -07:00
2007-07-06 11:35:10 -07:00
2007-07-06 11:35:10 -07:00
2007-07-05 18:24:48 +03:00
2007-03-28 12:11:44 +02:00
2007-03-20 19:36:11 +01:00
2007-05-16 09:51:05 +04:00
2007-07-11 18:45:35 -07:00
2007-02-07 14:22:19 -08:00
2007-02-24 13:12:20 +03:00
2007-06-21 21:39:52 -04:00
2007-02-24 13:12:20 +03:00
2007-06-20 14:21:48 +05:00
2007-07-21 04:50:11 +05:00
2007-08-13 15:46:11 +02:00
2007-03-21 09:13:05 +01:00
2007-06-17 22:04:01 +02:00
2007-06-01 17:49:01 +04:00
2007-08-29 12:47:00 +02:00
2007-06-01 17:49:01 +04:00
2007-06-21 16:55:52 +02:00
2007-02-08 15:53:14 +01:00
2007-06-01 18:04:25 +04:00
2007-06-22 09:28:38 +05:00
2007-05-24 15:35:43 +05:00
2007-05-31 17:30:56 +05:00
2007-08-15 10:24:18 -07:00
2007-06-06 18:55:21 +05:00
2007-04-17 12:32:01 +02:00
2007-07-22 18:26:16 -07:00
2007-07-15 21:51:36 +04:00
2007-03-29 09:08:30 +05:00
2007-06-03 14:46:09 +04:00
2007-02-24 13:12:20 +03:00
2007-04-23 17:15:51 +03:00