diff --git a/src/tutorial/Makefile b/src/tutorial/Makefile index 5302c9cc39..acd6311727 100644 --- a/src/tutorial/Makefile +++ b/src/tutorial/Makefile @@ -4,7 +4,7 @@ # Makefile for tutorial # # IDENTIFICATION -# $Header: /cvsroot/pgsql/src/tutorial/Makefile,v 1.7 1998/02/28 23:37:07 scrappy Exp $ +# $Header: /cvsroot/pgsql/src/tutorial/Makefile,v 1.8 1998/03/01 04:52:55 scrappy Exp $ # #------------------------------------------------------------------------- @@ -29,16 +29,7 @@ DLOBJS= complex$(DLSUFFIX) funcs$(DLSUFFIX) QUERIES= advanced.sql basics.sql complex.sql funcs.sql syscat.sql -INFILES= $(DLOBJS) - -# -# plus exports files -# -ifdef EXPSUFF -INFILES+= $(DLOBJS:.o=$(EXPSUFF)) -endif - -all: $(QUERIES) +all: $(DLOBJS) $(QUERIES) %.sql: %.source if [ -z "$$USER" ]; then USER=$$LOGNAME; fi; \ @@ -51,12 +42,7 @@ all: $(QUERIES) -e "s:_DLSUFFIX_:$(DLSUFFIX):g" \ -e "s/_USER_/$$USER/g" < $< > $@ -funcs.sql: $(INFILES) - -$(INFILES): - $(MAKE) -C C-code $@ - cp C-code/$@ . +funcs.sql: $(DLOBJS) clean: - $(MAKE) -C C-code clean - rm -f $(QUERIES) $(INFILES) + rm -f $(DLOBJS) $(QUERIES) diff --git a/src/tutorial/README b/src/tutorial/README index b35f7b2b07..9115c3d9db 100644 --- a/src/tutorial/README +++ b/src/tutorial/README @@ -4,13 +4,11 @@ to compile all the scripts and C files for the user-defined functions and types. (make needs to be GNU make and may be named something different on your system) -Then, change to the object directory - % cd obj - -and run psql with the -s flag: +Then, run psql with the -s flag: % psql -s -Welcome to the POSTGRES95 interactive sql monitor: +Welcome to the POSTGRESQL interactive sql monitor: + Please read the file COPYRIGHT for copyright terms of POSTGRESQL type \? for help on slash commands type \q to quit diff --git a/src/tutorial/complex.c b/src/tutorial/complex.c index e5bea2d113..bf8b09eb17 100644 --- a/src/tutorial/complex.c +++ b/src/tutorial/complex.c @@ -8,8 +8,6 @@ /* do not include libpq-fe.h for backend-loaded functions*/ /* #include "libpq-fe.h" */ #include "postgres.h" -#include "utils/elog.h" -#include "utils/palloc.h" #include "utils/mcxt.h" typedef struct Complex diff --git a/src/tutorial/complex.source b/src/tutorial/complex.source index 05ca6728ae..bae3192198 100644 --- a/src/tutorial/complex.source +++ b/src/tutorial/complex.source @@ -7,7 +7,7 @@ -- -- Copyright (c) 1994, Regents of the University of California -- --- $Id: complex.source,v 1.3 1998/02/28 23:37:09 scrappy Exp $ +-- $Id: complex.source,v 1.4 1998/03/01 04:52:59 scrappy Exp $ -- --------------------------------------------------------------------------- @@ -19,7 +19,7 @@ ----------------------------- -- Assume the user defined functions are in _OBJWD_/complex.so --- Look at $PWD/C-code/complex.c for the source. +-- Look at $PWD/complex.c for the source. -- the input function 'complex_in' takes a null-terminated string (the -- textual representation of the type) and turns it into the internal @@ -77,7 +77,7 @@ SELECT * FROM test_complex; -- arguments.) ----------------------------- --- first, define a function complex_add (also in C-code/complex.c) +-- first, define a function complex_add (also in complex.c) CREATE FUNCTION complex_add(complex, complex) RETURNS complex AS '_OBJWD_/complex.so' @@ -224,8 +224,6 @@ INSERT INTO pg_amop (amopid, amopclaid, amopopr, amopstrategy, WHERE amname = 'btree' and opcname = 'complex_abs_ops' and c.oprname = '>'; -DROP table complex_ops_tmp; - -- CREATE FUNCTION complex_abs_cmp(complex, complex) RETURNS int4 AS '_OBJWD_/complex.so' LANGUAGE 'c'; @@ -251,6 +249,50 @@ SELECT * from test_complex where a = '(56.0,-22.5)'; SELECT * from test_complex where a < '(56.0,-22.5)'; SELECT * from test_complex where a > '(56.0,-22.5)'; +DELETE FROM pg_amop where (amopid, amopclaid, amopopr, amopstrategy) + = ( + SELECT am.oid, opcl.oid, c.opoid, 1 + FROM pg_am am, pg_opclass opcl, complex_ops_tmp c + WHERE amname = 'btree' and opcname = 'complex_abs_ops' + and c.oprname = '<'); + +DELETE FROM pg_amop where (amopid, amopclaid, amopopr, amopstrategy) + = ( + SELECT am.oid, opcl.oid, c.opoid, 2 + FROM pg_am am, pg_opclass opcl, complex_ops_tmp c + WHERE amname = 'btree' and opcname = 'complex_abs_ops' + and c.oprname = '<='); + +DELETE FROM pg_amop where (amopid, amopclaid, amopopr, amopstrategy) + = ( + SELECT am.oid, opcl.oid, c.opoid, 3 + FROM pg_am am, pg_opclass opcl, complex_ops_tmp c + WHERE amname = 'btree' and opcname = 'complex_abs_ops' + and c.oprname = '='); + +DELETE FROM pg_amop where (amopid, amopclaid, amopopr, amopstrategy) + = ( + SELECT am.oid, opcl.oid, c.opoid, 4 + FROM pg_am am, pg_opclass opcl, complex_ops_tmp c + WHERE amname = 'btree' and opcname = 'complex_abs_ops' + and c.oprname = '>='); + +DELETE FROM pg_amop where (amopid, amopclaid, amopopr, amopstrategy) + = ( + SELECT am.oid, opcl.oid, c.opoid, 5 + FROM pg_am am, pg_opclass opcl, complex_ops_tmp c + WHERE amname = 'btree' and opcname = 'complex_abs_ops' + and c.oprname = '>'); + +DELETE FROM pg_amproc where (amid, amopclaid, amproc, amprocnum) + = ( + SELECT am.oid, opcl.oid, pro.oid, 1 + FROM pg_am am, pg_opclass opcl, pg_proc pro + WHERE amname = 'btree' and opcname = 'complex_abs_ops' + and proname = 'complex_abs_cmp'); + +DELETE FROM pg_opclass WHERE opcname = 'complex_abs_ops'; + DROP FUNCTION complex_in(opaque); DROP FUNCTION complex_out(opaque); DROP FUNCTION complex_add(complex, complex); @@ -268,4 +310,4 @@ DROP OPERATOR >= (complex, complex); DROP OPERATOR > (complex, complex); DROP AGGREGATE complex_sum complex; DROP TYPE complex; -DROP TABLE test_complex; +DROP TABLE test_complex, complex_ops_tmp;