Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  sql_path.h   Sprache: C

 

#ifndef SQL_PATH_INCLUDED
#define SQL_PATH_INCLUDED

#include "sql_array.h"
#include "sql_list.h"


/* forward declarations */
class Database_qualified_name;
class sp_head;
class sp_name;
class Sp_handler;
struct MDL_key;
class Lex_ident_db_normalized;

struct Sql_path
{
private:
  Lex_ident_db m_schemas[16];
  uint m_count;

public:
  Sql_path();
  Sql_path& operator=(const Sql_path &rhs);
  Sql_path& operator=(Sql_path &&rhs)
  {
    set(std::move(rhs));
    return *this;
  }
  Sql_path(const Sql_path&) = delete;
  Sql_path(Sql_path &&rhs)
  {
    m_count= 0;
    set(std::move(rhs));
  }

  ~Sql_path() { free(); }

  bool resolve(THD *thd, sp_head *caller, sp_name *name,
               const Sp_handler **sph, Database_qualified_name *pkgname) const;

  bool find_package_spec_type(THD *thd, Lex_ident_db_normalized *db,
                              const Lex_ident_sys_st &package,
                              const Lex_ident_sys_st &type);
  /*
    Initialize the path variable with default values
  */

  bool init();
  /*
    Free the memory allocated by the path variable
  */

  void free();
  /*
    Set the variable to the value of rhs, making a copy of the buffer

    @param rhs              The path variable to copy from
  */

  void set(const Sql_path &rhs);
  /*
    Set the variable to the value of rhs, moving the buffer

    @param rhs              The path variable to move from
  */

  void set(Sql_path &&rhs);

  /*
    Parse a string and set the path variable to the parsed value

    The string is in my_charset_utf8mb3_general_ci.

    @param sv               system_variables, local or global
    @param str              The string to parse
  */

  bool from_text(const system_variables &sv, String *str);
  /*
    Get the number of bytes needed to print the path variable

    @return The number of bytes needed
  */

  size_t text_format_nbytes_needed() const;
  /*
    Print the path variable to a string

    @param dst              The destination buffer
    @param nbytes_available The number of bytes available in the buffer

    @return The number of bytes written
  */

  size_t print(char *dst, size_t nbytes_available) const;

  LEX_CSTRING lex_cstring(MEM_ROOT *mem_root) const;

private:
  /*
    Helper function to resolve CURRENT_SCHEMA to actual database name.
    Returns the resolved schema, or {nullptr, 0} if resolution fails.
  */

  Lex_ident_db resolve_current_schema(THD *thd, sp_head *caller, size_t i) const;
  /*
    Helper function to try resolving a routine in a specific schema.
    Returns true if error occurred.
  */

  bool try_resolve_in_schema(THD *thd, const Lex_ident_db_normalized &schema,
                             sp_name *name, const Sp_handler **sph,
                             Database_qualified_name *pkgname,
                             bool *resolved) const;

  LEX_CSTRING get_schema_for_print(size_t num) const;

  bool add_schema(char **to, bool is_quoted);
  bool is_cur_schema(size_t i) const;
};


class Sql_path_instant_set
{
  THD *m_thd;
  Sql_path m_path;
public:
  Sql_path_instant_set(THD *thd, const LEX_CSTRING &str);
  Sql_path_instant_set(THD *thd, const Sql_path &new_path);
  ~Sql_path_instant_set();
  bool error() const { return m_thd; }
};

#endif /* SQL_PATH_INCLUDED */

Messung V0.5 in Prozent
C=92 H=100 G=95

¤ Dauer der Verarbeitung: 0.0 Sekunden  (vorverarbeitet am  2026-10-08) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=1126438
#Domains=1867298