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

📄 dict_tmpl.c.in

📁 PostgreSQL 8.1.4的源码 适用于Linux下的开源数据库系统
💻 IN
字号:
/*  * example of dictionary  * Teodor Sigaev <teodor@sigaev.ru> */#include <errno.h>#include <stdlib.h>#include <string.h>#include "postgres.h"#include "dict.h"#include "common.h"#include "subinclude.h"HASINIT typedef struct {HASINIT 	StopList	stoplist;HASINIT } DictExample;HASINIT PG_FUNCTION_INFO_V1(dinit_CFG_MODNAME);HASINIT Datum dinit_CFG_MODNAME(PG_FUNCTION_ARGS);HASINIT Datum HASINIT dinit_CFG_MODNAME(PG_FUNCTION_ARGS) {HASINIT 	DictExample	*d = (DictExample*)malloc( sizeof(DictExample) );HASINIT HASINIT 	if ( !d )HASINIT			ereport(ERROR,HASINIT					(errcode(ERRCODE_OUT_OF_MEMORY),HASINIT					 errmsg("out of memory")));HASINIT 	memset(d,0,sizeof(DictExample));HASINIT HASINIT 	d->stoplist.wordop=lowerstr;HASINIT 	HASINIT 	/* Your INIT code */HASINIT 	HASINIT 	if ( !PG_ARGISNULL(0) && PG_GETARG_POINTER(0)!=NULL ) {HASINIT 		text       *in = PG_GETARG_TEXT_P(0);HASINIT 		readstoplist(in, &(d->stoplist));HASINIT 		sortstoplist(&(d->stoplist));HASINIT 		PG_FREE_IF_COPY(in, 0);HASINIT 	}HASINIT HASINIT 	PG_RETURN_POINTER(d);HASINIT }PG_FUNCTION_INFO_V1(dlexize_CFG_MODNAME);Datum dlexize_CFG_MODNAME(PG_FUNCTION_ARGS);Datumdlexize_CFG_MODNAME(PG_FUNCTION_ARGS) {HASINIT 	DictExample *d = (DictExample*)PG_GETARG_POINTER(0);	char       *in = (char*)PG_GETARG_POINTER(1);	char *txt = pnstrdup(in, PG_GETARG_INT32(2));	TSLexeme	*res=palloc(sizeof(TSLexeme*)*2);	/* Your LEXIZE dictionary code */HASINIT 	if ( *txt=='\0' || searchstoplist(&(d->stoplist),txt) ) {HASINIT 		pfree(txt);HASINIT 		res[0].lexeme=NULL;HASINIT 	} else 		res[0].lexeme=txt;	res[1].lexeme=NULL;	PG_RETURN_POINTER(res);}

⌨️ 快捷键说明

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