Search in sources :

Example 1 with SelectParser

use of lucee.runtime.sql.SelectParser in project Lucee by lucee.

the class HSQLDBHandler method execute.

/**
 * executes a query on the queries inside the cld fusion enviroment
 * @param pc Page Context
 * @param sql
 * @param maxrows
 * @return result as Query
 * @throws PageException
 * @throws PageException
 */
public Query execute(PageContext pc, SQL sql, int maxrows, int fetchsize, TimeSpan timeout) throws PageException {
    Stopwatch stopwatch = new Stopwatch(Stopwatch.UNIT_NANO);
    stopwatch.start();
    String prettySQL = null;
    Selects selects = null;
    // First Chance
    try {
        SelectParser parser = new SelectParser();
        selects = parser.parse(sql.getSQLString());
        Query q = qoq.execute(pc, sql, selects, maxrows);
        q.setExecutionTime(stopwatch.time());
        return q;
    } catch (SQLParserException spe) {
        // lucee.print.printST(spe);
        // sp
        // lucee.print.out("sql parser crash at:");
        // lucee.print.out("--------------------------------");
        // lucee.print.out(sql.getSQLString().trim());
        // lucee.print.out("--------------------------------");
        // print.e("1:"+sql.getSQLString());
        prettySQL = SQLPrettyfier.prettyfie(sql.getSQLString());
        // print.e("2:"+prettySQL);
        try {
            Query query = executer.execute(pc, sql, prettySQL, maxrows);
            query.setExecutionTime(stopwatch.time());
            return query;
        } catch (PageException ex) {
        // lucee.print.printST(ex);
        // lucee.print.out("old executor/zql crash at:");
        // lucee.print.out("--------------------------------");
        // lucee.print.out(sql.getSQLString().trim());
        // lucee.print.out("--------------------------------");
        }
    } catch (PageException e) {
    // throw e;
    // print.out("new executor crash at:");
    // print.out("--------------------------------");
    // print.out(sql.getSQLString().trim());
    // print.out("--------------------------------");
    }
    // SECOND Chance with hsqldb
    try {
        boolean isUnion = false;
        Set<String> tables = null;
        if (selects != null) {
            HSQLUtil2 hsql2 = new HSQLUtil2(selects);
            isUnion = hsql2.isUnion();
            tables = hsql2.getInvokedTables();
        } else {
            if (prettySQL == null)
                prettySQL = SQLPrettyfier.prettyfie(sql.getSQLString());
            HSQLUtil hsql = new HSQLUtil(prettySQL);
            tables = hsql.getInvokedTables();
            isUnion = hsql.isUnion();
        }
        String strSQL = StringUtil.replace(sql.getSQLString(), "[", "", false);
        strSQL = StringUtil.replace(strSQL, "]", "", false);
        sql.setSQLString(strSQL);
        return _execute(pc, sql, maxrows, fetchsize, timeout, stopwatch, tables, isUnion);
    } catch (ParseException e) {
        throw new DatabaseException(e.getMessage(), null, sql, null);
    }
}
Also used : PageException(lucee.runtime.exp.PageException) Query(lucee.runtime.type.Query) Stopwatch(lucee.runtime.timer.Stopwatch) SQLParserException(lucee.runtime.sql.SQLParserException) Selects(lucee.runtime.sql.Selects) ParseException(lucee.runtime.sql.old.ParseException) SelectParser(lucee.runtime.sql.SelectParser) DatabaseException(lucee.runtime.exp.DatabaseException)

Example 2 with SelectParser

use of lucee.runtime.sql.SelectParser in project Lucee by lucee.

the class QoQ method execute.

public Query execute(PageContext pc, SQL sql, int maxrows) throws PageException {
    try {
        SelectParser parser = new SelectParser();
        Selects selects = parser.parse(sql.getSQLString());
        return execute(pc, sql, selects, maxrows);
    } catch (Throwable t) {
        throw Caster.toPageException(t);
    }
}
Also used : Selects(lucee.runtime.sql.Selects) SelectParser(lucee.runtime.sql.SelectParser)

Example 3 with SelectParser

use of lucee.runtime.sql.SelectParser in project Lucee by lucee.

the class SelectParse method call.

public static Struct call(PageContext pc, String sql) throws PageException {
    try {
        // Selects selects =
        new SelectParser().parse(sql);
        Struct sct = new StructImpl();
        return sct;
    } catch (SQLParserException e) {
        throw Caster.toPageException(e);
    }
}
Also used : StructImpl(lucee.runtime.type.StructImpl) SQLParserException(lucee.runtime.sql.SQLParserException) SelectParser(lucee.runtime.sql.SelectParser) Struct(lucee.runtime.type.Struct)

Aggregations

SelectParser (lucee.runtime.sql.SelectParser)3 SQLParserException (lucee.runtime.sql.SQLParserException)2 Selects (lucee.runtime.sql.Selects)2 DatabaseException (lucee.runtime.exp.DatabaseException)1 PageException (lucee.runtime.exp.PageException)1 ParseException (lucee.runtime.sql.old.ParseException)1 Stopwatch (lucee.runtime.timer.Stopwatch)1 Query (lucee.runtime.type.Query)1 Struct (lucee.runtime.type.Struct)1 StructImpl (lucee.runtime.type.StructImpl)1