[Modeling-cvs] ProjectModeling/Modeling/DatabaseAdaptors/PostgresqlAdaptorLayer PostgresqlSQLExpress
Status: Abandoned
Brought to you by:
sbigaret
From: <sbi...@us...> - 2003-07-24 12:07:29
|
Update of /cvsroot/modeling/ProjectModeling/Modeling/DatabaseAdaptors/PostgresqlAdaptorLayer In directory sc8-pr-cvs1:/tmp/cvs-serv29656/DatabaseAdaptors/PostgresqlAdaptorLayer Modified Files: PostgresqlSQLExpression.py Log Message: Fixed bug #776592: was impossible to add raw '*' and '?' characters in a LIKE statement Index: PostgresqlSQLExpression.py =================================================================== RCS file: /cvsroot/modeling/ProjectModeling/Modeling/DatabaseAdaptors/PostgresqlAdaptorLayer/PostgresqlSQLExpression.py,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** PostgresqlSQLExpression.py 12 Jun 2003 11:40:31 -0000 1.4 --- PostgresqlSQLExpression.py 24 Jul 2003 12:07:25 -0000 1.5 *************** *** 38,41 **** --- 38,53 ---- import re + esc_question_tmp_replct='MDL_ESCAPED_QUESTION_MARK_MDL' + esc_star_tmp_replct='MDL_ESCAPED_STAR_MDL' + + star=re.compile('\*') + escaped_star=re.compile(r'\\\*') + question_mark=re.compile('\?') + escaped_question_mark=re.compile(r'\\\?') + percent=re.compile('%') + underscore=re.compile('_') + anti_escaped_star=re.compile(esc_star_tmp_replct) + anti_esc_question_mark=re.compile(esc_question_tmp_replct) + class PostgresqlSQLExpression(SQLExpression): """ *************** *** 85,97 **** '\%': postgresql interprets backslashes in strings """ - star=re.compile('\*') - question_mark=re.compile('\?') - percent=re.compile('%') - underscore=re.compile('_') - pattern=percent.sub('\\\\\\\\%', pattern) pattern=underscore.sub('\_', pattern) pattern=question_mark.sub('_', pattern) pattern=star.sub('%', pattern) return pattern --- 97,108 ---- '\%': postgresql interprets backslashes in strings """ pattern=percent.sub('\\\\\\\\%', pattern) pattern=underscore.sub('\_', pattern) + pattern=escaped_question_mark.sub(esc_question_tmp_replct, pattern) pattern=question_mark.sub('_', pattern) + pattern=escaped_star.sub(esc_star_tmp_replct, pattern) pattern=star.sub('%', pattern) + pattern=anti_escaped_star.sub('*', pattern) + pattern=anti_esc_question_mark.sub('?', pattern) return pattern |