diff --git a/src/backend/access/common/tupdesc.c b/src/backend/access/common/tupdesc.c index 719fe3528f4061e2ca06c6b3179652d39b12e072..968846385f140777ebd99a8e1496f5646b1cf740 100644 --- a/src/backend/access/common/tupdesc.c +++ b/src/backend/access/common/tupdesc.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/common/tupdesc.c,v 1.37 1998/03/30 17:22:05 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/common/tupdesc.c,v 1.38 1998/04/07 18:09:44 momjian Exp $ * * NOTES * some of the executor utility code such as "ExecTypeFromTL" should be @@ -317,7 +317,7 @@ TupleDescInitEntry(TupleDesc desc, * * Note: in the special case of * - * create EMP (name = text, manager = EMP) + * create EMP (name = char16, manager = EMP) * * RelationNameCreateHeapRelation() calls BuildDesc() which * calls this routine and since EMP does not exist yet, the diff --git a/src/backend/access/hash/hashfunc.c b/src/backend/access/hash/hashfunc.c index 37b7722b8c1d5ea5af44df4fbf1c090f68dad4d7..cef3a087e9510b3aa442cf9b34df1d45a0053fb0 100644 --- a/src/backend/access/hash/hashfunc.c +++ b/src/backend/access/hash/hashfunc.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/hash/hashfunc.c,v 1.7 1998/03/30 17:22:08 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/hash/hashfunc.c,v 1.8 1998/04/07 18:09:46 momjian Exp $ * * NOTES * These functions are stored in pg_amproc. For each operator class @@ -133,8 +133,6 @@ hashoid(Oid key) return ((uint32) ~key); } -#define PRIME1 37 -#define PRIME2 1048583 uint32 hashchar(char key) @@ -142,8 +140,12 @@ hashchar(char key) int len; uint32 h; - h = 0; len = sizeof(char); + +#define PRIME1 37 +#define PRIME2 1048583 + + h = 0; /* Convert char to integer */ h = h * PRIME1 ^ (key - ' '); h %= PRIME2; @@ -151,6 +153,55 @@ hashchar(char key) return (h); } +uint32 +hashchar2(uint16 intkey) +{ + uint32 h; + int len; + char *key = (char *) &intkey; + + h = 0; + len = sizeof(uint16); + /* Convert string to integer */ + while (len--) + h = h * PRIME1 ^ (*key++ - ' '); + h %= PRIME2; + + return (h); +} + +uint32 +hashchar4(uint32 intkey) +{ + uint32 h; + int len; + char *key = (char *) &intkey; + + h = 0; + len = sizeof(uint32); + /* Convert string to integer */ + while (len--) + h = h * PRIME1 ^ (*key++ - ' '); + h %= PRIME2; + + return (h); +} + +uint32 +hashchar8(char *key) +{ + uint32 h; + int len; + + h = 0; + len = sizeof(char8); + /* Convert string to integer */ + while (len--) + h = h * PRIME1 ^ (*key++ - ' '); + h %= PRIME2; + + return (h); +} uint32 hashname(NameData *n) @@ -172,6 +223,22 @@ hashname(NameData *n) } +uint32 +hashchar16(char *key) +{ + uint32 h; + int len; + + h = 0; + len = sizeof(char16); + /* Convert string to integer */ + while (len--) + h = h * PRIME1 ^ (*key++ - ' '); + h %= PRIME2; + + return (h); +} + /* * (Comment from the original db3 hashing code: ) diff --git a/src/backend/access/nbtree/nbtcompare.c b/src/backend/access/nbtree/nbtcompare.c index 85b673ebba6eb366d418427b80085837039fea9c..a674de9c726e387053fb54d4b88de2754c75cccf 100644 --- a/src/backend/access/nbtree/nbtcompare.c +++ b/src/backend/access/nbtree/nbtcompare.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtcompare.c,v 1.14 1998/03/30 17:22:17 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtcompare.c,v 1.15 1998/04/07 18:09:51 momjian Exp $ * * NOTES * These functions are stored in pg_amproc. For each operator class @@ -101,6 +101,30 @@ btcharcmp(char a, char b) return ((int32) ((uint8) a - (uint8) b)); } +int32 +btchar2cmp(uint16 a, uint16 b) +{ + return (strncmp((char *) &a, (char *) &b, 2)); +} + +int32 +btchar4cmp(uint32 a, uint32 b) +{ + return (strncmp((char *) &a, (char *) &b, 4)); +} + +int32 +btchar8cmp(char *a, char *b) +{ + return (strncmp(a, b, 8)); +} + +int32 +btchar16cmp(char *a, char *b) +{ + return (strncmp(a, b, 16)); +} + int32 btnamecmp(NameData *a, NameData *b) { diff --git a/src/backend/access/transam/xid.c b/src/backend/access/transam/xid.c index 960d98b9e3a13bda4a0a1f457c6d48d516d09e3c..00810528c44531f578f34feb166703c4cf0c63c1 100644 --- a/src/backend/access/transam/xid.c +++ b/src/backend/access/transam/xid.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/transam/Attic/xid.c,v 1.13 1998/03/30 17:22:28 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/transam/Attic/xid.c,v 1.14 1998/04/07 18:10:01 momjian Exp $ * * OLD COMMENTS * XXX WARNING @@ -30,14 +30,14 @@ extern TransactionId DisabledTransactionId; extern TransactionId AmiTransactionId; extern TransactionId FirstTransactionId; -/* XXX name for catalogs */ +/* XXX char16 name for catalogs */ TransactionId xidin(char *representation) { return (atol(representation)); } -/* XXX name for catalogs */ +/* XXX char16 name for catalogs */ char * xidout(TransactionId transactionId) { diff --git a/src/backend/bootstrap/bootparse.y b/src/backend/bootstrap/bootparse.y index 613dba9d05b43f6c19fb332eb128d2d01eb05f0c..4dc0a5128d8ef8ce4a54e128954211a11e53ce4d 100644 --- a/src/backend/bootstrap/bootparse.y +++ b/src/backend/bootstrap/bootparse.y @@ -8,47 +8,53 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/bootstrap/bootparse.y,v 1.14 1998/03/30 17:22:44 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/bootstrap/bootparse.y,v 1.15 1998/04/07 18:10:11 momjian Exp $ * *------------------------------------------------------------------------- */ -#include <stdio.h> -#include <time.h> - #include "postgres.h" -#include "miscadmin.h" - +#include "catalog/pg_attribute.h" #include "access/attnum.h" -#include "access/funcindex.h" -#include "access/htup.h" -#include "access/itup.h" -#include "access/skey.h" -#include "access/strat.h" +#include "nodes/pg_list.h" #include "access/tupdesc.h" -#include "access/xact.h" -#include "bootstrap/bootstrap.h" -#include "catalog/heap.h" +#include "storage/fd.h" #include "catalog/pg_am.h" -#include "catalog/pg_attribute.h" #include "catalog/pg_class.h" -#include "commands/defrem.h" #include "nodes/nodes.h" -#include "nodes/parsenodes.h" -#include "nodes/pg_list.h" -#include "nodes/primnodes.h" #include "rewrite/prs2lock.h" +#include "access/skey.h" +#include "access/strat.h" +#include "utils/rel.h" + +#include "nodes/primnodes.h" +#include <time.h> +#include "utils/nabstime.h" #include "storage/block.h" -#include "storage/fd.h" -#include "storage/ipc.h" -#include "storage/itemptr.h" #include "storage/off.h" -#include "storage/smgr.h" +#include "storage/itemptr.h" +#include "access/htup.h" +#include "nodes/parsenodes.h" + +#include "access/xact.h" + +#include <stdio.h> + +#include "catalog/heap.h" + +#include "storage/ipc.h" #include "storage/spin.h" +#include "storage/smgr.h" + #include "tcop/dest.h" -#include "utils/nabstime.h" -#include "utils/rel.h" +#include "commands/defrem.h" + +#include "access/itup.h" +#include "access/funcindex.h" +#include "bootstrap/bootstrap.h" + +#include "miscadmin.h" #define DO_START { \ StartTransactionCommand();\ diff --git a/src/backend/bootstrap/bootstrap.c b/src/backend/bootstrap/bootstrap.c index f1d4ddd04d0014e437a239f1dc1bae6c51e4ad7b..0336cf054447fef915278327eeefa64dac55c82e 100644 --- a/src/backend/bootstrap/bootstrap.c +++ b/src/backend/bootstrap/bootstrap.c @@ -7,7 +7,7 @@ * Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/bootstrap/bootstrap.c,v 1.38 1998/03/30 17:22:49 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/bootstrap/bootstrap.c,v 1.39 1998/04/07 18:10:21 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -16,70 +16,88 @@ #include <stdio.h> #include <signal.h> #include <setjmp.h> -#include <string.h> #define BOOTSTRAP_INCLUDE /* mask out stuff in tcop/tcopprot.h */ #include "postgres.h" -#include "miscadmin.h" -#include "fmgr.h" - +#include "catalog/pg_attribute.h" #include "access/attnum.h" -#include "access/funcindex.h" -#include "access/genam.h" -#include "access/heapam.h" -#include "access/htup.h" -#include "access/itup.h" -#include "access/relscan.h" -#include "access/sdir.h" -#include "access/skey.h" -#include "access/strat.h" +#include "nodes/pg_list.h" #include "access/tupdesc.h" -#include "access/xact.h" -#include "bootstrap/bootstrap.h" -#include "catalog/catname.h" -#include "catalog/index.h" +#include "storage/fd.h" #include "catalog/pg_am.h" -#include "catalog/pg_attribute.h" #include "catalog/pg_class.h" -#include "catalog/pg_type.h" -#include "executor/execdesc.h" -#include "executor/hashjoin.h" -#include "executor/tuptable.h" -#include "libpq/pqsignal.h" -#include "nodes/execnodes.h" -#include "nodes/memnodes.h" #include "nodes/nodes.h" -#include "nodes/params.h" -#include "nodes/parsenodes.h" -#include "nodes/plannodes.h" -#include "nodes/pg_list.h" -#include "nodes/primnodes.h" #include "rewrite/prs2lock.h" +#include "access/skey.h" +#include "access/strat.h" +#include "utils/rel.h" +#include "libpq/pqsignal.h" + #include "storage/block.h" +#include "storage/off.h" +#include "storage/itemptr.h" +#include "utils/nabstime.h" +#include "access/htup.h" #include "storage/buf.h" -#include "storage/fd.h" +#include "access/relscan.h" +#include "access/heapam.h" + +#include "fmgr.h" + +#include "access/funcindex.h" + +#include "nodes/memnodes.h" + +#include "miscadmin.h" + +#include "catalog/pg_type.h" + +#include "access/itup.h" +#include "bootstrap/bootstrap.h" + +#include "tcop/tcopprot.h" + #include "storage/ipc.h" -#include "storage/itemptr.h" -#include "storage/lock.h" -#include "storage/off.h" -#include "storage/shmem.h" #include "storage/spin.h" -#include "tcop/dest.h" -#include "tcop/tcopprot.h" -#include "utils/builtins.h" -#include "utils/geo_decls.h" #include "utils/hsearch.h" -#include "utils/lsyscache.h" -#include "utils/mcxt.h" -#include "utils/nabstime.h" -#include "utils/portal.h" -#include "utils/rel.h" +#include "storage/shmem.h" +#include "storage/lock.h" + +#include "access/xact.h" #ifndef HAVE_MEMMOVE #include "regex/utils.h" #endif +#include <string.h> + +#include "nodes/primnodes.h" +#include "nodes/parsenodes.h" +#include "nodes/params.h" +#include "access/sdir.h" +#include "executor/hashjoin.h" +#include "executor/tuptable.h" +#include "nodes/execnodes.h" +#include "nodes/plannodes.h" +#include "tcop/dest.h" +#include "executor/execdesc.h" +#include "utils/portal.h" + +#include "utils/mcxt.h" + +#include "catalog/catname.h" + +#include "utils/geo_decls.h" +#include "utils/builtins.h" + +#include "catalog/index.h" + +#include "access/genam.h" + +#include "utils/lsyscache.h" + +#include "utils/palloc.h" #define ALLOC(t, c) (t *)calloc((unsigned)(c), sizeof(t)) #define FIRST_TYPE_OID 16 /* OID of the first type */ @@ -143,7 +161,7 @@ static struct typinfo Procid[] = { {"bytea", 17, 0, -1, F_BYTEAIN, F_BYTEAOUT}, {"char", 18, 0, 1, F_CHARIN, F_CHAROUT}, {"name", 19, 0, NAMEDATALEN, F_NAMEIN, F_NAMEOUT}, - {"dummy", 20, 0, 16, 0, 0}, + {"char16", 20, 0, 16, F_CHAR16IN, F_CHAR16OUT}, /* { "dt", 20, 0, 4, F_DTIN, F_DTOUT}, */ {"int2", 21, 0, 2, F_INT2IN, F_INT2OUT}, {"int28", 22, 0, 16, F_INT28IN, F_INT28OUT}, diff --git a/src/backend/commands/creatinh.c b/src/backend/commands/creatinh.c index 7e6e49216902850b27d451fe309381d731fd8bd2..ec3a3e8499444bd622c7ffcbcd87631cb66293cf 100644 --- a/src/backend/commands/creatinh.c +++ b/src/backend/commands/creatinh.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/Attic/creatinh.c,v 1.27 1998/03/30 17:22:55 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/Attic/creatinh.c,v 1.28 1998/04/07 18:10:36 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -179,7 +179,7 @@ RemoveRelation(char *name) * Here's an example: * * create table person (name text, age int4, location point); - * create table emp (salary int4, manager text) inherits(person); + * create table emp (salary int4, manager char16) inherits(person); * create table student (gpa float8) inherits (person); * create table stud_emp (percent int4) inherits (emp, student); * diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c index 67de9f1f0787a5a7d38ea7e5279d7e3beae4dffa..0a481677b30ea1c2d709dea85b58f48d5d3b6553 100644 --- a/src/backend/commands/dbcommands.c +++ b/src/backend/commands/dbcommands.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/dbcommands.c,v 1.10 1998/04/05 21:04:12 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/dbcommands.c,v 1.11 1998/04/07 18:10:41 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -88,7 +88,7 @@ createdb(char *dbname, char *dbpath) #if FALSE sprintf(buf, "insert into pg_database (datname, datdba, datpath) \ - values (\'%s\'::name, \'%d\'::oid, \'%s\'::text);", + values (\'%s\'::char16, \'%d\'::oid, \'%s\'::text);", dbname, user_id, dbname); #endif diff --git a/src/backend/executor/execQual.c b/src/backend/executor/execQual.c index 9fd4c185be2a2e7c82472aa0f8d0e8e635b63b97..2950d93227ce1eeba8aa9b6b05a73aa1c0a88cdc 100644 --- a/src/backend/executor/execQual.c +++ b/src/backend/executor/execQual.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/executor/execQual.c,v 1.28 1998/03/30 17:23:05 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/executor/execQual.c,v 1.29 1998/04/07 18:10:46 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -547,7 +547,7 @@ GetAttributeByNum(TupleTableSlot *slot, return (char *) retval; } -/* XXX name for catalogs */ +/* XXX char16 name for catalogs */ #ifdef NOT_USED char * att_by_num(TupleTableSlot *slot, @@ -608,7 +608,7 @@ GetAttributeByName(TupleTableSlot *slot, char *attname, bool *isNull) return (char *) retval; } -/* XXX name for catalogs */ +/* XXX char16 name for catalogs */ #ifdef NOT_USED char * att_by_name(TupleTableSlot *slot, char *attname, bool *isNull) diff --git a/src/backend/parser/parse_expr.c b/src/backend/parser/parse_expr.c index 31c636ee26fae635836ed148615e82715672e407..68cb73ceabcf11fb6f31dc54d19e9c3d3cc8fdcf 100644 --- a/src/backend/parser/parse_expr.c +++ b/src/backend/parser/parse_expr.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.25 1998/03/30 17:23:19 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.26 1998/04/07 18:10:51 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -530,7 +530,7 @@ parser_typecast2(Node *expr, Oid exprType, Type tp, int16 atttypmod) sprintf(const_string, "%d", (int) ((Const *) expr)->constvalue); break; - case NAMEOID: /* name */ + case NAMEOID: /* char16 */ const_string = (char *) palloc(256); string_palloced = true; sprintf(const_string, "%s", diff --git a/src/backend/rewrite/rewriteRemove.c b/src/backend/rewrite/rewriteRemove.c index fd9b7ecf4acbc514b6a97513a8d1381a7177013b..350045eb90abe05541fa826071993d5a5a1c6ff4 100644 --- a/src/backend/rewrite/rewriteRemove.c +++ b/src/backend/rewrite/rewriteRemove.c @@ -7,20 +7,21 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteRemove.c,v 1.12 1998/03/30 17:23:37 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteRemove.c,v 1.13 1998/04/07 18:11:08 momjian Exp $ * *------------------------------------------------------------------------- */ #include "postgres.h" -#include "fmgr.h" /* for F_NAMEEQ */ - -#include "access/heapam.h" /* heap AM calls defined here */ #include "access/skey.h" -#include "catalog/catname.h" /* for RewriteRelationName */ #include "catalog/pg_rewrite.h" +#include "catalog/catname.h" /* for RewriteRelationName */ #include "utils/syscache.h" +#include "utils/elog.h" /* for elog stuff */ +#include "utils/palloc.h" +#include "access/heapam.h" /* heap AM calls defined here */ +#include "fmgr.h" /* for CHAR_16_EQ */ #include "rewrite/rewriteRemove.h" /* where the decls go */ #include "rewrite/rewriteSupport.h" @@ -85,7 +86,7 @@ RemoveRewriteRule(char *ruleName) * Scan the RuleRelation ('pg_rewrite') until we find a tuple */ ScanKeyEntryInitialize(&scanKeyData, 0, Anum_pg_rewrite_rulename, - F_NAMEEQ, NameGetDatum(ruleName)); + F_CHAR16EQ, NameGetDatum(ruleName)); scanDesc = heap_beginscan(RewriteRelation, 0, false, 1, &scanKeyData); diff --git a/src/backend/rewrite/rewriteSupport.c b/src/backend/rewrite/rewriteSupport.c index 8c62cc2bfe0adb25d3d1b997eef5e8cb23184bf2..d1ce425da32f0358e9e40bbde83f8d9bd5b08274 100644 --- a/src/backend/rewrite/rewriteSupport.c +++ b/src/backend/rewrite/rewriteSupport.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteSupport.c,v 1.17 1998/03/30 17:23:40 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteSupport.c,v 1.18 1998/04/07 18:11:11 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -106,7 +106,7 @@ IsDefinedRewriteRule(char *ruleName) * Scan the RuleRelation ('pg_rewrite') until we find a tuple */ ScanKeyEntryInitialize(&scanKey, 0, Anum_pg_rewrite_rulename, - F_NAMEEQ, PointerGetDatum(ruleName)); + NameEqualRegProcedure, PointerGetDatum(ruleName)); scanDesc = heap_beginscan(RewriteRelation, 0, false, 1, &scanKey); diff --git a/src/backend/tcop/fastpath.c b/src/backend/tcop/fastpath.c index e5a1ff8e690a67bcc931259eed030e32afa595c3..ce165baed8bc5e48238ee846a157c26aa0369003 100644 --- a/src/backend/tcop/fastpath.c +++ b/src/backend/tcop/fastpath.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/tcop/fastpath.c,v 1.14 1998/03/30 17:23:52 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/tcop/fastpath.c,v 1.15 1998/04/07 18:11:18 momjian Exp $ * * NOTES * This cruft is the server side of PQfn. @@ -44,7 +44,7 @@ * The previous implementation would assume (1) that any value of * length <= 4 bytes was passed-by-value, and that any other value * was a struct varlena (by-reference). There was NO way to pass a - * fixed-length by-reference argument (like name) or a struct + * fixed-length by-reference argument (like char16) or a struct * varlena of size <= 4 bytes. * * The new implementation checks the catalogs to determine whether diff --git a/src/backend/utils/adt/char.c b/src/backend/utils/adt/char.c index 5a32bceeb66baf9c8386b8ab7bdbff55c36842ee..87fd3ed1f9bd02f5a9d0fc4344f1c29af2bc72ec 100644 --- a/src/backend/utils/adt/char.c +++ b/src/backend/utils/adt/char.c @@ -3,12 +3,16 @@ * char.c-- * Functions for the built-in type "char". * Functions for the built-in type "cid". + * Functions for the built-in type "char2". + * Functions for the built-in type "char4". + * Functions for the built-in type "char8". + * Functions for the built-in type "char16". * * Copyright (c) 1994, Regents of the University of California * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/char.c,v 1.16 1998/03/30 17:24:00 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/char.c,v 1.17 1998/04/07 18:11:25 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -83,6 +87,42 @@ cidout(int32 c) return (result); } +/* + * char16in - converts "..." to internal reprsentation + * + * Note: + * Currently if strlen(s) < 14, the extra chars are nulls + */ +char * +char16in(char *s) +{ + char *result; + + if (s == NULL) + return (NULL); + result = (char *) palloc(16); + strncpy(result, s, 16); + return (result); +} + +/* + * char16out - converts internal reprsentation to "..." + */ +char * +char16out(char *s) +{ + char *result = (char *) palloc(17); + + if (s == NULL) + { + result[0] = '-'; + result[1] = '\0'; + } + else + StrNCpy(result, s, 17); + return (result); +} + /***************************************************************************** * PUBLIC ROUTINES * @@ -153,3 +193,283 @@ cideq(int8 arg1, int8 arg2) { return (arg1 == arg2); } + +/* + * char16eq - returns 1 iff arguments are equal + * char16ne - returns 1 iff arguments are not equal + * + * BUGS: + * Assumes that "xy\0\0a" should be equal to "xy\0b". + * If not, can do the comparison backwards for efficiency. + * + * char16lt - returns 1 iff a < b + * char16le - returns 1 iff a <= b + * char16gt - returns 1 iff a < b + * char16ge - returns 1 iff a <= b + * + */ +bool +char16eq(char *arg1, char *arg2) +{ + if (arg1 == NULL || arg2 == NULL) + return ((bool) 0); + return (strncmp(arg1, arg2, 16) == 0); +} + +bool +char16ne(char *arg1, char *arg2) +{ + if (arg1 == NULL || arg2 == NULL) + return ((bool) 0); + return (strncmp(arg1, arg2, 16) != 0); +} + +bool +char16lt(char *arg1, char *arg2) +{ + if (arg1 == NULL || arg2 == NULL) + return ((bool) 0); + return (strncmp(arg1, arg2, 16) < 0); +} + +bool +char16le(char *arg1, char *arg2) +{ + if (arg1 == NULL || arg2 == NULL) + return ((bool) 0); + return (strncmp(arg1, arg2, 16) <= 0); +} + +bool +char16gt(char *arg1, char *arg2) +{ + if (arg1 == NULL || arg2 == NULL) + return ((bool) 0); + + return (strncmp(arg1, arg2, 16) > 0); +} + +bool +char16ge(char *arg1, char *arg2) +{ + if (arg1 == NULL || arg2 == NULL) + return ((bool) 0); + + return (strncmp(arg1, arg2, 16) >= 0); +} + + +/* ============================== char2 ============================== */ +uint16 +char2in(char *s) +{ + uint16 res; + + if (s == NULL) + return (0); + + strncpy((char *) &res, s, 2); + return (res); +} + +char * +char2out(uint16 s) +{ + char *result = (char *) palloc(3); + + StrNCpy(result, (char *) &s, 3); + + return (result); +} + +bool +char2eq(uint16 a, uint16 b) +{ + return (strncmp((char *) &a, (char *) &b, 2) == 0); +} + +bool +char2ne(uint16 a, uint16 b) +{ + return (strncmp((char *) &a, (char *) &b, 2) != 0); +} + +bool +char2lt(uint16 a, uint16 b) +{ + return (strncmp((char *) &a, (char *) &b, 2) < 0); +} + +bool +char2le(uint16 a, uint16 b) +{ + return (strncmp((char *) &a, (char *) &b, 2) <= 0); +} + +bool +char2gt(uint16 a, uint16 b) +{ + return (strncmp((char *) &a, (char *) &b, 2) > 0); +} + +bool +char2ge(uint16 a, uint16 b) +{ + return (strncmp((char *) &a, (char *) &b, 2) >= 0); +} + +int32 +char2cmp(uint16 a, uint16 b) +{ + return (strncmp((char *) &a, (char *) &b, 2)); +} + +/* ============================== char4 ============================== */ +uint32 +char4in(char *s) +{ + uint32 res; + + if (s == NULL) + return (0); + + strncpy((char *) &res, s, 4); + + return (res); +} + +char * +char4out(s) +uint32 s; +{ + char *result = (char *) palloc(5); + + StrNCpy(result, (char *) &s, 5); + + return (result); +} + +bool +char4eq(uint32 a, uint32 b) +{ + return (strncmp((char *) &a, (char *) &b, 4) == 0); +} + +bool +char4ne(uint32 a, uint32 b) +{ + return (strncmp((char *) &a, (char *) &b, 4) != 0); +} + +bool +char4lt(uint32 a, uint32 b) +{ + return (strncmp((char *) &a, (char *) &b, 4) < 0); +} + +bool +char4le(uint32 a, uint32 b) +{ + return (strncmp((char *) &a, (char *) &b, 4) <= 0); +} + +bool +char4gt(uint32 a, uint32 b) +{ + return (strncmp((char *) &a, (char *) &b, 4) > 0); +} + +bool +char4ge(uint32 a, uint32 b) +{ + return (strncmp((char *) &a, (char *) &b, 4) >= 0); +} + +int32 +char4cmp(uint32 a, uint32 b) +{ + return (strncmp((char *) &a, (char *) &b, 4)); +} + +/* ============================== char8 ============================== */ +char * +char8in(char *s) +{ + char *result; + + if (s == NULL) + return ((char *) NULL); + + result = (char *) palloc(8); + strncpy(result, s, 8); + return (result); +} + +char * +char8out(char *s) +{ + char *result = (char *) palloc(9); + + if (s == NULL) + { + result[0] = '-'; + result[1] = '\0'; + } + else + StrNCpy(result, s, 9); + return (result); +} + +bool +char8eq(char *arg1, char *arg2) +{ + if (arg1 == NULL || arg2 == NULL) + return ((bool) 0); + return (strncmp(arg1, arg2, 8) == 0); +} + +bool +char8ne(char *arg1, char *arg2) +{ + if (arg1 == NULL || arg2 == NULL) + return ((bool) 0); + return (strncmp(arg1, arg2, 8) != 0); +} + +bool +char8lt(char *arg1, char *arg2) +{ + if (arg1 == NULL || arg2 == NULL) + return ((bool) 0); + return (strncmp(arg1, arg2, 8) < 0); +} + +bool +char8le(char *arg1, char *arg2) +{ + if (arg1 == NULL || arg2 == NULL) + return ((bool) 0); + return (strncmp(arg1, arg2, 8) <= 0); +} + +bool +char8gt(char *arg1, char *arg2) +{ + if (arg1 == NULL || arg2 == NULL) + return ((bool) 0); + return (strncmp(arg1, arg2, 8) > 0); +} + +bool +char8ge(char *arg1, char *arg2) +{ + if (arg1 == NULL || arg2 == NULL) + return ((bool) 0); + return (strncmp(arg1, arg2, 8) >= 0); +} + +int32 +char8cmp(char *arg1, char *arg2) +{ + return (strncmp(arg1, arg2, 8)); +} diff --git a/src/backend/utils/adt/like.c b/src/backend/utils/adt/like.c index 032f28b13acc9f0f0dc82022b18b9d1475c5540f..5c3c61333d5001ec8f4abcac68f6dc92bedb822a 100644 --- a/src/backend/utils/adt/like.c +++ b/src/backend/utils/adt/like.c @@ -82,6 +82,58 @@ fixedlen_like(char *s, struct varlena * p, int charlen) return ((bool) result); } +bool +char2like(uint16 arg1, struct varlena * p) +{ + char *s = (char *) &arg1; + + return (fixedlen_like(s, p, 2)); +} + +bool +char2nlike(uint16 arg1, struct varlena * p) +{ + return (!char2like(arg1, p)); +} + +bool +char4like(uint32 arg1, struct varlena * p) +{ + char *s = (char *) &arg1; + + return (fixedlen_like(s, p, 4)); +} + +bool +char4nlike(uint32 arg1, struct varlena * p) +{ + return (!char4like(arg1, p)); +} + +bool +char8like(char *s, struct varlena * p) +{ + return (fixedlen_like(s, p, 8)); +} + +bool +char8nlike(char *s, struct varlena * p) +{ + return (!char8like(s, p)); +} + +bool +char16like(char *s, struct varlena * p) +{ + return (fixedlen_like(s, p, 16)); +} + +bool +char16nlike(char *s, struct varlena * p) +{ + return (!char16like(s, p)); +} + bool namelike(NameData *n, struct varlena * p) { @@ -111,7 +163,7 @@ textnlike(struct varlena * s, struct varlena * p) } -/* $Revision: 1.14 $ +/* $Revision: 1.15 $ ** "like.c" A first attempt at a LIKE operator for Postgres95. ** ** Originally written by Rich $alz, mirror!rs, Wed Nov 26 19:03:17 EST 1986. diff --git a/src/backend/utils/adt/regexp.c b/src/backend/utils/adt/regexp.c index b16e1e11b6e27a260c250df9ddf4c2465e566a51..61f0affe2ee69f0acbc52a1509489d9d149b5275 100644 --- a/src/backend/utils/adt/regexp.c +++ b/src/backend/utils/adt/regexp.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/regexp.c,v 1.15 1998/03/30 17:24:12 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/regexp.c,v 1.16 1998/04/07 18:11:32 momjian Exp $ * * Alistair Crooks added the code for the regex caching * agc - cached the regular expressions used - there's a good chance @@ -203,6 +203,58 @@ fixedlen_regexeq(char *s, struct varlena * p, int charlen, int cflags) /* * routines that use the regexp stuff */ +bool +char2regexeq(uint16 arg1, struct varlena * p) +{ + char *s = (char *) &arg1; + + return (fixedlen_regexeq(s, p, 2, REG_EXTENDED)); +} + +bool +char2regexne(uint16 arg1, struct varlena * p) +{ + return (!char2regexeq(arg1, p)); +} + +bool +char4regexeq(uint32 arg1, struct varlena * p) +{ + char *s = (char *) &arg1; + + return (fixedlen_regexeq(s, p, 4, REG_EXTENDED)); +} + +bool +char4regexne(uint32 arg1, struct varlena * p) +{ + return (!char4regexeq(arg1, p)); +} + +bool +char8regexeq(char *s, struct varlena * p) +{ + return (fixedlen_regexeq(s, p, 8, REG_EXTENDED)); +} + +bool +char8regexne(char *s, struct varlena * p) +{ + return (!char8regexeq(s, p)); +} + +bool +char16regexeq(char *s, struct varlena * p) +{ + return (fixedlen_regexeq(s, p, 16, REG_EXTENDED)); +} + +bool +char16regexne(char *s, struct varlena * p) +{ + return (!char16regexeq(s, p)); +} + bool nameregexeq(NameData *n, struct varlena * p) { @@ -236,6 +288,59 @@ textregexne(struct varlena * s, struct varlena * p) * routines that use the regexp stuff, but ignore the case. * for this, we use the REG_ICASE flag to pg95_regcomp */ +bool +char2icregexeq(uint16 arg1, struct varlena * p) +{ + char *s = (char *) &arg1; + + return (fixedlen_regexeq(s, p, 2, REG_ICASE | REG_EXTENDED)); +} + + +bool +char2icregexne(uint16 arg1, struct varlena * p) +{ + return (!char2icregexeq(arg1, p)); +} + +bool +char4icregexeq(uint32 arg1, struct varlena * p) +{ + char *s = (char *) &arg1; + + return (fixedlen_regexeq(s, p, 4, REG_ICASE | REG_EXTENDED)); +} + +bool +char4icregexne(uint32 arg1, struct varlena * p) +{ + return (!char4icregexeq(arg1, p)); +} + +bool +char8icregexeq(char *s, struct varlena * p) +{ + return (fixedlen_regexeq(s, p, 8, REG_ICASE | REG_EXTENDED)); +} + +bool +char8icregexne(char *s, struct varlena * p) +{ + return (!char8icregexeq(s, p)); +} + +bool +char16icregexeq(char *s, struct varlena * p) +{ + return (fixedlen_regexeq(s, p, 16, REG_ICASE | REG_EXTENDED)); +} + +bool +char16icregexne(char *s, struct varlena * p) +{ + return (!char16icregexeq(s, p)); +} + bool texticregexeq(struct varlena * s, struct varlena * p) { diff --git a/src/backend/utils/adt/regproc.c b/src/backend/utils/adt/regproc.c index 34a3b268c27ba98fcac9778999b9c84b1878f187..e4cdab617e18930f182272bc09ab7a47d3a6c91d 100644 --- a/src/backend/utils/adt/regproc.c +++ b/src/backend/utils/adt/regproc.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/regproc.c,v 1.16 1998/03/30 17:24:17 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/regproc.c,v 1.17 1998/04/07 18:11:34 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -52,7 +52,7 @@ regprocin(char *proname) ScanKeyEntryInitialize(&key, (bits16) 0, (AttrNumber) 1, - (RegProcedure) F_NAMEEQ, + (RegProcedure) F_CHAR16EQ, (Datum) proname); procscan = heap_beginscan(proc, 0, false, 1, &key); diff --git a/src/backend/utils/cache/catcache.c b/src/backend/utils/cache/catcache.c index 59bdce3f6e631d54bfe8a89f6bd9140504a8b6a2..746669d1828c58390732ebf9ce181e17422e7685 100644 --- a/src/backend/utils/cache/catcache.c +++ b/src/backend/utils/cache/catcache.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/cache/catcache.c,v 1.25 1998/03/30 17:24:21 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/cache/catcache.c,v 1.26 1998/04/07 18:11:38 momjian Exp $ * * Notes: * XXX This needs to use exception.h to handle recovery when @@ -79,7 +79,7 @@ static int DisableCache; * ---------------- */ static long eqproc[] = { - F_BOOLEQ, 0l, F_CHAREQ, F_NAMEEQ, 0l, + F_BOOLEQ, 0l, F_CHAREQ, F_CHAR16EQ, 0l, F_INT2EQ, F_KEYFIRSTEQ, F_INT4EQ, 0l, F_TEXTEQ, F_OIDEQ, 0l, 0l, 0l, F_OID8EQ }; diff --git a/src/include/access/hash.h b/src/include/access/hash.h index e059617571d3e70bed2c603afb2fa55d43bae791..324c5772f255e9dcd615c9f2eaa93161053c0c29 100644 --- a/src/include/access/hash.h +++ b/src/include/access/hash.h @@ -6,7 +6,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: hash.h,v 1.14 1998/03/30 17:24:40 momjian Exp $ + * $Id: hash.h,v 1.15 1998/04/07 18:12:01 momjian Exp $ * * NOTES * modeled after Margo Seltzer's hash implementation for unix. @@ -272,6 +272,10 @@ extern uint32 hashfloat4(float32 keyp); extern uint32 hashfloat8(float64 keyp); extern uint32 hashoid(Oid key); extern uint32 hashchar(char key); +extern uint32 hashchar2(uint16 intkey); +extern uint32 hashchar4(uint32 intkey); +extern uint32 hashchar8(char *key); +extern uint32 hashchar16(char *key); extern uint32 hashtext(struct varlena * key); extern uint32 hashname(NameData *n); diff --git a/src/include/catalog/pg_amop.h b/src/include/catalog/pg_amop.h index 521b3948d1421705be7ae7638c5a75261189de8c..32b98029be7fbbc7d2a2c49d450db94f869539f7 100644 --- a/src/include/catalog/pg_amop.h +++ b/src/include/catalog/pg_amop.h @@ -7,7 +7,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: pg_amop.h,v 1.10 1998/03/30 17:24:56 momjian Exp $ + * $Id: pg_amop.h,v 1.11 1998/04/07 18:12:11 momjian Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -197,6 +197,36 @@ DATA(insert OID = 0 ( 403 429 92 3 btreesel btreenpage )); DATA(insert OID = 0 ( 403 429 634 4 btreesel btreenpage )); DATA(insert OID = 0 ( 403 429 633 5 btreesel btreenpage )); +/* + * nbtree char2_ops + */ + +DATA(insert OID = 0 ( 403 406 418 1 btreesel btreenpage )); +DATA(insert OID = 0 ( 403 406 457 2 btreesel btreenpage )); +DATA(insert OID = 0 ( 403 406 412 3 btreesel btreenpage )); +DATA(insert OID = 0 ( 403 406 463 4 btreesel btreenpage )); +DATA(insert OID = 0 ( 403 406 460 5 btreesel btreenpage )); + +/* + * nbtree char4_ops + */ + +DATA(insert OID = 0 ( 403 407 419 1 btreesel btreenpage )); +DATA(insert OID = 0 ( 403 407 458 2 btreesel btreenpage )); +DATA(insert OID = 0 ( 403 407 413 3 btreesel btreenpage )); +DATA(insert OID = 0 ( 403 407 464 4 btreesel btreenpage )); +DATA(insert OID = 0 ( 403 407 461 5 btreesel btreenpage )); + +/* + * nbtree char8_ops + */ + +DATA(insert OID = 0 ( 403 408 420 1 btreesel btreenpage )); +DATA(insert OID = 0 ( 403 408 459 2 btreesel btreenpage )); +DATA(insert OID = 0 ( 403 408 414 3 btreesel btreenpage )); +DATA(insert OID = 0 ( 403 408 465 4 btreesel btreenpage )); +DATA(insert OID = 0 ( 403 408 462 5 btreesel btreenpage )); + /* * nbtree name_ops */ @@ -207,6 +237,16 @@ DATA(insert OID = 0 ( 403 1181 93 3 btreesel btreenpage )); DATA(insert OID = 0 ( 403 1181 663 4 btreesel btreenpage )); DATA(insert OID = 0 ( 403 1181 662 5 btreesel btreenpage )); +/* + * nbtree char16_ops + */ + +DATA(insert OID = 0 ( 403 430 645 1 btreesel btreenpage )); +DATA(insert OID = 0 ( 403 430 646 2 btreesel btreenpage )); +DATA(insert OID = 0 ( 403 430 1267 3 btreesel btreenpage )); +DATA(insert OID = 0 ( 403 430 648 4 btreesel btreenpage )); +DATA(insert OID = 0 ( 403 430 647 5 btreesel btreenpage )); + /* * nbtree text_ops */ @@ -401,6 +441,46 @@ DATA(insert OID = 0 ( 404 429 92 3 btreesel btreenpage )); DATA(insert OID = 0 ( 404 429 634 4 btreesel btreenpage )); DATA(insert OID = 0 ( 404 429 633 5 btreesel btreenpage )); +/* + * nobtree char2_ops + */ + +DATA(insert OID = 0 ( 404 406 418 1 btreesel btreenpage )); +DATA(insert OID = 0 ( 404 406 457 2 btreesel btreenpage )); +DATA(insert OID = 0 ( 404 406 412 3 btreesel btreenpage )); +DATA(insert OID = 0 ( 404 406 463 4 btreesel btreenpage )); +DATA(insert OID = 0 ( 404 406 460 5 btreesel btreenpage )); + +/* + * nobtree char4_ops + */ + +DATA(insert OID = 0 ( 404 407 419 1 btreesel btreenpage )); +DATA(insert OID = 0 ( 404 407 458 2 btreesel btreenpage )); +DATA(insert OID = 0 ( 404 407 413 3 btreesel btreenpage )); +DATA(insert OID = 0 ( 404 407 464 4 btreesel btreenpage )); +DATA(insert OID = 0 ( 404 407 461 5 btreesel btreenpage )); + +/* + * nobtree char8_ops + */ + +DATA(insert OID = 0 ( 404 408 420 1 btreesel btreenpage )); +DATA(insert OID = 0 ( 404 408 459 2 btreesel btreenpage )); +DATA(insert OID = 0 ( 404 408 414 3 btreesel btreenpage )); +DATA(insert OID = 0 ( 404 408 465 4 btreesel btreenpage )); +DATA(insert OID = 0 ( 404 408 462 5 btreesel btreenpage )); + +/* + * nobtree char16_ops + */ + +DATA(insert OID = 0 ( 404 430 645 1 btreesel btreenpage )); +DATA(insert OID = 0 ( 404 430 646 2 btreesel btreenpage )); +DATA(insert OID = 0 ( 404 430 1267 3 btreesel btreenpage )); +DATA(insert OID = 0 ( 404 430 648 4 btreesel btreenpage )); +DATA(insert OID = 0 ( 404 430 647 5 btreesel btreenpage )); + /* * nobtree name_ops */ @@ -471,6 +551,14 @@ DATA(insert OID = 0 ( 405 427 607 1 hashsel hashnpage )); DATA(insert OID = 0 ( 405 428 620 1 hashsel hashnpage )); /* char_ops */ DATA(insert OID = 0 ( 405 429 92 1 hashsel hashnpage )); +/* char2_ops */ +DATA(insert OID = 0 ( 405 406 412 1 hashsel hashnpage )); +/* char4_ops */ +DATA(insert OID = 0 ( 405 407 413 1 hashsel hashnpage )); +/* char8_ops */ +DATA(insert OID = 0 ( 405 408 414 1 hashsel hashnpage )); +/* char16_ops */ +DATA(insert OID = 0 ( 405 430 1267 1 hashsel hashnpage )); /* name_ops */ DATA(insert OID = 0 ( 405 1181 93 1 hashsel hashnpage )); /* text_ops */ diff --git a/src/include/catalog/pg_opclass.h b/src/include/catalog/pg_opclass.h index f12eacaf618e9fb9c5b1aa99a5c6947d1db1c474..fcce756b76518660b1a326af7b929489dbdf6077 100644 --- a/src/include/catalog/pg_opclass.h +++ b/src/include/catalog/pg_opclass.h @@ -7,7 +7,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: pg_opclass.h,v 1.7 1998/03/30 17:25:13 momjian Exp $ + * $Id: pg_opclass.h,v 1.8 1998/04/07 18:12:16 momjian Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -62,6 +62,12 @@ typedef FormData_pg_opclass *Form_pg_opclass; * (see the README in this directory), so just put zeros * in, which are invalid OID's anyway. --djm */ +DATA(insert OID = 406 ( char2_ops 409 )); +DESCR(""); +DATA(insert OID = 407 ( char4_ops 410 )); +DESCR(""); +DATA(insert OID = 408 ( char8_ops 411 )); +DESCR(""); DATA(insert OID = 1181 ( name_ops 19 )); DESCR(""); DATA(insert OID = 421 ( int2_ops 21 )); @@ -83,6 +89,8 @@ DATA(insert OID = 428 ( float4_ops 700 )); DESCR(""); DATA(insert OID = 429 ( char_ops 18 )); DESCR(""); +DATA(insert OID = 430 ( char16_ops 20 )); +DESCR(""); DATA(insert OID = 431 ( text_ops 25 )); DESCR(""); DATA(insert OID = 432 ( abstime_ops 702 )); diff --git a/src/include/catalog/pg_operator.h b/src/include/catalog/pg_operator.h index 7d70082b36264f3d5b5257bdd2a031b907375449..4dd15562589a50541a297342430db35ef5f7138e 100644 --- a/src/include/catalog/pg_operator.h +++ b/src/include/catalog/pg_operator.h @@ -7,7 +7,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: pg_operator.h,v 1.28 1998/03/30 17:25:19 momjian Exp $ + * $Id: pg_operator.h,v 1.29 1998/04/07 18:12:22 momjian Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -102,6 +102,7 @@ DATA(insert OID = 96 ( "=" PGUID 0 b t t 23 23 16 96 518 97 97 int4eq eq DATA(insert OID = 97 ( "<" PGUID 0 b t f 23 23 16 521 525 0 0 int4lt intltsel intltjoinsel )); DATA(insert OID = 98 ( "=" PGUID 0 b t t 25 25 16 98 531 664 664 texteq eqsel eqjoinsel )); +DATA(insert OID = 1267 ( "=" PGUID 0 b t t 20 20 16 1267 644 645 645 char16eq eqsel eqjoinsel )); DATA(insert OID = 329 ( "=" PGUID 0 b t t 1000 1000 16 329 0 0 0 array_eq eqsel eqjoinsel )); DATA(insert OID = 349 ( "=" PGUID 0 b t t 1001 1001 16 349 0 0 0 array_eq eqsel eqjoinsel )); DATA(insert OID = 374 ( "=" PGUID 0 b t t 1002 1002 16 374 0 0 0 array_eq eqsel eqjoinsel )); @@ -135,6 +136,27 @@ DATA(insert OID = 399 ( "=" PGUID 0 b t t 1026 1026 16 399 0 0 0 array_e DATA(insert OID = 400 ( "=" PGUID 0 b t t 1027 1027 16 400 0 0 0 array_eq eqsel eqjoinsel )); DATA(insert OID = 401 ( "=" PGUID 0 b t t 1034 1034 16 401 0 0 0 array_eq eqsel eqjoinsel )); +DATA(insert OID = 412 ( "=" PGUID 0 b t t 409 409 16 412 415 418 418 char2eq eqsel eqjoinsel )); +DATA(insert OID = 413 ( "=" PGUID 0 b t t 410 410 16 413 416 419 419 char4eq eqsel eqjoinsel )); +DATA(insert OID = 414 ( "=" PGUID 0 b t t 411 411 16 414 417 420 420 char8eq eqsel eqjoinsel )); + +DATA(insert OID = 415 ( "<>" PGUID 0 b t f 409 409 16 415 412 0 0 char2ne neqsel neqjoinsel )); +DATA(insert OID = 416 ( "<>" PGUID 0 b t f 410 410 16 416 413 0 0 char4ne neqsel neqjoinsel )); +DATA(insert OID = 417 ( "<>" PGUID 0 b t f 411 411 16 417 414 0 0 char8ne neqsel neqjoinsel )); +DATA(insert OID = 418 ( "<" PGUID 0 b t f 409 409 16 460 463 0 0 char2lt intltsel intltjoinsel )); +DATA(insert OID = 419 ( "<" PGUID 0 b t f 410 410 16 461 464 0 0 char4lt intltsel intltjoinsel )); +DATA(insert OID = 420 ( "<" PGUID 0 b t f 411 411 16 462 465 0 0 char8lt intltsel intltjoinsel )); + +DATA(insert OID = 457 ( "<=" PGUID 0 b t f 409 409 16 463 460 0 0 char2le intltsel intltjoinsel )); +DATA(insert OID = 458 ( "<=" PGUID 0 b t f 410 410 16 464 461 0 0 char4le intltsel intltjoinsel )); +DATA(insert OID = 459 ( "<=" PGUID 0 b t f 411 411 16 465 462 0 0 char8le intltsel intltjoinsel )); +DATA(insert OID = 460 ( ">" PGUID 0 b t f 409 409 16 418 457 0 0 char2gt intltsel intltjoinsel )); +DATA(insert OID = 461 ( ">" PGUID 0 b t f 410 410 16 419 458 0 0 char4gt intltsel intltjoinsel )); +DATA(insert OID = 462 ( ">" PGUID 0 b t f 411 411 16 420 459 0 0 char8gt intltsel intltjoinsel )); +DATA(insert OID = 463 ( ">=" PGUID 0 b t f 409 409 16 457 418 0 0 char2ge intltsel intltjoinsel )); +DATA(insert OID = 464 ( ">=" PGUID 0 b t f 410 410 16 458 418 0 0 char4ge intltsel intltjoinsel )); +DATA(insert OID = 465 ( ">=" PGUID 0 b t f 411 411 16 459 420 0 0 char8ge intltsel intltjoinsel )); + DATA(insert OID = 485 ( "<<" PGUID 0 b t f 604 604 16 0 0 0 0 poly_left intltsel intltjoinsel )); DATA(insert OID = 486 ( "&<" PGUID 0 b t f 604 604 16 0 0 0 0 poly_overleft intltsel intltjoinsel )); DATA(insert OID = 487 ( "&>" PGUID 0 b t f 604 604 16 0 0 0 0 poly_overright intltsel intltjoinsel )); @@ -297,6 +319,15 @@ DATA(insert OID = 640 ( "!~" PGUID 0 b t f 19 25 16 0 639 0 0 nameregexne DATA(insert OID = 641 ( "~" PGUID 0 b t f 25 25 16 0 642 0 0 textregexeq eqsel eqjoinsel )); DATA(insert OID = 642 ( "!~" PGUID 0 b t f 25 25 16 0 641 0 0 textregexne eqsel eqjoinsel )); DATA(insert OID = 643 ( "<>" PGUID 0 b t f 19 19 16 643 93 0 0 namene neqsel neqjoinsel )); +DATA(insert OID = 644 ( "<>" PGUID 0 b t f 20 20 16 644 1267 0 0 char16ne neqsel neqjoinsel )); +DATA(insert OID = 645 ( "<" PGUID 0 b t f 20 20 16 647 648 0 0 char16lt intltsel intltjoinsel )); +DATA(insert OID = 646 ( "<=" PGUID 0 b t f 20 20 16 648 647 0 0 char16le intltsel intltjoinsel )); +DATA(insert OID = 647 ( ">" PGUID 0 b t f 20 20 16 645 646 0 0 char16gt intltsel intltjoinsel )); +DATA(insert OID = 648 ( ">=" PGUID 0 b t f 20 20 16 646 645 0 0 char16ge intltsel intltjoinsel )); +DATA(insert OID = 649 ( "~" PGUID 0 b t f 20 25 16 0 650 0 0 char16regexeq intltsel intltjoinsel )); +DATA(insert OID = 650 ( "!~" PGUID 0 b t f 20 25 16 650 0 0 0 char16regexne intltsel intltjoinsel )); +DATA(insert OID = 651 ( "~~" PGUID 0 b t f 20 25 16 0 651 0 0 char16like eqsel eqjoinsel )); +DATA(insert OID = 652 ( "!~~" PGUID 0 b t f 20 25 16 651 0 0 0 char16nlike neqsel neqjoinsel )); DATA(insert OID = 654 ( "||" PGUID 0 b t f 25 25 25 0 0 0 0 textcat - - )); DATA(insert OID = 660 ( "<" PGUID 0 b t f 19 19 16 662 663 0 0 namelt intltsel intltjoinsel )); @@ -322,6 +353,9 @@ DATA(insert OID = 679 ( ">=" PGUID 0 b t f 911 911 16 677 676 0 0 oidnameg DATA(insert OID = 680 ( ">" PGUID 0 b t f 911 911 16 676 677 0 0 oidnamegt intltsel intltjoinsel )); DATA(insert OID = 681 ( "<>" PGUID 0 b t f 911 911 16 681 678 0 0 oidnamene intltsel intltjoinsel )); +DATA(insert OID = 697 ( "~" PGUID 0 b t f 411 25 16 0 698 0 0 char8regexeq eqsel eqjoinsel )); +DATA(insert OID = 698 ( "!~" PGUID 0 b t f 411 25 16 0 697 0 0 char8regexne neqsel neqjoinsel )); + DATA(insert OID = 706 ( "<->" PGUID 0 b t f 603 603 701 706 0 0 0 box_distance intltsel intltjoinsel )); DATA(insert OID = 707 ( "<->" PGUID 0 b t f 602 602 701 707 0 0 0 path_distance intltsel intltjoinsel )); DATA(insert OID = 708 ( "<->" PGUID 0 b t f 628 628 701 708 0 0 0 line_distance intltsel intltjoinsel )); @@ -379,6 +413,11 @@ DATA(insert OID = 833 ( ">=" PGUID 0 b t f 810 810 16 831 830 0 0 oidint2g DATA(insert OID = 834 ( ">" PGUID 0 b t f 810 810 16 830 831 0 0 oidint2gt intltsel intltjoinsel )); DATA(insert OID = 835 ( "<>" PGUID 0 b t f 810 810 16 835 832 0 0 oidint2ne intltsel intltjoinsel )); +DATA(insert OID = 839 ( "~" PGUID 0 b t f 409 25 16 0 841 0 0 char2regexeq eqsel eqjoinsel )); +DATA(insert OID = 841 ( "!~" PGUID 0 b t f 409 25 16 0 839 0 0 char2regexne neqsel neqjoinsel )); +DATA(insert OID = 840 ( "~" PGUID 0 b t f 410 25 16 0 842 0 0 char4regexeq eqsel eqjoinsel )); +DATA(insert OID = 842 ( "!~" PGUID 0 b t f 410 25 16 0 840 0 0 char4regexne neqsel neqjoinsel )); + DATA(insert OID = 843 ( "*" PGUID 0 b t f 790 700 790 845 0 0 0 cash_mul_flt4 - - )); DATA(insert OID = 844 ( "/" PGUID 0 b t f 790 700 790 0 0 0 0 cash_div_flt4 - - )); DATA(insert OID = 845 ( "*" PGUID 0 b t f 700 790 790 843 0 0 0 flt4_mul_cash - - )); @@ -487,6 +526,12 @@ DATA(insert OID = 1136 ( "=" PGUID 0 b t t 23 26 16 1137 0 0 0 int4eqoid eqsel DATA(insert OID = 1137 ( "=" PGUID 0 b t t 26 23 16 1136 0 0 0 oideqint4 eqsel eqjoinsel )); /* LIKE hacks by Keith Parks. */ +DATA(insert OID = 1201 ( "~~" PGUID 0 b t f 409 25 16 0 1202 0 0 char2like eqsel eqjoinsel )); +DATA(insert OID = 1202 ( "!~~" PGUID 0 b t f 409 25 16 0 1201 0 0 char2nlike neqsel neqjoinsel )); +DATA(insert OID = 1203 ( "~~" PGUID 0 b t f 410 25 16 0 1204 0 0 char4like eqsel eqjoinsel )); +DATA(insert OID = 1204 ( "!~~" PGUID 0 b t f 410 25 16 0 1203 0 0 char4nlike neqsel neqjoinsel )); +DATA(insert OID = 1205 ( "~~" PGUID 0 b t f 411 25 16 0 1206 0 0 char8like eqsel eqjoinsel )); +DATA(insert OID = 1206 ( "!~~" PGUID 0 b t f 411 25 16 0 1205 0 0 char8nlike neqsel neqjoinsel )); DATA(insert OID = 1207 ( "~~" PGUID 0 b t f 19 25 16 0 1208 0 0 namelike eqsel eqjoinsel )); DATA(insert OID = 1208 ( "!~~" PGUID 0 b t f 19 25 16 0 1207 0 0 namenlike neqsel neqjoinsel )); DATA(insert OID = 1209 ( "~~" PGUID 0 b t f 25 25 16 0 1210 0 0 textlike eqsel eqjoinsel )); @@ -497,10 +542,18 @@ DATA(insert OID = 1213 ( "~~" PGUID 0 b t f 1043 25 16 0 1214 0 0 textlike DATA(insert OID = 1214 ( "!~~" PGUID 0 b t f 1043 25 16 0 1213 0 0 textnlike neqsel neqjoinsel )); /* case-insensitive LIKE hacks */ +DATA(insert OID = 1220 ( "~*" PGUID 0 b t f 409 25 16 0 1221 0 0 char2icregexeq eqsel eqjoinsel )); +DATA(insert OID = 1221 ( "!~*" PGUID 0 b t f 409 25 16 0 1220 0 0 char2icregexne neqsel neqjoinsel )); +DATA(insert OID = 1222 ( "~*" PGUID 0 b t f 410 25 16 0 1223 0 0 char4icregexeq eqsel eqjoinsel )); +DATA(insert OID = 1223 ( "!~*" PGUID 0 b t f 410 25 16 0 1222 0 0 char4icregexne neqsel neqjoinsel )); +DATA(insert OID = 1224 ( "~*" PGUID 0 b t f 411 25 16 0 1225 0 0 char8icregexeq eqsel eqjoinsel )); +DATA(insert OID = 1225 ( "!~*" PGUID 0 b t f 411 25 16 0 1224 0 0 char8icregexne neqsel neqjoinsel )); DATA(insert OID = 1226 ( "~*" PGUID 0 b t f 19 25 16 0 1227 0 0 nameicregexeq eqsel eqjoinsel )); DATA(insert OID = 1227 ( "!~*" PGUID 0 b t f 19 25 16 0 1226 0 0 nameicregexne neqsel neqjoinsel )); DATA(insert OID = 1228 ( "~*" PGUID 0 b t f 25 25 16 0 1229 0 0 texticregexeq eqsel eqjoinsel )); DATA(insert OID = 1229 ( "!~*" PGUID 0 b t f 25 25 16 0 1228 0 0 texticregexne eqsel eqjoinsel )); +DATA(insert OID = 1230 ( "~*" PGUID 0 b t f 20 25 16 0 1231 0 0 char16icregexeq eqsel eqjoinsel )); +DATA(insert OID = 1231 ( "!~*" PGUID 0 b t f 20 25 16 0 1230 0 0 char16icregexne neqsel neqjoinsel )); DATA(insert OID = 1232 ( "~*" PGUID 0 b t f 1043 25 16 0 1233 0 0 texticregexeq eqsel eqjoinsel )); DATA(insert OID = 1233 ( "!~*" PGUID 0 b t f 1043 25 16 0 1232 0 0 texticregexne neqsel neqjoinsel )); DATA(insert OID = 1234 ( "~*" PGUID 0 b t f 1042 25 16 0 1235 0 0 texticregexeq eqsel eqjoinsel )); diff --git a/src/include/catalog/pg_proc.h b/src/include/catalog/pg_proc.h index 8457d3238b7fc72b5d2a9af24981083a39a8a6fd..ed64537d2a7ab15bb7155f005b8c72813db1ed74 100644 --- a/src/include/catalog/pg_proc.h +++ b/src/include/catalog/pg_proc.h @@ -6,7 +6,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: pg_proc.h,v 1.49 1998/03/30 17:25:24 momjian Exp $ + * $Id: pg_proc.h,v 1.50 1998/04/07 18:12:25 momjian Exp $ * * NOTES * The script catalog/genbki.sh reads this file and generates .bki @@ -110,6 +110,10 @@ DATA(insert OID = 34 ( namein PGUID 11 f t f 1 f 19 "0" 100 0 0 100 foo DESCR("(internal)"); DATA(insert OID = 35 ( nameout PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar )); DESCR("(internal)"); +DATA(insert OID = 36 ( char16in PGUID 11 f t f 1 f 19 "0" 100 0 0 100 foo bar )); +DESCR("(internal)"); +DATA(insert OID = 37 ( char16out PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar )); +DESCR("(internal)"); DATA(insert OID = 38 ( int2in PGUID 11 f t f 1 f 21 "0" 100 0 0 100 foo bar )); DESCR("(internal)"); DATA(insert OID = 39 ( int2out PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar )); @@ -792,6 +796,8 @@ DATA(insert OID = 372 ( on_sb PGUID 11 f t f 2 f 16 "601 603" 100 0 0 100 DESCR("contained in"); DATA(insert OID = 373 ( inter_sb PGUID 11 f t f 2 f 16 "601 603" 100 0 0 100 foo bar )); DESCR(""); +DATA(insert OID = 1274 ( btchar16cmp PGUID 11 f t f 2 f 23 "19 19" 100 0 0 100 foo bar )); +DESCR("btree less-equal-greater"); /* OIDS 400 - 499 */ @@ -834,6 +840,59 @@ DATA(insert OID = 455 ( hashname PGUID 11 f t f 2 f 23 "19 19" 100 0 0 100 DESCR("hash"); DATA(insert OID = 456 ( hashtext PGUID 11 f t f 2 f 23 "25 25" 100 0 0 100 foo bar )); DESCR("hash"); +DATA(insert OID = 466 ( char2in PGUID 11 f t f 1 f 409 "0" 100 0 0 100 foo bar )); +DESCR("(internal)"); +DATA(insert OID = 467 ( char4in PGUID 11 f t f 1 f 410 "0" 100 0 0 100 foo bar )); +DESCR("(internal)"); +DATA(insert OID = 468 ( char8in PGUID 11 f t f 1 f 411 "0" 100 0 0 100 foo bar )); +DESCR("(internal)"); +DATA(insert OID = 469 ( char2out PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar )); +DESCR("(internal)"); +DATA(insert OID = 470 ( char4out PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar )); +DESCR("(internal)"); +DATA(insert OID = 471 ( char8out PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar )); +DESCR("(internal)"); +DATA(insert OID = 472 ( char2eq PGUID 11 f t f 2 f 16 "409 409" 100 0 0 100 foo bar )); +DESCR("equals"); +DATA(insert OID = 473 ( char4eq PGUID 11 f t f 2 f 16 "410 410" 100 0 0 100 foo bar )); +DESCR("equals"); +DATA(insert OID = 474 ( char8eq PGUID 11 f t f 2 f 16 "411 411" 100 0 0 100 foo bar )); +DESCR("equals"); +DATA(insert OID = 475 ( char2lt PGUID 11 f t f 2 f 16 "409 409" 100 0 0 100 foo bar )); +DESCR("less-than"); +DATA(insert OID = 476 ( char4lt PGUID 11 f t f 2 f 16 "410 410" 100 0 0 100 foo bar )); +DESCR("less-than"); +DATA(insert OID = 477 ( char8lt PGUID 11 f t f 2 f 16 "411 411" 100 0 0 100 foo bar )); +DESCR("less-than"); +DATA(insert OID = 478 ( char2le PGUID 11 f t f 2 f 16 "409 409" 100 0 0 100 foo bar )); +DESCR("less-than-or-equals"); +DATA(insert OID = 479 ( char4le PGUID 11 f t f 2 f 16 "410 410" 100 0 0 100 foo bar )); +DESCR("less-than-or-equals"); +DATA(insert OID = 480 ( char8le PGUID 11 f t f 2 f 16 "411 411" 100 0 0 100 foo bar )); +DESCR("less-than-or-equals"); +DATA(insert OID = 481 ( char2gt PGUID 11 f t f 2 f 16 "409 409" 100 0 0 100 foo bar )); +DESCR("greater-than"); +DATA(insert OID = 482 ( char4gt PGUID 11 f t f 2 f 16 "410 410" 100 0 0 100 foo bar )); +DESCR("greater-than"); +DATA(insert OID = 483 ( char8gt PGUID 11 f t f 2 f 16 "411 411" 100 0 0 100 foo bar )); +DESCR("greater-than"); +DATA(insert OID = 484 ( char2ge PGUID 11 f t f 2 f 16 "409 409" 100 0 0 100 foo bar )); +DESCR("greater-than-or-equals"); +DATA(insert OID = 1275 ( char16eq PGUID 11 f t f 2 f 16 "19 19" 100 0 0 100 foo bar )); +DESCR("equals"); +DATA(insert OID = 1276 ( char16lt PGUID 11 f t f 2 f 16 "19 19" 100 0 0 100 foo bar )); +DESCR("less-than"); +DATA(insert OID = 1277 ( char16le PGUID 11 f t f 2 f 16 "19 19" 100 0 0 100 foo bar )); +DESCR("less-than-or-equals"); +DATA(insert OID = 1278 ( char16gt PGUID 11 f t f 2 f 16 "19 19" 100 0 0 100 foo bar )); +DESCR("greater-than"); +DATA(insert OID = 1279 ( char16ge PGUID 11 f t f 2 f 16 "19 19" 100 0 0 100 foo bar )); +DESCR("greater-than-or-equals"); +DATA(insert OID = 1280 ( char16ne PGUID 11 f t f 2 f 16 "19 19" 100 0 0 100 foo bar )); +DESCR("not equal"); + +DATA(insert OID = 1281 ( hashchar16 PGUID 11 f t f 2 f 23 "19 19" 100 0 0 100 foo bar )); +DESCR("hash"); /* OIDS 500 - 599 */ @@ -861,9 +920,41 @@ DATA(insert OID = 682 ( mktinterval PGUID 11 f t f 2 f 704 "702 702" 100 0 0 DESCR("convert to interval"); DATA(insert OID = 683 ( oid8eq PGUID 11 f t f 2 f 16 "30 30" 100 0 0 100 foo bar )); DESCR("equals"); +DATA(insert OID = 684 ( char4ge PGUID 11 f t f 2 f 16 "410 410" 100 0 0 100 foo bar )); +DESCR("greater-than-or-equals"); +DATA(insert OID = 685 ( char8ge PGUID 11 f t f 2 f 16 "411 411" 100 0 0 100 foo bar )); +DESCR("greater-than-or-equals"); +DATA(insert OID = 686 ( char2ne PGUID 11 f t f 2 f 16 "409 409" 100 0 0 100 foo bar )); +DESCR("not equal"); +DATA(insert OID = 687 ( char4ne PGUID 11 f t f 2 f 16 "410 410" 100 0 0 100 foo bar )); +DESCR("not equal"); +DATA(insert OID = 688 ( char8ne PGUID 11 f t f 2 f 16 "411 411" 100 0 0 100 foo bar )); +DESCR("not equal"); +DATA(insert OID = 689 ( btchar2cmp PGUID 11 f t f 2 f 23 "409 409" 100 0 0 100 foo bar )); +DESCR("btree less-equal-greater"); +DATA(insert OID = 690 ( btchar4cmp PGUID 11 f t f 2 f 23 "410 410" 100 0 0 100 foo bar )); +DESCR("btree less-equal-greater"); +DATA(insert OID = 691 ( btchar8cmp PGUID 11 f t f 2 f 23 "411 411" 100 0 0 100 foo bar )); +DESCR("btree less-equal-greater"); +DATA(insert OID = 692 ( hashchar2 PGUID 11 f t f 2 f 23 "409 409" 100 0 0 100 foo bar )); +DESCR("hash"); +DATA(insert OID = 693 ( hashchar4 PGUID 11 f t f 2 f 23 "410 410" 100 0 0 100 foo bar )); +DESCR("hash"); +DATA(insert OID = 694 ( hashchar8 PGUID 11 f t f 2 f 23 "411 411" 100 0 0 100 foo bar )); +DESCR("hash"); +DATA(insert OID = 695 ( char8regexeq PGUID 11 f t f 2 f 16 "411 25" 100 0 0 100 foo bar )); +DESCR("matches regex., case-sensitive"); +DATA(insert OID = 696 ( char8regexne PGUID 11 f t f 2 f 16 "411 25" 100 0 0 100 foo bar )); +DESCR("does not match regex., case-sensitive"); +DATA(insert OID = 699 ( char2regexeq PGUID 11 f t f 2 f 16 "409 25" 100 0 0 100 foo bar )); +DESCR("matches regex., case-sensitive"); /* OIDS 700 - 799 */ +DATA(insert OID = 1288 ( char16regexeq PGUID 11 f t f 2 f 16 "19 25" 100 0 0 100 foo bar )); +DESCR("matches regex., case-sensitive"); +DATA(insert OID = 1289 ( char16regexne PGUID 11 f t f 2 f 16 "19 25" 100 0 0 100 foo bar )); +DESCR("does not match regex., case-sensitive"); DATA(insert OID = 710 ( getpgusername PGUID 11 f t f 0 f 19 "0" 100 0 0 100 foo bar )); DESCR("(internal)"); @@ -1029,16 +1120,39 @@ DESCR("less-equal-greater"); DATA(insert OID = 829 ( mkoidint2 PGUID 11 f t f 2 f 810 "26 21" 100 0 0 100 foo bar)); DESCR(""); +DATA(insert OID = 837 ( char2regexne PGUID 11 f t f 2 f 16 "409 25" 100 0 0 100 foo bar )); +DESCR("does not match regex., case-sensitive"); +DATA(insert OID = 836 ( char4regexeq PGUID 11 f t f 2 f 16 "410 25" 100 0 0 100 foo bar )); +DESCR("matches regex., case-sensitive"); +DATA(insert OID = 838 ( char4regexne PGUID 11 f t f 2 f 16 "410 25" 100 0 0 100 foo bar )); +DESCR("does not match regex., case-sensitive"); + DATA(insert OID = 849 ( textpos PGUID 11 f t f 2 f 23 "25 25" 100 0 1 0 foo bar )); DESCR("return position of substring"); DATA(insert OID = 850 ( textlike PGUID 11 f t f 2 f 16 "25 25" 100 0 1 0 foo bar )); DESCR("matches LIKE expression"); DATA(insert OID = 851 ( textnlike PGUID 11 f t f 2 f 16 "25 25" 100 0 1 0 foo bar )); DESCR("does not match LIKE expression"); +DATA(insert OID = 852 ( char2like PGUID 11 f t f 2 f 16 "409 25" 100 0 0 100 foo bar )); +DESCR("matches LIKE expression"); +DATA(insert OID = 853 ( char2nlike PGUID 11 f t f 2 f 16 "409 25" 100 0 0 100 foo bar )); +DESCR("does not match LIKE expression"); +DATA(insert OID = 854 ( char4like PGUID 11 f t f 2 f 16 "410 25" 100 0 0 100 foo bar )); +DESCR("matches LIKE expression"); +DATA(insert OID = 855 ( char4nlike PGUID 11 f t f 2 f 16 "410 25" 100 0 0 100 foo bar )); +DESCR("does not match LIKE expression"); +DATA(insert OID = 856 ( char8like PGUID 11 f t f 2 f 16 "411 25" 100 0 0 100 foo bar )); +DESCR("matches LIKE expression"); +DATA(insert OID = 857 ( char8nlike PGUID 11 f t f 2 f 16 "411 25" 100 0 0 100 foo bar )); +DESCR("does not match LIKE expression"); DATA(insert OID = 858 ( namelike PGUID 11 f t f 2 f 16 "19 25" 100 0 0 100 foo bar )); DESCR("matches LIKE expression"); DATA(insert OID = 859 ( namenlike PGUID 11 f t f 2 f 16 "19 25" 100 0 0 100 foo bar )); DESCR("does not match LIKE expression"); +DATA(insert OID = 860 ( char16like PGUID 11 f t f 2 f 16 "20 25" 100 0 0 100 foo bar )); +DESCR("matches LIKE expression"); +DATA(insert OID = 861 ( char16nlike PGUID 11 f t f 2 f 16 "20 25" 100 0 0 100 foo bar )); +DESCR("does not match LIKE expression"); DATA(insert OID = 846 ( cash_mul_flt4 PGUID 11 f t f 2 f 790 "790 700" 100 0 0 100 foo bar )); DESCR("multiply"); @@ -1463,6 +1577,10 @@ DESCR("truncate datetime to specified units"); DATA(insert OID = 1218 ( timespan_trunc PGUID 11 f t f 2 f 1186 "25 1186" 100 0 0 100 foo bar )); DESCR("truncate timespan to specified units"); +DATA(insert OID = 1236 ( char16icregexeq PGUID 11 f t f 2 f 16 "20 25" 100 0 0 100 foo bar )); +DESCR("matches regex., case-insensitive"); +DATA(insert OID = 1237 ( char16icregexne PGUID 11 f t f 2 f 16 "20 25" 100 0 0 100 foo bar )); +DESCR("does not match regex., case-insensitive"); DATA(insert OID = 1238 ( texticregexeq PGUID 11 f t f 2 f 16 "25 25" 100 0 1 0 foo bar )); DESCR("matches regex., case-insensitive"); DATA(insert OID = 1239 ( texticregexne PGUID 11 f t f 2 f 16 "25 25" 100 0 1 0 foo bar )); @@ -1482,6 +1600,19 @@ DESCR("convert"); DATA(insert OID = 1271 ( timespan_finite PGUID 11 f t f 1 f 16 "1186" 100 0 0 100 foo bar )); DESCR("boolean test"); +DATA(insert OID = 1290 ( char2icregexeq PGUID 11 f t f 2 f 16 "409 25" 100 0 0 100 foo bar )); +DESCR("matches regex., case-insensitive"); +DATA(insert OID = 1291 ( char2icregexne PGUID 11 f t f 2 f 16 "409 25" 100 0 0 100 foo bar )); +DESCR("does not match regex., case-insensitive"); +DATA(insert OID = 1292 ( char4icregexeq PGUID 11 f t f 2 f 16 "410 25" 100 0 0 100 foo bar )); +DESCR("matches regex., case-insensitive"); +DATA(insert OID = 1293 ( char4icregexne PGUID 11 f t f 2 f 16 "410 25" 100 0 0 100 foo bar )); +DESCR("does not match regex., case-insensitive"); +DATA(insert OID = 1294 ( char8icregexeq PGUID 11 f t f 2 f 16 "411 25" 100 0 0 100 foo bar )); +DESCR("matches regex., case-insensitive"); +DATA(insert OID = 1295 ( char8icregexne PGUID 11 f t f 2 f 16 "411 25" 100 0 0 100 foo bar )); +DESCR("does not match regex., case-insensitive"); + DATA(insert OID = 1297 ( timestamp_in PGUID 11 f t f 1 f 1296 "0" 100 0 0 100 foo bar )); DESCR("(internal)"); DATA(insert OID = 1298 ( timestamp_out PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar )); diff --git a/src/include/catalog/pg_type.h b/src/include/catalog/pg_type.h index c255a13903c0dca34a3ac034e3d7107d4838e8fc..2d9b81cc777187406b61ffdac78c4620605eb238 100644 --- a/src/include/catalog/pg_type.h +++ b/src/include/catalog/pg_type.h @@ -7,7 +7,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: pg_type.h,v 1.36 1998/03/30 17:25:31 momjian Exp $ + * $Id: pg_type.h,v 1.37 1998/04/07 18:12:28 momjian Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki @@ -166,6 +166,8 @@ DATA(insert OID = 19 ( name PGUID NAMEDATALEN NAMEDATALEN f b t \054 0 18 na DESCR("31-character type for storing system identifiers"); #define NAMEOID 19 +DATA(insert OID = 20 ( char16 PGUID 16 16 f b t \054 0 18 char16in char16out char16in char16out i _null_ )); +DESCR("16 characters, fixed length"); DATA(insert OID = 21 ( int2 PGUID 2 5 t b t \054 0 0 int2in int2out int2in int2out s _null_ )); DESCR("two-byte integer, -32k to 32k"); #define INT2OID 21 @@ -230,6 +232,12 @@ DESCR("storage manager"); /* OIDS 300 - 399 */ /* OIDS 400 - 499 */ +DATA(insert OID = 409 ( char2 PGUID 2 2 t b t \054 0 18 char2in char2out char2in char2out s _null_ )); +DESCR("2 characters"); +DATA(insert OID = 410 ( char4 PGUID 4 4 t b t \054 0 18 char4in char4out char4in char4out i _null_ )); +DESCR("4 characters"); +DATA(insert OID = 411 ( char8 PGUID 8 8 f b t \054 0 18 char8in char8out char8in char8out i _null_ )); +DESCR("8 characters"); /* OIDS 500 - 599 */ @@ -293,6 +301,7 @@ DATA(insert OID = 1000 ( _bool PGUID -1 -1 f b t \054 0 16 array_in array_ou DATA(insert OID = 1001 ( _bytea PGUID -1 -1 f b t \054 0 17 array_in array_out array_in array_out i _null_ )); DATA(insert OID = 1002 ( _char PGUID -1 -1 f b t \054 0 18 array_in array_out array_in array_out i _null_ )); DATA(insert OID = 1003 ( _name PGUID -1 -1 f b t \054 0 19 array_in array_out array_in array_out i _null_ )); +DATA(insert OID = 1004 ( _char16 PGUID -1 -1 f b t \054 0 20 array_in array_out array_in array_out i _null_ )); DATA(insert OID = 1005 ( _int2 PGUID -1 -1 f b t \054 0 21 array_in array_out array_in array_out i _null_ )); DATA(insert OID = 1006 ( _int28 PGUID -1 -1 f b t \054 0 22 array_in array_out array_in array_out i _null_ )); DATA(insert OID = 1007 ( _int4 PGUID -1 -1 f b t \054 0 23 array_in array_out array_in array_out i _null_ )); @@ -322,6 +331,10 @@ DATA(insert OID = 1033 ( aclitem PGUID 8 -1 f b t \054 0 0 aclitemin aclitem DESCR("access control list"); DATA(insert OID = 1034 ( _aclitem PGUID -1 -1 f b t \054 0 1033 array_in array_out array_in array_out i _null_ )); +DATA(insert OID = 1039 ( _char2 PGUID -1 -1 f b t \054 0 409 array_in array_out array_in array_out i _null_ )); +DATA(insert OID = 1040 ( _char4 PGUID -1 -1 f b t \054 0 410 array_in array_out array_in array_out i _null_ )); +DATA(insert OID = 1041 ( _char8 PGUID -1 -1 f b t \054 0 411 array_in array_out array_in array_out i _null_ )); + DATA(insert OID = 1042 ( bpchar PGUID -1 -1 f b t \054 0 18 bpcharin bpcharout bpcharin bpcharout i _null_ )); DESCR("blank-padded characters, length specifed when created"); #define BPCHAROID 1042 diff --git a/src/include/postgres.h b/src/include/postgres.h index 66d665cf9b80423f9cf0e5aa8f52d2a53ae1c600..12c818a4497664dff1b9efdacb643121f1caf74e 100644 --- a/src/include/postgres.h +++ b/src/include/postgres.h @@ -6,7 +6,7 @@ * * Copyright (c) 1995, Regents of the University of California * - * $Id: postgres.h,v 1.14 1998/03/30 17:24:31 momjian Exp $ + * $Id: postgres.h,v 1.15 1998/04/07 18:11:53 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -19,7 +19,7 @@ * Oid regproc RegProcedure * aclitem * struct varlena - * int28 oid8 + * char8 char16 int28 oid8 * bytea text * NameData Name * oidint4 oidint2 oidname @@ -88,6 +88,22 @@ struct varlena typedef struct varlena bytea; typedef struct varlena text; +typedef struct char8 +{ + char data[8]; +} char8; + +/* ---------------- + * char16 + * ---------------- + */ +typedef struct char16 +{ + char data[16]; +} char16; + +typedef char16 *Char16; + typedef int2 int28[8]; typedef Oid oid8[8]; diff --git a/src/include/utils/builtins.h b/src/include/utils/builtins.h index adc4f7dc6b61fde1fc155906b217b2c30f1922d2..8d605897094ecc29c86b088681a3919c6c5d3da5 100644 --- a/src/include/utils/builtins.h +++ b/src/include/utils/builtins.h @@ -6,7 +6,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: builtins.h,v 1.38 1998/03/30 17:25:38 momjian Exp $ + * $Id: builtins.h,v 1.39 1998/04/07 18:12:35 momjian Exp $ * * NOTES * This should normally only be included by fmgr.h. @@ -43,6 +43,8 @@ extern int32 charin(char *ch); extern char *charout(int32 ch); extern int32 cidin(char *s); extern char *cidout(int32 c); +extern char *char16in(char *s); +extern char *char16out(char *s); extern bool chareq(int8 arg1, int8 arg2); extern bool charne(int8 arg1, int8 arg2); extern bool charlt(int8 arg1, int8 arg2); @@ -54,6 +56,39 @@ extern int8 charmi(int8 arg1, int8 arg2); extern int8 charmul(int8 arg1, int8 arg2); extern int8 chardiv(int8 arg1, int8 arg2); extern bool cideq(int8 arg1, int8 arg2); +extern bool char16eq(char *arg1, char *arg2); +extern bool char16ne(char *arg1, char *arg2); +extern bool char16lt(char *arg1, char *arg2); +extern bool char16le(char *arg1, char *arg2); +extern bool char16gt(char *arg1, char *arg2); +extern bool char16ge(char *arg1, char *arg2); +extern uint16 char2in(char *s); +extern char *char2out(uint16 s); +extern bool char2eq(uint16 a, uint16 b); +extern bool char2ne(uint16 a, uint16 b); +extern bool char2lt(uint16 a, uint16 b); +extern bool char2le(uint16 a, uint16 b); +extern bool char2gt(uint16 a, uint16 b); +extern bool char2ge(uint16 a, uint16 b); +extern int32 char2cmp(uint16 a, uint16 b); +extern uint32 char4in(char *s); +extern char *char4out(uint32 s); +extern bool char4eq(uint32 a, uint32 b); +extern bool char4ne(uint32 a, uint32 b); +extern bool char4lt(uint32 a, uint32 b); +extern bool char4le(uint32 a, uint32 b); +extern bool char4gt(uint32 a, uint32 b); +extern bool char4ge(uint32 a, uint32 b); +extern int32 char4cmp(uint32 a, uint32 b); +extern char *char8in(char *s); +extern char *char8out(char *s); +extern bool char8eq(char *arg1, char *arg2); +extern bool char8ne(char *arg1, char *arg2); +extern bool char8lt(char *arg1, char *arg2); +extern bool char8le(char *arg1, char *arg2); +extern bool char8gt(char *arg1, char *arg2); +extern bool char8ge(char *arg1, char *arg2); +extern int32 char8cmp(char *arg1, char *arg2); /* int.c */ extern int32 int2in(char *num); @@ -162,6 +197,10 @@ extern int32 btfloat8cmp(float64 a, float64 b); extern int32 btoidcmp(Oid a, Oid b); extern int32 btabstimecmp(AbsoluteTime a, AbsoluteTime b); extern int32 btcharcmp(char a, char b); +extern int32 btchar2cmp(uint16 a, uint16 b); +extern int32 btchar4cmp(uint32 a, uint32 b); +extern int32 btchar8cmp(char *a, char *b); +extern int32 btchar16cmp(char *a, char *b); extern int32 btnamecmp(NameData *a, NameData *b); extern int32 bttextcmp(struct varlena * a, struct varlena * b); @@ -335,10 +374,26 @@ extern text *oid_text(Oid arg1); extern Oid text_oid(text *arg1); /* regexp.c */ +extern bool char2regexeq(uint16 arg1, struct varlena * p); +extern bool char2regexne(uint16 arg1, struct varlena * p); +extern bool char4regexeq(uint32 arg1, struct varlena * p); +extern bool char4regexne(uint32 arg1, struct varlena * p); +extern bool char8regexeq(char *s, struct varlena * p); +extern bool char8regexne(char *s, struct varlena * p); +extern bool char16regexeq(char *s, struct varlena * p); +extern bool char16regexne(char *s, struct varlena * p); extern bool nameregexeq(NameData *n, struct varlena * p); extern bool nameregexne(NameData *s, struct varlena * p); extern bool textregexeq(struct varlena * s, struct varlena * p); extern bool textregexne(struct varlena * s, struct varlena * p); +extern bool char2icregexeq(uint16 arg1, struct varlena * p); +extern bool char2icregexne(uint16 arg1, struct varlena * p); +extern bool char4icregexeq(uint32 arg1, struct varlena * p); +extern bool char4icregexne(uint32 arg1, struct varlena * p); +extern bool char8icregexeq(char *s, struct varlena * p); +extern bool char8icregexne(char *s, struct varlena * p); +extern bool char16icregexeq(char *s, struct varlena * p); +extern bool char16icregexne(char *s, struct varlena * p); extern bool nameicregexeq(NameData *s, struct varlena * p); extern bool nameicregexne(NameData *s, struct varlena * p); extern bool texticregexeq(struct varlena * s, struct varlena * p); @@ -469,6 +524,14 @@ extern TimeADT *datetime_time(DateTime *datetime); extern int32 int42reltime(int32 timevalue); /* like.c */ +extern bool char2like(uint16 arg1, struct varlena * p); +extern bool char2nlike(uint16 arg1, struct varlena * p); +extern bool char4like(uint32 arg1, struct varlena * p); +extern bool char4nlike(uint32 arg1, struct varlena * p); +extern bool char8like(char *s, struct varlena * p); +extern bool char8nlike(char *s, struct varlena * p); +extern bool char16like(char *s, struct varlena * p); +extern bool char16nlike(char *s, struct varlena * p); extern bool namelike(NameData *n, struct varlena * p); extern bool namenlike(NameData *s, struct varlena * p); extern bool textlike(struct varlena * s, struct varlena * p); diff --git a/src/include/utils/oidcompos.h b/src/include/utils/oidcompos.h index 100b992b3d4e3b6ba6c25d421c9df144b4d65ca1..30cedbf6e13aac75733ee9e8d9b71f53c1e70554 100644 --- a/src/include/utils/oidcompos.h +++ b/src/include/utils/oidcompos.h @@ -1,12 +1,12 @@ /*------------------------------------------------------------------------- * * oidcompos.h-- - * prototype file for the oid {name,int4} composite type functions. + * prototype file for the oid {char16,int4} composite type functions. * * * Copyright (c) 1994, Regents of the University of California * - * $Id: oidcompos.h,v 1.4 1998/03/30 17:25:41 momjian Exp $ + * $Id: oidcompos.h,v 1.5 1998/04/07 18:12:36 momjian Exp $ * *------------------------------------------------------------------------- */ diff --git a/src/man/bki.5 b/src/man/bki.5 index f7e3a87bad98591560877ae8aaf178a303ea6508..9fb8e6b2ce2b7ca99f7e3582da4e6fa2758af872 100644 --- a/src/man/bki.5 +++ b/src/man/bki.5 @@ -1,5 +1,5 @@ .\" This is -*-nroff-*- -.\" $Header: /cvsroot/pgsql/src/man/Attic/bki.5,v 1.2 1998/03/30 17:25:47 momjian Exp $ +.\" $Header: /cvsroot/pgsql/src/man/Attic/bki.5,v 1.3 1998/04/07 18:12:50 momjian Exp $ .TH BKI 5 11/04/96 Postgres Postgres .SH NAME *.bki @@ -207,7 +207,7 @@ collection as object .IR 421, print out the class, and then close it. .nf -create pg_opclass (opcname=name) +create pg_opclass (opcname=char16) open pg_opclass insert oid=421 (int_ops) print diff --git a/src/man/create_function.l b/src/man/create_function.l index 1213dc95b0a736a564e5685d5c51dba4caca09cd..cff79889bbdc544ad5d950bd04384966023c8209 100644 --- a/src/man/create_function.l +++ b/src/man/create_function.l @@ -1,6 +1,6 @@ .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... -.\" $Header: /cvsroot/pgsql/src/man/Attic/create_function.l,v 1.6 1998/03/30 17:25:48 momjian Exp $ +.\" $Header: /cvsroot/pgsql/src/man/Attic/create_function.l,v 1.7 1998/04/07 18:12:51 momjian Exp $ .TH "CREATE FUNCTION" SQL 11/05/95 PostgreSQL PostgreSQL .SH "NAME" create function - define a new function @@ -138,6 +138,7 @@ bool bool include/c.h box (BOX *) utils/geo-decls.h bytea (bytea *) include/postgres.h char char N/A +char16 Char16 or (char16 *) include/postgres.h cid CID include/postgres.h int2 int2 include/postgres.h int28 (int28 *) include/postgres.h diff --git a/src/man/create_index.l b/src/man/create_index.l index 333d555b994c9a1146886737e0c05ce250786d54..2247026bce89f9393a8f02c6f601c48f6780d87a 100644 --- a/src/man/create_index.l +++ b/src/man/create_index.l @@ -1,6 +1,6 @@ .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... -.\" $Header: /cvsroot/pgsql/src/man/Attic/create_index.l,v 1.9 1998/03/30 17:25:50 momjian Exp $ +.\" $Header: /cvsroot/pgsql/src/man/Attic/create_index.l,v 1.10 1998/04/07 18:12:52 momjian Exp $ .TH "CREATE INDEX" SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME create index - construct a secondary index @@ -99,6 +99,26 @@ btree |bpchar_ops |<= btree |bpchar_ops |= btree |bpchar_ops |> btree |bpchar_ops |>= +btree |char16_ops |< +btree |char16_ops |<= +btree |char16_ops |= +btree |char16_ops |> +btree |char16_ops |>= +btree |char2_ops |< +btree |char2_ops |<= +btree |char2_ops |= +btree |char2_ops |> +btree |char2_ops |>= +btree |char4_ops |< +btree |char4_ops |<= +btree |char4_ops |= +btree |char4_ops |> +btree |char4_ops |>= +btree |char8_ops |< +btree |char8_ops |<= +btree |char8_ops |= +btree |char8_ops |> +btree |char8_ops |>= btree |char_ops |< btree |char_ops |<= btree |char_ops |= @@ -180,6 +200,10 @@ btree |varchar_ops|= btree |varchar_ops|> btree |varchar_ops|>= hash |bpchar_ops |= +hash |char16_ops |= +hash |char2_ops |= +hash |char4_ops |= +hash |char8_ops |= hash |char_ops |= hash |date_ops |= hash |float4_ops |= @@ -230,7 +254,7 @@ The operator classes .IR oidint2_ops , .IR oidint4_ops , and -.IR oidname_ops +.IR oidchar16_ops represent the use of .IR "functional indices" to simulate multi-key indices. @@ -276,7 +300,7 @@ create index empindex on emp using btree (age int4_ops) --Create a btree index on employee name. -- create index empname - on emp using btree (name name_ops) + on emp using btree (name char16_ops) .fi .nf -- diff --git a/src/man/create_rule.l b/src/man/create_rule.l index 4347720f59bd7fe4926385112870a5ec73f1e88a..3c84427f32daf24652c5b44b3b7e21478abf5e29 100644 --- a/src/man/create_rule.l +++ b/src/man/create_rule.l @@ -1,6 +1,6 @@ .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... -.\" $Header: /cvsroot/pgsql/src/man/Attic/create_rule.l,v 1.5 1998/03/30 17:25:51 momjian Exp $ +.\" $Header: /cvsroot/pgsql/src/man/Attic/create_rule.l,v 1.6 1998/04/07 18:12:53 momjian Exp $ .TH "CREATE RULE" SQL 11/05/95 PostgreSQL PostgreSQL .SH NAME create rule - define a new rule @@ -183,7 +183,7 @@ create rule example_3 is -- --Create a view of the employees working in the toy department. -- -create TOYEMP(name = name, salary = int4) +create TOYEMP(name = char16, salary = int4) create rule example_4 is on select to TOYEMP diff --git a/src/man/create_table.l b/src/man/create_table.l index 1dd6ee3fe2759ae1bf3d5ee707ac0c95447397e1..d314241ce50249bc3e33728e314b714fe64d8ff4 100644 --- a/src/man/create_table.l +++ b/src/man/create_table.l @@ -1,6 +1,6 @@ .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... -.\" $Header: /cvsroot/pgsql/src/man/Attic/create_table.l,v 1.15 1998/03/30 17:25:51 momjian Exp $ +.\" $Header: /cvsroot/pgsql/src/man/Attic/create_table.l,v 1.16 1998/04/07 18:12:54 momjian Exp $ .TH "CREATE TABLE" SQL 09/25/97 PostgreSQL .SH NAME create table - create a new class @@ -78,14 +78,14 @@ name as a system catalog class. -- -- Create class emp with attributes name, sal and bdate -- -create table emp (name name, salary float4, bdate abstime) +create table emp (name char16, salary float4, bdate abstime) .fi .nf -- --Create class permemp with pension information that --inherits all fields of emp -- -create table permemp (plan name) inherits (emp) +create table permemp (plan char16) inherits (emp) .fi .nf -- diff --git a/src/man/libpq.3 b/src/man/libpq.3 index 77423866a7e69dba89ab22412e5f9e5645227bad..f10ac9f45e52ecc9c08765a5df08a4ee31631b6c 100644 --- a/src/man/libpq.3 +++ b/src/man/libpq.3 @@ -1,6 +1,6 @@ .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... -.\" $Header: /cvsroot/pgsql/src/man/Attic/libpq.3,v 1.14 1998/03/30 17:25:55 momjian Exp $ +.\" $Header: /cvsroot/pgsql/src/man/Attic/libpq.3,v 1.15 1998/04/07 18:12:56 momjian Exp $ .TH LIBPQ INTRO 03/12/94 PostgreSQL PostgreSQL .SH DESCRIPTION Libpq is the programmer's interface to Postgres. Libpq is a set of @@ -556,7 +556,7 @@ int PQendcopy(PGconn *conn); .fi As an example: .nf -PQexec(conn, "create table foo (a int4, b name, d float8)"); +PQexec(conn, "create table foo (a int4, b char16, d float8)"); PQexec(conn, "copy foo from stdin"); PQputline(conn, "3<TAB>hello world<TAB>4.5\en"); PQputline(conn,"4<TAB>goodbye world<TAB>7.11\en"); diff --git a/src/man/sql.l b/src/man/sql.l index afe8d59bb237c61f5e77a963dbf9db36184877ce..73b64ee4a7c96dc80083496622bc63fe2f329016 100644 --- a/src/man/sql.l +++ b/src/man/sql.l @@ -1,6 +1,6 @@ .\" This is -*-nroff-*- .\" XXX standard disclaimer belongs here.... -.\" $Header: /cvsroot/pgsql/src/man/Attic/sql.l,v 1.9 1998/03/30 17:26:00 momjian Exp $ +.\" $Header: /cvsroot/pgsql/src/man/Attic/sql.l,v 1.10 1998/04/07 18:12:57 momjian Exp $ .TH INTRODUCTION SQL 11/5/95 PostgreSQL PostgreSQL .SH "Section 4 - SQL Commands (COMMANDS)" .SH "General Information" @@ -219,7 +219,7 @@ parameter is: .fi For example, consider the definition of a function, DEPT, as .nf -create function DEPT (name) +create function DEPT (char16) returns dept as 'select * from dept where name=$1' diff --git a/src/test/bench/create.source b/src/test/bench/create.source index b75ed732a0c1d3a114762638e7626abf087503e1..986ff3cf6c0d067e6920afa992265e990272140a 100644 --- a/src/test/bench/create.source +++ b/src/test/bench/create.source @@ -1,6 +1,6 @@ -create table onek(unique1 int4,unique2 int4,two int4,four int4,ten int4,twenty int4, hundred int4,thousand int4,twothousand int4,fivethous int4,tenthous int4,odd int4, even int4,stringu1 name,stringu2 name,string4 name); -create table tenk1 (unique1 int4,unique2 int4, two int4,four int4,ten int4,twenty int4,hundred int4,thousand int4,twothousand int4,fivethous int4,tenthous int4,odd int4,even int4,stringu1 name,stringu2 name,string4 name); -create table tenk2 (unique1 int4, unique2 int4, two int4, four int4,ten int4, twenty int4, hundred int4, thousand int4, twothousand int4,fivethous int4, tenthous int4, odd int4, even int4,stringu1 name,stringu2 name, string4 name); +create table onek(unique1 int4,unique2 int4,two int4,four int4,ten int4,twenty int4, hundred int4,thousand int4,twothousand int4,fivethous int4,tenthous int4,odd int4, even int4,stringu1 char16,stringu2 char16,string4 char16); +create table tenk1 (unique1 int4,unique2 int4, two int4,four int4,ten int4,twenty int4,hundred int4,thousand int4,twothousand int4,fivethous int4,tenthous int4,odd int4,even int4,stringu1 char16,stringu2 char16,string4 char16); +create table tenk2 (unique1 int4, unique2 int4, two int4, four int4,ten int4, twenty int4, hundred int4, thousand int4, twothousand int4,fivethous int4, tenthous int4, odd int4, even int4,stringu1 char16,stringu2 char16, string4 char16); copy onek from '_CWD_/../regress/data/onek.data'; copy tenk1 from '_CWD_/../regress/data/tenk.data'; copy tenk2 from '_CWD_/../regress/data/tenk.data'; diff --git a/src/test/regress/expected/alter_table.out b/src/test/regress/expected/alter_table.out index 0d218eec6a8de5d201988ad7a5e205e8b74883d6..9da80caf97dfde45e0301f566c9ad2331cbfdd8a 100644 --- a/src/test/regress/expected/alter_table.out +++ b/src/test/regress/expected/alter_table.out @@ -1,6 +1,6 @@ QUERY: CREATE TABLE temp (initial int4); QUERY: ALTER TABLE temp ADD COLUMN a int4; -QUERY: ALTER TABLE temp ADD COLUMN b name; +QUERY: ALTER TABLE temp ADD COLUMN b char16; QUERY: ALTER TABLE temp ADD COLUMN c text; QUERY: ALTER TABLE temp ADD COLUMN d float8; QUERY: ALTER TABLE temp ADD COLUMN e float4; @@ -27,12 +27,12 @@ QUERY: ALTER TABLE temp ADD COLUMN y float4[]; QUERY: ALTER TABLE temp ADD COLUMN z int2[]; QUERY: INSERT INTO temp (a, b, c, d, e, f, g, h, i, j, k, l, m, n, p, q, r, s, t, u, v, w, x, y, z) - VALUES (4, 'name', 'text', 4.1, 4.1, 2, '(4.1,4.1,3.1,3.1)', + VALUES (4, 'char16', 'text', 4.1, 4.1, 2, '(4.1,4.1,3.1,3.1)', 'Mon May 1 00:30:30 1995', 'c', '{Mon May 1 00:30:30 1995, Monday Aug 24 14:43:07 1992, epoch}', 314159, '(1,1)', 512, '1 2 3 4 5 6 7 8', 'magnetic disk', '(1.1,1.1)', '(4.1,4.1,3.1,3.1)', '(0,2,4.1,4.1,3.1,3.1)', '(4.1,4.1,3.1,3.1)', '["current" "infinity"]', - '1/3', '1,name', '{1.0,2.0,3.0,4.0}', '{1.0,2.0,3.0,4.0}', '{1,2,3,4}'); + '1/3', '1,char16', '{1.0,2.0,3.0,4.0}', '{1.0,2.0,3.0,4.0}', '{1,2,3,4}'); ERROR: Relation temp does not have attribute k QUERY: SELECT * FROM temp; initial|a|b|c|d|e|f|g|h|i|j|l|m|n|p|q|r|s|t|u|v|w|x|y|z @@ -44,7 +44,7 @@ QUERY: CREATE TABLE temp ( initial int4 ); QUERY: ALTER TABLE temp ADD COLUMN a int4; -QUERY: ALTER TABLE temp ADD COLUMN b name; +QUERY: ALTER TABLE temp ADD COLUMN b char16; QUERY: ALTER TABLE temp ADD COLUMN c text; QUERY: ALTER TABLE temp ADD COLUMN d float8; QUERY: ALTER TABLE temp ADD COLUMN e float4; @@ -71,12 +71,12 @@ QUERY: ALTER TABLE temp ADD COLUMN y float4[]; QUERY: ALTER TABLE temp ADD COLUMN z int2[]; QUERY: INSERT INTO temp (a, b, c, d, e, f, g, h, i, j, k, l, m, n, p, q, r, s, t, u, v, w, x, y, z) - VALUES (4, 'name', 'text', 4.1, 4.1, 2, '(4.1,4.1,3.1,3.1)', + VALUES (4, 'char16', 'text', 4.1, 4.1, 2, '(4.1,4.1,3.1,3.1)', 'Mon May 1 00:30:30 1995', 'c', '{Mon May 1 00:30:30 1995, Monday Aug 24 14:43:07 1992, epoch}', 314159, '(1,1)', 512, '1 2 3 4 5 6 7 8', 'magnetic disk', '(1.1,1.1)', '(4.1,4.1,3.1,3.1)', '(0,2,4.1,4.1,3.1,3.1)', '(4.1,4.1,3.1,3.1)', '["current" "infinity"]', - '1/3', '1,name', '{1.0,2.0,3.0,4.0}', '{1.0,2.0,3.0,4.0}', '{1,2,3,4}'); + '1/3', '1,char16', '{1.0,2.0,3.0,4.0}', '{1.0,2.0,3.0,4.0}', '{1,2,3,4}'); ERROR: Relation temp does not have attribute k QUERY: SELECT * FROM temp; initial|a|b|c|d|e|f|g|h|i|j|l|m|n|p|q|r|s|t|u|v|w|x|y|z diff --git a/src/test/regress/expected/arrays.out b/src/test/regress/expected/arrays.out index 92cfc94d2139b592fac1f5aab2eeb5f5b6c2e065..b593c212cb367194cdf1cd50da7687b26aecc538 100644 --- a/src/test/regress/expected/arrays.out +++ b/src/test/regress/expected/arrays.out @@ -42,7 +42,7 @@ x QUERY: SELECT * FROM arrtest WHERE arrtest.a[1] < 5 and - arrtest.c = '{"foobar"}'::_name; + arrtest.c = '{"foobar"}'::_char16; a|b|c|d|e -+-+-+-+- (0 rows) diff --git a/src/test/regress/expected/btree_index.out b/src/test/regress/expected/btree_index.out index fae68fd164da890d45c79a274f58445fd83ae3fd..97386feb518ab84d2f451430899ff2d0d1f0e406 100644 --- a/src/test/regress/expected/btree_index.out +++ b/src/test/regress/expected/btree_index.out @@ -23,24 +23,24 @@ seqno| random (1 row) QUERY: SELECT b.* - FROM bt_name_heap b - WHERE b.seqno < '1'::name; + FROM bt_c16_heap b + WHERE b.seqno < '1'::char16; seqno| random -----+---------- 0|1935401906 (1 row) QUERY: SELECT b.* - FROM bt_name_heap b - WHERE b.seqno >= '9999'::name; + FROM bt_c16_heap b + WHERE b.seqno >= '9999'::char16; seqno| random -----+---------- 9999|1227676208 (1 row) QUERY: SELECT b.* - FROM bt_name_heap b - WHERE b.seqno = '4500'::name; + FROM bt_c16_heap b + WHERE b.seqno = '4500'::char16; seqno| random -----+---------- 4500|2080851358 diff --git a/src/test/regress/expected/create_index.out b/src/test/regress/expected/create_index.out index 69535a52a0e24d2bc42fcd5763d457cd96d773e0..d09a4e4d757ce575904e6cb1641ed542189536e9 100644 --- a/src/test/regress/expected/create_index.out +++ b/src/test/regress/expected/create_index.out @@ -1,7 +1,7 @@ QUERY: CREATE INDEX onek_unique1 ON onek USING btree(unique1 int4_ops); QUERY: CREATE INDEX onek_unique2 ON onek USING btree(unique2 int4_ops); QUERY: CREATE INDEX onek_hundred ON onek USING btree(hundred int4_ops); -QUERY: CREATE INDEX onek_stringu1 ON onek USING btree(stringu1 name_ops); +QUERY: CREATE INDEX onek_stringu1 ON onek USING btree(stringu1 char16_ops); QUERY: CREATE INDEX tenk1_unique1 ON tenk1 USING btree(unique1 int4_ops); QUERY: CREATE INDEX tenk1_unique2 ON tenk1 USING btree(unique2 int4_ops); QUERY: CREATE INDEX tenk1_hundred ON tenk1 USING btree(hundred int4_ops); @@ -12,11 +12,11 @@ QUERY: CREATE INDEX rix ON road USING btree (name text_ops); QUERY: CREATE INDEX iix ON ihighway USING btree (name text_ops); QUERY: CREATE INDEX six ON shighway USING btree (name text_ops); QUERY: CREATE INDEX bt_i4_index ON bt_i4_heap USING btree (seqno int4_ops); -QUERY: CREATE INDEX bt_name_index ON bt_name_heap USING btree (seqno name_ops); +QUERY: CREATE INDEX bt_c16_index ON bt_c16_heap USING btree (seqno char16_ops); QUERY: CREATE INDEX bt_txt_index ON bt_txt_heap USING btree (seqno text_ops); QUERY: CREATE INDEX bt_f8_index ON bt_f8_heap USING btree (seqno float8_ops); QUERY: CREATE INDEX rect2ind ON fast_emp4000 USING rtree (home_base bigbox_ops); QUERY: CREATE INDEX hash_i4_index ON hash_i4_heap USING hash (random int4_ops); -QUERY: CREATE INDEX hash_name_index ON hash_name_heap USING hash (random name_ops); +QUERY: CREATE INDEX hash_c16_index ON hash_c16_heap USING hash (random char16_ops); QUERY: CREATE INDEX hash_txt_index ON hash_txt_heap USING hash (random text_ops); QUERY: CREATE INDEX hash_f8_index ON hash_f8_heap USING hash (random float8_ops); diff --git a/src/test/regress/expected/create_misc.out b/src/test/regress/expected/create_misc.out index 3382c8566971b35c61bfc1a32be3dbdd5cfebc8a..bfa7daacddb33ba026e5aa3ae93e28b5e324a22d 100644 --- a/src/test/regress/expected/create_misc.out +++ b/src/test/regress/expected/create_misc.out @@ -39,77 +39,77 @@ QUERY: INSERT INTO b_star (class, a, b) VALUES ('b', 3, 'mumble'::text); QUERY: INSERT INTO b_star (class, a) VALUES ('b', 4); QUERY: INSERT INTO b_star (class, b) VALUES ('b', 'bumble'::text); QUERY: INSERT INTO b_star (class) VALUES ('b'); -QUERY: INSERT INTO c_star (class, a, c) VALUES ('c', 5, 'hi mom'::name); +QUERY: INSERT INTO c_star (class, a, c) VALUES ('c', 5, 'hi mom'::char16); QUERY: INSERT INTO c_star (class, a) VALUES ('c', 6); -QUERY: INSERT INTO c_star (class, c) VALUES ('c', 'hi paul'::name); +QUERY: INSERT INTO c_star (class, c) VALUES ('c', 'hi paul'::char16); QUERY: INSERT INTO c_star (class) VALUES ('c'); QUERY: INSERT INTO d_star (class, a, b, c, d) - VALUES ('d', 7, 'grumble'::text, 'hi sunita'::name, '0.0'::float8); + VALUES ('d', 7, 'grumble'::text, 'hi sunita'::char16, '0.0'::float8); QUERY: INSERT INTO d_star (class, a, b, c) - VALUES ('d', 8, 'stumble'::text, 'hi koko'::name); + VALUES ('d', 8, 'stumble'::text, 'hi koko'::char16); QUERY: INSERT INTO d_star (class, a, b, d) VALUES ('d', 9, 'rumble'::text, '1.1'::float8); QUERY: INSERT INTO d_star (class, a, c, d) - VALUES ('d', 10, 'hi kristin'::name, '10.01'::float8); + VALUES ('d', 10, 'hi kristin'::char16, '10.01'::float8); QUERY: INSERT INTO d_star (class, b, c, d) - VALUES ('d', 'crumble'::text, 'hi boris'::name, '100.001'::float8); + VALUES ('d', 'crumble'::text, 'hi boris'::char16, '100.001'::float8); QUERY: INSERT INTO d_star (class, a, b) VALUES ('d', 11, 'fumble'::text); QUERY: INSERT INTO d_star (class, a, c) - VALUES ('d', 12, 'hi avi'::name); + VALUES ('d', 12, 'hi avi'::char16); QUERY: INSERT INTO d_star (class, a, d) VALUES ('d', 13, '1000.0001'::float8); QUERY: INSERT INTO d_star (class, b, c) - VALUES ('d', 'tumble'::text, 'hi andrew'::name); + VALUES ('d', 'tumble'::text, 'hi andrew'::char16); QUERY: INSERT INTO d_star (class, b, d) VALUES ('d', 'humble'::text, '10000.00001'::float8); QUERY: INSERT INTO d_star (class, c, d) - VALUES ('d', 'hi ginger'::name, '100000.000001'::float8); + VALUES ('d', 'hi ginger'::char16, '100000.000001'::float8); QUERY: INSERT INTO d_star (class, a) VALUES ('d', 14); QUERY: INSERT INTO d_star (class, b) VALUES ('d', 'jumble'::text); -QUERY: INSERT INTO d_star (class, c) VALUES ('d', 'hi jolly'::name); +QUERY: INSERT INTO d_star (class, c) VALUES ('d', 'hi jolly'::char16); QUERY: INSERT INTO d_star (class, d) VALUES ('d', '1000000.0000001'::float8); QUERY: INSERT INTO d_star (class) VALUES ('d'); QUERY: INSERT INTO e_star (class, a, c, e) - VALUES ('e', 15, 'hi carol'::name, '-1'::int2); + VALUES ('e', 15, 'hi carol'::char16, '-1'::int2); QUERY: INSERT INTO e_star (class, a, c) - VALUES ('e', 16, 'hi bob'::name); + VALUES ('e', 16, 'hi bob'::char16); QUERY: INSERT INTO e_star (class, a, e) VALUES ('e', 17, '-2'::int2); QUERY: INSERT INTO e_star (class, c, e) - VALUES ('e', 'hi michelle'::name, '-3'::int2); + VALUES ('e', 'hi michelle'::char16, '-3'::int2); QUERY: INSERT INTO e_star (class, a) VALUES ('e', 18); QUERY: INSERT INTO e_star (class, c) - VALUES ('e', 'hi elisa'::name); + VALUES ('e', 'hi elisa'::char16); QUERY: INSERT INTO e_star (class, e) VALUES ('e', '-4'::int2); QUERY: INSERT INTO f_star (class, a, c, e, f) - VALUES ('f', 19, 'hi claire'::name, '-5'::int2, '(1,3),(2,4)'::polygon); + VALUES ('f', 19, 'hi claire'::char16, '-5'::int2, '(1,3),(2,4)'::polygon); QUERY: INSERT INTO f_star (class, a, c, e) - VALUES ('f', 20, 'hi mike'::name, '-6'::int2); + VALUES ('f', 20, 'hi mike'::char16, '-6'::int2); QUERY: INSERT INTO f_star (class, a, c, f) - VALUES ('f', 21, 'hi marcel'::name, '(11,44),(22,55),(33,66)'::polygon); + VALUES ('f', 21, 'hi marcel'::char16, '(11,44),(22,55),(33,66)'::polygon); QUERY: INSERT INTO f_star (class, a, e, f) VALUES ('f', 22, '-7'::int2, '(111,555),(222,666),(333,777),(444,888)'::polygon); QUERY: INSERT INTO f_star (class, c, e, f) - VALUES ('f', 'hi keith'::name, '-8'::int2, + VALUES ('f', 'hi keith'::char16, '-8'::int2, '(1111,3333),(2222,4444)'::polygon); QUERY: INSERT INTO f_star (class, a, c) - VALUES ('f', 24, 'hi marc'::name); + VALUES ('f', 24, 'hi marc'::char16); QUERY: INSERT INTO f_star (class, a, e) VALUES ('f', 25, '-9'::int2); QUERY: INSERT INTO f_star (class, a, f) VALUES ('f', 26, '(11111,33333),(22222,44444)'::polygon); QUERY: INSERT INTO f_star (class, c, e) - VALUES ('f', 'hi allison'::name, '-10'::int2); + VALUES ('f', 'hi allison'::char16, '-10'::int2); QUERY: INSERT INTO f_star (class, c, f) - VALUES ('f', 'hi jeff'::name, + VALUES ('f', 'hi jeff'::char16, '(111111,333333),(222222,444444)'::polygon); QUERY: INSERT INTO f_star (class, e, f) VALUES ('f', '-11'::int2, '(1111111,3333333),(2222222,4444444)'::polygon); QUERY: INSERT INTO f_star (class, a) VALUES ('f', 27); -QUERY: INSERT INTO f_star (class, c) VALUES ('f', 'hi carl'::name); +QUERY: INSERT INTO f_star (class, c) VALUES ('f', 'hi carl'::char16); QUERY: INSERT INTO f_star (class, e) VALUES ('f', '-12'::int2); QUERY: INSERT INTO f_star (class, f) VALUES ('f', '(11111111,33333333),(22222222,44444444)'::polygon); diff --git a/src/test/regress/expected/create_table.out b/src/test/regress/expected/create_table.out index 7f3859da5d0e2b79eecdadaf3df6beba6ad8f095..2cc1099bed1c794e10527e9425d295d5426cef6b 100644 --- a/src/test/regress/expected/create_table.out +++ b/src/test/regress/expected/create_table.out @@ -20,9 +20,9 @@ QUERY: CREATE TABLE onek ( tenthous int4, odd int4, even int4, - stringu1 name, - stringu2 name, - string4 name + stringu1 char16, + stringu2 char16, + string4 char16 ); QUERY: CREATE TABLE tenk1 ( unique1 int4, @@ -38,9 +38,9 @@ QUERY: CREATE TABLE tenk1 ( tenthous int4, odd int4, even int4, - stringu1 name, - stringu2 name, - string4 name + stringu1 char16, + stringu2 char16, + string4 char16 ); QUERY: CREATE TABLE tenk2 ( unique1 int4, @@ -56,9 +56,9 @@ QUERY: CREATE TABLE tenk2 ( tenthous int4, odd int4, even int4, - stringu1 name, - stringu2 name, - string4 name + stringu1 char16, + stringu2 char16, + string4 char16 ); QUERY: CREATE TABLE person ( name text, @@ -67,7 +67,7 @@ QUERY: CREATE TABLE person ( ); QUERY: CREATE TABLE emp ( salary int4, - manager name + manager char16 ) INHERITS (person); QUERY: CREATE TABLE student ( gpa float8 @@ -76,12 +76,12 @@ QUERY: CREATE TABLE stud_emp ( percent int4 ) INHERITS (emp, student); QUERY: CREATE TABLE city ( - name name, + name char16, location box, budget city_budget ); QUERY: CREATE TABLE dept ( - dname name, + dname char16, mgrname text ); QUERY: CREATE TABLE slow_emp4000 ( @@ -111,7 +111,7 @@ QUERY: CREATE TABLE b_star ( b text ) INHERITS (a_star); QUERY: CREATE TABLE c_star ( - c name + c char16 ) INHERITS (a_star); QUERY: CREATE TABLE d_star ( d float8 @@ -129,7 +129,7 @@ QUERY: CREATE TABLE aggtest ( QUERY: CREATE TABLE arrtest ( a int2[], b int4[][][], - c name[], + c char16[], d text[][], e float8[] ); @@ -137,9 +137,9 @@ QUERY: CREATE TABLE hash_i4_heap ( seqno int4, random int4 ); -QUERY: CREATE TABLE hash_name_heap ( +QUERY: CREATE TABLE hash_c16_heap ( seqno int4, - random name + random char16 ); QUERY: CREATE TABLE hash_txt_heap ( seqno int4, @@ -153,8 +153,8 @@ QUERY: CREATE TABLE bt_i4_heap ( seqno int4, random int4 ); -QUERY: CREATE TABLE bt_name_heap ( - seqno name, +QUERY: CREATE TABLE bt_c16_heap ( + seqno char16, random int4 ); QUERY: CREATE TABLE bt_txt_heap ( diff --git a/src/test/regress/expected/hash_index.out b/src/test/regress/expected/hash_index.out index ee3f615beb5f923cd1a84e806946da2f84814372..c8403f7bc62f50c6b2474521bdf28a6d324644b8 100644 --- a/src/test/regress/expected/hash_index.out +++ b/src/test/regress/expected/hash_index.out @@ -11,15 +11,15 @@ seqno|random -----+------ (0 rows) -QUERY: SELECT hash_name_heap.* - WHERE hash_name_heap.random = '1505703298'::name; +QUERY: SELECT hash_c16_heap.* + WHERE hash_c16_heap.random = '1505703298'::char16; seqno| random -----+---------- 9838|1505703298 (1 row) -QUERY: SELECT hash_name_heap.* - WHERE hash_name_heap.random = '7777777'::name; +QUERY: SELECT hash_c16_heap.* + WHERE hash_c16_heap.random = '7777777'::char16; seqno|random -----+------ (0 rows) @@ -72,23 +72,23 @@ i20000 20000 (1 row) -QUERY: UPDATE hash_name_heap - SET random = '0123456789abcdef'::name - WHERE hash_name_heap.seqno = 6543; +QUERY: UPDATE hash_c16_heap + SET random = '0123456789abcdef'::char16 + WHERE hash_c16_heap.seqno = 6543; QUERY: SELECT h.seqno AS i6543, h.random AS c0_to_f - FROM hash_name_heap h - WHERE h.random = '0123456789abcdef'::name; + FROM hash_c16_heap h + WHERE h.random = '0123456789abcdef'::char16; i6543|c0_to_f -----+---------------- 6543|0123456789abcdef (1 row) -QUERY: UPDATE hash_name_heap +QUERY: UPDATE hash_c16_heap SET seqno = 20000 - WHERE hash_name_heap.random = '76652222'::name; + WHERE hash_c16_heap.random = '76652222'::char16; QUERY: SELECT h.seqno AS emptyset - FROM hash_name_heap h - WHERE h.random = '76652222'::name; + FROM hash_c16_heap h + WHERE h.random = '76652222'::char16; emptyset -------- (0 rows) diff --git a/src/test/regress/expected/name.out b/src/test/regress/expected/name.out index 9d3cdd46586585d9ad9345df044a8eae0222b266..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 --- a/src/test/regress/expected/name.out +++ b/src/test/regress/expected/name.out @@ -1,116 +0,0 @@ -QUERY: SELECT 'name string'::name = 'name string'::name AS "True"; -True ----- -t -(1 row) - -QUERY: SELECT 'name string'::name = 'name string '::name AS "False"; -False ------ -f -(1 row) - -QUERY: CREATE TABLE NAME_TBL(f1 name); -QUERY: INSERT INTO NAME_TBL(f1) VALUES ('ABCDEFGHIJKLMNOP'); -QUERY: INSERT INTO NAME_TBL(f1) VALUES ('abcdefghijklmnop'); -QUERY: INSERT INTO NAME_TBL(f1) VALUES ('asdfghjkl;'); -QUERY: INSERT INTO NAME_TBL(f1) VALUES ('343f%2a'); -QUERY: INSERT INTO NAME_TBL(f1) VALUES ('d34aaasdf'); -QUERY: INSERT INTO NAME_TBL(f1) VALUES (''); -QUERY: INSERT INTO NAME_TBL(f1) VALUES ('1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ'); -QUERY: SELECT '' AS seven, NAME_TBL.*; -seven|f1 ------+------------------------------- - |ABCDEFGHIJKLMNOP - |abcdefghijklmnop - |asdfghjkl; - |343f%2a - |d34aaasdf - | - |1234567890ABCDEFGHIJKLMNOPQRSTU -(7 rows) - -QUERY: SELECT '' AS six, c.f1 FROM NAME_TBL c WHERE c.f1 <> 'ABCDEFGHIJKLMNOP'; -six|f1 ----+------------------------------- - |abcdefghijklmnop - |asdfghjkl; - |343f%2a - |d34aaasdf - | - |1234567890ABCDEFGHIJKLMNOPQRSTU -(6 rows) - -QUERY: SELECT '' AS one, c.f1 FROM NAME_TBL c WHERE c.f1 = 'ABCDEFGHIJKLMNOP'; -one|f1 ----+---------------- - |ABCDEFGHIJKLMNOP -(1 row) - -QUERY: SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 < 'ABCDEFGHIJKLMNOP'; -three|f1 ------+------------------------------- - |343f%2a - | - |1234567890ABCDEFGHIJKLMNOPQRSTU -(3 rows) - -QUERY: SELECT '' AS four, c.f1 FROM NAME_TBL c WHERE c.f1 <= 'ABCDEFGHIJKLMNOP'; -four|f1 -----+------------------------------- - |ABCDEFGHIJKLMNOP - |343f%2a - | - |1234567890ABCDEFGHIJKLMNOPQRSTU -(4 rows) - -QUERY: SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 > 'ABCDEFGHIJKLMNOP'; -three|f1 ------+---------------- - |abcdefghijklmnop - |asdfghjkl; - |d34aaasdf -(3 rows) - -QUERY: SELECT '' AS four, c.f1 FROM NAME_TBL c WHERE c.f1 >= 'ABCDEFGHIJKLMNOP'; -four|f1 -----+---------------- - |ABCDEFGHIJKLMNOP - |abcdefghijklmnop - |asdfghjkl; - |d34aaasdf -(4 rows) - -QUERY: SELECT '' AS seven, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '.*'; -seven|f1 ------+------------------------------- - |ABCDEFGHIJKLMNOP - |abcdefghijklmnop - |asdfghjkl; - |343f%2a - |d34aaasdf - | - |1234567890ABCDEFGHIJKLMNOPQRSTU -(7 rows) - -QUERY: SELECT '' AS zero, c.f1 FROM NAME_TBL c WHERE c.f1 !~ '.*'; -zero|f1 -----+-- -(0 rows) - -QUERY: SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '[0-9]'; -three|f1 ------+------------------------------- - |343f%2a - |d34aaasdf - |1234567890ABCDEFGHIJKLMNOPQRSTU -(3 rows) - -QUERY: SELECT '' AS two, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '.*asdf.*'; -two|f1 ----+---------- - |asdfghjkl; - |d34aaasdf -(2 rows) - -QUERY: DROP TABLE NAME_TBL; diff --git a/src/test/regress/expected/oidname.out b/src/test/regress/expected/oidname.out index 4f8b7dadef26122366111001d73a6fb6eb3fecdb..e7ad5da26fea2c5f943b708a0dacdc3b1926aa31 100644 --- a/src/test/regress/expected/oidname.out +++ b/src/test/regress/expected/oidname.out @@ -4,18 +4,18 @@ QUERY: INSERT INTO OIDNAME_TBL(f1) VALUES ('1235,efgh'); QUERY: INSERT INTO OIDNAME_TBL(f1) VALUES ('987,XXXX'); QUERY: INSERT INTO OIDNAME_TBL(f1) VALUES ('123456'); ERROR: Bad input data for type oidname -QUERY: INSERT INTO OIDNAME_TBL(f1) VALUES ('123456,abcdefghijklmnopqrsutvwyz0123456789'); +QUERY: INSERT INTO OIDNAME_TBL(f1) VALUES ('123456,abcdefghijklmnopqrsutvwyz'); QUERY: INSERT INTO OIDNAME_TBL(f1) VALUES (''); ERROR: Bad input data for type oidname QUERY: INSERT INTO OIDNAME_TBL(f1) VALUES ('asdfasd'); ERROR: Bad input data for type oidname QUERY: SELECT '' AS four, OIDNAME_TBL.*; -four|f1 -----+-------------------------------------- - |1234,abcd - |1235,efgh - |987,XXXX - |123456,abcdefghijklmnopqrsutvwyz012345 +four|f1 +----+-------------------------------- + |1234,abcd + |1235,efgh + |987,XXXX + |123456,abcdefghijklmnopqrsutvwyz (4 rows) QUERY: SELECT '' AS one, o.* FROM OIDNAME_TBL o WHERE o.f1 = '1234,abcd'; @@ -25,11 +25,11 @@ one|f1 (1 row) QUERY: SELECT '' AS three, o.* FROM OIDNAME_TBL o WHERE o.f1 <> '1234,abcd'; -three|f1 ------+-------------------------------------- - |1235,efgh - |987,XXXX - |123456,abcdefghijklmnopqrsutvwyz012345 +three|f1 +-----+-------------------------------- + |1235,efgh + |987,XXXX + |123456,abcdefghijklmnopqrsutvwyz (3 rows) QUERY: SELECT '' AS two, o.* FROM OIDNAME_TBL o WHERE o.f1 <= '1234,abcd'; @@ -46,18 +46,18 @@ one|f1 (1 row) QUERY: SELECT '' AS three, o.* FROM OIDNAME_TBL o WHERE o.f1 >= '1234,abcd'; -three|f1 ------+-------------------------------------- - |1234,abcd - |1235,efgh - |123456,abcdefghijklmnopqrsutvwyz012345 +three|f1 +-----+-------------------------------- + |1234,abcd + |1235,efgh + |123456,abcdefghijklmnopqrsutvwyz (3 rows) QUERY: SELECT '' AS two, o.* FROM OIDNAME_TBL o WHERE o.f1 > '1234,abcd'; -two|f1 ----+-------------------------------------- - |1235,efgh - |123456,abcdefghijklmnopqrsutvwyz012345 +two|f1 +---+-------------------------------- + |1235,efgh + |123456,abcdefghijklmnopqrsutvwyz (2 rows) QUERY: DROP TABLE OIDNAME_TBL; diff --git a/src/test/regress/expected/sanity_check.out b/src/test/regress/expected/sanity_check.out index 8b506cbb60a0dbfd1815eeb10d5d3c878308dbf6..e69212ed63958304fea02a6a8064b9025f80c01a 100644 --- a/src/test/regress/expected/sanity_check.out +++ b/src/test/regress/expected/sanity_check.out @@ -5,14 +5,14 @@ QUERY: SELECT relname, relhasindex ORDER BY relname; relname |relhasindex --------------+----------- +bt_c16_heap |t bt_f8_heap |t bt_i4_heap |t -bt_name_heap |t bt_txt_heap |t fast_emp4000 |t +hash_c16_heap |t hash_f8_heap |t hash_i4_heap |t -hash_name_heap|t hash_txt_heap |t ihighway |t onek |t diff --git a/src/test/regress/input/copy.source b/src/test/regress/input/copy.source index 7df2c6057ad39bc0871a3a372beb4a8b73fa4aa5..1c93759ec20b78919b9458ea028e4186ff37c94f 100644 --- a/src/test/regress/input/copy.source +++ b/src/test/regress/input/copy.source @@ -34,7 +34,7 @@ COPY real_city FROM '_OBJWD_/data/real_city.data'; COPY hash_i4_heap FROM '_OBJWD_/data/hash.data'; -COPY hash_name_heap FROM '_OBJWD_/data/hash.data'; +COPY hash_c16_heap FROM '_OBJWD_/data/hash.data'; COPY hash_txt_heap FROM '_OBJWD_/data/hash.data'; @@ -49,7 +49,7 @@ COPY hash_f8_heap FROM '_OBJWD_/data/hash.data'; COPY bt_i4_heap FROM '_OBJWD_/data/desc.data'; -COPY bt_name_heap FROM '_OBJWD_/data/hash.data'; +COPY bt_c16_heap FROM '_OBJWD_/data/hash.data'; COPY bt_txt_heap FROM '_OBJWD_/data/desc.data'; diff --git a/src/test/regress/input/create_function_2.source b/src/test/regress/input/create_function_2.source index c68305b3608614915ae901feae557de344a6d847..6a23c53c36a5bdb3a7ba5aa65eb407f2f7ac5798 100644 --- a/src/test/regress/input/create_function_2.source +++ b/src/test/regress/input/create_function_2.source @@ -47,8 +47,8 @@ CREATE FUNCTION interpt_pp(path, path) AS '_OBJWD_/regress_DLSUFFIX_' LANGUAGE 'c'; -CREATE FUNCTION reverse_name(name) - RETURNS name +CREATE FUNCTION reverse_c16(char16) + RETURNS char16 AS '_OBJWD_/regress_DLSUFFIX_' LANGUAGE 'c'; diff --git a/src/test/regress/input/misc.source b/src/test/regress/input/misc.source index 633c50237e91d772b9dfa83912871ebb60a8e805..8151ff3a5a8610fc6ef11f87bc2f20a6f08df8be 100644 --- a/src/test/regress/input/misc.source +++ b/src/test/regress/input/misc.source @@ -27,12 +27,12 @@ UPDATE onek -- more closely. - jolly (2/22/96) -- UPDATE temp - SET stringu1 = reverse_name(onek.stringu1) + SET stringu1 = reverse_c16(onek.stringu1) WHERE onek.stringu1 = 'JBAAAA' and onek.stringu1 = temp.stringu1; UPDATE temp - SET stringu1 = reverse_name(onek2.stringu1) + SET stringu1 = reverse_c16(onek2.stringu1) WHERE onek2.stringu1 = 'JCAAAA' and onek2.stringu1 = temp.stringu1; diff --git a/src/test/regress/output/copy.source b/src/test/regress/output/copy.source index bf12d0671d2a644c7521d74a354c9af312e19d4f..d417fb4e4276e356cfb467e085a6956153318638 100644 --- a/src/test/regress/output/copy.source +++ b/src/test/regress/output/copy.source @@ -12,10 +12,10 @@ QUERY: COPY stud_emp FROM '_OBJWD_/data/stud_emp.data'; QUERY: COPY road FROM '_OBJWD_/data/streets.data'; QUERY: COPY real_city FROM '_OBJWD_/data/real_city.data'; QUERY: COPY hash_i4_heap FROM '_OBJWD_/data/hash.data'; -QUERY: COPY hash_name_heap FROM '_OBJWD_/data/hash.data'; +QUERY: COPY hash_c16_heap FROM '_OBJWD_/data/hash.data'; QUERY: COPY hash_txt_heap FROM '_OBJWD_/data/hash.data'; QUERY: COPY hash_f8_heap FROM '_OBJWD_/data/hash.data'; QUERY: COPY bt_i4_heap FROM '_OBJWD_/data/desc.data'; -QUERY: COPY bt_name_heap FROM '_OBJWD_/data/hash.data'; +QUERY: COPY bt_c16_heap FROM '_OBJWD_/data/hash.data'; QUERY: COPY bt_txt_heap FROM '_OBJWD_/data/desc.data'; QUERY: COPY bt_f8_heap FROM '_OBJWD_/data/hash.data'; diff --git a/src/test/regress/output/create_function_2.source b/src/test/regress/output/create_function_2.source index 8f3c17a6e6f5a3b7642c0c6a0fa689f1b1e77054..23fddb21f468e03b877b3de57bae6ac454583f59 100644 --- a/src/test/regress/output/create_function_2.source +++ b/src/test/regress/output/create_function_2.source @@ -33,8 +33,8 @@ QUERY: CREATE FUNCTION interpt_pp(path, path) RETURNS point AS '_OBJWD_/regress_DLSUFFIX_' LANGUAGE 'c'; -QUERY: CREATE FUNCTION reverse_name(name) - RETURNS name +QUERY: CREATE FUNCTION reverse_c16(char16) + RETURNS char16 AS '_OBJWD_/regress_DLSUFFIX_' LANGUAGE 'c'; QUERY: LOAD '_OBJWD_/regress_DLSUFFIX_'; diff --git a/src/test/regress/output/misc.source b/src/test/regress/output/misc.source index f0ac90d7956875f6c73d4b0c596c268075f24f32..02eb0b6703c667eff617ca0ce0f2fab2deb317cd 100644 --- a/src/test/regress/output/misc.source +++ b/src/test/regress/output/misc.source @@ -3,13 +3,13 @@ QUERY: UPDATE onek QUERY: UPDATE onek SET unique1 = onek.unique1 - 1; QUERY: UPDATE temp - SET stringu1 = reverse_name(onek.stringu1) + SET stringu1 = reverse_c16(onek.stringu1) WHERE onek.stringu1 = 'JBAAAA' and onek.stringu1 = temp.stringu1; NOTICE: Non-functional update, only first update is performed NOTICE: Non-functional update, only first update is performed QUERY: UPDATE temp - SET stringu1 = reverse_name(onek2.stringu1) + SET stringu1 = reverse_c16(onek2.stringu1) WHERE onek2.stringu1 = 'JCAAAA' and onek2.stringu1 = temp.stringu1; NOTICE: Non-functional update, only first update is performed @@ -449,9 +449,9 @@ arrtest b_star box_tbl bprime +bt_c16_heap bt_f8_heap bt_i4_heap -bt_name_heap bt_txt_heap c_star char_tbl @@ -474,9 +474,9 @@ f_star fast_emp4000 float4_tbl float8_tbl +hash_c16_heap hash_f8_heap hash_i4_heap -hash_name_heap hash_txt_heap hobbies_r iexit diff --git a/src/test/regress/regress.c b/src/test/regress/regress.c index 848dee62c0e6f377db0506091da565265ee39192..f44893a97366993ac4248a54faf17815f93235c6 100644 --- a/src/test/regress/regress.c +++ b/src/test/regress/regress.c @@ -1,5 +1,5 @@ /* - * $Header: /cvsroot/pgsql/src/test/regress/regress.c,v 1.24 1998/03/30 17:26:20 momjian Exp $ + * $Header: /cvsroot/pgsql/src/test/regress/regress.c,v 1.25 1998/04/07 18:13:08 momjian Exp $ */ #include <float.h> /* faked on sunos */ @@ -25,7 +25,7 @@ extern Point *interpt_pp(PATH *p1, PATH *p2); extern void regress_lseg_construct(LSEG *lseg, Point *pt1, Point *pt2); extern char overpaid(TUPLE tuple); extern int boxarea(BOX *box); -extern char *reverse_name(char *string); +extern char *reverse_c16(char *string); /* ** Distance from a point to a path @@ -276,7 +276,7 @@ BOX *box; } char * -reverse_name(string) +reverse_c16(string) char *string; { int i; @@ -285,7 +285,7 @@ char *string; if (!(new_string = palloc(16))) { - fprintf(stderr, "reverse_name: palloc failed\n"); + fprintf(stderr, "reverse_c16: palloc failed\n"); return (NULL); } MemSet(new_string, 0, 16); diff --git a/src/test/regress/sql/alter_table.sql b/src/test/regress/sql/alter_table.sql index 9764459922f576669c070bed81414b78db3a6598..5765560ea70ddb834856f91fb3c146eaaddb0fdc 100644 --- a/src/test/regress/sql/alter_table.sql +++ b/src/test/regress/sql/alter_table.sql @@ -5,7 +5,7 @@ CREATE TABLE temp (initial int4); ALTER TABLE temp ADD COLUMN a int4; -ALTER TABLE temp ADD COLUMN b name; +ALTER TABLE temp ADD COLUMN b char16; ALTER TABLE temp ADD COLUMN c text; @@ -56,12 +56,12 @@ ALTER TABLE temp ADD COLUMN z int2[]; INSERT INTO temp (a, b, c, d, e, f, g, h, i, j, k, l, m, n, p, q, r, s, t, u, v, w, x, y, z) - VALUES (4, 'name', 'text', 4.1, 4.1, 2, '(4.1,4.1,3.1,3.1)', + VALUES (4, 'char16', 'text', 4.1, 4.1, 2, '(4.1,4.1,3.1,3.1)', 'Mon May 1 00:30:30 1995', 'c', '{Mon May 1 00:30:30 1995, Monday Aug 24 14:43:07 1992, epoch}', 314159, '(1,1)', 512, '1 2 3 4 5 6 7 8', 'magnetic disk', '(1.1,1.1)', '(4.1,4.1,3.1,3.1)', '(0,2,4.1,4.1,3.1,3.1)', '(4.1,4.1,3.1,3.1)', '["current" "infinity"]', - '1/3', '1,name', '{1.0,2.0,3.0,4.0}', '{1.0,2.0,3.0,4.0}', '{1,2,3,4}'); + '1/3', '1,char16', '{1.0,2.0,3.0,4.0}', '{1.0,2.0,3.0,4.0}', '{1,2,3,4}'); SELECT * FROM temp; @@ -74,7 +74,7 @@ CREATE TABLE temp ( ALTER TABLE temp ADD COLUMN a int4; -ALTER TABLE temp ADD COLUMN b name; +ALTER TABLE temp ADD COLUMN b char16; ALTER TABLE temp ADD COLUMN c text; @@ -125,12 +125,12 @@ ALTER TABLE temp ADD COLUMN z int2[]; INSERT INTO temp (a, b, c, d, e, f, g, h, i, j, k, l, m, n, p, q, r, s, t, u, v, w, x, y, z) - VALUES (4, 'name', 'text', 4.1, 4.1, 2, '(4.1,4.1,3.1,3.1)', + VALUES (4, 'char16', 'text', 4.1, 4.1, 2, '(4.1,4.1,3.1,3.1)', 'Mon May 1 00:30:30 1995', 'c', '{Mon May 1 00:30:30 1995, Monday Aug 24 14:43:07 1992, epoch}', 314159, '(1,1)', 512, '1 2 3 4 5 6 7 8', 'magnetic disk', '(1.1,1.1)', '(4.1,4.1,3.1,3.1)', '(0,2,4.1,4.1,3.1,3.1)', '(4.1,4.1,3.1,3.1)', '["current" "infinity"]', - '1/3', '1,name', '{1.0,2.0,3.0,4.0}', '{1.0,2.0,3.0,4.0}', '{1,2,3,4}'); + '1/3', '1,char16', '{1.0,2.0,3.0,4.0}', '{1.0,2.0,3.0,4.0}', '{1,2,3,4}'); SELECT * FROM temp; diff --git a/src/test/regress/sql/arrays.sql b/src/test/regress/sql/arrays.sql index a82a185c92266fbc6f4b096392fcca37ee95659a..117b27cf8a687942f169f99dbc25f1fda3e5a6c1 100644 --- a/src/test/regress/sql/arrays.sql +++ b/src/test/regress/sql/arrays.sql @@ -26,7 +26,7 @@ SELECT array_dims(arrtest.b) AS x; SELECT * FROM arrtest WHERE arrtest.a[1] < 5 and - arrtest.c = '{"foobar"}'::_name; + arrtest.c = '{"foobar"}'::_char16; -- updating array subranges seems to be broken -- diff --git a/src/test/regress/sql/btree_index.sql b/src/test/regress/sql/btree_index.sql index 71dcddd0ee22c5d874f2c251fd553b9a9d39165a..88e4dd7f455465cd008d6d77f540908c506d08b4 100644 --- a/src/test/regress/sql/btree_index.sql +++ b/src/test/regress/sql/btree_index.sql @@ -16,16 +16,16 @@ SELECT b.* WHERE b.seqno = 4500; SELECT b.* - FROM bt_name_heap b - WHERE b.seqno < '1'::name; + FROM bt_c16_heap b + WHERE b.seqno < '1'::char16; SELECT b.* - FROM bt_name_heap b - WHERE b.seqno >= '9999'::name; + FROM bt_c16_heap b + WHERE b.seqno >= '9999'::char16; SELECT b.* - FROM bt_name_heap b - WHERE b.seqno = '4500'::name; + FROM bt_c16_heap b + WHERE b.seqno = '4500'::char16; SELECT b.* FROM bt_txt_heap b diff --git a/src/test/regress/sql/create_index.sql b/src/test/regress/sql/create_index.sql index e9f93eb75b47dc25bd5c4d55e585dd4c4daf8040..5ba465e7a7e7499e673d80125f71c866a4960cb6 100644 --- a/src/test/regress/sql/create_index.sql +++ b/src/test/regress/sql/create_index.sql @@ -11,7 +11,7 @@ CREATE INDEX onek_unique2 ON onek USING btree(unique2 int4_ops); CREATE INDEX onek_hundred ON onek USING btree(hundred int4_ops); -CREATE INDEX onek_stringu1 ON onek USING btree(stringu1 name_ops); +CREATE INDEX onek_stringu1 ON onek USING btree(stringu1 char16_ops); CREATE INDEX tenk1_unique1 ON tenk1 USING btree(unique1 int4_ops); @@ -35,13 +35,13 @@ CREATE INDEX six ON shighway USING btree (name text_ops); -- BTREE ascending/descending cases -- -- we load int4/text from pure descending data (each key is a new --- low key) and name/f8 from pure ascending data (each key is a new +-- low key) and c16/f8 from pure ascending data (each key is a new -- high key). we had a bug where new low keys would sometimes be -- "lost". -- CREATE INDEX bt_i4_index ON bt_i4_heap USING btree (seqno int4_ops); -CREATE INDEX bt_name_index ON bt_name_heap USING btree (seqno name_ops); +CREATE INDEX bt_c16_index ON bt_c16_heap USING btree (seqno char16_ops); CREATE INDEX bt_txt_index ON bt_txt_heap USING btree (seqno text_ops); @@ -61,7 +61,7 @@ CREATE INDEX bt_f8_index ON bt_f8_heap USING btree (seqno float8_ops); -- EXTEND INDEX onek2_u2_prtl; --- CREATE INDEX onek2_stu1_prtl ON onek2 USING btree(stringu1 name_ops) +-- CREATE INDEX onek2_stu1_prtl ON onek2 USING btree(stringu1 char16_ops) -- where onek2.stringu1 >= 'J' and onek2.stringu1 < 'K'; -- @@ -80,7 +80,7 @@ CREATE INDEX rect2ind ON fast_emp4000 USING rtree (home_base bigbox_ops); -- CREATE INDEX hash_i4_index ON hash_i4_heap USING hash (random int4_ops); -CREATE INDEX hash_name_index ON hash_name_heap USING hash (random name_ops); +CREATE INDEX hash_c16_index ON hash_c16_heap USING hash (random char16_ops); CREATE INDEX hash_txt_index ON hash_txt_heap USING hash (random text_ops); diff --git a/src/test/regress/sql/create_misc.sql b/src/test/regress/sql/create_misc.sql index 495f94506f84aae8056cbc0fe4c4d71569171ab6..58ce26a2fc2637302b7b9b641a130e2b40535759 100644 --- a/src/test/regress/sql/create_misc.sql +++ b/src/test/regress/sql/create_misc.sql @@ -71,96 +71,96 @@ INSERT INTO b_star (class, b) VALUES ('b', 'bumble'::text); INSERT INTO b_star (class) VALUES ('b'); -INSERT INTO c_star (class, a, c) VALUES ('c', 5, 'hi mom'::name); +INSERT INTO c_star (class, a, c) VALUES ('c', 5, 'hi mom'::char16); INSERT INTO c_star (class, a) VALUES ('c', 6); -INSERT INTO c_star (class, c) VALUES ('c', 'hi paul'::name); +INSERT INTO c_star (class, c) VALUES ('c', 'hi paul'::char16); INSERT INTO c_star (class) VALUES ('c'); INSERT INTO d_star (class, a, b, c, d) - VALUES ('d', 7, 'grumble'::text, 'hi sunita'::name, '0.0'::float8); + VALUES ('d', 7, 'grumble'::text, 'hi sunita'::char16, '0.0'::float8); INSERT INTO d_star (class, a, b, c) - VALUES ('d', 8, 'stumble'::text, 'hi koko'::name); + VALUES ('d', 8, 'stumble'::text, 'hi koko'::char16); INSERT INTO d_star (class, a, b, d) VALUES ('d', 9, 'rumble'::text, '1.1'::float8); INSERT INTO d_star (class, a, c, d) - VALUES ('d', 10, 'hi kristin'::name, '10.01'::float8); + VALUES ('d', 10, 'hi kristin'::char16, '10.01'::float8); INSERT INTO d_star (class, b, c, d) - VALUES ('d', 'crumble'::text, 'hi boris'::name, '100.001'::float8); + VALUES ('d', 'crumble'::text, 'hi boris'::char16, '100.001'::float8); INSERT INTO d_star (class, a, b) VALUES ('d', 11, 'fumble'::text); INSERT INTO d_star (class, a, c) - VALUES ('d', 12, 'hi avi'::name); + VALUES ('d', 12, 'hi avi'::char16); INSERT INTO d_star (class, a, d) VALUES ('d', 13, '1000.0001'::float8); INSERT INTO d_star (class, b, c) - VALUES ('d', 'tumble'::text, 'hi andrew'::name); + VALUES ('d', 'tumble'::text, 'hi andrew'::char16); INSERT INTO d_star (class, b, d) VALUES ('d', 'humble'::text, '10000.00001'::float8); INSERT INTO d_star (class, c, d) - VALUES ('d', 'hi ginger'::name, '100000.000001'::float8); + VALUES ('d', 'hi ginger'::char16, '100000.000001'::float8); INSERT INTO d_star (class, a) VALUES ('d', 14); INSERT INTO d_star (class, b) VALUES ('d', 'jumble'::text); -INSERT INTO d_star (class, c) VALUES ('d', 'hi jolly'::name); +INSERT INTO d_star (class, c) VALUES ('d', 'hi jolly'::char16); INSERT INTO d_star (class, d) VALUES ('d', '1000000.0000001'::float8); INSERT INTO d_star (class) VALUES ('d'); INSERT INTO e_star (class, a, c, e) - VALUES ('e', 15, 'hi carol'::name, '-1'::int2); + VALUES ('e', 15, 'hi carol'::char16, '-1'::int2); INSERT INTO e_star (class, a, c) - VALUES ('e', 16, 'hi bob'::name); + VALUES ('e', 16, 'hi bob'::char16); INSERT INTO e_star (class, a, e) VALUES ('e', 17, '-2'::int2); INSERT INTO e_star (class, c, e) - VALUES ('e', 'hi michelle'::name, '-3'::int2); + VALUES ('e', 'hi michelle'::char16, '-3'::int2); INSERT INTO e_star (class, a) VALUES ('e', 18); INSERT INTO e_star (class, c) - VALUES ('e', 'hi elisa'::name); + VALUES ('e', 'hi elisa'::char16); INSERT INTO e_star (class, e) VALUES ('e', '-4'::int2); INSERT INTO f_star (class, a, c, e, f) - VALUES ('f', 19, 'hi claire'::name, '-5'::int2, '(1,3),(2,4)'::polygon); + VALUES ('f', 19, 'hi claire'::char16, '-5'::int2, '(1,3),(2,4)'::polygon); INSERT INTO f_star (class, a, c, e) - VALUES ('f', 20, 'hi mike'::name, '-6'::int2); + VALUES ('f', 20, 'hi mike'::char16, '-6'::int2); INSERT INTO f_star (class, a, c, f) - VALUES ('f', 21, 'hi marcel'::name, '(11,44),(22,55),(33,66)'::polygon); + VALUES ('f', 21, 'hi marcel'::char16, '(11,44),(22,55),(33,66)'::polygon); INSERT INTO f_star (class, a, e, f) VALUES ('f', 22, '-7'::int2, '(111,555),(222,666),(333,777),(444,888)'::polygon); INSERT INTO f_star (class, c, e, f) - VALUES ('f', 'hi keith'::name, '-8'::int2, + VALUES ('f', 'hi keith'::char16, '-8'::int2, '(1111,3333),(2222,4444)'::polygon); INSERT INTO f_star (class, a, c) - VALUES ('f', 24, 'hi marc'::name); + VALUES ('f', 24, 'hi marc'::char16); INSERT INTO f_star (class, a, e) VALUES ('f', 25, '-9'::int2); @@ -169,10 +169,10 @@ INSERT INTO f_star (class, a, f) VALUES ('f', 26, '(11111,33333),(22222,44444)'::polygon); INSERT INTO f_star (class, c, e) - VALUES ('f', 'hi allison'::name, '-10'::int2); + VALUES ('f', 'hi allison'::char16, '-10'::int2); INSERT INTO f_star (class, c, f) - VALUES ('f', 'hi jeff'::name, + VALUES ('f', 'hi jeff'::char16, '(111111,333333),(222222,444444)'::polygon); INSERT INTO f_star (class, e, f) @@ -180,7 +180,7 @@ INSERT INTO f_star (class, e, f) INSERT INTO f_star (class, a) VALUES ('f', 27); -INSERT INTO f_star (class, c) VALUES ('f', 'hi carl'::name); +INSERT INTO f_star (class, c) VALUES ('f', 'hi carl'::char16); INSERT INTO f_star (class, e) VALUES ('f', '-12'::int2); diff --git a/src/test/regress/sql/create_table.sql b/src/test/regress/sql/create_table.sql index 7bf244b2bc11d756d769356c961326b6aca78696..7d046fb67acf03de43e1eec6bbba85f75e0118e9 100644 --- a/src/test/regress/sql/create_table.sql +++ b/src/test/regress/sql/create_table.sql @@ -30,9 +30,9 @@ CREATE TABLE onek ( tenthous int4, odd int4, even int4, - stringu1 name, - stringu2 name, - string4 name + stringu1 char16, + stringu2 char16, + string4 char16 ); CREATE TABLE tenk1 ( @@ -49,9 +49,9 @@ CREATE TABLE tenk1 ( tenthous int4, odd int4, even int4, - stringu1 name, - stringu2 name, - string4 name + stringu1 char16, + stringu2 char16, + string4 char16 ); CREATE TABLE tenk2 ( @@ -68,9 +68,9 @@ CREATE TABLE tenk2 ( tenthous int4, odd int4, even int4, - stringu1 name, - stringu2 name, - string4 name + stringu1 char16, + stringu2 char16, + string4 char16 ); @@ -83,7 +83,7 @@ CREATE TABLE person ( CREATE TABLE emp ( salary int4, - manager name + manager char16 ) INHERITS (person); @@ -98,13 +98,13 @@ CREATE TABLE stud_emp ( CREATE TABLE city ( - name name, + name char16, location box, budget city_budget ); CREATE TABLE dept ( - dname name, + dname char16, mgrname text ); @@ -153,7 +153,7 @@ CREATE TABLE b_star ( ) INHERITS (a_star); CREATE TABLE c_star ( - c name + c char16 ) INHERITS (a_star); CREATE TABLE d_star ( @@ -176,7 +176,7 @@ CREATE TABLE aggtest ( CREATE TABLE arrtest ( a int2[], b int4[][][], - c name[], + c char16[], d text[][], e float8[] ); @@ -186,9 +186,9 @@ CREATE TABLE hash_i4_heap ( random int4 ); -CREATE TABLE hash_name_heap ( +CREATE TABLE hash_c16_heap ( seqno int4, - random name + random char16 ); CREATE TABLE hash_txt_heap ( @@ -214,8 +214,8 @@ CREATE TABLE bt_i4_heap ( random int4 ); -CREATE TABLE bt_name_heap ( - seqno name, +CREATE TABLE bt_c16_heap ( + seqno char16, random int4 ); diff --git a/src/test/regress/sql/destroy.sql b/src/test/regress/sql/destroy.sql index 4d4f5561884d8ed235a5b21f75ed1c35b8f6af64..e33abba4198a34b58733cefed13ab63a96607722 100644 --- a/src/test/regress/sql/destroy.sql +++ b/src/test/regress/sql/destroy.sql @@ -1,7 +1,7 @@ -- -- destroy.source -- --- $Header: /cvsroot/pgsql/src/test/regress/sql/Attic/destroy.sql,v 1.4 1998/03/30 17:28:09 momjian Exp $ +-- $Header: /cvsroot/pgsql/src/test/regress/sql/Attic/destroy.sql,v 1.5 1998/04/07 18:14:27 momjian Exp $ -- -- @@ -38,7 +38,7 @@ DROP FUNCTION boxarea(box); DROP FUNCTION interpt_pp(path,path); -DROP FUNCTION reverse_name(name); +DROP FUNCTION reverse_c16(char16); -- @@ -125,7 +125,7 @@ DROP INDEX six; DROP INDEX hash_i4_index; -DROP INDEX hash_name_index; +DROP INDEX hash_c16_index; DROP INDEX hash_txt_index; @@ -135,7 +135,7 @@ DROP INDEX hash_f8_index; DROP INDEX bt_i4_index; -DROP INDEX bt_name_index; +DROP INDEX bt_c16_index; DROP INDEX bt_txt_index; @@ -213,7 +213,7 @@ DROP TABLE city; DROP TABLE hash_i4_heap; -DROP TABLE hash_name_heap; +DROP TABLE hash_c16_heap; DROP TABLE hash_txt_heap; @@ -223,7 +223,7 @@ DROP TABLE hash_f8_heap; DROP TABLE bt_i4_heap; -DROP TABLE bt_name_heap; +DROP TABLE bt_c16_heap; DROP TABLE bt_txt_heap; diff --git a/src/test/regress/sql/hash_index.sql b/src/test/regress/sql/hash_index.sql index e7e9059924ede8aebb61f4be94c560f81fab8ae2..7c0cc6b33086d1a441713fd4436c5990d5a4c330 100644 --- a/src/test/regress/sql/hash_index.sql +++ b/src/test/regress/sql/hash_index.sql @@ -16,15 +16,15 @@ SELECT hash_i4_heap.* -- hash index -- grep 1505703298 hash.data -- -SELECT hash_name_heap.* - WHERE hash_name_heap.random = '1505703298'::name; +SELECT hash_c16_heap.* + WHERE hash_c16_heap.random = '1505703298'::char16; -- -- hash index -- grep 7777777 hash.data -- -SELECT hash_name_heap.* - WHERE hash_name_heap.random = '7777777'::name; +SELECT hash_c16_heap.* + WHERE hash_c16_heap.random = '7777777'::char16; -- -- hash index @@ -87,24 +87,24 @@ SELECT h.seqno AS i20000 FROM hash_i4_heap h WHERE h.random = 1492795354; -UPDATE hash_name_heap - SET random = '0123456789abcdef'::name - WHERE hash_name_heap.seqno = 6543; +UPDATE hash_c16_heap + SET random = '0123456789abcdef'::char16 + WHERE hash_c16_heap.seqno = 6543; SELECT h.seqno AS i6543, h.random AS c0_to_f - FROM hash_name_heap h - WHERE h.random = '0123456789abcdef'::name; + FROM hash_c16_heap h + WHERE h.random = '0123456789abcdef'::char16; -UPDATE hash_name_heap +UPDATE hash_c16_heap SET seqno = 20000 - WHERE hash_name_heap.random = '76652222'::name; + WHERE hash_c16_heap.random = '76652222'::char16; -- -- this is the row we just replaced; index scan should return zero rows -- SELECT h.seqno AS emptyset - FROM hash_name_heap h - WHERE h.random = '76652222'::name; + FROM hash_c16_heap h + WHERE h.random = '76652222'::char16; UPDATE hash_txt_heap SET random = '0123456789abcdefghijklmnop'::text diff --git a/src/test/regress/sql/name.sql b/src/test/regress/sql/name.sql index 11235caaa3d181b7be2a96ec8e2e89902d064d4e..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 --- a/src/test/regress/sql/name.sql +++ b/src/test/regress/sql/name.sql @@ -1,54 +0,0 @@ ---**************** testing built-in type name ************** --- --- all inputs are silently truncated at NAMEDATALEN (32) characters --- - --- fixed-length by reference -SELECT 'name string'::name = 'name string'::name AS "True"; - -SELECT 'name string'::name = 'name string '::name AS "False"; - --- --- --- - -CREATE TABLE NAME_TBL(f1 name); - -INSERT INTO NAME_TBL(f1) VALUES ('ABCDEFGHIJKLMNOP'); - -INSERT INTO NAME_TBL(f1) VALUES ('abcdefghijklmnop'); - -INSERT INTO NAME_TBL(f1) VALUES ('asdfghjkl;'); - -INSERT INTO NAME_TBL(f1) VALUES ('343f%2a'); - -INSERT INTO NAME_TBL(f1) VALUES ('d34aaasdf'); - -INSERT INTO NAME_TBL(f1) VALUES (''); - -INSERT INTO NAME_TBL(f1) VALUES ('1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ'); - - -SELECT '' AS seven, NAME_TBL.*; - -SELECT '' AS six, c.f1 FROM NAME_TBL c WHERE c.f1 <> 'ABCDEFGHIJKLMNOP'; - -SELECT '' AS one, c.f1 FROM NAME_TBL c WHERE c.f1 = 'ABCDEFGHIJKLMNOP'; - -SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 < 'ABCDEFGHIJKLMNOP'; - -SELECT '' AS four, c.f1 FROM NAME_TBL c WHERE c.f1 <= 'ABCDEFGHIJKLMNOP'; - -SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 > 'ABCDEFGHIJKLMNOP'; - -SELECT '' AS four, c.f1 FROM NAME_TBL c WHERE c.f1 >= 'ABCDEFGHIJKLMNOP'; - -SELECT '' AS seven, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '.*'; - -SELECT '' AS zero, c.f1 FROM NAME_TBL c WHERE c.f1 !~ '.*'; - -SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '[0-9]'; - -SELECT '' AS two, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '.*asdf.*'; - -DROP TABLE NAME_TBL; diff --git a/src/test/regress/sql/oidname.sql b/src/test/regress/sql/oidname.sql index d8d5522b65e97b0c117c7405fb758e5fab85d3a6..65fccc3c06ff4a5095e4f083068cf4a5f1fad8d3 100644 --- a/src/test/regress/sql/oidname.sql +++ b/src/test/regress/sql/oidname.sql @@ -10,11 +10,11 @@ INSERT INTO OIDNAME_TBL(f1) VALUES ('1235,efgh'); INSERT INTO OIDNAME_TBL(f1) VALUES ('987,XXXX'); --- no name component +-- no char16 component INSERT INTO OIDNAME_TBL(f1) VALUES ('123456'); --- name component too long -INSERT INTO OIDNAME_TBL(f1) VALUES ('123456,abcdefghijklmnopqrsutvwyz0123456789'); +-- char16 component too long +INSERT INTO OIDNAME_TBL(f1) VALUES ('123456,abcdefghijklmnopqrsutvwyz'); -- bad inputs INSERT INTO OIDNAME_TBL(f1) VALUES (''); diff --git a/src/test/regress/sql/tests b/src/test/regress/sql/tests index a7a061b9be53e71e9d5ea575d52aa39a5e8889e0..79513431f17ecf2e99372f51d4e9a1d21312ca83 100644 --- a/src/test/regress/sql/tests +++ b/src/test/regress/sql/tests @@ -1,6 +1,9 @@ boolean char -name +char2 +char4 +char8 +char16 varchar text strings diff --git a/src/tools/pgindent/pgindent b/src/tools/pgindent/pgindent index 8b4be4ade1cb78ba2a55d345317de4d426e4a4ba..36711a3496a58f284d042971a150fa9fea79dc9f 100755 --- a/src/tools/pgindent/pgindent +++ b/src/tools/pgindent/pgindent @@ -672,6 +672,8 @@ do -Tcat_t \ -Tcc_t \ -Tchar \ +-Tchar16 \ +-Tchar8 \ -TcharPP \ -Tclock_t \ -Tclockid_t \