mirror of
https://github.com/postgres/postgres.git
synced 2025-06-05 00:02:04 -04:00
Synced yet again.
This commit is contained in:
parent
3223374e67
commit
d28ec4f083
@ -1292,6 +1292,10 @@ Sun Sep 1 11:13:04 CEST 2002
|
||||
|
||||
- Synced preproc.y with gram.y.
|
||||
- Synced keywords.c.
|
||||
|
||||
Wed Sep 11 10:43:17 CEST 2002
|
||||
|
||||
- Synced preproc.y with gram.y.
|
||||
- Set ecpg version to 2.10.0.
|
||||
- Set library version to 3.4.0.
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
* lexical token lookup for reserved words in postgres embedded SQL
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/ecpg_keywords.c,v 1.26.2.1 2002/08/18 14:32:21 meskes Exp $
|
||||
* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/ecpg_keywords.c,v 1.26.2.2 2002/09/11 08:50:29 meskes Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -38,7 +38,6 @@ static ScanKeyword ScanKeywords[] = {
|
||||
{"data", SQL_DATA},
|
||||
{"datetime_interval_code", SQL_DATETIME_INTERVAL_CODE},
|
||||
{"datetime_interval_precision", SQL_DATETIME_INTERVAL_PRECISION},
|
||||
{"deallocate", SQL_DEALLOCATE},
|
||||
{"descriptor", SQL_DESCRIPTOR},
|
||||
{"disconnect", SQL_DISCONNECT},
|
||||
{"enum", SQL_ENUM},
|
||||
@ -55,7 +54,6 @@ static ScanKeyword ScanKeywords[] = {
|
||||
{"nullable", SQL_NULLABLE},
|
||||
{"octet_length", SQL_OCTET_LENGTH},
|
||||
{"open", SQL_OPEN},
|
||||
{"prepare", SQL_PREPARE},
|
||||
{"reference", SQL_REFERENCE},
|
||||
{"release", SQL_RELEASE},
|
||||
{"returned_length", SQL_RETURNED_LENGTH},
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/Attic/preproc.y,v 1.190.2.5 2002/09/01 09:31:58 meskes Exp $ */
|
||||
/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/Attic/preproc.y,v 1.190.2.6 2002/09/11 08:50:29 meskes Exp $ */
|
||||
|
||||
/* Copyright comment */
|
||||
%{
|
||||
@ -155,12 +155,12 @@ make_name(void)
|
||||
SQL_CALL SQL_CARDINALITY SQL_CONNECT SQL_CONNECTION
|
||||
SQL_CONTINUE SQL_COUNT SQL_CURRENT SQL_DATA
|
||||
SQL_DATETIME_INTERVAL_CODE
|
||||
SQL_DATETIME_INTERVAL_PRECISION SQL_DEALLOCATE
|
||||
SQL_DATETIME_INTERVAL_PRECISION
|
||||
SQL_DESCRIPTOR SQL_DISCONNECT SQL_ENUM SQL_FOUND
|
||||
SQL_FREE SQL_GO SQL_GOTO SQL_IDENTIFIED
|
||||
SQL_INDICATOR SQL_KEY_MEMBER SQL_LENGTH
|
||||
SQL_LONG SQL_NAME SQL_NULLABLE SQL_OCTET_LENGTH
|
||||
SQL_OPEN SQL_PREPARE SQL_RELEASE SQL_REFERENCE
|
||||
SQL_OPEN SQL_RELEASE SQL_REFERENCE
|
||||
SQL_RETURNED_LENGTH SQL_RETURNED_OCTET_LENGTH SQL_SCALE
|
||||
SQL_SECTION SQL_SHORT SQL_SIGNED SQL_SQL SQL_SQLERROR
|
||||
SQL_SQLPRINT SQL_SQLWARNING SQL_START SQL_STOP
|
||||
@ -257,7 +257,6 @@ make_name(void)
|
||||
/* precedence: lowest to highest */
|
||||
%left UNION EXCEPT
|
||||
%left INTERSECT
|
||||
%left JOIN UNIONJOIN CROSS LEFT FULL RIGHT INNER_P NATURAL
|
||||
%left OR
|
||||
%left AND
|
||||
%right NOT
|
||||
@ -266,7 +265,7 @@ make_name(void)
|
||||
%nonassoc LIKE ILIKE SIMILAR
|
||||
%nonassoc ESCAPE
|
||||
%nonassoc OVERLAPS
|
||||
%nonassoc BETWEEN DISTINCT
|
||||
%nonassoc BETWEEN
|
||||
%nonassoc IN_P
|
||||
%left POSTFIXOP /* dummy for postfix Op rules */
|
||||
%left Op OPERATOR /* multi-character ops and user-defined operators */
|
||||
@ -283,6 +282,7 @@ make_name(void)
|
||||
%left '(' ')'
|
||||
%left TYPECAST
|
||||
%left '.'
|
||||
%left JOIN UNIONJOIN CROSS LEFT FULL RIGHT INNER_P NATURAL
|
||||
|
||||
%type <str> Iconst Fconst Sconst TransactionStmt CreateStmt UserId
|
||||
%type <str> CreateAsElement OptCreateAs CreateAsList CreateAsStmt
|
||||
@ -371,14 +371,14 @@ make_name(void)
|
||||
%type <str> execute_param_list opt_sort_clause
|
||||
|
||||
%type <str> ECPGWhenever ECPGConnect connection_target ECPGOpen
|
||||
%type <str> indicator ECPGExecute ECPGPrepare ecpg_using ecpg_into
|
||||
%type <str> indicator ECPGExecute ECPGPrepare opt_ecpg_using ecpg_into
|
||||
%type <str> storage_clause opt_initializer c_anything
|
||||
%type <str> variable_list variable c_thing c_term
|
||||
%type <str> opt_pointer ECPGDisconnect dis_name storage_modifier
|
||||
%type <str> stmt ECPGRelease execstring server_name
|
||||
%type <str> connection_object opt_server opt_port c_stuff c_stuff_item
|
||||
%type <str> user_name opt_user char_variable ora_user ident opt_reference
|
||||
%type <str> quoted_ident_stringvar var_type_declarations
|
||||
%type <str> var_type_declarations quoted_ident_stringvar
|
||||
%type <str> db_prefix server opt_options opt_connection_name c_list
|
||||
%type <str> ECPGSetConnection ECPGTypedef c_args ECPGKeywords
|
||||
%type <str> enum_type civar civarind ECPGCursorStmt ECPGDeallocate
|
||||
@ -2085,13 +2085,13 @@ opt_column: COLUMN { $$ = make_str("column"); }
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
RuleStmt: CREATE RULE name AS
|
||||
RuleStmt: CREATE opt_or_replace RULE name AS
|
||||
{ QueryIsRule=1; }
|
||||
ON event TO qualified_name where_clause
|
||||
DO opt_instead RuleActionList
|
||||
{
|
||||
QueryIsRule=0;
|
||||
$$ = cat_str(10, make_str("create rule"), $3, make_str("as on"), $7, make_str("to"), $9, $10, make_str("do"), $12, $13);
|
||||
$$ = cat_str(12, make_str("create"), $2, make_str("rule"), $4, make_str("as on"), $8, make_str("to"), $10, $11, make_str("do"), $13, $14);
|
||||
}
|
||||
;
|
||||
|
||||
@ -2187,8 +2187,8 @@ opt_trans: WORK { $$ = EMPTY; }
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
ViewStmt: CREATE VIEW qualified_name opt_column_list AS SelectStmt
|
||||
{ $$ = cat_str(5, make_str("create view"), $3, $4, make_str("as"), $6); }
|
||||
ViewStmt: CREATE opt_or_replace VIEW qualified_name opt_column_list AS SelectStmt
|
||||
{ $$ = cat_str(7, make_str("create"), $2, make_str("view"), $4, $5, make_str("as"), $7); }
|
||||
;
|
||||
|
||||
|
||||
@ -3153,7 +3153,7 @@ r_expr: row IN_P select_with_parens
|
||||
{ $$ = cat2_str($1, make_str("is not null")); }
|
||||
| row OVERLAPS row
|
||||
{ $$ = cat_str(3, $1, make_str("overlaps"), $3); }
|
||||
| row IS DISTINCT FROM row
|
||||
| row IS DISTINCT FROM row %prec IS
|
||||
{ $$ = cat_str(3, $1, make_str("is distinct from"), $5); }
|
||||
;
|
||||
|
||||
@ -3331,11 +3331,11 @@ a_expr: c_expr
|
||||
{ $$ = cat2_str($1, make_str("is unknown")); }
|
||||
| a_expr IS NOT UNKNOWN
|
||||
{ $$ = cat2_str($1, make_str("is not unknown")); }
|
||||
| a_expr IS DISTINCT FROM a_expr %prec DISTINCT
|
||||
| a_expr IS DISTINCT FROM a_expr %prec IS
|
||||
{ $$ = cat_str(3, $1, make_str("is distinct from"), $5); }
|
||||
| a_expr IS OF '(' type_list ')'
|
||||
| a_expr IS OF '(' type_list ')' %prec IS
|
||||
{ $$ = cat_str(4, $1, make_str("is of ("), $5, make_str(")")); }
|
||||
| a_expr IS NOT OF '(' type_list ')'
|
||||
| a_expr IS NOT OF '(' type_list ')' %prec IS
|
||||
{ $$ = cat_str(4, $1, make_str("is not of ("), $6, make_str(")")); }
|
||||
| a_expr BETWEEN b_expr AND b_expr %prec BETWEEN
|
||||
{ $$ = cat_str(5, $1, make_str("between"), $3, make_str("and"), $5); }
|
||||
@ -3399,11 +3399,11 @@ b_expr: c_expr
|
||||
{ $$ = cat2_str($1, $2); }
|
||||
| b_expr qual_Op %prec POSTFIXOP
|
||||
{ $$ = cat2_str($1, $2); }
|
||||
| b_expr IS DISTINCT FROM b_expr %prec Op
|
||||
| b_expr IS DISTINCT FROM b_expr %prec IS
|
||||
{ $$ = cat_str(3, $1, make_str("is distinct from"), $5); }
|
||||
| b_expr IS OF '(' b_expr ')'
|
||||
| b_expr IS OF '(' b_expr ')' %prec IS
|
||||
{ $$ = cat_str(4, $1, make_str("is of ("), $5, make_str(")")); }
|
||||
| b_expr IS NOT OF '(' b_expr ')'
|
||||
| b_expr IS NOT OF '(' b_expr ')' %prec IS
|
||||
{ $$ = cat_str(4, $1, make_str("is not of ("), $6, make_str(")")); }
|
||||
;
|
||||
|
||||
@ -4111,7 +4111,7 @@ ECPGCursorStmt: DECLARE name opt_cursor CURSOR FOR ident
|
||||
* the exec sql deallocate prepare command to deallocate a previously
|
||||
* prepared statement
|
||||
*/
|
||||
ECPGDeallocate: SQL_DEALLOCATE SQL_PREPARE ident
|
||||
ECPGDeallocate: DEALLOCATE PREPARE ident
|
||||
{ $$ = cat_str(3, make_str("ECPGdeallocate(__LINE__, \""), $3, make_str("\");")); };
|
||||
|
||||
/*
|
||||
@ -4565,7 +4565,7 @@ ECPGExecute : EXECUTE IMMEDIATE execstring
|
||||
|
||||
$$ = make_str("?");
|
||||
}
|
||||
| EXECUTE ident
|
||||
| EXECUTE name
|
||||
{
|
||||
struct variable *thisquery = (struct variable *)mm_alloc(sizeof(struct variable));
|
||||
|
||||
@ -4577,7 +4577,7 @@ ECPGExecute : EXECUTE IMMEDIATE execstring
|
||||
|
||||
add_variable(&argsinsert, thisquery, &no_indicator);
|
||||
}
|
||||
ecpg_using opt_ecpg_into
|
||||
opt_ecpg_using opt_ecpg_into
|
||||
{
|
||||
$$ = make_str("?");
|
||||
}
|
||||
@ -4593,14 +4593,14 @@ execstring: char_variable
|
||||
* the exec sql free command to deallocate a previously
|
||||
* prepared statement
|
||||
*/
|
||||
ECPGFree: SQL_FREE ident { $$ = $2; };
|
||||
ECPGFree: SQL_FREE name { $$ = $2; };
|
||||
|
||||
/*
|
||||
* open is an open cursor, at the moment this has to be removed
|
||||
*/
|
||||
ECPGOpen: SQL_OPEN name ecpg_using { $$ = $2; };
|
||||
ECPGOpen: SQL_OPEN name opt_ecpg_using { $$ = $2; };
|
||||
|
||||
ecpg_using: /*EMPTY*/ { $$ = EMPTY; }
|
||||
opt_ecpg_using: /*EMPTY*/ { $$ = EMPTY; }
|
||||
| USING variablelist
|
||||
{
|
||||
/* mmerror ("open cursor with variables not implemented yet"); */
|
||||
@ -4633,7 +4633,7 @@ variablelist: variable | variable ',' variablelist;
|
||||
* As long as the prepare statement is not supported by the backend, we will
|
||||
* try to simulate it here so we get dynamic SQL
|
||||
*/
|
||||
ECPGPrepare: SQL_PREPARE ident FROM execstring
|
||||
ECPGPrepare: PREPARE name FROM execstring
|
||||
{ $$ = cat2_str(make3_str(make_str("\""), $2, make_str("\",")), $4); }
|
||||
;
|
||||
|
||||
@ -4645,7 +4645,7 @@ ECPGPrepare: SQL_PREPARE ident FROM execstring
|
||||
/*
|
||||
* deallocate a descriptor
|
||||
*/
|
||||
ECPGDeallocateDescr: SQL_DEALLOCATE SQL_DESCRIPTOR quoted_ident_stringvar
|
||||
ECPGDeallocateDescr: DEALLOCATE SQL_DESCRIPTOR quoted_ident_stringvar
|
||||
{
|
||||
drop_descriptor($3,connection);
|
||||
$$ = $3;
|
||||
@ -4704,8 +4704,7 @@ ECPGGetDescriptorHeader: GET SQL_DESCRIPTOR quoted_ident_stringvar
|
||||
{ $$ = $3; }
|
||||
;
|
||||
|
||||
ECPGGetDescriptor: GET SQL_DESCRIPTOR quoted_ident_stringvar
|
||||
SQL_VALUE CVARIABLE ECPGGetDescItems
|
||||
ECPGGetDescriptor: GET SQL_DESCRIPTOR quoted_ident_stringvar SQL_VALUE CVARIABLE ECPGGetDescItems
|
||||
{ $$.str = $5; $$.name = $3; }
|
||||
| GET SQL_DESCRIPTOR quoted_ident_stringvar SQL_VALUE Iconst ECPGGetDescItems
|
||||
{ $$.str = $5; $$.name = $3; }
|
||||
@ -5010,7 +5009,6 @@ ECPGKeywords: SQL_BREAK { $$ = make_str("break"); }
|
||||
| SQL_DATA { $$ = make_str("data"); }
|
||||
| SQL_DATETIME_INTERVAL_CODE { $$ = make_str("datetime_interval_code"); }
|
||||
| SQL_DATETIME_INTERVAL_PRECISION { $$ = make_str("datetime_interval_precision"); }
|
||||
| SQL_DEALLOCATE { $$ = make_str("deallocate"); }
|
||||
| SQL_DISCONNECT { $$ = make_str("disconnect"); }
|
||||
| SQL_FOUND { $$ = make_str("found"); }
|
||||
| SQL_GO { $$ = make_str("go"); }
|
||||
@ -5023,7 +5021,6 @@ ECPGKeywords: SQL_BREAK { $$ = make_str("break"); }
|
||||
| SQL_NULLABLE { $$ = make_str("nullable"); }
|
||||
| SQL_OCTET_LENGTH { $$ = make_str("octet_length"); }
|
||||
| SQL_OPEN { $$ = make_str("open"); }
|
||||
| SQL_PREPARE { $$ = make_str("prepare"); }
|
||||
| SQL_RELEASE { $$ = make_str("release"); }
|
||||
| SQL_RETURNED_LENGTH { $$ = make_str("returned_length"); }
|
||||
| SQL_RETURNED_OCTET_LENGTH { $$ = make_str("returned_octet_length"); }
|
||||
@ -5485,9 +5482,7 @@ ident: IDENT { $$ = $1; }
|
||||
| CSTRING { $$ = make3_str(make_str("\""), $1, make_str("\"")); }
|
||||
;
|
||||
|
||||
quoted_ident_stringvar: IDENT
|
||||
{ $$ = make3_str(make_str("\""), $1, make_str("\"")); }
|
||||
| CSTRING
|
||||
quoted_ident_stringvar: name
|
||||
{ $$ = make3_str(make_str("\""), $1, make_str("\"")); }
|
||||
| char_variable
|
||||
{ $$ = make3_str(make_str("("), $1, make_str(")")); }
|
||||
|
Loading…
x
Reference in New Issue
Block a user