I added the function mapping code to the EJB-QL to SQL translation engine. I
added mappings for MS SQLServer, Oracle, MySQL and PostgreSQL to the
standard jboss cmp xmp file.
Notes:
- These mappings are completely based on info from the 'SQL in a Nutshell'
book, so they may not work (I don't use any of these databases).
- PostgreSQL doesn't have a three argument position function, so I didn't
map it.
- Send me any corrections or change it your self.
- If not mapping is provided the system defaults to {fn concat(param1,
param2)} style functions.
The mappings follow this message.
-dain
Oracle:
<function-mapping>
<function-name>concat</function-name>
<function-sql>(?1 || ?2)</function-sql>
</function-mapping>
<function-mapping>
<function-name>substring</function-name>
<function-sql>substr(?1, ?2, ?3)</function-sql>
</function-mapping>
<function-mapping>
<function-name>length</function-name>
<function-sql>len(?1)</function-sql>
</function-mapping>
<function-mapping>
<function-name>locate</function-name>
<function-sql>instr(?1, ?2, ?3)</function-sql>
</function-mapping>
<function-mapping>
<function-name>abs</function-name>
<function-sql>abs(?1)</function-sql>
</function-mapping>
<function-mapping>
<function-name>sqrt</function-name>
<function-sql>sqrt(?1)</function-sql>
</function-mapping>
MS SQLServer:
<function-mapping>
<function-name>concat</function-name>
<function-sql>(?1 + ?2)</function-sql>
</function-mapping>
<function-mapping>
<function-name>substring</function-name>
<function-sql>substring(?1 FROM ?2 FOR ?3)</function-sql>
</function-mapping>
<function-mapping>
<function-name>length</function-name>
<function-sql>len(?1)</function-sql>
</function-mapping>
<function-mapping>
<function-name>locate</function-name>
<function-sql>charindex(?1, ?2, ?3)</function-sql>
</function-mapping>
<function-mapping>
<function-name>abs</function-name>
<function-sql>abs(?1)</function-sql>
</function-mapping>
<function-mapping>
<function-name>sqrt</function-name>
<function-sql>sqrt(?1)</function-sql>
</function-mapping>
MySQL:
<function-mapping>
<function-name>concat</function-name>
<function-sql>concat(?1, ?2)</function-sql>
</function-mapping>
<function-mapping>
<function-name>substring</function-name>
<function-sql>substring(?1 FROM ?2 FOR ?3)</function-sql>
</function-mapping>
<function-mapping>
<function-name>length</function-name>
<function-sql>length(?1)</function-sql>
</function-mapping>
<function-mapping>
<function-name>locate</function-name>
<function-sql>locate(?1, ?2, ?3)</function-sql>
</function-mapping>
<function-mapping>
<function-name>abs</function-name>
<function-sql>abs(?1)</function-sql>
</function-mapping>
<function-mapping>
<function-name>sqrt</function-name>
<function-sql>sqrt(?1)</function-sql>
</function-mapping>
PostgreSQL:
<function-mapping>
<function-name>concat</function-name>
<function-sql>(?1 || ?2)</function-sql>
</function-mapping>
<function-mapping>
<function-name>substring</function-name>
<function-sql>substring(?1 FROM ?2 FOR ?3)</function-sql>
</function-mapping>
<function-mapping>
<function-name>length</function-name>
<function-sql>length(?1)</function-sql>
</function-mapping>
<function-mapping>
<function-name>abs</function-name>
<function-sql>abs(?1)</function-sql>
</function-mapping>
<function-mapping>
<function-name>sqrt</function-name>
<function-sql>sqrt(?1)</function-sql>
</function-mapping>
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/jboss-development