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

Reply via email to