Remove TIOGA files from CVS current; they remain in repositiry.
authorBruce Momjian
Wed, 28 Aug 2002 20:55:23 +0000 (20:55 +0000)
committerBruce Momjian
Wed, 28 Aug 2002 20:55:23 +0000 (20:55 +0000)
src/backend/tioga/Arr_TgRecipe.h [deleted file]
src/backend/tioga/Makefile [deleted file]
src/backend/tioga/Varray.c [deleted file]
src/backend/tioga/Varray.h [deleted file]
src/backend/tioga/tgRecipe.c [deleted file]
src/backend/tioga/tgRecipe.h [deleted file]

diff --git a/src/backend/tioga/Arr_TgRecipe.h b/src/backend/tioga/Arr_TgRecipe.h
deleted file mode 100644 (file)
index 71e1203..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-#include "tioga/Varray.h"
-
-/* Modify the following size macros to suit your need. */
-
-#ifndef Arr_TgString_INITIAL_SIZE
-#define Arr_TgString_INITIAL_SIZE 32
-#endif
-
-#ifndef Arr_TgElementPtr_INITIAL_SIZE
-#define Arr_TgElementPtr_INITIAL_SIZE 32
-#endif
-
-#ifndef Arr_TgNodePtr_INITIAL_SIZE
-#define Arr_TgNodePtr_INITIAL_SIZE 32
-#endif
-/***************************************************************/
-/*           Do not modify anything below this line.          */
-/***************************************************************/
-
-/* -- Defining types and function for Arr_TgString type -- */
-/* -- the following must be supplied by the user:
-
-   void copyTgString(TgString* from, TgString* to); - make a copy of TgString.
-*/
-
-#ifndef _ARR_TgString_
-#define _ARR_TgString_
-
-#ifndef ARR_TgString_INITIAL_SIZE
-#define ARR_TgString_INITIAL_SIZE 32   /* change this size to suit your
-                                        * need */
-#endif   /* ARR_TgString_INITIAL_SIZE */
-
-typedef struct Arr_TgString
-{
-   size_t      num;
-   size_t      size;
-   size_t      valSize;
-   TgString   *val;
-}  Arr_TgString;
-
-#define newArr_TgString() \
-  (Arr_TgString *) NewVarray(ARR_TgString_INITIAL_SIZE, sizeof(TgString))
-
-#define enlargeArr_TgString(A, I) \
-( \
-  (A)->size += (I), \
-  (A)->val = (TgString *) realloc((A)->val, (A)->valSize * (A)->size) \
-)
-
-#define addArr_TgString(A, V) \
-  AppendVarray((Varray *) (A), (void *) (V), (CopyingFunct) copyTgString)
-
-#define deleteArr_TgString(A) FreeVarray(A)
-#endif   /* _ARR_TgString_ */
-
-/* -- Defining types and function for Arr_TgElementPtr type -- */
-/* -- the following must be supplied by the user:
-
-   void copyTgElementPtr(TgElementPtr* from, TgElementPtr* to); - make a copy of TgElementPtr.
-*/
-
-#ifndef _ARR_TgElementPtr_
-#define _ARR_TgElementPtr_
-
-#ifndef ARR_TgElementPtr_INITIAL_SIZE
-#define ARR_TgElementPtr_INITIAL_SIZE 32       /* change this size to
-                                                * suit your need */
-#endif   /* ARR_TgElementPtr_INITIAL_SIZE */
-
-typedef struct Arr_TgElementPtr
-{
-   size_t      num;
-   size_t      size;
-   size_t      valSize;
-   TgElementPtr *val;
-}  Arr_TgElementPtr;
-
-#define newArr_TgElementPtr() \
-  (Arr_TgElementPtr *) NewVarray(ARR_TgElementPtr_INITIAL_SIZE, sizeof(TgElementPtr))
-
-#define enlargeArr_TgElementPtr(A, I) \
-( \
-  (A)->size += (I), \
-  (A)->val = (TgElementPtr *) realloc((A)->val, (A)->valSize * (A)->size) \
-)
-
-#define addArr_TgElementPtr(A, V) \
-  AppendVarray((Varray *) (A), (void *) (V), (CopyingFunct) copyTgElementPtr)
-
-#define deleteArr_TgElementPtr(A) FreeVarray(A)
-#endif   /* _ARR_TgElementPtr_ */
-
-/* -- Defining types and function for Arr_TgNodePtr type -- */
-/* -- the following must be supplied by the user:
-
-   void copyTgNodePtr(TgNodePtr* from, TgNodePtr* to); - make a copy of TgNodePtr.
-*/
-
-#ifndef _ARR_TgNodePtr_
-#define _ARR_TgNodePtr_
-
-#ifndef ARR_TgNodePtr_INITIAL_SIZE
-#define ARR_TgNodePtr_INITIAL_SIZE 32  /* change this size to suit your
-                                        * need */
-#endif   /* ARR_TgNodePtr_INITIAL_SIZE */
-
-typedef struct Arr_TgNodePtr
-{
-   size_t      num;
-   size_t      size;
-   size_t      valSize;
-   TgNodePtr  *val;
-}  Arr_TgNodePtr;
-
-#define newArr_TgNodePtr() \
-  (Arr_TgNodePtr *) NewVarray(ARR_TgNodePtr_INITIAL_SIZE, sizeof(TgNodePtr))
-
-#define enlargeArr_TgNodePtr(A, I) \
-( \
-  (A)->size += (I), \
-  (A)->val = (TgNodePtr *) realloc((A)->val, (A)->valSize * (A)->size) \
-)
-
-#define addArr_TgNodePtr(A, V) \
-  AppendVarray((Varray *) (A), (void *) (V), (CopyingFunct) copyTgNodePtr)
-
-#define deleteArr_TgNodePtr(A) FreeVarray(A)
-
-#endif   /* _ARR_TgNodePtr_ */
diff --git a/src/backend/tioga/Makefile b/src/backend/tioga/Makefile
deleted file mode 100644 (file)
index cc8d20a..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-#-------------------------------------------------------------------------
-#
-# Makefile--
-#    Makefile for tioga
-#
-# IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/backend/tioga/Attic/Makefile,v 1.10 2001/02/20 19:20:28 petere Exp $
-#
-#-------------------------------------------------------------------------
-
-subdir = src/backend/tioga
-top_builddir = ../../..
-include $(top_builddir)/src/Makefile.global
-
-OBJS = tgRecipe.o Varray.o
-override CPPFLAGS := -I$(srcdir) $(CPPFLAGS)
-
-all: SUBSYS.o
-
-SUBSYS.o: $(OBJS)
-   $(LD) $(LDREL) $(LDOUT) SUBSYS.o $(OBJS)
-
-depend dep:
-   $(CC) -MM $(CFLAGS) *.c >depend
-
-clean: 
-   rm -f SUBSYS.o $(OBJS) 
-
-ifeq (depend,$(wildcard depend))
-include depend
-endif
diff --git a/src/backend/tioga/Varray.c b/src/backend/tioga/Varray.c
deleted file mode 100644 (file)
index c211686..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/* ************************************************************************
- *
- * Varray.c
- *
- *   routines to provide a generic set of functions to handle variable sized
- * arrays.   originally by Jiang Wu
- * ************************************************************************/
-
-#include 
-#include 
-#include "Varray.h"
-
-Varray *
-NewVarray(size_t nobj, size_t size)
-/*
- * NewVarray -- allocate a Varray to contain an array of val each of which
- *             is size valSize.  Returns the Varray if successful,
- *             returns NULL otherwise.
- */
-{
-   Varray     *result;
-
-   if (nobj == 0)
-       nobj = VARRAY_INITIAL_SIZE;
-   result = (Varray *) malloc(sizeof(Varray));
-   result->val = (void *) calloc(nobj, size);
-   if (result == NULL)
-       return NULL;
-   result->size = size;
-   result->nobj = 0;
-   result->maxObj = nobj;
-   return result;
-}
-
-int
-AppendVarray(Varray * array, void *value, CopyingFunct copy)
-/*
- * AppendVarray -- append value to the end of array.  This function
- *                returns the size of the array after the addition of
- *                the new element.
- */
-{
-   copy(value, VARRAY_NTH(array->val, array->size, array->nobj));
-   array->nobj++;
-   if (array->nobj >= array->maxObj)
-       ENLARGE_VARRAY(array, array->maxObj / 2);
-   return array->nobj;
-}
diff --git a/src/backend/tioga/Varray.h b/src/backend/tioga/Varray.h
deleted file mode 100644 (file)
index cf71731..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/* ********************************************************************
- *
- * Varray.h -- header file for varray.c which provides a generic
- *            set of functions to handle variable sized arrays.
- *
- *            originally by Jiang Wu
- * ********************************************************************/
-
-#ifndef _VARRAY_H_
-#define _VARRAY_H_
-
-typedef struct _varray
-{
-   size_t      nobj;           /* number of objects in this array */
-   size_t      maxObj;         /* max. number of objects in this array */
-   size_t      size;           /* size of each element in the array */
-   void       *val;            /* array of elements */
-}  Varray;
-
-/* type for custom copying function */
-typedef void (*CopyingFunct) (void *from, void *to);
-
-#define VARRAY_INITIAL_SIZE 32
-
-#define ENLARGE_VARRAY(ARRAY, INC) \
-( \
-  (ARRAY)->maxObj += (INC), \
-  (ARRAY)->val = (void *) realloc((ARRAY)->val, \
-                                 (ARRAY)->size * (ARRAY)->maxObj) \
-)
-
-#define VARRAY_NTH(VAL, SIZE, N) (((char *) (VAL)) + (SIZE) * (N))
-
-#define FreeVarray(ARRAY) \
-  if ((ARRAY) != NULL) { free((ARRAY)->val); free((ARRAY)); (ARRAY) = NULL ; }
-
-#define ModifyVarray(ARRAY, N, NEW, COPY) \
-  if ((N) < (ARRAY)->nobj) \
-   (COPY)(VARRAY_NTH((ARRAY)->val, (ARRAY)->size, (N)), (NEW))
-
-#define GetVarray(ARRAY, N) \
-  ((N) < (ARRAY)->nobj ? VARRAY_NTH((ARRAY)->val, (ARRAY)->size, (N)) \
-                      : NULL)
-
-extern Varray *NewVarray(size_t nobj, size_t size);
-extern int AppendVarray(Varray * array, void *value, CopyingFunct copy);
-
-#endif   /* _VARRAY_H_ */
diff --git a/src/backend/tioga/tgRecipe.c b/src/backend/tioga/tgRecipe.c
deleted file mode 100644 (file)
index ed9c8e8..0000000
+++ /dev/null
@@ -1,759 +0,0 @@
-/*-------------------------------------------------------------------------
- *
- * tgRecipe.c
- *     Tioga recipe-related definitions
- *     these functions can be used in both the frontend and the
- *     backend
- *
- *     this file must be kept current with recipe-schema.sql
- *
- * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
- * Portions Copyright (c) 1994, Regents of the University of California
- *
- *
- * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/tioga/Attic/tgRecipe.c,v 1.22 2002/06/20 20:29:36 momjian Exp $
- *
- *-------------------------------------------------------------------------
- */
-
-#include "postgres.h"
-
-#include "catalog/catalog.h"
-#include "tioga/tgRecipe.h"
-
-static Arr_TgString *TextArray2ArrTgString(char *str);
-
-#define ARRAY_LEFT_DELIM '{'
-#define ARRAY_RIGHT_DELIM '}'
-#define ARRAY_ELEM_LEFT '"'
-#define ARRAY_ELEM_RIGHT '"'
-#define ARRAY_ELEM_SEPARATOR ','
-
-/* maximum length of query string */
-#define MAX_QBUF_LENGTH 2048
-
-/**** the queries being used ********/
-#define Q_RETRIEVE_RECIPE_BYNAME \
-     "select * from Recipes where Recipes.elemName = '%s';"
-#define Q_RETRIEVE_ELEMENTS_IN_RECIPE \
-     "select e.* from Element e, Node n where n.belongsTo = '%s' and n.nodeElem = e.elemName;"
-#define Q_RETRIEVE_NODES_IN_RECIPE \
-     "select * from Node n where n.belongsTo = '%s'"
-#define Q_LOOKUP_EDGES_IN_RECIPE \
-     "select * from Edge e where e.belongsTo = '%s'"
-
-/* static functions only used here */
-static void fillTgElement(TgElement * elem, PortalBuffer * pbuf, int tupno);
-static void fillTgNode(TgRecipe * r, TgNode * node, PortalBuffer * pbuf, int tupno);
-static TgRecipe *fillTgRecipe(PortalBuffer * pbuf, int tupno);
-static void lookupEdges(TgRecipe * r, char *name);
-static void fillAllNodes(TgRecipe * r, char *name);
-static void fillAllElements(TgRecipe * r, char *name);
-static TgNode *connectTee(TgRecipe * r, TgNodePtr fromNode, TgNodePtr toNode,
-          int fromPort, int toPort);
-
-/*
- * TextArray2ArrTgString --  take a string of the form:
- *                     {"fooo", "bar", "xxxxx"} (for postgres)
- *                     and parse it into a Array of TgString's
- *
- * always returns a valid Arr_TgString.  It could be a newly initialized one with
- * zero elements
- */
-Arr_TgString *
-TextArray2ArrTgString(char *str)
-{
-   Arr_TgString *result;
-
-   char       *beginQuote;
-   char       *endQuote;
-   int         nextlen;
-   char       *word;
-
-   result = newArr_TgString();
-
-   if ((str == NULL) || (str[0] == '\0'))
-       return result;
-
-   if (*str != ARRAY_LEFT_DELIM)
-   {
-       elog(WARNING, "TextArray2ArrTgString: badly formed string, must have %c as \
-first character\n", ARRAY_LEFT_DELIM);
-       return result;
-   }
-
-   str++;                      /* skip the first { */
-   while (*str != '}')
-   {
-       if (*str == '\0')
-       {
-           elog(WARNING, "TextArray2ArrTgString: text string ended prematurely\n");
-           return result;
-       }
-
-       if ((beginQuote = strchr(str, ARRAY_ELEM_LEFT)) == NULL)
-       {
-           elog(WARNING, "textArray2ArrTgString:  missing a begin quote\n");
-           return result;
-       }
-       if ((endQuote = strchr(beginQuote + 1, '"')) == NULL)
-       {
-           elog(WARNING, "textArray2ArrTgString:  missing an end quote\n");
-           return result;
-       }
-       nextlen = endQuote - beginQuote;        /* don't subtract one here
-                                                * because we need the
-                                                * extra character for \0
-                                                * anyway */
-       word = (char *) malloc(nextlen);
-       StrNCpy(word, beginQuote + 1, nextlen);
-       addArr_TgString(result, (TgString *) & word);
-       free(word);
-       str = endQuote + 1;
-   }
-   return result;
-}
-
-/* -------------------------------------
-findElemInRecipe()
-   given an element name, find that element in the TgRecipe structure and return it.
-
-   XXX Currently, this is done by linear search.  Change to using a hash table.
--------------------------------------- */
-
-TgElement *
-findElemInRecipe(TgRecipe * r, char *elemName)
-{
-   int         i;
-   Arr_TgElementPtr *arr = r->elements;
-   TgElement  *e;
-
-   for (i = 0; i < arr->num; i++)
-   {
-       e = (TgElement *) arr->val[i];
-       if (strcmp(e->elemName, elemName) == 0)
-           return e;
-   }
-   elog(WARNING, "Element named %s not found in recipe named %s", elemName, r->elmValue.elemName);
-   return NULL;
-}
-
-/* -------------------------------------
-findNodeInRecipe()
-   given an node name, find that node in the TgRecipe structure and return it.
-
-   XXX Currently, this is done by linear search.  Change to using a hash table.
--------------------------------------- */
-
-TgNode *
-findNodeInRecipe(TgRecipe * r, char *nodeName)
-{
-   int         i;
-   Arr_TgNodePtr *arr = r->allNodes;
-   TgNode     *n;
-
-   for (i = 0; i < arr->num; i++)
-   {
-       n = (TgNode *) arr->val[i];
-       if (strcmp(n->nodeName, nodeName) == 0)
-           return n;
-   }
-   elog(WARNING, "Node named %s not found in recipe named %s", nodeName, r->elmValue.elemName);
-   return NULL;
-}
-
-
-/* -------------------------------------
-fillTgNode
-   takes a query result in the PortalBuffer containing a Node
-   and converts it to a C Node strcture.
-   The Node structure passed in is 'filled' appropriately
-
--------------------------------------- */
-
-void
-fillTgNode(TgRecipe * r, TgNode * node, PortalBuffer * pbuf, int tupno)
-{
-   char       *nodeType;
-   char       *nodeElem;
-   char       *locString;      /* ascii string rep of the point */
-   static int  attnums_initialized = 0;
-   static int  nodeName_attnum;
-   static int  nodeElem_attnum;
-   static int  nodeType_attnum;
-   static int  loc_attnum;
-   TgNodePtr   BlankNodePtr;
-   int         i;
-
-   if (!attnums_initialized)
-   {
-       /*
-        * the first time fillTgNode is called, we find out all the
-        * relevant attribute numbers in a TgNode so subsequent calls are
-        * speeded up, the assumption is that the schema won't change
-        * between calls
-        */
-       nodeName_attnum = PQfnumber(pbuf, tupno, "nodeName");
-       nodeElem_attnum = PQfnumber(pbuf, tupno, "nodeElem");
-       nodeType_attnum = PQfnumber(pbuf, tupno, "nodeType");
-       loc_attnum = PQfnumber(pbuf, tupno, "loc");
-       attnums_initialized = 1;
-   }
-   node->nodeName = PQgetAttr(pbuf, tupno, nodeName_attnum);
-   locString = PQgetvalue(pbuf, tupno, loc_attnum);
-   if (locString == NULL || locString[0] == '\0')
-   {
-       node->loc.x = 0;
-       node->loc.y = 0;        /* assign to zero for default */
-   }
-   else
-   {
-       float       x,
-                   y;
-
-       sscanf(locString, "(%f, %f)", &x, &y);
-       node->loc.x = x;
-       node->loc.y = y;
-   }
-   nodeElem = PQgetvalue(pbuf, tupno, nodeElem_attnum);
-   node->nodeElem = findElemInRecipe(r, nodeElem);
-   node->inNodes = newArr_TgNodePtr();
-   node->outNodes = newArr_TgNodePtr();
-
-   /*
-    * fill the inNodes array with as many NULL's are there are inPorts in
-    * the underlying element
-    */
-   BlankNodePtr = (TgNodePtr) NULL;
-   for (i = 0; i < node->nodeElem->inPorts->num; i++)
-       addArr_TgNodePtr(node->inNodes, &BlankNodePtr);
-
-   /*
-    * fill the outNodes array with as many NULL's are there are inPorts
-    * in the underlying element
-    */
-   for (i = 0; i < node->nodeElem->outPorts->num; i++)
-       addArr_TgNodePtr(node->outNodes, &BlankNodePtr);
-
-   nodeType = PQgetvalue(pbuf, tupno, nodeType_attnum);
-
-   if (strcmp(nodeType, "Ingred") == 0)
-       node->nodeType = TG_INGRED_NODE;
-   else if (strcmp(nodeType, "Eye") == 0)
-       node->nodeType = TG_EYE_NODE;
-   else if (strcmp(nodeType, "Recipe") == 0)
-       node->nodeType = TG_RECIPE_NODE;
-   else
-       elog(WARNING, "fillTgNode: unknown nodeType field value : %s\n", nodeType);
-
-}
-
-/* -------------------------------------
-fillTgElement
-   takes a query result in the PortalBuffer containing a Element
-   and converts it to a C TgElement strcture.
-   The TgElement structure passed in is 'filled' appropriately
-  ------------------------------------ */
-
-void
-fillTgElement(TgElement * elem, PortalBuffer * pbuf, int tupno)
-{
-   char       *srcLang,
-              *elemType;
-   static int  attnums_initialized = 0;
-   static int  elemName_attnum;
-   static int  elemType_attnum;
-   static int  inPorts_attnum;
-   static int  inTypes_attnum;
-   static int  outPorts_attnum;
-   static int  outTypes_attnum;
-   static int  doc_attnum;
-   static int  keywords_attnum;
-   static int  icon_attnum;
-   static int  srcLang_attnum;
-   static int  src_attnum;
-   static int  owner_attnum;
-
-   if (!attnums_initialized)
-   {
-       /*
-        * the first time fillTgElement is called, we find out all the
-        * relevant attribute numbers in a TgElement so subsequent calls
-        * are speeded up, the assumption is that the schema won't change
-        * between calls
-        */
-       elemName_attnum = PQfnumber(pbuf, tupno, "elemName");
-       elemType_attnum = PQfnumber(pbuf, tupno, "elemType");
-       inPorts_attnum = PQfnumber(pbuf, tupno, "inPorts");
-       inTypes_attnum = PQfnumber(pbuf, tupno, "inTypes");
-       outPorts_attnum = PQfnumber(pbuf, tupno, "outPorts");
-       outTypes_attnum = PQfnumber(pbuf, tupno, "outTypes");
-       doc_attnum = PQfnumber(pbuf, tupno, "doc");
-       keywords_attnum = PQfnumber(pbuf, tupno, "keywords");
-       icon_attnum = PQfnumber(pbuf, tupno, "icon");
-       srcLang_attnum = PQfnumber(pbuf, tupno, "srcLang");
-       src_attnum = PQfnumber(pbuf, tupno, "src");
-       attnums_initialized = 1;
-   }
-
-   elem->elemName = PQgetAttr(pbuf, tupno, elemName_attnum);
-   elem->inPorts = TextArray2ArrTgString(PQgetvalue(pbuf, tupno, inPorts_attnum));
-   elem->inTypes = TextArray2ArrTgString(PQgetvalue(pbuf, tupno, inTypes_attnum));
-   elem->outPorts = TextArray2ArrTgString(PQgetvalue(pbuf, tupno, outPorts_attnum));
-   elem->outTypes = TextArray2ArrTgString(PQgetvalue(pbuf, tupno, outTypes_attnum));
-   elem->doc = PQgetAttr(pbuf, tupno, doc_attnum);
-   elem->keywords = TextArray2ArrTgString(PQgetvalue(pbuf, tupno, keywords_attnum));
-   elem->icon = PQgetAttr(pbuf, tupno, icon_attnum);
-   elem->src = PQgetAttr(pbuf, tupno, src_attnum);
-   elem->owner = PQgetAttr(pbuf, tupno, owner_attnum);
-
-   /*
-    * we don't need to keep the value returned so use PQgetvalue()
-    * instead of PQgetAttr()
-    */
-   srcLang = PQgetvalue(pbuf, tupno, srcLang_attnum);
-
-   if (strcmp(srcLang, "SQL") == 0)
-       elem->srcLang = TG_SQL;
-   else if (strcmp(srcLang, "C") == 0)
-       elem->srcLang = TG_C;
-   else if (strcmp(srcLang, "RecipeGraph") == 0)
-       elem->srcLang = TG_RECIPE_GRAPH;
-   else if (strcmp(srcLang, "Compiled") == 0)
-       elem->srcLang = TG_COMPILED;
-   else
-       elog(WARNING, "fillTgElement(): unknown srcLang field value : %s\n", srcLang);
-
-   elemType = PQgetvalue(pbuf, tupno, elemType_attnum);
-   if (strcmp(elemType, "Ingred") == 0)
-       elem->elemType = TG_INGRED;
-   else if (strcmp(elemType, "Eye") == 0)
-       elem->elemType = TG_EYE;
-   else if (strcmp(elemType, "Recipe") == 0)
-       elem->elemType = TG_RECIPE;
-   else
-       elog(WARNING, "fillTgElement(): unknown elemType field value : %s\n", elemType);
-
-
-}
-
-/* -------------------------------------
-lookupEdges -
-   look up the edges of a recipe and fill in the inNodes
-   and outNodes of each node.
-   In the process of connecting edges, we detect tee's and create
-   teeNodes.  We add the teeNodes to the allNodes field of r as well
------------------------------------- */
-void
-lookupEdges(TgRecipe * r, char *name)
-{
-   char        qbuf[MAX_QBUF_LENGTH];
-   int         i;
-   char       *pqres;
-   char       *pbufname;
-   PortalBuffer *pbuf;
-   int         ntups;
-   int         fromNode_attnum;
-   int         fromPort_attnum;
-   int         toPort_attnum;
-   int         toNode_attnum;
-   char       *toNode,
-              *fromNode;
-   char       *toPortStr,
-              *fromPortStr;
-   int         toPort,
-               fromPort;
-
-   TgNodePtr   fromNodePtr,
-               toNodePtr;
-
-   sprintf(qbuf, Q_LOOKUP_EDGES_IN_RECIPE, name);
-   pqres = PQexec(qbuf);
-   pqres = PQexec(qbuf);
-   if (*pqres == 'R' || *pqres == 'E')
-   {
-       elog(WARNING, "lookupEdges(): Error while executing query : %s\n", qbuf);
-       elog(WARNING, "result = %s, error is %s\n", pqres, PQerrormsg);
-       return;
-   }
-   pbufname = ++pqres;
-   pbuf = PQparray(pbufname);
-   ntups = PQntuplesGroup(pbuf, 0);
-
-   if (ntups == 0)
-       return;
-
-   fromNode_attnum = PQfnumber(pbuf, 0, "fromNode");
-   fromPort_attnum = PQfnumber(pbuf, 0, "fromPort");
-   toNode_attnum = PQfnumber(pbuf, 0, "toNode");
-   toPort_attnum = PQfnumber(pbuf, 0, "toPort");
-
-   for (i = 0; i < ntups; i++)
-   {
-
-       fromNode = PQgetvalue(pbuf, i, fromNode_attnum);
-       toNode = PQgetvalue(pbuf, i, toNode_attnum);
-       fromPortStr = PQgetvalue(pbuf, i, fromPort_attnum);
-       toPortStr = PQgetvalue(pbuf, i, toPort_attnum);
-
-       if (!fromPortStr || fromPortStr[0] == '\0')
-       {
-           elog(WARNING, "lookupEdges():  SANITY CHECK failed.  Edge with invalid fromPort value!");
-           return;
-       }
-       if (!toPortStr || toPortStr[0] == '\0')
-       {
-           elog(WARNING, "lookupEdges():  SANITY CHECK failed.  Edge with invalid toPort value!!");
-           return;
-       }
-       fromPort = atoi(fromPortStr);
-       toPort = atoi(toPortStr);
-
-       fromNodePtr = findNodeInRecipe(r, fromNode);
-       if (!fromNodePtr)
-       {
-           elog(WARNING, "lookupEdges():  SANITY CHECK failed.  Edge with bad fromNode value!");
-           return;
-       }
-       toNodePtr = findNodeInRecipe(r, toNode);
-       if (!toNodePtr)
-       {
-           elog(WARNING, "lookupEdges():  SANITY CHECK failed.  Edge with bad toNode value!");
-           return;
-       }
-
-       /*
-        * check to see if the from port is already connected. if it is,
-        * then this means we should construct a Tee node
-        */
-       if (fromNodePtr->outNodes->val[fromPort - 1] != NULL)
-       {
-           TgNodePtr   tn;
-
-           tn = connectTee(r, fromNodePtr, toNodePtr, fromPort, toPort);
-           addArr_TgNodePtr(r->allNodes, &tn);
-       }
-       else
-       {
-           fromNodePtr->outNodes->val[fromPort - 1] = toNodePtr;
-           toNodePtr->inNodes->val[toPort - 1] = fromNodePtr;
-       }
-   }
-
-   PQclear(pbufname);
-}
-
-/*
-   handle tee connections here
-   Everytime an output port is connected multiply,
-   we explicitly insert TgTeeNode
-
-   returns the teeNode created
-*/
-static TgNode *
-connectTee(TgRecipe * r, TgNodePtr fromNode, TgNodePtr toNode,
-          int fromPort, int toPort)
-{
-   TgNodePtr   origToNode;
-   TgNodePtr   tn;
-   TgNodePtr   BlankNodePtr;
-   int         origToPort;
-   int         i;
-
-   /* the toNode formerly pointed to */
-   origToNode = fromNode->outNodes->val[fromPort - 1];
-
-   if (origToNode == NULL)
-   {
-       elog(WARNING, "Internal Error: connectTee() called with a null origToNode");
-       return;
-   }
-
-   for (i = 0; i < origToNode->inNodes->num; i++)
-   {
-       if (origToNode->inNodes->val[i] == fromNode)
-           break;
-   }
-
-   /* the inport of the former toNode  */
-   /* ports start with 1, array indices start from 0 */
-   origToPort = i + 1;
-
-   /* add a tee node now. */
-   tn = malloc(sizeof(TgNode));
-   /* generate a name for the tee node table */
-   tn->nodeName = malloc(50);
-   sprintf(tn->nodeName, "tee_%u", newoid());
-/*   tn->nodeName = NULL; */
-
-   tn->nodeType = TG_TEE_NODE;
-   tn->nodeElem = NULL;
-   tn->inNodes = newArr_TgNodePtr();
-   tn->outNodes = newArr_TgNodePtr();
-
-   BlankNodePtr = (TgNodePtr) NULL;
-   /* each TgTeeNode has one input and two outputs, NULL them initiallly */
-   addArr_TgNodePtr(tn->inNodes, &BlankNodePtr);
-   addArr_TgNodePtr(tn->outNodes, &BlankNodePtr);
-   addArr_TgNodePtr(tn->outNodes, &BlankNodePtr);
-
-   /*
-    * make the old toNode the left parent of the tee node add the new
-    * toNode as the right parent of the tee node
-    */
-   tn->outNodes->val[0] = origToNode;
-   origToNode->inNodes->val[origToPort - 1] = tn;
-
-   tn->outNodes->val[1] = toNode;
-   toNode->inNodes->val[toPort - 1] = tn;
-
-   /* connect the fromNode to the new tee node */
-   fromNode->outNodes->val[fromPort - 1] = tn;
-   tn->inNodes->val[0] = fromNode;
-
-   return tn;
-}
-
-/* -------------------------------------
-fillAllNodes
-   fill out the nodes of a recipe
-  ------------------------------------ */
-void
-fillAllNodes(TgRecipe * r, char *name)
-{
-   char        qbuf[MAX_QBUF_LENGTH];
-   int         i;
-   char       *pqres;
-   char       *pbufname;
-   PortalBuffer *pbuf;
-   int         ntups;
-   TgElement  *elem;
-   TgNode     *node;
-
-   /* 1) fill out the elements that are in the recipe */
-   sprintf(qbuf, Q_RETRIEVE_ELEMENTS_IN_RECIPE, name);
-   pqres = PQexec(qbuf);
-   if (*pqres == 'R' || *pqres == 'E')
-   {
-       elog(WARNING, "fillAllNodes(): Error while executing query : %s\n", qbuf);
-       elog(WARNING, "result = %s, error is %s\n", pqres, PQerrormsg);
-       return;
-   }
-   pbufname = ++pqres;
-   pbuf = PQparray(pbufname);
-   ntups = PQntuplesGroup(pbuf, 0);
-   for (i = 0; i < ntups; i++)
-   {
-       elem = malloc(sizeof(TgElement));
-       fillTgElement(elem, pbuf, i);
-       addArr_TgElementPtr(r->elements, &elem);
-   }
-   PQclear(pbufname);
-
-   sprintf(qbuf, Q_RETRIEVE_NODES_IN_RECIPE, name);
-   pqres = PQexec(qbuf);
-   if (*pqres == 'R' || *pqres == 'E')
-   {
-       elog(WARNING, "fillAllNodes(): Error while executing query : %s\n", qbuf);
-       elog(WARNING, "result = %s, error is %s\n", pqres, PQerrormsg);
-       return;
-   }
-   pbufname = ++pqres;
-   pbuf = PQparray(pbufname);
-   ntups = PQntuplesGroup(pbuf, 0);
-   for (i = 0; i < ntups; i++)
-   {
-       node = malloc(sizeof(TgNode));
-       fillTgNode(r, node, pbuf, i);
-       addArr_TgNodePtr(r->allNodes, &node);
-   }
-   PQclear(pbufname);
-
-}
-
-
-/* -------------------------------------
-fillAllElements
-   fill out the elements of a recipe
-  ------------------------------------ */
-void
-fillAllElements(TgRecipe * r, char *name)
-{
-   char        qbuf[MAX_QBUF_LENGTH];
-   int         i;
-   char       *pqres;
-   char       *pbufname;
-   PortalBuffer *pbuf;
-   int         ntups;
-   TgElement  *elem;
-
-   sprintf(qbuf, Q_RETRIEVE_ELEMENTS_IN_RECIPE, name);
-   pqres = PQexec(qbuf);
-   if (*pqres == 'R' || *pqres == 'E')
-   {
-       elog(WARNING, "fillAllElements(): Error while executing query : %s\n", qbuf);
-       elog(WARNING, "result = %s, error is %s\n", pqres, PQerrormsg);
-       return;
-   }
-   pbufname = ++pqres;
-   pbuf = PQparray(pbufname);
-   ntups = PQntuplesGroup(pbuf, 0);
-   for (i = 0; i < ntups; i++)
-   {
-       elem = malloc(sizeof(TgElement));
-       fillTgElement(elem, pbuf, i);
-       addArr_TgElementPtr(r->elements, &elem);
-   }
-   PQclear(pbufname);
-
-}
-
-
-/* -------------------------------------
-fillTgRecipe
-   takes a query result in the PortalBuffer containing a Recipe
-   and converts it to a C TgRecipe strcture
-  ------------------------------------ */
-TgRecipe *
-fillTgRecipe(PortalBuffer * pbuf, int tupno)
-{
-   TgRecipe   *r;
-   int         i,
-               j;
-
-   /* 1) set up the recipe structure */
-   r = (TgRecipe *) malloc(sizeof(TgRecipe));
-   fillTgElement(&r->elmValue, pbuf, 0);
-   r->elmValue.elemType = TG_RECIPE;
-   r->allNodes = newArr_TgNodePtr();
-   r->rootNodes = newArr_TgNodePtr();
-   r->eyes = newArr_TgNodePtr();
-   r->tees = newArr_TgNodePtr();
-   r->elements = newArr_TgElementPtr();
-
-   /*
-    * 2) find all the elements. There may be less elements than nodes
-    * because you can have multiple instantiations of an element in a
-    * recipe
-    */
-   fillAllElements(r, r->elmValue.elemName);
-
-   /* 3) find all the nodes in the recipe */
-   fillAllNodes(r, r->elmValue.elemName);
-
-   /*
-    * 4) find all the edges, and connect the nodes, may also add tee
-    * nodes to the allNodes field
-    */
-   lookupEdges(r, r->elmValue.elemName);
-
-   /* 5) find all the rootNodes in the recipe */
-
-   /*
-    * root nodes are nodes with no incoming nodes or whose incoming nodes
-    * are all null
-    */
-   /* 6) find all the eyes in the recipe */
-   /* eye nodes are nodes with the node type TG_EYE_NODE */
-   /* 7) find all the tee nodes in the recipe */
-   /* tee nodes are nodes with the node type TG_TEE_NODE */
-   for (i = 0; i < r->allNodes->num; i++)
-   {
-       TgNode     *nptr = r->allNodes->val[i];
-
-       if (nptr->nodeType == TG_EYE_NODE)
-           addArr_TgNodePtr(r->eyes, &nptr);
-       else if (nptr->nodeType == TG_TEE_NODE)
-           addArr_TgNodePtr(r->tees, &nptr);
-
-       if (nptr->inNodes->num == 0)
-           addArr_TgNodePtr(r->rootNodes, &nptr);
-       else
-       {
-           for (j = 0;
-              j < nptr->inNodes->num && (nptr->inNodes->val[j] == NULL);
-                j++);
-           if (j == nptr->inNodes->num)
-               addArr_TgNodePtr(r->rootNodes, &nptr);
-       }
-   }
-
-   return r;
-
-}
-
-
-/* -------------------------------------
-retrieveRecipe
-   find the recipe with the given name
-  ------------------------------------ */
-TgRecipe *
-retrieveRecipe(char *name)
-{
-   char        qbuf[MAX_QBUF_LENGTH];
-   TgRecipe   *recipe;
-   char       *pqres;
-   char       *pbufname;
-   PortalBuffer *pbuf;
-   int         ntups;
-
-   sprintf(qbuf, Q_RETRIEVE_RECIPE_BYNAME, name);
-
-   pqres = PQexec(qbuf);
-   if (*pqres == 'R' || *pqres == 'E')
-   {
-       elog(WARNING, "retrieveRecipe: Error while executing query : %s\n", qbuf);
-       elog(WARNING, "result = %s, error is %s\n", pqres, PQerrormsg);
-       return NULL;
-   }
-   pbufname = ++pqres;
-   pbuf = PQparray(pbufname);
-   ntups = PQntuplesGroup(pbuf, 0);
-   if (ntups == 0)
-   {
-       elog(WARNING, "retrieveRecipe():  No recipe named %s exists\n", name);
-       return NULL;
-   }
-   if (ntups != 1)
-   {
-       elog(WARNING, "retrieveRecipe():  Multiple (%d) recipes named %s exists\n", ntups, name);
-       return NULL;
-   }
-
-   recipe = fillTgRecipe(pbuf, 0);
-
-   PQclear(pbufname);
-   return recipe;
-
-}
-
-/* -------------------- copyXXX functions ----------------------- */
-void
-copyTgElementPtr(TgElementPtr * from, TgElementPtr * to)
-{
-   *to = *from;
-}
-
-void
-copyTgNodePtr(TgNodePtr * from, TgNodePtr * to)
-{
-   *to = *from;
-}
-
-void
-copyTgRecipePtr(TgRecipePtr * from, TgRecipePtr * to)
-{
-   *to = *from;
-}
-
-void
-copyTgString(TgString * from, TgString * to)
-{
-   TgString    fromTgString = *from;
-   TgString    toTgString;
-
-   toTgString = (TgString) malloc(strlen(fromTgString) + 1);
-   strcpy(toTgString, fromTgString);
-   *to = toTgString;
-}
diff --git a/src/backend/tioga/tgRecipe.h b/src/backend/tioga/tgRecipe.h
deleted file mode 100644 (file)
index f2732f7..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-/*-------------------------------------------------------------------------
- *
- * tgRecipe.h
- *     Tioga recipe-related definitions and declarations
- *     these functions can be used in both the frontend and the
- *     backend
- *
- *    to use this header, you must also include
- *         "utils/geo-decls.h"
- *     and "libpq/libpq.h"
- *
- * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
- * Portions Copyright (c) 1994, Regents of the University of California
- *
- * $Id: tgRecipe.h,v 1.23 2002/06/20 20:29:36 momjian Exp $
- *
- *-------------------------------------------------------------------------
- */
-
-#include "libpq/libpq.h"
-#ifndef TIOGA_FRONTEND
-#include "libpq/libpq-be.h"
-#include "utils/geo-decls.h"
-#else
-#include "libpq-fe.h"
-typedef struct
-{
-   double      x,
-               y;
-} Point;                       /* this should match whatever is in
-
-                                *
-                                *
-                                *
-                                * geo-decls.h */
-#endif   /* TIOGA_FRONTEND */
-
-typedef enum
-{
-   TG_INGRED,
-   TG_EYE,
-   TG_RECIPE
-}  TgElemType;
-
-typedef enum
-{
-   TG_SQL,
-   TG_C,
-   TG_RECIPE_GRAPH,
-   TG_COMPILED
-}  TgSrcLangType;
-
-typedef enum
-{
-   TG_INGRED_NODE,
-   TG_EYE_NODE,
-   TG_RECIPE_NODE,
-   TG_TEE_NODE                 /* tee nodes are not stored in the db we
-                                * create them when we read the recipe
-                                * back */
-}  TgNodeType;
-
-/* -- type definition for setting up in memory Tioga recipe structure -- */
-/* -- see 'recipe-schema.sql' for their corresponding database types  -- */
-
-typedef char *TgString;
-
-typedef struct _tgelement *TgElementPtr;
-typedef struct _tgnode *TgNodePtr;
-typedef struct _tgrecipe *TgRecipePtr;
-
-/* auto-generated header containing Arr_TgString, Arr_TgElementPtr,
-   and Arr_TgNodePtr */
-#include "tioga/Arr_TgRecipe.h"
-
-/* C structure representation of a Tioga Element */
-typedef struct _tgelement
-{
-   char       *elemName;       /* name of function this element represent */
-   TgElemType  elemType;       /* type of this element */
-   Arr_TgString *inPorts;      /* names of inputs */
-   Arr_TgString *inTypes;      /* name of input types */
-   Arr_TgString *outPorts;     /* type of output */
-   Arr_TgString *outTypes;     /* name of output types */
-   char       *doc;            /* description  of this element */
-   Arr_TgString *keywords;     /* keywords used to search for this
-                                * element */
-   char       *icon;           /* iconic representation */
-   char       *src;            /* source code for this element */
-   TgSrcLangType srcLang;      /* source language */
-   char       *owner;          /* owner recipe name */
-}  TgElement;
-
-
-/* C structure representation of a Tioga Node */
-typedef struct _tgnode
-{
-   char       *nodeName;       /* name of this node */
-   TgNodeType  nodeType;       /* type of this node */
-   Point       loc;            /* screen location of the node. */
-   TgElement  *nodeElem;       /* the underlying element of this node */
-   Arr_TgNodePtr *inNodes;     /* variable array of in node pointers a
-                                * NULL TgNodePtr indicates a run-time
-                                * parameter */
-   Arr_TgNodePtr *outNodes;    /* variable array of out node pointers. */
-}  TgNode;
-
-/* C structure representation of a Tioga Recipe */
-typedef struct _tgrecipe
-{
-   TgElement   elmValue;       /* "inherits" TgElement attributes. */
-   Arr_TgNodePtr *allNodes;    /* array of all nodes for this recipe. */
-   Arr_TgNodePtr *rootNodes;   /* array of root nodes for this recipe.
-                                * root nodes are nodes with no parents */
-   Arr_TgNodePtr *eyes;        /* array of pointers for the browser nodes
-                                * recipe, execution of recipe starts by
-                                * traversing the recipe C structure from
-                                * the eye nodes pointed by these
-                                * pointers. */
-   Arr_TgNodePtr *tees;        /* array of pointers of all the tee nodes */
-   Arr_TgElementPtr *elements; /* array of all the elements in this
-                                * recipe, elements may be shared by
-                                * multiple nodes */
-
-}  TgRecipe;
-
-/* functions defined in tgRecipe.c */
-extern TgRecipe *retrieveRecipe(char *name);
-extern TgElement *findElemInRecipe(TgRecipe * r, char *elemName);
-extern TgNode *findNodeInRecipe(TgRecipe * r, char *nodeName);
-
-/* ---- copyXXX functions ---- */
-extern void copyTgElementPtr(TgElementPtr *, TgElementPtr *);
-extern void copyTgNodePtr(TgNodePtr *, TgNodePtr *);
-extern void copyTgRecipePtr(TgRecipePtr *, TgRecipePtr *);
-extern void copyTgString(TgString *, TgString *);