diff options
| author | Tom Lane <tgl@sss.pgh.pa.us> | 2003-06-27 00:33:26 +0000 |
|---|---|---|
| committer | Tom Lane <tgl@sss.pgh.pa.us> | 2003-06-27 00:33:26 +0000 |
| commit | b3c0551edaf390ab7bde4ebcc2299d1b0da686c5 (patch) | |
| tree | 46512d8ab2d8eeb570722878904f367effb1383d /src/interfaces | |
| parent | 0c985ab5a86b4ca9d8e312bfd0db5536b2be121e (diff) | |
| download | postgresql-b3c0551edaf390ab7bde4ebcc2299d1b0da686c5.tar.gz | |
Create real array comparison functions (that use the element datatype's
comparison functions), replacing the highly bogus bitwise array_eq. Create
a btree index opclass for ANYARRAY --- it is now possible to create indexes
on array columns.
Arrange to cache the results of catalog lookups across multiple array
operations, instead of repeating the lookups on every call.
Add string_to_array and array_to_string functions.
Remove singleton_array, array_accum, array_assign, and array_subscript
functions, since these were for proof-of-concept and not intended to become
supported functions.
Minor adjustments to behavior in some corner cases with empty or
zero-dimensional arrays.
Joe Conway (with some editorializing by Tom Lane).
Diffstat (limited to 'src/interfaces')
| -rw-r--r-- | src/interfaces/ecpg/preproc/preproc.y | 8 | ||||
| -rw-r--r-- | src/interfaces/ecpg/preproc/type.c | 2 | ||||
| -rw-r--r-- | src/interfaces/ecpg/preproc/variable.c | 12 |
3 files changed, 11 insertions, 11 deletions
diff --git a/src/interfaces/ecpg/preproc/preproc.y b/src/interfaces/ecpg/preproc/preproc.y index 2d799705ed..6b79bd1774 100644 --- a/src/interfaces/ecpg/preproc/preproc.y +++ b/src/interfaces/ecpg/preproc/preproc.y @@ -1,4 +1,4 @@ -/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/Attic/preproc.y,v 1.240 2003/06/26 11:37:05 meskes Exp $ */ +/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/Attic/preproc.y,v 1.241 2003/06/27 00:33:26 tgl Exp $ */ /* Copyright comment */ %{ @@ -4597,7 +4597,7 @@ type_declaration: S_TYPEDEF $3.type_enum != ECPGt_char && $3.type_enum != ECPGt_unsigned_char && atoi(this->type->type_index) >= 0) - mmerror(PARSE_ERROR, ET_ERROR, "No multi-dimensional array support for simple data types"); + mmerror(PARSE_ERROR, ET_ERROR, "No multidimensional array support for simple data types"); types = this; } @@ -5417,7 +5417,7 @@ ECPGTypedef: TYPE_P $5.type_enum != ECPGt_char && $5.type_enum != ECPGt_unsigned_char && atoi(this->type->type_index) >= 0) - mmerror(PARSE_ERROR, ET_ERROR, "No multi-dimensional array support for simple data types"); + mmerror(PARSE_ERROR, ET_ERROR, "No multidimensional array support for simple data types"); types = this; } @@ -5484,7 +5484,7 @@ ECPGVar: SQL_VAR default: if (atoi(length) >= 0) - mmerror(PARSE_ERROR, ET_ERROR, "No multi-dimensional array support for simple data types"); + mmerror(PARSE_ERROR, ET_ERROR, "No multidimensional array support for simple data types"); if (atoi(dimension) < 0) type = ECPGmake_simple_type($5.type_enum, make_str("1")); diff --git a/src/interfaces/ecpg/preproc/type.c b/src/interfaces/ecpg/preproc/type.c index 5f2dd86bb5..80406bbccc 100644 --- a/src/interfaces/ecpg/preproc/type.c +++ b/src/interfaces/ecpg/preproc/type.c @@ -504,7 +504,7 @@ ECPGfree_type(struct ECPGtype * type) switch (type->u.element->type) { case ECPGt_array: - yyerror("internal error, found multi-dimensional array\n"); + yyerror("internal error, found multidimensional array\n"); break; case ECPGt_struct: case ECPGt_union: diff --git a/src/interfaces/ecpg/preproc/variable.c b/src/interfaces/ecpg/preproc/variable.c index be96e18c0c..9fa2ec8a6c 100644 --- a/src/interfaces/ecpg/preproc/variable.c +++ b/src/interfaces/ecpg/preproc/variable.c @@ -436,7 +436,7 @@ adjust_array(enum ECPGttype type_enum, char **dimension, char **length, char *ty if (atoi(type_index) >= 0) { if (atoi(*length) >= 0) - mmerror(PARSE_ERROR, ET_FATAL, "No multi-dimensional array support"); + mmerror(PARSE_ERROR, ET_FATAL, "No multidimensional array support"); *length = type_index; } @@ -444,7 +444,7 @@ adjust_array(enum ECPGttype type_enum, char **dimension, char **length, char *ty if (atoi(type_dimension) >= 0) { if (atoi(*dimension) >= 0 && atoi(*length) >= 0) - mmerror(PARSE_ERROR, ET_FATAL, "No multi-dimensional array support"); + mmerror(PARSE_ERROR, ET_FATAL, "No multidimensional array support"); if (atoi(*dimension) >= 0) *length = *dimension; @@ -463,10 +463,10 @@ adjust_array(enum ECPGttype type_enum, char **dimension, char **length, char *ty mmerror(PARSE_ERROR, ET_FATAL, "No pointer to pointer supported for this type"); if (pointer_len > 1 && (atoi(*length) >= 0 || atoi(*dimension) >= 0)) - mmerror(PARSE_ERROR, ET_FATAL, "No multi-dimensional array support"); + mmerror(PARSE_ERROR, ET_FATAL, "No multidimensional array support"); if (atoi(*length) >= 0 && atoi(*dimension) >= 0 && pointer_len) - mmerror(PARSE_ERROR, ET_FATAL, "No multi-dimensional array support"); + mmerror(PARSE_ERROR, ET_FATAL, "No multidimensional array support"); switch (type_enum) { @@ -480,7 +480,7 @@ adjust_array(enum ECPGttype type_enum, char **dimension, char **length, char *ty } if (atoi(*length) >= 0) - mmerror(PARSE_ERROR, ET_FATAL, "No multi-dimensional array support for structures"); + mmerror(PARSE_ERROR, ET_FATAL, "No multidimensional array support for structures"); break; case ECPGt_varchar: @@ -525,7 +525,7 @@ adjust_array(enum ECPGttype type_enum, char **dimension, char **length, char *ty } if (atoi(*length) >= 0) - mmerror(PARSE_ERROR, ET_FATAL, "No multi-dimensional array support for simple data types"); + mmerror(PARSE_ERROR, ET_FATAL, "No multidimensional array support for simple data types"); break; } |
