You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hawq.apache.org by es...@apache.org on 2016/09/24 04:57:49 UTC

[2/6] incubator-hawq git commit: HAWQ-1073. Remove unused src/backend/libgppc project

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/2179320a/src/backend/libgppc/test/gppc_test.c
----------------------------------------------------------------------
diff --git a/src/backend/libgppc/test/gppc_test.c b/src/backend/libgppc/test/gppc_test.c
deleted file mode 100644
index b79a6a2..0000000
--- a/src/backend/libgppc/test/gppc_test.c
+++ /dev/null
@@ -1,909 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/*-------------------------------------------------------------------------
- *
- * gppc_client.c
- *	  libgppc client program
- *
- *-------------------------------------------------------------------------
- */
-#include <stdio.h>
-#include <string.h>
-#include "gppc.h"
-
-GPPC_FUNCTION_INFO(oidcheckfunc);
-GppcDatum oidcheckfunc(GPPC_FUNCTION_ARGS);
-
-GppcDatum oidcheckfunc(GPPC_FUNCTION_ARGS)
-{
-	char	   *arg = GppcTextGetCString(GPPC_GETARG_TEXT(0));
-
-	/*
-	 * We use INT4 as the result type, because  RETURN_OID macros are not prepared.
-	 */
-	if (strcmp("bool", arg) == 0)
-		GPPC_RETURN_INT4(GppcOidBool);
-	else if (strcmp("char", arg) == 0)
-		GPPC_RETURN_INT4(GppcOidChar);
-	else if (strcmp("int2", arg) == 0)
-		GPPC_RETURN_INT4(GppcOidInt2);
-	else if (strcmp("int4", arg) == 0)
-		GPPC_RETURN_INT4(GppcOidInt4);
-	else if (strcmp("int8", arg) == 0)
-		GPPC_RETURN_INT4(GppcOidInt8);
-	else if (strcmp("float4", arg) == 0)
-		GPPC_RETURN_INT4(GppcOidFloat4);
-	else if (strcmp("float8", arg) == 0)
-		GPPC_RETURN_INT4(GppcOidFloat8);
-	else if (strcmp("text", arg) == 0)
-		GPPC_RETURN_INT4(GppcOidText);
-	else if (strcmp("varchar", arg) == 0)
-		GPPC_RETURN_INT4(GppcOidVarChar);
-	else if (strcmp("bpchar", arg) == 0)
-		GPPC_RETURN_INT4(GppcOidBpChar);
-	else if (strcmp("bytea", arg) == 0)
-		GPPC_RETURN_INT4(GppcOidBytea);
-	else if (strcmp("numeric", arg) == 0)
-		GPPC_RETURN_INT4(GppcOidNumeric);
-	else if (strcmp("date", arg) == 0)
-		GPPC_RETURN_INT4(GppcOidDate);
-	else if (strcmp("time", arg) == 0)
-		GPPC_RETURN_INT4(GppcOidTime);
-	else if (strcmp("timetz", arg) == 0)
-		GPPC_RETURN_INT4(GppcOidTimeTz);
-	else if (strcmp("timestamp", arg) == 0)
-		GPPC_RETURN_INT4(GppcOidTimestamp);
-	else if (strcmp("timestamptz", arg) == 0)
-		GPPC_RETURN_INT4(GppcOidTimestampTz);
-
-	GPPC_RETURN_NULL();
-}
-
-GPPC_FUNCTION_INFO(boolfunc);
-GppcDatum boolfunc(GPPC_FUNCTION_ARGS);
-
-GppcDatum boolfunc(GPPC_FUNCTION_ARGS)
-{
-	GppcBool	arg1 = GPPC_GETARG_BOOL(0);
-
-	GPPC_RETURN_BOOL(arg1);
-}
-
-GPPC_FUNCTION_INFO(charfunc);
-GppcDatum charfunc(GPPC_FUNCTION_ARGS);
-
-GppcDatum charfunc(GPPC_FUNCTION_ARGS)
-{
-	GppcChar	arg1 = GPPC_GETARG_CHAR(0);
-
-	GPPC_RETURN_CHAR(arg1);
-}
-
-GPPC_FUNCTION_INFO(int2mulfunc);
-GppcDatum int2mulfunc(GPPC_FUNCTION_ARGS);
-
-GppcDatum int2mulfunc(GPPC_FUNCTION_ARGS)
-{
-	GppcInt2	arg1 = GPPC_GETARG_INT2(0);
-	GppcInt2	arg2 = GPPC_GETARG_INT2(1);
-
-	GPPC_RETURN_INT2(arg1 * arg2);
-}
-
-GPPC_FUNCTION_INFO(int4func1);
-GppcDatum int4func1(GPPC_FUNCTION_ARGS);
-
-GppcDatum int4func1(GPPC_FUNCTION_ARGS)
-{
-	int			nargs = GPPC_NARGS();
-	GppcInt4	arg1;
-
-	if (nargs < 1)
-		arg1 = 0;
-	else
-		arg1 = GPPC_GETARG_INT4(0);
-
-	GPPC_RETURN_INT4(arg1);
-}
-
-GPPC_FUNCTION_INFO(int8plusfunc);
-GppcDatum int8plusfunc(GPPC_FUNCTION_ARGS);
-
-GppcDatum int8plusfunc(GPPC_FUNCTION_ARGS)
-{
-	GppcInt8	arg1 = GPPC_GETARG_INT8(0);
-	GppcInt8	arg2 = GPPC_GETARG_INT8(1);
-
-	GPPC_RETURN_INT8(arg1 + arg2);
-}
-
-GPPC_FUNCTION_INFO(float4func1);
-GppcDatum float4func1(GPPC_FUNCTION_ARGS);
-
-GppcDatum float4func1(GPPC_FUNCTION_ARGS)
-{
-	GppcFloat4	arg1 = GPPC_GETARG_FLOAT4(0);
-
-	GPPC_RETURN_FLOAT4(arg1 + 1.5);
-}
-
-GPPC_FUNCTION_INFO(float8func1);
-GppcDatum float8func1(GPPC_FUNCTION_ARGS);
-
-GppcDatum float8func1(GPPC_FUNCTION_ARGS)
-{
-	GppcFloat8	arg1 = GPPC_GETARG_FLOAT8(0);
-
-	GPPC_RETURN_FLOAT8(arg1 / 2.0);
-}
-
-GPPC_FUNCTION_INFO(textdoublefunc);
-GppcDatum textdoublefunc(GPPC_FUNCTION_ARGS);
-
-GppcDatum textdoublefunc(GPPC_FUNCTION_ARGS)
-{
-	GppcText	arg1 = GPPC_GETARG_TEXT(0);
-	size_t		clen = GppcGetTextLength(arg1);
-	GppcText	result;
-
-	result = GppcAllocText(clen * 2);
-	memcpy(GppcGetTextPointer(result), GppcGetTextPointer(arg1), clen);
-	memcpy(GppcGetTextPointer(result) + clen, GppcGetTextPointer(arg1), clen);
-
-	GPPC_RETURN_TEXT(result);
-}
-
-GPPC_FUNCTION_INFO(textgenfunc);
-GppcDatum textgenfunc(GPPC_FUNCTION_ARGS);
-
-GppcDatum textgenfunc(GPPC_FUNCTION_ARGS)
-{
-	GppcText	result = GppcCStringGetText("cstring result");
-
-	GPPC_RETURN_TEXT(result);
-}
-
-GPPC_FUNCTION_INFO(textcopyfunc);
-GppcDatum textcopyfunc(GPPC_FUNCTION_ARGS);
-
-GppcDatum textcopyfunc(GPPC_FUNCTION_ARGS)
-{
-	GppcText	copy = GPPC_GETARG_TEXT_COPY(0);
-	GppcText	arg = GPPC_GETARG_TEXT(0);
-	GppcBool	needcopy = GPPC_GETARG_BOOL(1);
-
-	*(GppcGetTextPointer(copy)) = '!';
-
-	GPPC_RETURN_TEXT(needcopy ? copy : arg);
-}
-
-GPPC_FUNCTION_INFO(varchardoublefunc);
-GppcDatum varchardoublefunc(GPPC_FUNCTION_ARGS);
-
-GppcDatum varchardoublefunc(GPPC_FUNCTION_ARGS)
-{
-	GppcVarChar	arg1 = GPPC_GETARG_VARCHAR(0);
-	size_t		clen = GppcGetVarCharLength(arg1);
-	GppcVarChar	result;
-
-	result = GppcAllocVarChar(clen * 2);
-	memcpy(GppcGetVarCharPointer(result), GppcGetVarCharPointer(arg1), clen);
-	memcpy(GppcGetVarCharPointer(result) + clen, GppcGetVarCharPointer(arg1), clen);
-
-	GPPC_RETURN_VARCHAR(result);
-}
-
-GPPC_FUNCTION_INFO(varchargenfunc);
-GppcDatum varchargenfunc(GPPC_FUNCTION_ARGS);
-
-GppcDatum varchargenfunc(GPPC_FUNCTION_ARGS)
-{
-	GppcVarChar	result = GppcCStringGetVarChar("cstring result");
-
-	GPPC_RETURN_VARCHAR(result);
-}
-
-GPPC_FUNCTION_INFO(varcharcopyfunc);
-GppcDatum varcharcopyfunc(GPPC_FUNCTION_ARGS);
-
-GppcDatum varcharcopyfunc(GPPC_FUNCTION_ARGS)
-{
-	GppcVarChar	copy = GPPC_GETARG_VARCHAR_COPY(0);
-	GppcVarChar	arg = GPPC_GETARG_VARCHAR(0);
-	GppcBool	needcopy = GPPC_GETARG_BOOL(1);
-
-	*(GppcGetVarCharPointer(copy)) = '!';
-
-	GPPC_RETURN_VARCHAR(needcopy ? copy : arg);
-}
-
-GPPC_FUNCTION_INFO(bpchardoublefunc);
-GppcDatum bpchardoublefunc(GPPC_FUNCTION_ARGS);
-
-GppcDatum bpchardoublefunc(GPPC_FUNCTION_ARGS)
-{
-	GppcBpChar	arg1 = GPPC_GETARG_BPCHAR(0);
-	size_t		clen = GppcGetBpCharLength(arg1);
-	GppcBpChar	result;
-
-	result = GppcAllocBpChar(clen * 2);
-	memcpy(GppcGetBpCharPointer(result), GppcGetBpCharPointer(arg1), clen);
-	memcpy(GppcGetBpCharPointer(result) + clen, GppcGetBpCharPointer(arg1), clen);
-
-	GPPC_RETURN_BPCHAR(result);
-}
-
-GPPC_FUNCTION_INFO(bpchargenfunc);
-GppcDatum bpchargenfunc(GPPC_FUNCTION_ARGS);
-
-GppcDatum bpchargenfunc(GPPC_FUNCTION_ARGS)
-{
-	GppcBpChar	result = GppcCStringGetBpChar("cstring result");
-
-	GPPC_RETURN_BPCHAR(result);
-}
-
-GPPC_FUNCTION_INFO(bpcharcopyfunc);
-GppcDatum bpcharcopyfunc(GPPC_FUNCTION_ARGS);
-
-GppcDatum bpcharcopyfunc(GPPC_FUNCTION_ARGS)
-{
-	GppcBpChar	copy = GPPC_GETARG_BPCHAR_COPY(0);
-	GppcBpChar	arg = GPPC_GETARG_BPCHAR(0);
-	GppcBool	needcopy = GPPC_GETARG_BOOL(1);
-
-	*(GppcGetBpCharPointer(copy)) = '!';
-
-	GPPC_RETURN_BPCHAR(needcopy ? copy : arg);
-}
-
-GPPC_FUNCTION_INFO(errfunc1);
-GppcDatum errfunc1(GPPC_FUNCTION_ARGS);
-
-GppcDatum errfunc1(GPPC_FUNCTION_ARGS)
-{
-	GppcText	arg1 = GPPC_GETARG_TEXT(0);
-	char	   *cstr;
-
-	cstr = GppcTextGetCString(arg1);
-	GppcReport(GPPC_NOTICE, "%s", cstr);
-
-	GPPC_RETURN_NULL();
-}
-
-GPPC_FUNCTION_INFO(argisnullfunc);
-GppcDatum argisnullfunc(GPPC_FUNCTION_ARGS);
-
-GppcDatum argisnullfunc(GPPC_FUNCTION_ARGS)
-{
-	if (GPPC_ARGISNULL(0))
-		GPPC_RETURN_BOOL(true);
-	else
-		GPPC_RETURN_BOOL(false);
-}
-
-GPPC_FUNCTION_INFO(byteafunc1);
-GppcDatum byteafunc1(GPPC_FUNCTION_ARGS);
-
-GppcDatum byteafunc1(GPPC_FUNCTION_ARGS)
-{
-	GppcBytea		bytea = GPPC_GETARG_BYTEA_COPY(0);
-	char		   *mem = GppcGetByteaPointer(bytea);
-
-	mem[0]++;
-
-	GPPC_RETURN_BYTEA(bytea);
-}
-
-GPPC_FUNCTION_INFO(numericfunc1);
-GppcDatum numericfunc1(GPPC_FUNCTION_ARGS);
-
-GppcDatum numericfunc1(GPPC_FUNCTION_ARGS)
-{
-	GppcNumeric		numeric = GPPC_GETARG_NUMERIC(0);
-	char		   *str;
-
-	str = GppcNumericGetCString(numeric);
-	if (strlen(str) > 0 && ('0' <= str[0] && str[0] <= '8'))
-		str[0]++;
-
-	GPPC_RETURN_NUMERIC(GppcCStringGetNumeric(str));
-}
-
-GPPC_FUNCTION_INFO(numericfunc2);
-GppcDatum numericfunc2(GPPC_FUNCTION_ARGS);
-
-GppcDatum numericfunc2(GPPC_FUNCTION_ARGS)
-{
-	GppcNumeric		numeric = GPPC_GETARG_NUMERIC(0);
-
-	GPPC_RETURN_FLOAT8(GppcNumericGetFloat8(numeric));
-}
-
-GPPC_FUNCTION_INFO(numericfunc3);
-GppcDatum numericfunc3(GPPC_FUNCTION_ARGS);
-
-GppcDatum numericfunc3(GPPC_FUNCTION_ARGS)
-{
-	GppcFloat8		flt = GPPC_GETARG_FLOAT8(0);
-
-	GPPC_RETURN_NUMERIC(GppcFloat8GetNumeric(flt));
-}
-
-GPPC_FUNCTION_INFO(numericdef1);
-GppcDatum numericdef1(GPPC_FUNCTION_ARGS);
-
-GppcDatum numericdef1(GPPC_FUNCTION_ARGS)
-{
-	GppcInt4		typmod = GPPC_GETARG_INT4(0);
-	int16_t			precision, scale;
-	char			buf[255];
-
-	if (GppcGetNumericDef(typmod, &precision, &scale))
-		snprintf(buf, 255, "NUMERIC(%d, %d)", precision, scale);
-	else
-		snprintf(buf, 255, "NUMERIC()");
-
-	GPPC_RETURN_TEXT(GppcCStringGetText(buf));
-}
-
-GPPC_FUNCTION_INFO(datefunc1);
-GppcDatum datefunc1(GPPC_FUNCTION_ARGS);
-
-GppcDatum datefunc1(GPPC_FUNCTION_ARGS)
-{
-	GppcDate		arg = GPPC_GETARG_DATE(0);
-	GppcTm			tm;
-
-	GppcDateGetTm(arg, &tm);
-	tm.tm_year += 1;
-	tm.tm_mon += 1;
-	tm.tm_mday += 1;
-
-	GPPC_RETURN_DATE(GppcTmGetDate(&tm));
-}
-
-GPPC_FUNCTION_INFO(timefunc1);
-GppcDatum timefunc1(GPPC_FUNCTION_ARGS);
-
-GppcDatum timefunc1(GPPC_FUNCTION_ARGS)
-{
-	GppcTime		arg = GPPC_GETARG_TIME(0);
-	GppcTm			tm;
-
-	GppcTimeGetTm(arg, &tm);
-	tm.tm_hour += 1;
-	tm.tm_min += 1;
-	tm.tm_sec += 1;
-
-	GPPC_RETURN_TIME(GppcTmGetTime(&tm));
-}
-
-GPPC_FUNCTION_INFO(timetzfunc1);
-GppcDatum timetzfunc1(GPPC_FUNCTION_ARGS);
-
-GppcDatum timetzfunc1(GPPC_FUNCTION_ARGS)
-{
-	GppcTimeTz		arg = GPPC_GETARG_TIMETZ(0);
-	GppcTm			tm;
-
-	GppcTimeTzGetTm(arg, &tm);
-	tm.tm_hour += 1;
-	tm.tm_min += 1;
-	tm.tm_sec += 1;
-
-	GPPC_RETURN_TIMETZ(GppcTmGetTimeTz(&tm));
-}
-
-GPPC_FUNCTION_INFO(timestampfunc1);
-GppcDatum timestampfunc1(GPPC_FUNCTION_ARGS);
-
-GppcDatum timestampfunc1(GPPC_FUNCTION_ARGS)
-{
-	GppcTimestamp	arg = GPPC_GETARG_TIMESTAMP(0);
-	GppcTm			tm;
-
-	GppcTimestampGetTm(arg, &tm);
-	tm.tm_year += 1;
-	tm.tm_mon += 1;
-	tm.tm_mday += 1;
-	tm.tm_hour += 1;
-	tm.tm_min += 1;
-	tm.tm_sec += 1;
-
-	GPPC_RETURN_TIMESTAMP(GppcTmGetTimestamp(&tm));
-}
-
-GPPC_FUNCTION_INFO(timestamptzfunc1);
-GppcDatum timestamptzfunc1(GPPC_FUNCTION_ARGS);
-
-GppcDatum timestamptzfunc1(GPPC_FUNCTION_ARGS)
-{
-	GppcTimestampTz	arg = GPPC_GETARG_TIMESTAMPTZ(0);
-	GppcTm			tm;
-
-	GppcTimestampTzGetTm(arg, &tm);
-	tm.tm_year += 1;
-	tm.tm_mon += 1;
-	tm.tm_mday += 1;
-	tm.tm_hour += 1;
-	tm.tm_min += 1;
-	tm.tm_sec += 1;
-
-	GPPC_RETURN_TIMESTAMPTZ(GppcTmGetTimestampTz(&tm));
-}
-
-/*
- * SPI test 1: run query, get the attribute by number at the final row as string
- */
-GPPC_FUNCTION_INFO(spifunc1);
-GppcDatum spifunc1(GPPC_FUNCTION_ARGS);
-
-GppcDatum spifunc1(GPPC_FUNCTION_ARGS)
-{
-	char		   *query = GppcTextGetCString(GPPC_GETARG_TEXT(0));
-	GppcInt4		attno = GPPC_GETARG_INT4(1);
-	GppcSPIResult	result;
-	char		   *val = NULL;
-
-	if (GppcSPIConnect() < 0)
-		GppcReport(GPPC_ERROR, "connect error");
-
-	result = GppcSPIExec(query, 0);
-	while (result->current < result->processed)
-	{
-		val = GppcSPIGetValue(result, attno, true);
-		result->current++;
-	}
-
-	GppcSPIFinish();
-
-	if (val)
-		GPPC_RETURN_TEXT(GppcCStringGetText(val));
-	else
-		GPPC_RETURN_NULL();
-}
-
-/*
- * SPI test 2: run query, get the attribute by name at the final row as string
- */
-GPPC_FUNCTION_INFO(spifunc2);
-GppcDatum spifunc2(GPPC_FUNCTION_ARGS);
-
-GppcDatum spifunc2(GPPC_FUNCTION_ARGS)
-{
-	char		   *query = GppcTextGetCString(GPPC_GETARG_TEXT(0));
-	char		   *attname = GppcTextGetCString(GPPC_GETARG_TEXT(1));
-	GppcSPIResult	result;
-	char		   *val = NULL;
-
-	if (GppcSPIConnect() < 0)
-		GppcReport(GPPC_ERROR, "connect error");
-
-	result = GppcSPIExec(query, 0);
-	while (result->current < result->processed)
-	{
-		val = GppcSPIGetValueByName(result, attname, true);
-		result->current++;
-	}
-
-	GppcSPIFinish();
-
-	if (val)
-		GPPC_RETURN_TEXT(GppcCStringGetText(val));
-	else
-		GPPC_RETURN_NULL();
-}
-
-/*
- * SPI test 3: run query, get the attribute by number at the final row as datum
- */
-GPPC_FUNCTION_INFO(spifunc3);
-GppcDatum spifunc3(GPPC_FUNCTION_ARGS);
-
-GppcDatum spifunc3(GPPC_FUNCTION_ARGS)
-{
-	char		   *query = GppcTextGetCString(GPPC_GETARG_TEXT(0));
-	GppcInt4		attno = GPPC_GETARG_INT4(1);
-	GppcSPIResult	result;
-	GppcDatum		datum;
-	bool			isnull = true;
-
-	if (GppcSPIConnect() < 0)
-		GppcReport(GPPC_ERROR, "connect error");
-
-	result = GppcSPIExec(query, 0);
-	while (result->current < result->processed)
-	{
-		datum = GppcSPIGetDatum(result, attno, &isnull, true);
-		result->current++;
-	}
-
-	GppcSPIFinish();
-
-	if (!isnull)
-		GPPC_RETURN_TEXT(GppcDatumGetText(datum));
-	else
-		GPPC_RETURN_NULL();
-}
-
-/*
- * SPI test 4: run query, get the attribute by name at the final row as datum
- */
-GPPC_FUNCTION_INFO(spifunc4);
-GppcDatum spifunc4(GPPC_FUNCTION_ARGS);
-
-GppcDatum spifunc4(GPPC_FUNCTION_ARGS)
-{
-	char		   *query = GppcTextGetCString(GPPC_GETARG_TEXT(0));
-	char		   *attname = GppcTextGetCString(GPPC_GETARG_TEXT(1));
-	GppcSPIResult	result;
-	GppcDatum		datum;
-	bool			isnull = true;
-
-	if (GppcSPIConnect() < 0)
-		GppcReport(GPPC_ERROR, "connect error");
-
-	result = GppcSPIExec(query, 0);
-	while (result->current < result->processed)
-	{
-		datum = GppcSPIGetDatumByName(result, attname, &isnull, true);
-		result->current++;
-	}
-
-	GppcSPIFinish();
-
-	if (!isnull)
-		GPPC_RETURN_TEXT(GppcDatumGetText(datum));
-	else
-		GPPC_RETURN_NULL();
-}
-
-/*
- * The error handler.  We can call GppcReport with INFO when ERROR, since it's not
- * infinite recursion.  For test purpose, set 'x' to message when WARNING.
- */
-static void
-errorcallback(GppcReportInfo info, void *arg)
-{
-	GppcReportLevel		elevel = GppcGetReportLevel(info);
-
-	if (elevel == GPPC_WARNING && arg)
-		memset(GppcGetTextPointer(arg), 'x', GppcGetTextLength(arg));
-	else if (elevel == GPPC_ERROR && arg)
-		GppcReport(GPPC_INFO, "inside callback: %s", GppcTextGetCString(arg));
-}
-
-GPPC_FUNCTION_INFO(errorcallbackfunc1);
-GppcDatum errorcallbackfunc1(GPPC_FUNCTION_ARGS);
-
-GppcDatum
-errorcallbackfunc1(GPPC_FUNCTION_ARGS)
-{
-	GppcText		arg = GPPC_GETARG_TEXT_COPY(0);
-	char		   *carg = GppcTextGetCString(arg);
-	GppcReportCallbackState	cbinfo;
-
-	cbinfo = GppcInstallReportCallback(errorcallback, arg);
-
-	if (strcmp(carg, "info") == 0)
-		GppcReport(GPPC_INFO, "info emit");
-	else if (strcmp(carg, "warning") == 0)
-		GppcReport(GPPC_WARNING, "warning emit");
-	else if (strcmp(carg, "error") == 0)
-		GppcReport(GPPC_ERROR, "error emit");
-
-	GppcUninstallReportCallback(cbinfo);
-
-	GPPC_RETURN_TEXT(arg);
-}
-
-#if GP_VERSION_NUM >= 40200
-GPPC_FUNCTION_INFO(tablefunc_describe);
-GppcDatum tablefunc_describe(GPPC_FUNCTION_ARGS);
-
-GppcDatum
-tablefunc_describe(GPPC_FUNCTION_ARGS)
-{
-	GppcTupleDesc	tdesc;
-	GppcInt4		avalue;
-	bool			isnull, iserror;
-	GppcTupleDesc	odesc;
-	GppcReportCallbackState	cbstate;
-
-	/* For a test purpose to make sure it's working in the describe func */
-	cbstate = GppcInstallReportCallback(errorcallback, NULL);
-
-	/* Fetch and validate input */
-	if (GPPC_NARGS() != 1 || GPPC_ARGISNULL(0))
-		GppcReport(GPPC_ERROR, "invalid invocation of describe");
-
-	/* Now get the tuple descriptor for the ANYTABLE we received */
-	tdesc = GPPC_TF_INPUT_DESC(0, &iserror);
-
-	if (iserror)
-		GppcReport(GPPC_ERROR, "cannot build tuple descriptor");
-
-	avalue = GPPC_TF_GETARG_INT4(1, &isnull, &iserror);
-	if (iserror)
-		GppcReport(GPPC_ERROR, "function is mal-declared");
-	if (isnull)
-		GppcReport(GPPC_ERROR, "the second argument should not be NULL");
-
-	if (avalue < 1 || avalue > GppcTupleDescNattrs(tdesc))
-		GppcReport(GPPC_ERROR, "invalid column position %d", avalue);
-
-	/* Print out the attlen -- just an excuse to use GppcTupleDescAttrLen() */
-	GppcReport(GPPC_INFO, "attlen is %d", GppcTupleDescAttrLen(tdesc, avalue - 1));
-
-	/* Build an output tuple a single column based on the column number above */
-	odesc = GppcCreateTemplateTupleDesc(1);
-	GppcTupleDescInitEntry(odesc, 1,
-						   GppcTupleDescAttrName(tdesc, avalue - 1),
-						   GppcTupleDescAttrType(tdesc, avalue - 1),
-						   GppcTupleDescAttrTypmod(tdesc, avalue - 1));
-
-	GppcUninstallReportCallback(cbstate);
-
-	/* Finally return that tupdesc */
-	GPPC_RETURN_TUPLEDESC(odesc);
-}
-
-GPPC_FUNCTION_INFO(tablefunc_project);
-GppcDatum tablefunc_project(GPPC_FUNCTION_ARGS);
-
-GppcDatum
-tablefunc_project(GPPC_FUNCTION_ARGS)
-{
-	GppcFuncCallContext	fctx;
-	GppcAnyTable	scan;
-	GppcTupleDesc	out_tupdesc, in_tupdesc;
-	GppcHeapTuple	tuple;
-	int				position;
-	GppcDatum		values[1];
-	bool			nulls[1];
-	GppcDatum		result;
-
-	/*
-	 * Sanity checking, shouldn't occur if our CREATE FUNCTION in SQL is done
-	 * correctly.
-	 */
-	if (GPPC_NARGS() != 2 || GPPC_ARGISNULL(0) || GPPC_ARGISNULL(1))
-		GppcReport(GPPC_ERROR, "invalid invocation of project");
-	scan = GPPC_GETARG_ANYTABLE(0);
-	position = GPPC_GETARG_INT4(1);
-
-	/* Basic set-returning function (SRF) protocol, setup the context */
-	if (GPPC_SRF_IS_FIRSTCALL())
-	{
-		fctx = GPPC_SRF_FIRSTCALL_INIT();
-	}
-	fctx = GPPC_SRF_PERCALL_SETUP();
-
-	/* Get the next value from the input scan */
-	out_tupdesc = GPPC_SRF_RESULT_DESC();
-	in_tupdesc = GppcAnyTableGetTupleDesc(scan);
-	tuple = GppcAnyTableGetNextTuple(scan);
-
-	/* Based on what the describe callback should have setup */
-	if (position < 1 || position > GppcTupleDescNattrs(in_tupdesc))
-		GppcReport(GPPC_ERROR, "invalid column position(%d)", position);
-	if (GppcTupleDescNattrs(out_tupdesc) != 1)
-		GppcReport(GPPC_ERROR, "invalid column length in out_tupdesc");
-	if (GppcTupleDescAttrType(out_tupdesc, 0) !=
-			GppcTupleDescAttrType(in_tupdesc, 0))
-		GppcReport(GPPC_ERROR, "type mismatch");
-
-	/* check for end of scan */
-	if (tuple == NULL)
-		GPPC_SRF_RETURN_DONE(fctx);
-
-	/* Construct the output tuple and convert to a datum */
-	values[0] = GppcGetAttributeByNum(tuple, position, &nulls[0]);
-	result = GppcBuildHeapTupleDatum(out_tupdesc, values, nulls);
-
-	/* Return the next result */
-	GPPC_SRF_RETURN_NEXT(fctx, result);
-}
-
-GPPC_FUNCTION_INFO(describe_spi);
-GppcDatum describe_spi(GPPC_FUNCTION_ARGS);
-
-GppcDatum describe_spi(GPPC_FUNCTION_ARGS)
-{
-	GppcTupleDesc	tdesc, odesc;
-	GppcSPIResult	result;
-	bool			isnull, iserror;
-	char		   *query;
-	char		   *colname = NULL;
-	GppcDatum		d_colname;
-
-	tdesc = GPPC_TF_INPUT_DESC(0, &iserror);
-
-	if (GppcSPIConnect() < 0)
-		GppcReport(GPPC_ERROR, "unable to connect to SPI");
-
-	/* Get query string */
-	query = GppcTextGetCString(GPPC_TF_GETARG_TEXT(1, &isnull, &iserror));
-	if (isnull || iserror)
-		GppcReport(GPPC_ERROR, "invalid invocation of describe_spi");
-
-	result = GppcSPIExec(query, 0);
-	if (result->processed > 0)
-		colname = GppcSPIGetValue(result, 1, true);
-	if (colname == NULL)
-		colname = "?column?";
-	GppcSPIFinish();
-
-	/* Build tuple desc */
-	odesc = GppcCreateTemplateTupleDesc(1);
-	GppcTupleDescInitEntry(odesc, 1,
-						   colname, GppcOidText, -1);
-
-	d_colname = GppcTextGetDatum(GppcCStringGetText(colname));
-	/* Pass the query to project */
-	GPPC_TF_SET_USERDATA(GppcDatumGetByteaCopy(d_colname));
-
-	GPPC_RETURN_TUPLEDESC(odesc);
-}
-
-GPPC_FUNCTION_INFO(project_spi);
-GppcDatum project_spi(GPPC_FUNCTION_ARGS);
-
-GppcDatum project_spi(GPPC_FUNCTION_ARGS)
-{
-	GppcFuncCallContext	fctx;
-	GppcAnyTable		scan;
-	GppcTupleDesc		odesc, idesc;
-	GppcHeapTuple		tuple;
-	char				colname[255];
-	GppcDatum			values[1];
-	bool				isnull[1];
-	GppcDatum			result;
-
-	scan = GPPC_GETARG_ANYTABLE(0);
-	/* Get the user context from the describe function */
-	strcpy(colname,
-		   GppcTextGetCString(GppcDatumGetText(GppcByteaGetDatum(GPPC_TF_GET_USERDATA()))));
-
-	if (GPPC_SRF_IS_FIRSTCALL())
-	{
-		fctx = GPPC_SRF_FIRSTCALL_INIT();
-	}
-	fctx = GPPC_SRF_PERCALL_SETUP();
-
-	/* Get the next value from the input scan */
-	odesc = GPPC_SRF_RESULT_DESC();
-	idesc = GppcAnyTableGetTupleDesc(scan);
-	tuple = GppcAnyTableGetNextTuple(scan);
-
-	if (tuple == NULL)
-		GPPC_SRF_RETURN_DONE(fctx);
-
-	values[0] = GppcGetAttributeByNum(tuple, 1, &isnull[0]);
-	if (!isnull[0])
-		values[0] = GppcTextGetDatum(GppcCStringGetText(
-				strcat(colname, GppcTextGetCString(GppcDatumGetText(values[0])))));
-
-	result = GppcBuildHeapTupleDatum(odesc, values, isnull);
-	GPPC_SRF_RETURN_NEXT(fctx, result);
-}
-
-typedef struct MySession
-{
-	GppcReportCallbackState	cbstate;
-	char				   *message;
-} MySession;
-
-static void
-tfcallback(GppcReportInfo info, void *arg)
-{
-	GppcReportLevel		elevel = GppcGetReportLevel(info);
-
-	if (elevel == GPPC_ERROR)
-	{
-		MySession			   *sess;
-
-		sess = (MySession *) arg;
-		GppcReport(GPPC_INFO, "message: %s", sess->message);
-		GppcFree(sess);
-	}
-}
-
-GPPC_FUNCTION_INFO(project_errorcallback);
-GppcDatum project_errorcallback(GPPC_FUNCTION_ARGS);
-
-GppcDatum project_errorcallback(GPPC_FUNCTION_ARGS)
-{
-	GppcFuncCallContext	fctx;
-	GppcAnyTable		scan;
-	GppcTupleDesc		odesc, idesc;
-	GppcHeapTuple		tuple;
-	GppcDatum		   *values;
-	bool			   *isnull;
-	int					i, attnum;
-	GppcDatum			result;
-
-	scan = GPPC_GETARG_ANYTABLE(0);
-
-	if (GPPC_SRF_IS_FIRSTCALL())
-	{
-		MySession				   *sess;
-
-		fctx = GPPC_SRF_FIRSTCALL_INIT();
-		sess = (MySession *) GppcSRFAlloc(fctx, sizeof(MySession));
-		sess->cbstate = GppcInstallReportCallback(tfcallback, sess);
-		sess->message = GppcSRFAlloc(fctx, 255);
-		strcpy(sess->message, "Hello, world!");
-
-		/* Save session in the SRF context */
-		GppcSRFSave(fctx, sess);
-	}
-	fctx = GPPC_SRF_PERCALL_SETUP();
-
-	/*
-	 * Return the input tuple as is, but it seems
-	 * TableFunction doesn't accept tuples with <idesc>, so copy
-	 * everything to a new tuple.
-	 */
-	odesc = GPPC_SRF_RESULT_DESC();
-	idesc = GppcAnyTableGetTupleDesc(scan);
-	tuple = GppcAnyTableGetNextTuple(scan);
-
-	if (tuple == NULL)
-	{
-		/* End of the input scan */
-		MySession				   *sess;
-
-		sess = (MySession *) GppcSRFRestore(fctx);
-		GppcUninstallReportCallback(sess->cbstate);
-		GppcFree(sess);
-		GPPC_SRF_RETURN_DONE(fctx);
-	}
-
-	attnum = GppcTupleDescNattrs(idesc);
-	values = GppcAlloc(sizeof(GppcDatum) * attnum);
-	isnull = GppcAlloc(sizeof(bool) * attnum);
-	for (i = 0; i < attnum; i++)
-	{
-		values[i] = GppcGetAttributeByNum(tuple, 1, &isnull[i]);
-		if (i == 0 && isnull[0])
-			GppcReport(GPPC_ERROR, "first attribute is NULL");
-	}
-
-	result = GppcBuildHeapTupleDatum(odesc, values, isnull);
-	GPPC_SRF_RETURN_NEXT(fctx, result);
-}
-#endif  /* GP_VERSION_NUM >= 40200 */
-
-GPPC_FUNCTION_INFO(test_encoding_name);
-GppcDatum test_encoding_name(GPPC_FUNCTION_ARGS);
-
-GppcDatum
-test_encoding_name(GPPC_FUNCTION_ARGS)
-{
-	GppcText res;
-	const char *str = GppcDatabaseEncodingName(GPPC_UTF8);
-	size_t len = strlen(str);
-
-	res = GppcAllocText(len);
-	memcpy(GppcGetTextPointer(res), str, len);
-	
-	GPPC_RETURN_TEXT(res);
-}

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/2179320a/src/backend/libgppc/test/sql/gppc_basic.sql
----------------------------------------------------------------------
diff --git a/src/backend/libgppc/test/sql/gppc_basic.sql b/src/backend/libgppc/test/sql/gppc_basic.sql
deleted file mode 100644
index f40b1ab..0000000
--- a/src/backend/libgppc/test/sql/gppc_basic.sql
+++ /dev/null
@@ -1,94 +0,0 @@
-CREATE FUNCTION oidcheckfunc(text) RETURNS int4 AS '$libdir/gppc_test' LANGUAGE c IMMUTABLE STRICT;
-CREATE FUNCTION boolfunc(bool) RETURNS bool AS '$libdir/gppc_test' LANGUAGE c IMMUTABLE STRICT;
-CREATE FUNCTION charfunc("char") RETURNS "char" AS '$libdir/gppc_test' LANGUAGE c IMMUTABLE STRICT;
-CREATE FUNCTION int2mulfunc(int2, int2) RETURNS int2 AS '$libdir/gppc_test' LANGUAGE c IMMUTABLE STRICT;
-CREATE FUNCTION int4func1(int) RETURNS int AS '$libdir/gppc_test' LANGUAGE c IMMUTABLE STRICT;
-CREATE FUNCTION int8plusfunc(int8, int8) RETURNS int8 AS '$libdir/gppc_test' LANGUAGE c IMMUTABLE STRICT;
-CREATE FUNCTION float4func1(float4) RETURNS float4 AS '$libdir/gppc_test' LANGUAGE c IMMUTABLE STRICT;
-CREATE FUNCTION float8func1(float8) RETURNS float8 AS '$libdir/gppc_test' LANGUAGE c IMMUTABLE STRICT;
-CREATE FUNCTION textdoublefunc(text) RETURNS text AS '$libdir/gppc_test' LANGUAGE c IMMUTABLE STRICT;
-CREATE FUNCTION textgenfunc() RETURNS text AS '$libdir/gppc_test' LANGUAGE c IMMUTABLE STRICT;
-CREATE FUNCTION textcopyfunc(text, bool) RETURNS text AS '$libdir/gppc_test' LANGUAGE c IMMUTABLE STRICT;
-CREATE FUNCTION varchardoublefunc(varchar) RETURNS varchar AS '$libdir/gppc_test' LANGUAGE c IMMUTABLE STRICT;
-CREATE FUNCTION varchargenfunc() RETURNS varchar AS '$libdir/gppc_test' LANGUAGE c IMMUTABLE STRICT;
-CREATE FUNCTION varcharcopyfunc(text, bool) RETURNS text AS '$libdir/gppc_test' LANGUAGE c IMMUTABLE STRICT;
-CREATE FUNCTION bpchardoublefunc(char) RETURNS char AS '$libdir/gppc_test' LANGUAGE c IMMUTABLE STRICT;
-CREATE FUNCTION bpchargenfunc() RETURNS char AS '$libdir/gppc_test' LANGUAGE c IMMUTABLE STRICT;
-CREATE FUNCTION bpcharcopyfunc(text, bool) RETURNS text AS '$libdir/gppc_test' LANGUAGE c IMMUTABLE STRICT;
-CREATE FUNCTION errfunc1(text) RETURNS text AS '$libdir/gppc_test' LANGUAGE c IMMUTABLE STRICT;
-CREATE FUNCTION argisnullfunc(int) RETURNS bool AS '$libdir/gppc_test' LANGUAGE c IMMUTABLE;
-CREATE FUNCTION byteafunc1(bytea) RETURNS bytea AS '$libdir/gppc_test' LANGUAGE c IMMUTABLE STRICT;
-CREATE FUNCTION numericfunc1(numeric) RETURNS numeric AS '$libdir/gppc_test' LANGUAGE c IMMUTABLE STRICT;
-CREATE FUNCTION numericfunc2(numeric) RETURNS float8 AS '$libdir/gppc_test' LANGUAGE c IMMUTABLE STRICT;
-CREATE FUNCTION numericfunc3(float8) RETURNS numeric AS '$libdir/gppc_test' LANGUAGE c IMMUTABLE STRICT;
-CREATE FUNCTION numericdef1(int4) RETURNS text AS '$libdir/gppc_test' LANGUAGE c IMMUTABLE STRICT;
-CREATE FUNCTION datefunc1(date) RETURNS date AS '$libdir/gppc_test' LANGUAGE c IMMUTABLE STRICT;
-CREATE FUNCTION timefunc1(time) RETURNS time AS '$libdir/gppc_test' LANGUAGE c IMMUTABLE STRICT;
-CREATE FUNCTION timetzfunc1(timetz) RETURNS timetz AS '$libdir/gppc_test' LANGUAGE c STABLE STRICT;
-CREATE FUNCTION timestampfunc1(timestamp) RETURNS timestamp AS '$libdir/gppc_test' LANGUAGE c IMMUTABLE STRICT;
-CREATE FUNCTION timestamptzfunc1(timestamptz) RETURNS timestamptz AS '$libdir/gppc_test' LANGUAGE c STABLE STRICT;
-CREATE FUNCTION spifunc1(text, int) RETURNS text AS '$libdir/gppc_test' LANGUAGE c STRICT;
-CREATE FUNCTION spifunc2(text, text) RETURNS text AS '$libdir/gppc_test' LANGUAGE c STRICT;
-CREATE FUNCTION spifunc3(text, int) RETURNS text AS '$libdir/gppc_test' LANGUAGE c STRICT;
-CREATE FUNCTION spifunc4(text, text) RETURNS text AS '$libdir/gppc_test' LANGUAGE c STRICT;
-CREATE FUNCTION errorcallbackfunc1(text) RETURNS text AS '$libdir/gppc_test' LANGUAGE c STRICT;
-CREATE FUNCTION test_encoding_name() RETURNS text AS '$libdir/gppc_test' LANGUAGE c IMMUTABLE;
-
-CREATE TABLE numerictable(
-	a numeric(5, 2),
-	b numeric(3),
-	c numeric
-);
-
-SELECT oidcheckfunc('bool'),
-	oidcheckfunc('char'),
-	oidcheckfunc('int2'),
-	oidcheckfunc('int4'),
-	oidcheckfunc('int8'),
-	oidcheckfunc('float4'),
-	oidcheckfunc('float8'),
-	oidcheckfunc('text'),
-	oidcheckfunc('varchar'),
-	oidcheckfunc('bpchar'),
-	oidcheckfunc('bytea'),
-	oidcheckfunc('numeric'),
-	oidcheckfunc('time'),
-	oidcheckfunc('timetz'),
-	oidcheckfunc('timestamp'),
-	oidcheckfunc('timestamptz');
-SELECT boolfunc(true and true);
-SELECT charfunc('a');
-SELECT int2mulfunc(2::int2, 3::int2);
-SELECT int4func1(10);
-SELECT int8plusfunc(10000000000, 1);
-SELECT float4func1(4.2);
-SELECT float8func1(0.0000001);
-SELECT textdoublefunc('bla');
-SELECT textgenfunc();
-SELECT textcopyfunc('white', true), textcopyfunc('white', false);
-SELECT varchardoublefunc('bla');
-SELECT varchargenfunc();
-SELECT varcharcopyfunc('white', true), varcharcopyfunc('white', false);
-SELECT bpchardoublefunc('bla');
-SELECT bpchargenfunc();
-SELECT bpcharcopyfunc('white', true), bpcharcopyfunc('white', false);
-SELECT errfunc1('The quick brown fox jumps over the lazy dog');
-SELECT argisnullfunc(0), argisnullfunc(NULL);
-SELECT byteafunc1(E'\\244\\233abc');
-SELECT numericfunc1(1000);
-SELECT numericfunc2(1000.00001);
-SELECT numericfunc3(1000.00001);
-SELECT attname, numericdef1(atttypmod) FROM pg_attribute
-	WHERE attrelid = 'numerictable'::regclass and atttypid = 'numeric'::regtype;
-SELECT datefunc1('2011-02-24');
-SELECT timefunc1('15:00:01');
-SELECT timetzfunc1('15:00:01 UTC');
-SELECT timestampfunc1('2011-02-24 15:00:01');
-SELECT timestamptzfunc1('2011-02-24 15:00:01 UTC');
-SELECT spifunc1($$select i, i * 2 from generate_series(1, 10)i order by 1$$, 2);
-SELECT spifunc2($$select i, i * 2 as val from generate_series(1, 10)i order by 1$$, 'val');
-SELECT spifunc3($$select i, 'foo' || i as val from generate_series(1, 10)i order by 1$$, 2);
-SELECT spifunc4($$select i, 'foo' || i as val from generate_series(1, 10)i order by 1$$, 'val');
-SELECT errorcallbackfunc1('warning');
-SELECT errorcallbackfunc1('error');
-SELECT test_encoding_name();

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/2179320a/src/backend/libgppc/test/sql/tablefunc.sql
----------------------------------------------------------------------
diff --git a/src/backend/libgppc/test/sql/tablefunc.sql b/src/backend/libgppc/test/sql/tablefunc.sql
deleted file mode 100644
index 5d3e08e..0000000
--- a/src/backend/libgppc/test/sql/tablefunc.sql
+++ /dev/null
@@ -1,10 +0,0 @@
-CREATE FUNCTION tablefunc_describe(internal) RETURNS internal AS '$libdir/gppc_test' LANGUAGE c;
-CREATE FUNCTION tablefunc_project(anytable, int) RETURNS SETOF record AS '$libdir/gppc_test' LANGUAGE c WITH(describe=tablefunc_describe);
-CREATE FUNCTION describe_spi(internal) RETURNS internal AS '$libdir/gppc_test' LANGUAGE c;
-CREATE FUNCTION project_spi(anytable, text) RETURNS SETOF record AS '$libdir/gppc_test' LANGUAGE c WITH(describe=describe_spi);
-CREATE FUNCTION project_errorcallback(anytable, OUT int, OUT int) RETURNS SETOF record AS '$libdir/gppc_test' LANGUAGE c;
-
-SELECT * FROM tablefunc_project(TABLE(SELECT a, a / 10 FROM generate_series(1, 10)a SCATTER BY a), 2) ORDER BY 1;
-SELECT * FROM project_spi(TABLE(SELECT a::text FROM generate_series(1, 10)a SCATTER BY a), 'SELECT $$foo$$') ORDER BY 1;
-SELECT * FROM project_errorcallback(TABLE(SELECT CASE WHEN a < 10 THEN a END, a FROM generate_series(1, 10)a SCATTER BY a));
-SELECT * FROM project_errorcallback(TABLE(SELECT a, a FROM generate_series(1, 5)a SCATTER BY a));