[MDEV-33385] Support package routines in metadata views Created: 2024-02-05  Updated: 2024-02-05

Status: Open
Project: MariaDB Server
Component/s: Stored routines
Fix Version/s: 11.6

Type: Task Priority: Major
Reporter: Alexander Barkov Assignee: Alexander Barkov
Resolution: Unresolved Votes: 0
Labels: Compatibility

Issue Links:
Relates
relates to MDEV-32101 CREATE PACKAGE [BODY] for sql_mode=DE... Closed

 Description   

We need to have a way to list package routines.

Different implementation ways are possible.

Treat packages as SQL Standard Modules

We can add SQL Standard columns into INFORMATION_SCHEMA.ROUTINES:

  • MODULE_SCHEMA
  • MODULE_NAME
    and fill these new columns to:
  • NULL for regular (schema) routines
  • the schema and the name of the containing package for package routines

One will be able to run this statement to list routines in a specific package:

SELECT * FROM INFORMATION_SCHEMA.ROUTINES
WHERE MODULE_SCHEMA='package_db' AND MODULE_NAME='package_name';

Treat packages as separate instances (not modules)

This proposal assumes that a PACKAGE is something completely different from a MODULE.
Peter Gulutzan in his blog post at http://ocelot.ca/blog/blog/2024/01/31/packages-in-mariadb-default-mode/ suggest adding a special column PACKAGE_NAME into INFORMATION_SCHEMA.ROUTINES.

Implementation questions

No matter which presentation way we choose, listing package routines in INFORMATION_SCHEMA.ROUTINES can be inefficient in case if a database has many packages:
every CREATE PACKAGE BODY statement (and possibly every corresponding CREATE PACKAGE statement) will have to be parsed.


Generated at Thu Feb 08 10:38:31 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.