⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 plugin.h

📁 mysql sdk
💻 H
📖 第 1 页 / 共 2 页
字号:
  The parser is expected to return only those words that go into the  index. Stopwords or too short/long words should not be returned. The  'boolean_info' argument of mysql_add_word() does not have to be set.*/  MYSQL_FTPARSER_SIMPLE_MODE= 0,/*  Parse with stopwords mode.  This mode is used in boolean searches for  "phrase matching."  The parser is not allowed to ignore words in this mode.  Every word  should be returned, including stopwords and words that are too short  or long.  The 'boolean_info' argument of mysql_add_word() does not  have to be set.*/  MYSQL_FTPARSER_WITH_STOPWORDS= 1,/*  Parse in boolean mode.  This mode is used to parse a boolean query string.  The parser should provide a valid MYSQL_FTPARSER_BOOLEAN_INFO  structure in the 'boolean_info' argument to mysql_add_word().  Usually that means that the parser should recognize boolean operators  in the parsing stream and set appropriate fields in  MYSQL_FTPARSER_BOOLEAN_INFO structure accordingly.  As for  MYSQL_FTPARSER_WITH_STOPWORDS mode, no word should be ignored.  Instead, use FT_TOKEN_STOPWORD for the token type of such a word.*/  MYSQL_FTPARSER_FULL_BOOLEAN_INFO= 2};/*  Token types for boolean mode searching (used for the type member of  MYSQL_FTPARSER_BOOLEAN_INFO struct)  FT_TOKEN_EOF: End of data.  FT_TOKEN_WORD: Regular word.  FT_TOKEN_LEFT_PAREN: Left parenthesis (start of group/sub-expression).  FT_TOKEN_RIGHT_PAREN: Right parenthesis (end of group/sub-expression).  FT_TOKEN_STOPWORD: Stopword.*/enum enum_ft_token_type{  FT_TOKEN_EOF= 0,  FT_TOKEN_WORD= 1,  FT_TOKEN_LEFT_PAREN= 2,  FT_TOKEN_RIGHT_PAREN= 3,  FT_TOKEN_STOPWORD= 4};/*  This structure is used in boolean search mode only. It conveys  boolean-mode metadata to the MySQL search engine for every word in  the search query. A valid instance of this structure must be filled  in by the plugin parser and passed as an argument in the call to  mysql_add_word (the callback function in the MYSQL_FTPARSER_PARAM  structure) when a query is parsed in boolean mode.  type: The token type.  Should be one of the enum_ft_token_type values.  yesno: Whether the word must be present for a match to occur:    >0 Must be present    <0 Must not be present    0  Neither; the word is optional but its presence increases the relevance  With the default settings of the ft_boolean_syntax system variable,  >0 corresponds to the '+' operator, <0 corrresponds to the '-' operator,  and 0 means neither operator was used.  weight_adjust: A weighting factor that determines how much a match  for the word counts.  Positive values increase, negative - decrease the  relative word's importance in the query.  wasign: The sign of the word's weight in the query. If it's non-negative  the match for the word will increase document relevance, if it's  negative - decrease (the word becomes a "noise word", the less of it the  better).  trunc: Corresponds to the '*' operator in the default setting of the  ft_boolean_syntax system variable.*/typedef struct st_mysql_ftparser_boolean_info{  enum enum_ft_token_type type;  int yesno;  int weight_adjust;  char wasign;  char trunc;  /* These are parser state and must be removed. */  char prev;  char *quot;} MYSQL_FTPARSER_BOOLEAN_INFO;/*  The following flag means that buffer with a string (document, word)  may be overwritten by the caller before the end of the parsing (that is  before st_mysql_ftparser::deinit() call). If one needs the string  to survive between two successive calls of the parsing function, she  needs to save a copy of it. The flag may be set by MySQL before calling  st_mysql_ftparser::parse(), or it may be set by a plugin before calling  st_mysql_ftparser_param::mysql_parse() or  st_mysql_ftparser_param::mysql_add_word().*/#define MYSQL_FTFLAGS_NEED_COPY 1/*  An argument of the full-text parser plugin. This structure is  filled in by MySQL server and passed to the parsing function of the  plugin as an in/out parameter.  mysql_parse: A pointer to the built-in parser implementation of the  server. It's set by the server and can be used by the parser plugin  to invoke the MySQL default parser.  If plugin's role is to extract  textual data from .doc, .pdf or .xml content, it might extract  plaintext from the content, and then pass the text to the default  MySQL parser to be parsed.  mysql_add_word: A server callback to add a new word.  When parsing  a document, the server sets this to point at a function that adds  the word to MySQL full-text index.  When parsing a search query,  this function will add the new word to the list of words to search  for.  The boolean_info argument can be NULL for all cases except  when mode is MYSQL_FTPARSER_FULL_BOOLEAN_INFO.  ftparser_state: A generic pointer. The plugin can set it to point  to information to be used internally for its own purposes.  mysql_ftparam: This is set by the server.  It is used by MySQL functions  called via mysql_parse() and mysql_add_word() callback.  The plugin  should not modify it.  cs: Information about the character set of the document or query string.  doc: A pointer to the document or query string to be parsed.  length: Length of the document or query string, in bytes.  flags: See MYSQL_FTFLAGS_* constants above.  mode: The parsing mode.  With boolean operators, with stopwords, or  nothing.  See  enum_ftparser_mode above.*/typedef struct st_mysql_ftparser_param{  int (*mysql_parse)(struct st_mysql_ftparser_param *,                     char *doc, int doc_len);  int (*mysql_add_word)(struct st_mysql_ftparser_param *,                        char *word, int word_len,                        MYSQL_FTPARSER_BOOLEAN_INFO *boolean_info);  void *ftparser_state;  void *mysql_ftparam;  struct charset_info_st *cs;  char *doc;  int length;  int flags;  enum enum_ftparser_mode mode;} MYSQL_FTPARSER_PARAM;/*  Full-text parser descriptor.  interface_version is, e.g., MYSQL_FTPARSER_INTERFACE_VERSION.  The parsing, initialization, and deinitialization functions are  invoked per SQL statement for which the parser is used.*/struct st_mysql_ftparser{  int interface_version;  int (*parse)(MYSQL_FTPARSER_PARAM *param);  int (*init)(MYSQL_FTPARSER_PARAM *param);  int (*deinit)(MYSQL_FTPARSER_PARAM *param);};/*************************************************************************  API for Storage Engine plugin. (MYSQL_DAEMON_PLUGIN)*//* handlertons of different MySQL releases are incompatible */#define MYSQL_DAEMON_INTERFACE_VERSION (MYSQL_VERSION_ID << 8)/*************************************************************************  API for I_S plugin. (MYSQL_INFORMATION_SCHEMA_PLUGIN)*//* handlertons of different MySQL releases are incompatible */#define MYSQL_INFORMATION_SCHEMA_INTERFACE_VERSION (MYSQL_VERSION_ID << 8)/*************************************************************************  API for Storage Engine plugin. (MYSQL_STORAGE_ENGINE_PLUGIN)*//* handlertons of different MySQL releases are incompatible */#define MYSQL_HANDLERTON_INTERFACE_VERSION (MYSQL_VERSION_ID << 8)/*  The real API is in the sql/handler.h  Here we define only the descriptor structure, that is referred from  st_mysql_plugin.*/struct st_mysql_storage_engine{  int interface_version;};struct handlerton;/*  Here we define only the descriptor structure, that is referred from  st_mysql_plugin.*/struct st_mysql_daemon{  int interface_version;};/*  Here we define only the descriptor structure, that is referred from  st_mysql_plugin.*/struct st_mysql_information_schema{  int interface_version;};/*  st_mysql_value struct for reading values from mysqld.  Used by server variables framework to parse user-provided values.  Will be used for arguments when implementing UDFs.  Note that val_str() returns a string in temporary memory  that will be freed at the end of statement. Copy the string  if you need it to persist.*/#define MYSQL_VALUE_TYPE_STRING 0#define MYSQL_VALUE_TYPE_REAL   1#define MYSQL_VALUE_TYPE_INT    2struct st_mysql_value{  int (*value_type)(struct st_mysql_value *);  const char *(*val_str)(struct st_mysql_value *, char *buffer, int *length);  int (*val_real)(struct st_mysql_value *, double *realbuf);  int (*val_int)(struct st_mysql_value *, long long *intbuf);};/*************************************************************************  Miscellaneous functions for plugin implementors*/#ifdef __cplusplusextern "C" {#endifint thd_in_lock_tables(const MYSQL_THD thd);int thd_tablespace_op(const MYSQL_THD thd);long long thd_test_options(const MYSQL_THD thd, long long test_options);int thd_sql_command(const MYSQL_THD thd);const char *thd_proc_info(MYSQL_THD thd, const char *info);void **thd_ha_data(const MYSQL_THD thd, const struct handlerton *hton);int thd_tx_isolation(const MYSQL_THD thd);char *thd_security_context(MYSQL_THD thd, char *buffer, unsigned int length,                           unsigned int max_query_len);/* Increments the row counter, see THD::row_count */void thd_inc_row_count(MYSQL_THD thd);/**  Create a temporary file.  @details  The temporary file is created in a location specified by the mysql  server configuration (--tmpdir option).  The caller does not need to  delete the file, it will be deleted automatically.  @param prefix  prefix for temporary file name  @retval -1    error  @retval >= 0  a file handle that can be passed to dup or my_close*/int mysql_tmpfile(const char *prefix);/**  Check the killed state of a connection  @details  In MySQL support for the KILL statement is cooperative. The KILL  statement only sets a "killed" flag. This function returns the value  of that flag.  A thread should check it often, especially inside  time-consuming loops, and gracefully abort the operation if it is  non-zero.  @param thd  user thread connection handle  @retval 0  the connection is active  @retval 1  the connection has been killed*/int thd_killed(const MYSQL_THD thd);/**  Return the thread id of a user thread  @param thd  user thread connection handle  @return  thread id*/unsigned long thd_get_thread_id(const MYSQL_THD thd);/**  Allocate memory in the connection's local memory pool  @details  When properly used in place of @c my_malloc(), this can significantly  improve concurrency. Don't use this or related functions to allocate  large chunks of memory. Use for temporary storage only. The memory  will be freed automatically at the end of the statement; no explicit  code is required to prevent memory leaks.  @see alloc_root()*/void *thd_alloc(MYSQL_THD thd, unsigned int size);/**  @see thd_alloc()*/void *thd_calloc(MYSQL_THD thd, unsigned int size);/**  @see thd_alloc()*/char *thd_strdup(MYSQL_THD thd, const char *str);/**  @see thd_alloc()*/char *thd_strmake(MYSQL_THD thd, const char *str, unsigned int size);/**  @see thd_alloc()*/void *thd_memdup(MYSQL_THD thd, const void* str, unsigned int size);/**  Create a LEX_STRING in this connection's local memory pool  @param thd      user thread connection handle  @param lex_str  pointer to LEX_STRING object to be initialized  @param str      initializer to be copied into lex_str  @param size     length of str, in bytes  @param allocate_lex_string  flag: if TRUE, allocate new LEX_STRING object,                              instead of using lex_str value  @return  NULL on failure, or pointer to the LEX_STRING object  @see thd_alloc()*/MYSQL_LEX_STRING *thd_make_lex_string(MYSQL_THD thd, MYSQL_LEX_STRING *lex_str,                                      const char *str, unsigned int size,                                      int allocate_lex_string);/**  Get the XID for this connection's transaction  @param thd  user thread connection handle  @param xid  location where identifier is stored*/void thd_get_xid(const MYSQL_THD thd, MYSQL_XID *xid);/**  Invalidate the query cache for a given table.  @param thd         user thread connection handle  @param key         databasename\\0tablename\\0  @param key_length  length of key in bytes, including the NUL bytes  @param using_trx   flag: TRUE if using transactions, FALSE otherwise*/void mysql_query_cache_invalidate4(MYSQL_THD thd,                                   const char *key, unsigned int key_length,                                   int using_trx);#ifdef __cplusplus}#endif#ifdef __cplusplus/**  Provide a handler data getter to simplify coding*/inlinevoid *thd_get_ha_data(const MYSQL_THD thd, const struct handlerton *hton){  return *thd_ha_data(thd, hton);}/**  Provide a handler data setter to simplify coding*/inlinevoidthd_set_ha_data(const MYSQL_THD thd, const struct handlerton *hton,                const void *ha_data){  *thd_ha_data(thd, hton)= (void*) ha_data;}#endif#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -