Search Postgresql Archives

Re: Failed to parse new syntax

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Are you aware that PostgreSQL has a built in '~' operator for regular expressions?


Regards, Jan


On 8/5/23 11:56, jacktby jacktby wrote:
/*
*	similarity_search_expr is used for our multi-mode
*	similarity_search, and we just use this for multi
*   cols search.
*/
similarity_search_expr:
	sub_search_expr '<' AexprConst {
		$$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", $1, $3, @2);
	}
	;
sub_search_expr:
	'[' col_tuple_expr '~' AexprConst ']' {
		$$ = (Node *) makeSimpleA_Expr(AEXPR_OP, "~", $2, $4, @3);
	}
	;
col_tuple_expr:
	columnref { $$ = $1;}
	| '(' col_list_expr ')' { $$ = $2;}
	;
col_list_expr:
	columnref {
		ResTarget* target = makeNode(ResTarget);
		target->name = NULL;
		target->indirection = NIL;
		target->val = (Node *) $1;
		target->location = @1;
		$$ = list_make1(target);
	}
	| col_list_expr ',' columnref { $$ = lappend($1,$3);}
	;
This is my new grammer.
But I get  below:
	   postgres=# select * from t2 where [a ~ 1] < 0;
	   ERROR:  syntax error at or near "~"
          LINE 1: select * from t2 where [a ~ 1] < 0;
It’s strange that it can’t parse ‘~’, I add it in the parser.







[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]

  Powered by Linux