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

📄 int.c

📁 PostgreSQL7.4.6 for Linux
💻 C
📖 第 1 页 / 共 2 页
字号:
Datumint42eq(PG_FUNCTION_ARGS){	int32		arg1 = PG_GETARG_INT32(0);	int16		arg2 = PG_GETARG_INT16(1);	PG_RETURN_BOOL(arg1 == arg2);}Datumint42ne(PG_FUNCTION_ARGS){	int32		arg1 = PG_GETARG_INT32(0);	int16		arg2 = PG_GETARG_INT16(1);	PG_RETURN_BOOL(arg1 != arg2);}Datumint42lt(PG_FUNCTION_ARGS){	int32		arg1 = PG_GETARG_INT32(0);	int16		arg2 = PG_GETARG_INT16(1);	PG_RETURN_BOOL(arg1 < arg2);}Datumint42le(PG_FUNCTION_ARGS){	int32		arg1 = PG_GETARG_INT32(0);	int16		arg2 = PG_GETARG_INT16(1);	PG_RETURN_BOOL(arg1 <= arg2);}Datumint42gt(PG_FUNCTION_ARGS){	int32		arg1 = PG_GETARG_INT32(0);	int16		arg2 = PG_GETARG_INT16(1);	PG_RETURN_BOOL(arg1 > arg2);}Datumint42ge(PG_FUNCTION_ARGS){	int32		arg1 = PG_GETARG_INT32(0);	int16		arg2 = PG_GETARG_INT16(1);	PG_RETURN_BOOL(arg1 >= arg2);}/* *		int[24]pl		- returns arg1 + arg2 *		int[24]mi		- returns arg1 - arg2 *		int[24]mul		- returns arg1 * arg2 *		int[24]div		- returns arg1 / arg2 */Datumint4um(PG_FUNCTION_ARGS){	int32		arg = PG_GETARG_INT32(0);	PG_RETURN_INT32(-arg);}Datumint4up(PG_FUNCTION_ARGS){	int32		arg = PG_GETARG_INT32(0);	PG_RETURN_INT32(arg);}Datumint4pl(PG_FUNCTION_ARGS){	int32		arg1 = PG_GETARG_INT32(0);	int32		arg2 = PG_GETARG_INT32(1);	PG_RETURN_INT32(arg1 + arg2);}Datumint4mi(PG_FUNCTION_ARGS){	int32		arg1 = PG_GETARG_INT32(0);	int32		arg2 = PG_GETARG_INT32(1);	PG_RETURN_INT32(arg1 - arg2);}Datumint4mul(PG_FUNCTION_ARGS){	int32		arg1 = PG_GETARG_INT32(0);	int32		arg2 = PG_GETARG_INT32(1);	PG_RETURN_INT32(arg1 * arg2);}Datumint4div(PG_FUNCTION_ARGS){	int32		arg1 = PG_GETARG_INT32(0);	int32		arg2 = PG_GETARG_INT32(1);	if (arg2 == 0)		ereport(ERROR,				(errcode(ERRCODE_DIVISION_BY_ZERO),				 errmsg("division by zero")));	PG_RETURN_INT32(arg1 / arg2);}Datumint4inc(PG_FUNCTION_ARGS){	int32		arg = PG_GETARG_INT32(0);	PG_RETURN_INT32(arg + 1);}Datumint2um(PG_FUNCTION_ARGS){	int16		arg = PG_GETARG_INT16(0);	PG_RETURN_INT16(-arg);}Datumint2up(PG_FUNCTION_ARGS){	int16		arg = PG_GETARG_INT16(0);	PG_RETURN_INT16(arg);}Datumint2pl(PG_FUNCTION_ARGS){	int16		arg1 = PG_GETARG_INT16(0);	int16		arg2 = PG_GETARG_INT16(1);	PG_RETURN_INT16(arg1 + arg2);}Datumint2mi(PG_FUNCTION_ARGS){	int16		arg1 = PG_GETARG_INT16(0);	int16		arg2 = PG_GETARG_INT16(1);	PG_RETURN_INT16(arg1 - arg2);}Datumint2mul(PG_FUNCTION_ARGS){	int16		arg1 = PG_GETARG_INT16(0);	int16		arg2 = PG_GETARG_INT16(1);	PG_RETURN_INT16(arg1 * arg2);}Datumint2div(PG_FUNCTION_ARGS){	int16		arg1 = PG_GETARG_INT16(0);	int16		arg2 = PG_GETARG_INT16(1);	if (arg2 == 0)		ereport(ERROR,				(errcode(ERRCODE_DIVISION_BY_ZERO),				 errmsg("division by zero")));	PG_RETURN_INT16(arg1 / arg2);}Datumint24pl(PG_FUNCTION_ARGS){	int16		arg1 = PG_GETARG_INT16(0);	int32		arg2 = PG_GETARG_INT32(1);	PG_RETURN_INT32(arg1 + arg2);}Datumint24mi(PG_FUNCTION_ARGS){	int16		arg1 = PG_GETARG_INT16(0);	int32		arg2 = PG_GETARG_INT32(1);	PG_RETURN_INT32(arg1 - arg2);}Datumint24mul(PG_FUNCTION_ARGS){	int16		arg1 = PG_GETARG_INT16(0);	int32		arg2 = PG_GETARG_INT32(1);	PG_RETURN_INT32(arg1 * arg2);}Datumint24div(PG_FUNCTION_ARGS){	int16		arg1 = PG_GETARG_INT16(0);	int32		arg2 = PG_GETARG_INT32(1);	if (arg2 == 0)		ereport(ERROR,				(errcode(ERRCODE_DIVISION_BY_ZERO),				 errmsg("division by zero")));	PG_RETURN_INT32(arg1 / arg2);}Datumint42pl(PG_FUNCTION_ARGS){	int32		arg1 = PG_GETARG_INT32(0);	int16		arg2 = PG_GETARG_INT16(1);	PG_RETURN_INT32(arg1 + arg2);}Datumint42mi(PG_FUNCTION_ARGS){	int32		arg1 = PG_GETARG_INT32(0);	int16		arg2 = PG_GETARG_INT16(1);	PG_RETURN_INT32(arg1 - arg2);}Datumint42mul(PG_FUNCTION_ARGS){	int32		arg1 = PG_GETARG_INT32(0);	int16		arg2 = PG_GETARG_INT16(1);	PG_RETURN_INT32(arg1 * arg2);}Datumint42div(PG_FUNCTION_ARGS){	int32		arg1 = PG_GETARG_INT32(0);	int16		arg2 = PG_GETARG_INT16(1);	if (arg2 == 0)		ereport(ERROR,				(errcode(ERRCODE_DIVISION_BY_ZERO),				 errmsg("division by zero")));	PG_RETURN_INT32(arg1 / arg2);}Datumint4mod(PG_FUNCTION_ARGS){	int32		arg1 = PG_GETARG_INT32(0);	int32		arg2 = PG_GETARG_INT32(1);	if (arg2 == 0)		ereport(ERROR,				(errcode(ERRCODE_DIVISION_BY_ZERO),				 errmsg("division by zero")));	PG_RETURN_INT32(arg1 % arg2);}Datumint2mod(PG_FUNCTION_ARGS){	int16		arg1 = PG_GETARG_INT16(0);	int16		arg2 = PG_GETARG_INT16(1);	if (arg2 == 0)		ereport(ERROR,				(errcode(ERRCODE_DIVISION_BY_ZERO),				 errmsg("division by zero")));	PG_RETURN_INT16(arg1 % arg2);}Datumint24mod(PG_FUNCTION_ARGS){	int16		arg1 = PG_GETARG_INT16(0);	int32		arg2 = PG_GETARG_INT32(1);	if (arg2 == 0)		ereport(ERROR,				(errcode(ERRCODE_DIVISION_BY_ZERO),				 errmsg("division by zero")));	PG_RETURN_INT32(arg1 % arg2);}Datumint42mod(PG_FUNCTION_ARGS){	int32		arg1 = PG_GETARG_INT32(0);	int16		arg2 = PG_GETARG_INT16(1);	if (arg2 == 0)		ereport(ERROR,				(errcode(ERRCODE_DIVISION_BY_ZERO),				 errmsg("division by zero")));	PG_RETURN_INT32(arg1 % arg2);}/* int[24]fac() * Factorial */Datumint4fac(PG_FUNCTION_ARGS){	int32		arg1 = PG_GETARG_INT32(0);	int32		result;	if (arg1 == 0)		result = 1;	else if (arg1 < 0)		result = 0;	else		for (result = 1; arg1 > 0; --arg1)			result *= arg1;	PG_RETURN_INT32(result);}Datumint2fac(PG_FUNCTION_ARGS){	int16		arg1 = PG_GETARG_INT16(0);	int32		result;	if (arg1 == 0)		result = 1;	else if (arg1 < 0)		result = 0;	else		for (result = 1; arg1 > 0; --arg1)			result *= arg1;	PG_RETURN_INT32(result);}/* int[24]abs() * Absolute value */Datumint4abs(PG_FUNCTION_ARGS){	int32		arg1 = PG_GETARG_INT32(0);	PG_RETURN_INT32((arg1 < 0) ? -arg1 : arg1);}Datumint2abs(PG_FUNCTION_ARGS){	int16		arg1 = PG_GETARG_INT16(0);	PG_RETURN_INT16((arg1 < 0) ? -arg1 : arg1);}Datumint2larger(PG_FUNCTION_ARGS){	int16		arg1 = PG_GETARG_INT16(0);	int16		arg2 = PG_GETARG_INT16(1);	PG_RETURN_INT16((arg1 > arg2) ? arg1 : arg2);}Datumint2smaller(PG_FUNCTION_ARGS){	int16		arg1 = PG_GETARG_INT16(0);	int16		arg2 = PG_GETARG_INT16(1);	PG_RETURN_INT16((arg1 < arg2) ? arg1 : arg2);}Datumint4larger(PG_FUNCTION_ARGS){	int32		arg1 = PG_GETARG_INT32(0);	int32		arg2 = PG_GETARG_INT32(1);	PG_RETURN_INT32((arg1 > arg2) ? arg1 : arg2);}Datumint4smaller(PG_FUNCTION_ARGS){	int32		arg1 = PG_GETARG_INT32(0);	int32		arg2 = PG_GETARG_INT32(1);	PG_RETURN_INT32((arg1 < arg2) ? arg1 : arg2);}/* Binary arithmetics * *		int[24]and		- returns arg1 & arg2 *		int[24]or		- returns arg1 | arg2 *		int[24]xor		- returns arg1 # arg2 *		int[24]not		- returns ~arg1 *		int[24]shl		- returns arg1 << arg2 *		int[24]shr		- returns arg1 >> arg2 */Datumint4and(PG_FUNCTION_ARGS){	int32		arg1 = PG_GETARG_INT32(0);	int32		arg2 = PG_GETARG_INT32(1);	PG_RETURN_INT32(arg1 & arg2);}Datumint4or(PG_FUNCTION_ARGS){	int32		arg1 = PG_GETARG_INT32(0);	int32		arg2 = PG_GETARG_INT32(1);	PG_RETURN_INT32(arg1 | arg2);}Datumint4xor(PG_FUNCTION_ARGS){	int32		arg1 = PG_GETARG_INT32(0);	int32		arg2 = PG_GETARG_INT32(1);	PG_RETURN_INT32(arg1 ^ arg2);}Datumint4shl(PG_FUNCTION_ARGS){	int32		arg1 = PG_GETARG_INT32(0);	int32		arg2 = PG_GETARG_INT32(1);	PG_RETURN_INT32(arg1 << arg2);}Datumint4shr(PG_FUNCTION_ARGS){	int32		arg1 = PG_GETARG_INT32(0);	int32		arg2 = PG_GETARG_INT32(1);	PG_RETURN_INT32(arg1 >> arg2);}Datumint4not(PG_FUNCTION_ARGS){	int32		arg1 = PG_GETARG_INT32(0);	PG_RETURN_INT32(~arg1);}Datumint2and(PG_FUNCTION_ARGS){	int16		arg1 = PG_GETARG_INT16(0);	int16		arg2 = PG_GETARG_INT16(1);	PG_RETURN_INT16(arg1 & arg2);}Datumint2or(PG_FUNCTION_ARGS){	int16		arg1 = PG_GETARG_INT16(0);	int16		arg2 = PG_GETARG_INT16(1);	PG_RETURN_INT16(arg1 | arg2);}Datumint2xor(PG_FUNCTION_ARGS){	int16		arg1 = PG_GETARG_INT16(0);	int16		arg2 = PG_GETARG_INT16(1);	PG_RETURN_INT16(arg1 ^ arg2);}Datumint2not(PG_FUNCTION_ARGS){	int16		arg1 = PG_GETARG_INT16(0);	PG_RETURN_INT16(~arg1);}Datumint2shl(PG_FUNCTION_ARGS){	int16		arg1 = PG_GETARG_INT16(0);	int32		arg2 = PG_GETARG_INT32(1);	PG_RETURN_INT16(arg1 << arg2);}Datumint2shr(PG_FUNCTION_ARGS){	int16		arg1 = PG_GETARG_INT16(0);	int32		arg2 = PG_GETARG_INT32(1);	PG_RETURN_INT16(arg1 >> arg2);}

⌨️ 快捷键说明

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