[Modeling-cvs] ProjectModeling/Modeling/DatabaseAdaptors/OracleAdaptorLayer OracleSQLExpression.py,1
Status: Abandoned
Brought to you by:
sbigaret
From: <sbi...@us...> - 2003-12-15 15:05:03
|
Update of /cvsroot/modeling/ProjectModeling/Modeling/DatabaseAdaptors/OracleAdaptorLayer In directory sc8-pr-cvs1:/tmp/cvs-serv10442/Modeling/DatabaseAdaptors/OracleAdaptorLayer Modified Files: OracleSQLExpression.py Log Message: Fixed bug #857803: mysql: invalid generated sql for complex qualifiers Index: OracleSQLExpression.py =================================================================== RCS file: /cvsroot/modeling/ProjectModeling/Modeling/DatabaseAdaptors/OracleAdaptorLayer/OracleSQLExpression.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** OracleSQLExpression.py 31 Aug 2003 15:02:51 -0000 1.2 --- OracleSQLExpression.py 15 Dec 2003 15:05:00 -0000 1.3 *************** *** 51,106 **** """ - def _addTableJoinsForAlias(self, alias, str): - """ - Changes the default way the Modeling.SQLExpression calculates SQL - statements for JOIN. - - It depends on the version of Oracle used there. - - For Oracle 8i, we return the ANSI equivalent of 'INNER JOIN', which o8i - does not support. - - For Oracle 9i, we return the default, as built by Modeling.SQLExpression:: - - table0 alias0 INNER JOIN [ (some other nested join) | table1 alias1 ] - ON (join condition) - - """ - if oracle_server_version()=='9i': - return SQLExpression._addTableJoinsForAlias(self, alias, str) - - # 8i - relPaths=self._internals.relPathsComingFromAlias(alias) - aliases=map(lambda rp, self=self: self._internals.aliasForRelPath(rp), - relPaths) - - str+=self._internals.entityExternalNameForAlias(alias)+' '+alias - - processedAliases_total=[] - for boundAlias in aliases: - currentRelPath=self._internals.relPathForAlias(boundAlias) - trace('relPath for bound alias: %s'%(currentRelPath)) - - - srcKeys=self._internals.sourceKeysForRelPath(currentRelPath) - dstKeys=self._internals.destinationKeysForRelPath(currentRelPath) - joinClause='' - for idx in range(len(srcKeys)): - joinClause+='%s.%s=%s.%s AND '%(alias, srcKeys[idx], boundAlias, dstKeys[idx]) - joinClause=joinClause[:-5] - if self._joinClauseString: - self._joinClauseString+=' AND '+joinClause - else: - self._joinClauseString=joinClause - - str2, processedAliases=self._addTableJoinsForAlias(boundAlias, '') - str+=', '+str2 - processedAliases_total.extend(processedAliases) - - aliases.extend(processedAliases_total) - aliases.append(alias) - - return (str, aliases) - def columnTypeStringForAttribute(self, attribute): """ --- 51,54 ---- *************** *** 204,205 **** --- 152,159 ---- return values + + + if oracle_server_version()=='9i': + OracleSQLExpression.SQL92_join=1 + else: + OracleSQLExpression.SQL92_join=0 |