OSDN Git Service

Missed a few files that were added with the lib/modules patch...
authorMarc G. Fournier <scrappy@hub.org>
Wed, 22 Apr 1998 04:20:55 +0000 (04:20 +0000)
committerMarc G. Fournier <scrappy@hub.org>
Wed, 22 Apr 1998 04:20:55 +0000 (04:20 +0000)
contrib/ip_and_mac/ip.sql.in [new file with mode: 0644]
contrib/ip_and_mac/mac.sql.in [new file with mode: 0644]
contrib/soundex/Makefile [new file with mode: 0644]
contrib/soundex/soundex.sql.in [new file with mode: 0644]

diff --git a/contrib/ip_and_mac/ip.sql.in b/contrib/ip_and_mac/ip.sql.in
new file mode 100644 (file)
index 0000000..1b21507
--- /dev/null
@@ -0,0 +1,131 @@
+--
+--     PostgreSQL code for IP addresses.
+--
+--     $Id: ip.sql.in,v 1.1 1998/04/22 04:20:30 scrappy Exp $
+--
+
+load '_OBJWD_/ip_DLSUFFIX_';
+
+--
+--     Input and output functions and the type itself:
+--
+
+create function ipaddr_in(opaque)
+       returns opaque
+       as '_OBJWD_/ip_DLSUFFIX_'
+       language 'c';
+
+create function ipaddr_out(opaque)
+       returns opaque
+       as '_OBJWD_/ip_DLSUFFIX_'
+       language 'c';
+
+create type ipaddr (
+       internallength = 6,
+       externallength = variable,
+       input = ipaddr_in,
+       output = ipaddr_out
+);
+
+--
+--     The various boolean tests:
+--
+
+create function ipaddr_lt(ipaddr, ipaddr)
+       returns bool
+       as '_OBJWD_/ip_DLSUFFIX_'
+       language 'c';
+
+create function ipaddr_le(ipaddr, ipaddr)
+       returns bool
+       as '_OBJWD_/ip_DLSUFFIX_'
+       language 'c';
+
+create function ipaddr_eq(ipaddr, ipaddr)
+       returns bool
+       as '_OBJWD_/ip_DLSUFFIX_'
+       language 'c';
+
+create function ipaddr_ge(ipaddr, ipaddr)
+       returns bool
+       as '_OBJWD_/ip_DLSUFFIX_'
+       language 'c';
+
+create function ipaddr_gt(ipaddr, ipaddr)
+       returns bool
+       as '_OBJWD_/ip_DLSUFFIX_'
+       language 'c';
+
+create function ipaddr_ne(ipaddr, ipaddr)
+       returns bool
+       as '_OBJWD_/ip_DLSUFFIX_'
+       language 'c';
+
+create function ipaddr_in_net(ipaddr, ipaddr)
+       returns bool
+       as '_OBJWD_/ip_DLSUFFIX_'
+       language 'c';
+
+create function ipaddr_mask(ipaddr)
+       returns ipaddr
+       as '_OBJWD_/ip_DLSUFFIX_'
+       language 'c';
+
+create function ipaddr_bcast(ipaddr)
+       returns ipaddr
+       as '_OBJWD_/ip_DLSUFFIX_'
+       language 'c';
+
+--
+--     Now the operators.  Note how some of the parameters to some
+--     of the 'create operator' commands are commented out.  This
+--     is because they reference as yet undefined operators, and
+--     will be implicitly defined when those are, further down.
+--
+
+create operator < (
+       leftarg = ipaddr,
+       rightarg = ipaddr,
+--     negator = >=,
+       procedure = ipaddr_lt
+);
+
+create operator <= (
+       leftarg = ipaddr,
+       rightarg = ipaddr,
+--     negator = >,
+       procedure = ipaddr_le
+);
+
+create operator = (
+       leftarg = ipaddr,
+       rightarg = ipaddr,
+       commutator = =,
+--     negator = <>,
+       procedure = ipaddr_eq
+);
+
+create operator >= (
+       leftarg = ipaddr,
+       rightarg = ipaddr,
+       negator = <,
+       procedure = ipaddr_ge
+);
+
+create operator > (
+       leftarg = ipaddr,
+       rightarg = ipaddr,
+       negator = <=,
+       procedure = ipaddr_gt
+);
+
+create operator <> (
+       leftarg = ipaddr,
+       rightarg = ipaddr,
+       negator = =,
+       procedure = ipaddr_ne
+);
+
+--
+--     eof
+--
diff --git a/contrib/ip_and_mac/mac.sql.in b/contrib/ip_and_mac/mac.sql.in
new file mode 100644 (file)
index 0000000..3abbc37
--- /dev/null
@@ -0,0 +1,125 @@
+--
+--     PostgreSQL code for MAC addresses.
+--
+--     $Id: mac.sql.in,v 1.1 1998/04/22 04:20:36 scrappy Exp $
+--
+
+load '_OBJWD_/mac_DLSUFFIX_';
+
+--
+--     Input and output functions and the type itself:
+--
+
+create function macaddr_in(opaque)
+       returns opaque
+       as '_OBJWD_/mac_DLSUFFIX_'
+       language 'c';
+
+create function macaddr_out(opaque)
+       returns opaque
+       as '_OBJWD_/mac_DLSUFFIX_'
+       language 'c';
+
+create type macaddr (
+       internallength = 6,
+       externallength = variable,
+       input = macaddr_in,
+       output = macaddr_out
+);
+
+--
+--     The boolean tests:
+--
+
+create function macaddr_lt(macaddr, macaddr)
+       returns bool
+       as '_OBJWD_/mac_DLSUFFIX_'
+       language 'c';
+
+create function macaddr_le(macaddr, macaddr)
+       returns bool
+       as '_OBJWD_/mac_DLSUFFIX_'
+       language 'c';
+
+create function macaddr_eq(macaddr, macaddr)
+       returns bool
+       as '_OBJWD_/mac_DLSUFFIX_'
+       language 'c';
+
+create function macaddr_ge(macaddr, macaddr)
+       returns bool
+       as '_OBJWD_/mac_DLSUFFIX_'
+       language 'c';
+
+create function macaddr_gt(macaddr, macaddr)
+       returns bool
+       as '_OBJWD_/mac_DLSUFFIX_'
+       language 'c';
+
+create function macaddr_ne(macaddr, macaddr)
+       returns bool
+       as '_OBJWD_/mac_DLSUFFIX_'
+       language 'c';
+
+--
+--     Now the operators.  Note how some of the parameters to some
+--     of the 'create operator' commands are commented out.  This
+--     is because they reference as yet undefined operators, and
+--     will be implicitly defined when those are, further down.
+--
+
+create operator < (
+       leftarg = macaddr,
+       rightarg = macaddr,
+--     negator = >=,
+       procedure = macaddr_lt
+);
+
+create operator <= (
+       leftarg = macaddr,
+       rightarg = macaddr,
+--     negator = >,
+       procedure = macaddr_le
+);
+
+create operator = (
+       leftarg = macaddr,
+       rightarg = macaddr,
+       commutator = =,
+--     negator = <>,
+       procedure = macaddr_eq
+);
+
+create operator >= (
+       leftarg = macaddr,
+       rightarg = macaddr,
+       negator = <,
+       procedure = macaddr_ge
+);
+
+create operator > (
+       leftarg = macaddr,
+       rightarg = macaddr,
+       negator = <=,
+       procedure = macaddr_gt
+);
+
+create operator <> (
+       leftarg = macaddr,
+       rightarg = macaddr,
+       negator = =,
+       procedure = macaddr_ne
+);
+
+--
+--     Finally, the special manufacurer matching function:
+--
+
+create function macaddr_manuf(macaddr)
+       returns text
+       as '_OBJWD_/mac_DLSUFFIX_'
+       language 'c';
+
+--
+--     eof
+--
diff --git a/contrib/soundex/Makefile b/contrib/soundex/Makefile
new file mode 100644 (file)
index 0000000..d95549d
--- /dev/null
@@ -0,0 +1,63 @@
+#-------------------------------------------------------------------------
+#
+# Makefile--
+#    Makefile for soundex
+#
+#-------------------------------------------------------------------------
+
+PGDIR = ../..
+SRCDIR = $(PGDIR)/src
+
+include $(SRCDIR)/Makefile.global
+
+INCLUDE_OPT =  -I ./ \
+               -I $(SRCDIR)/ \
+               -I $(SRCDIR)/include \
+               -I $(SRCDIR)/interfaces/libpq \
+               -I $(SRCDIR)/port/$(PORTNAME)
+
+CFLAGS += $(INCLUDE_OPT)
+
+ifeq ($(PORTNAME), linux)
+  ifdef LINUX_ELF
+    ifeq ($(CC), gcc)
+      CFLAGS += -fPIC
+    endif
+  endif
+endif
+
+ifeq ($(PORTNAME), i386_solaris)
+  CFLAGS+= -fPIC
+endif
+
+MODNAME =      soundex
+
+MODULE =       $(MODNAME)$(DLSUFFIX)
+
+all:           module sql
+
+module:                $(MODULE)
+
+sql:           $(MODNAME).sql
+
+install:       $(MODULE)
+               cp -p $(MODULE) $(LIBDIR)/modules
+               cd $(LIBDIR)/modules; strip $(MODULE)
+
+%.sql: %.sql.in
+               sed "s|MODULE_PATHNAME|$(LIBDIR)/modules/$(MODULE)|" < $< > $@
+
+.SUFFIXES: $(DLSUFFIX)
+
+%$(DLSUFFIX): %.c
+               $(CC) $(CFLAGS) -shared -o $@ $<
+
+depend dep:
+               $(CC) -MM $(INCLUDE_OPT) *.c >depend
+
+clean:
+               rm -f $(MODULE) $(MODNAME).sql
+
+ifeq (depend,$(wildcard depend))
+include depend
+endif
diff --git a/contrib/soundex/soundex.sql.in b/contrib/soundex/soundex.sql.in
new file mode 100644 (file)
index 0000000..89b9fa5
--- /dev/null
@@ -0,0 +1,57 @@
+--------------- soundex.sql:
+
+CREATE FUNCTION text_soundex(text) RETURNS text
+   AS '_OBJWD_/soundex.so' LANGUAGE 'c';
+
+SELECT text_soundex('hello world!');
+
+CREATE TABLE s (nm text)\g
+
+insert into s values ('john')\g
+insert into s values ('joan')\g
+insert into s values ('wobbly')\g
+
+select * from s
+where text_soundex(nm) = text_soundex('john')\g
+
+select nm from s a, s b
+where text_soundex(a.nm) = text_soundex(b.nm)
+and a.oid <> b.oid\g
+
+CREATE FUNCTION text_sx_eq(text, text) RETURNS bool AS
+'select text_soundex($1) = text_soundex($2)'
+LANGUAGE 'sql'\g
+
+CREATE FUNCTION text_sx_lt(text,text) RETURNS bool AS
+'select text_soundex($1) < text_soundex($2)'
+LANGUAGE 'sql'\g
+
+CREATE FUNCTION text_sx_gt(text,text) RETURNS bool AS
+'select text_soundex($1) > text_soundex($2)'
+LANGUAGE 'sql';
+
+CREATE FUNCTION text_sx_le(text,text) RETURNS bool AS
+'select text_soundex($1) <= text_soundex($2)'
+LANGUAGE 'sql';
+
+CREATE FUNCTION text_sx_ge(text,text) RETURNS bool AS
+'select text_soundex($1) >= text_soundex($2)'
+LANGUAGE 'sql';
+
+CREATE FUNCTION text_sx_ne(text,text) RETURNS bool AS
+'select text_soundex($1) <> text_soundex($2)'
+LANGUAGE 'sql';
+
+DROP OPERATOR #= (text,text)\g
+
+CREATE OPERATOR #= (leftarg=text, rightarg=text, procedure=text_sx_eq,
+commutator=text_sx_eq)\g
+
+SELECT *
+FROM s
+WHERE text_sx_eq(nm,'john')\g
+
+SELECT *
+from s
+where s.nm #= 'john';
+