Search in sources :

Example 16 with Query

use of lucee.runtime.type.Query in project Lucee by lucee.

the class Admin method doGetSpoolerTasks.

private void doGetSpoolerTasks() throws PageException {
    int startrow = getInt("startrow", 1);
    if (startrow < 1)
        startrow = 1;
    int maxrow = getInt("maxrow", -1);
    String result = getString("result", null);
    SpoolerEngineImpl engine = (SpoolerEngineImpl) config.getSpoolerEngine();
    Query qry = engine.getAllTasksAsQuery(startrow, maxrow);
    pageContext.setVariable(getString("admin", action, "returnVariable"), qry);
    if (!StringUtil.isEmpty(result)) {
        Struct sct = new StructImpl();
        pageContext.setVariable(result, sct);
        sct.setEL("open", engine.getOpenTaskCount());
        sct.setEL("closed", engine.getClosedTaskCount());
    }
/*
		 * SpoolerTask[] open = config.getSpoolerEngine().getOpenTasks(); SpoolerTask[] closed = config.getSpoolerEngine().getClosedTasks(); String v="VARCHAR";
		 * lucee.runtime.type.Query qry=new QueryImpl( new
		 * String[]{"type","name","detail","id","lastExecution","nextExecution","closed","tries","exceptions","triesmax"}, new
		 * String[]{v,v,"object",v,d,d,"boolean","int","object","int"}, open.length+closed.length,"query");
		 * 
		 * int row=0; row=doGetRemoteClientTasks(qry,open,row); doGetRemoteClientTasks(qry,closed,row);
		 * pageContext.setVariable(getString("admin",action,"returnVariable"),qry);
		 */
}
Also used : StructImpl(lucee.runtime.type.StructImpl) Query(lucee.runtime.type.Query) SpoolerEngineImpl(lucee.runtime.spooler.SpoolerEngineImpl) Struct(lucee.runtime.type.Struct)

Example 17 with Query

use of lucee.runtime.type.Query in project Lucee by lucee.

the class WDDXConverter method _deserializeQuery.

/**
 * Desirialize a Query Object
 *
 * @param recordset
 *            Query Object as XML Element
 * @return Query Object
 * @throws ConverterException
 */
private Object _deserializeQuery(Element recordset) throws ConverterException {
    try {
        // create Query Object
        Query query = new QueryImpl(lucee.runtime.type.util.ListUtil.listToArray(recordset.getAttribute("fieldNames"), ','), Caster.toIntValue(recordset.getAttribute("rowCount")), "query");
        NodeList list = recordset.getChildNodes();
        int len = list.getLength();
        for (int i = 0; i < len; i++) {
            Node node = list.item(i);
            if (node instanceof Element) {
                _deserializeQueryField(query, (Element) node);
            }
        }
        return query;
    } catch (PageException e) {
        throw toConverterException(e);
    }
}
Also used : PageException(lucee.runtime.exp.PageException) QueryImpl(lucee.runtime.type.QueryImpl) Query(lucee.runtime.type.Query) NodeList(org.w3c.dom.NodeList) Node(org.w3c.dom.Node) Element(org.w3c.dom.Element)

Example 18 with Query

use of lucee.runtime.type.Query in project Lucee by lucee.

the class RHExtension method toQuery.

public static Query toQuery(Config config, Element[] children) throws PageException {
    Log log = config.getLog("deploy");
    Query qry = createQuery();
    for (int i = 0; i < children.length; i++) {
        try {
            // ,i+1
            new RHExtension(config, children[i]).populate(qry);
        } catch (Throwable t) {
            ExceptionUtil.rethrowIfNecessary(t);
            log.error("extension", t);
        }
    }
    return qry;
}
Also used : Query(lucee.runtime.type.Query) Log(lucee.commons.io.log.Log)

Example 19 with Query

use of lucee.runtime.type.Query in project Lucee by lucee.

the class XMLConverter method _deserializeQuery.

/**
 * Desirialize a Query Object
 * @param recordset Query Object as XML Element
 * @return Query Object
 * @throws ConverterException
 */
private Object _deserializeQuery(Element recordset) throws ConverterException {
    try {
        // create Query Object
        Query query = new QueryImpl(lucee.runtime.type.util.ListUtil.listToArray(recordset.getAttribute("fieldNames"), ','), Caster.toIntValue(recordset.getAttribute("rowCount")), "query");
        NodeList list = recordset.getChildNodes();
        int len = list.getLength();
        for (int i = 0; i < len; i++) {
            Node node = list.item(i);
            if (node instanceof Element) {
                _deserializeQueryField(query, (Element) node);
            }
        }
        return query;
    } catch (PageException e) {
        throw toConverterException(e);
    }
}
Also used : PageException(lucee.runtime.exp.PageException) QueryImpl(lucee.runtime.type.QueryImpl) Query(lucee.runtime.type.Query) NodeList(org.w3c.dom.NodeList) Node(org.w3c.dom.Node) Element(org.w3c.dom.Element)

Example 20 with Query

use of lucee.runtime.type.Query in project Lucee by lucee.

the class DebugEntryTemplatePartComparator method getDebuggingData.

@Override
public Struct getDebuggingData(PageContext pc, boolean addAddionalInfo) throws DatabaseException {
    Struct debugging = new StructImpl();
    // datasources
    debugging.setEL(KeyConstants._datasources, ((ConfigImpl) pc.getConfig()).getDatasourceConnectionPool().meta());
    // queries
    List<QueryEntry> queries = getQueries();
    Struct qryExe = new StructImpl();
    ListIterator<QueryEntry> qryIt = queries.listIterator();
    Collection.Key[] cols = new Collection.Key[] { KeyConstants._name, KeyConstants._time, KeyConstants._sql, KeyConstants._src, KeyConstants._count, KeyConstants._datasource, KeyConstants._usage, CACHE_TYPE };
    String[] types = new String[] { "VARCHAR", "DOUBLE", "VARCHAR", "VARCHAR", "DOUBLE", "VARCHAR", "ANY", "VARCHAR" };
    Query qryQueries = null;
    try {
        qryQueries = new QueryImpl(cols, types, queries.size(), "query");
    } catch (DatabaseException e) {
        qryQueries = new QueryImpl(cols, queries.size(), "query");
    }
    int row = 0;
    try {
        QueryEntry qe;
        while (qryIt.hasNext()) {
            row++;
            qe = qryIt.next();
            qryQueries.setAt(KeyConstants._name, row, qe.getName() == null ? "" : qe.getName());
            qryQueries.setAt(KeyConstants._time, row, Long.valueOf(qe.getExecutionTime()));
            qryQueries.setAt(KeyConstants._sql, row, qe.getSQL().toString());
            qryQueries.setAt(KeyConstants._src, row, qe.getSrc());
            qryQueries.setAt(KeyConstants._count, row, Integer.valueOf(qe.getRecordcount()));
            qryQueries.setAt(KeyConstants._datasource, row, qe.getDatasource());
            qryQueries.setAt(CACHE_TYPE, row, qe.getCacheType());
            Struct usage = getUsage(qe);
            if (usage != null)
                qryQueries.setAt(KeyConstants._usage, row, usage);
            Object o = qryExe.get(KeyImpl.init(qe.getSrc()), null);
            if (o == null)
                qryExe.setEL(KeyImpl.init(qe.getSrc()), Long.valueOf(qe.getExecutionTime()));
            else
                qryExe.setEL(KeyImpl.init(qe.getSrc()), Long.valueOf(((Long) o).longValue() + qe.getExecutionTime()));
        }
    } catch (PageException dbe) {
    }
    // Pages
    // src,load,app,query,total
    row = 0;
    ArrayList<DebugEntryTemplate> arrPages = toArray();
    int len = arrPages.size();
    Query qryPage = new QueryImpl(new Collection.Key[] { KeyConstants._id, KeyConstants._count, KeyConstants._min, KeyConstants._max, KeyConstants._avg, KeyConstants._app, KeyConstants._load, KeyConstants._query, KeyConstants._total, KeyConstants._src }, len, "query");
    try {
        DebugEntryTemplate de;
        // PageSource ps;
        for (int i = 0; i < len; i++) {
            row++;
            de = arrPages.get(i);
            // ps = de.getPageSource();
            qryPage.setAt(KeyConstants._id, row, de.getId());
            qryPage.setAt(KeyConstants._count, row, _toString(de.getCount()));
            qryPage.setAt(KeyConstants._min, row, _toString(de.getMin()));
            qryPage.setAt(KeyConstants._max, row, _toString(de.getMax()));
            qryPage.setAt(KeyConstants._avg, row, _toString(de.getExeTime() / de.getCount()));
            qryPage.setAt(KeyConstants._app, row, _toString(de.getExeTime() - de.getQueryTime()));
            qryPage.setAt(KeyConstants._load, row, _toString(de.getFileLoadTime()));
            qryPage.setAt(KeyConstants._query, row, _toString(de.getQueryTime()));
            qryPage.setAt(KeyConstants._total, row, _toString(de.getFileLoadTime() + de.getExeTime()));
            qryPage.setAt(KeyConstants._src, row, de.getSrc());
        }
    } catch (PageException dbe) {
    }
    // Pages Parts
    List<DebugEntryTemplatePart> filteredPartEntries = null;
    boolean hasParts = partEntries != null && !partEntries.isEmpty() && !arrPages.isEmpty();
    int qrySize = 0;
    if (hasParts) {
        String slowestTemplate = arrPages.get(0).getPath();
        filteredPartEntries = new ArrayList();
        java.util.Collection<DebugEntryTemplatePartImpl> col = partEntries.values();
        for (DebugEntryTemplatePart detp : col) {
            if (detp.getPath().equals(slowestTemplate))
                filteredPartEntries.add(detp);
        }
        qrySize = Math.min(filteredPartEntries.size(), MAX_PARTS);
    }
    Query qryPart = new QueryImpl(new Collection.Key[] { KeyConstants._id, KeyConstants._count, KeyConstants._min, KeyConstants._max, KeyConstants._avg, KeyConstants._total, KeyConstants._path, KeyConstants._start, KeyConstants._end, KeyConstants._startLine, KeyConstants._endLine, KeyConstants._snippet }, qrySize, "query");
    if (hasParts) {
        row = 0;
        Collections.sort(filteredPartEntries, DEBUG_ENTRY_TEMPLATE_PART_COMPARATOR);
        DebugEntryTemplatePart[] parts = new DebugEntryTemplatePart[qrySize];
        if (filteredPartEntries.size() > MAX_PARTS)
            parts = filteredPartEntries.subList(0, MAX_PARTS).toArray(parts);
        else
            parts = filteredPartEntries.toArray(parts);
        try {
            DebugEntryTemplatePart de;
            // PageSource ps;
            for (int i = 0; i < parts.length; i++) {
                row++;
                de = parts[i];
                qryPart.setAt(KeyConstants._id, row, de.getId());
                qryPart.setAt(KeyConstants._count, row, _toString(de.getCount()));
                qryPart.setAt(KeyConstants._min, row, _toString(de.getMin()));
                qryPart.setAt(KeyConstants._max, row, _toString(de.getMax()));
                qryPart.setAt(KeyConstants._avg, row, _toString(de.getExeTime() / de.getCount()));
                qryPart.setAt(KeyConstants._start, row, _toString(de.getStartPosition()));
                qryPart.setAt(KeyConstants._end, row, _toString(de.getEndPosition()));
                qryPart.setAt(KeyConstants._total, row, _toString(de.getExeTime()));
                qryPart.setAt(KeyConstants._path, row, de.getPath());
                if (de instanceof DebugEntryTemplatePartImpl) {
                    qryPart.setAt(KeyConstants._startLine, row, _toString(((DebugEntryTemplatePartImpl) de).getStartLine()));
                    qryPart.setAt(KeyConstants._endLine, row, _toString(((DebugEntryTemplatePartImpl) de).getEndLine()));
                    qryPart.setAt(KeyConstants._snippet, row, ((DebugEntryTemplatePartImpl) de).getSnippet());
                }
            }
        } catch (PageException dbe) {
        }
    }
    // exceptions
    len = exceptions == null ? 0 : exceptions.size();
    Array arrExceptions = new ArrayImpl();
    if (len > 0) {
        Iterator<CatchBlock> it = exceptions.iterator();
        row = 0;
        while (it.hasNext()) {
            arrExceptions.appendEL(it.next());
        }
    }
    // output log
    // Query qryOutputLog=getOutputText();
    // timers
    len = timers == null ? 0 : timers.size();
    Query qryTimers = new QueryImpl(new Collection.Key[] { KeyConstants._label, KeyConstants._time, KeyConstants._template }, len, "timers");
    if (len > 0) {
        try {
            Iterator<DebugTimerImpl> it = timers.iterator();
            DebugTimer timer;
            row = 0;
            while (it.hasNext()) {
                timer = it.next();
                row++;
                qryTimers.setAt(KeyConstants._label, row, timer.getLabel());
                qryTimers.setAt(KeyConstants._template, row, timer.getTemplate());
                qryTimers.setAt(KeyConstants._time, row, Caster.toDouble(timer.getTime()));
            }
        } catch (PageException dbe) {
        }
    }
    // dumps
    len = dumps == null ? 0 : dumps.size();
    if (!((ConfigImpl) pc.getConfig()).hasDebugOptions(ConfigImpl.DEBUG_DUMP))
        len = 0;
    Query qryDumps = new QueryImpl(new Collection.Key[] { KeyConstants._output, KeyConstants._template, KeyConstants._line }, len, "dumps");
    if (len > 0) {
        try {
            Iterator<DebugDump> it = dumps.iterator();
            DebugDump dd;
            row = 0;
            while (it.hasNext()) {
                dd = it.next();
                row++;
                qryDumps.setAt(KeyConstants._output, row, dd.getOutput());
                if (!StringUtil.isEmpty(dd.getTemplate()))
                    qryDumps.setAt(KeyConstants._template, row, dd.getTemplate());
                if (dd.getLine() > 0)
                    qryDumps.setAt(KeyConstants._line, row, new Double(dd.getLine()));
            }
        } catch (PageException dbe) {
        }
    }
    // traces
    len = traces == null ? 0 : traces.size();
    if (!((ConfigImpl) pc.getConfig()).hasDebugOptions(ConfigImpl.DEBUG_TRACING))
        len = 0;
    Query qryTraces = new QueryImpl(new Collection.Key[] { KeyConstants._type, KeyConstants._category, KeyConstants._text, KeyConstants._template, KeyConstants._line, KeyConstants._action, KeyConstants._varname, KeyConstants._varvalue, KeyConstants._time }, len, "traces");
    if (len > 0) {
        try {
            Iterator<DebugTraceImpl> it = traces.iterator();
            DebugTraceImpl trace;
            row = 0;
            while (it.hasNext()) {
                trace = it.next();
                row++;
                qryTraces.setAt(KeyConstants._type, row, DebugTraceImpl.toType(trace.getType(), "INFO"));
                if (!StringUtil.isEmpty(trace.getCategory()))
                    qryTraces.setAt(KeyConstants._category, row, trace.getCategory());
                if (!StringUtil.isEmpty(trace.getText()))
                    qryTraces.setAt(KeyConstants._text, row, trace.getText());
                if (!StringUtil.isEmpty(trace.getTemplate()))
                    qryTraces.setAt(KeyConstants._template, row, trace.getTemplate());
                if (trace.getLine() > 0)
                    qryTraces.setAt(KeyConstants._line, row, new Double(trace.getLine()));
                if (!StringUtil.isEmpty(trace.getAction()))
                    qryTraces.setAt(KeyConstants._action, row, trace.getAction());
                if (!StringUtil.isEmpty(trace.getVarName()))
                    qryTraces.setAt(KeyImpl.init("varname"), row, trace.getVarName());
                if (!StringUtil.isEmpty(trace.getVarValue()))
                    qryTraces.setAt(KeyImpl.init("varvalue"), row, trace.getVarValue());
                qryTraces.setAt(KeyConstants._time, row, new Double(trace.getTime()));
            }
        } catch (PageException dbe) {
        }
    }
    // scope access
    len = implicitAccesses == null ? 0 : implicitAccesses.size();
    Query qryImplicitAccesseses = new QueryImpl(new Collection.Key[] { KeyConstants._template, KeyConstants._line, KeyConstants._scope, KeyConstants._count, KeyConstants._name }, len, "implicitAccess");
    if (len > 0) {
        try {
            Iterator<ImplicitAccessImpl> it = implicitAccesses.values().iterator();
            ImplicitAccessImpl das;
            row = 0;
            while (it.hasNext()) {
                das = it.next();
                row++;
                qryImplicitAccesseses.setAt(KeyConstants._template, row, das.getTemplate());
                qryImplicitAccesseses.setAt(KeyConstants._line, row, new Double(das.getLine()));
                qryImplicitAccesseses.setAt(KeyConstants._scope, row, das.getScope());
                qryImplicitAccesseses.setAt(KeyConstants._count, row, new Double(das.getCount()));
                qryImplicitAccesseses.setAt(KeyConstants._name, row, das.getName());
            }
        } catch (PageException dbe) {
        }
    }
    Query history = new QueryImpl(new Collection.Key[] {}, 0, "history");
    try {
        history.addColumn(KeyConstants._id, historyId);
        history.addColumn(KeyConstants._level, historyLevel);
    } catch (PageException e) {
    }
    if (addAddionalInfo) {
        debugging.setEL(KeyConstants._cgi, pc.cgiScope());
        debugging.setEL(KeyImpl.init("starttime"), new DateTimeImpl(starttime, false));
        debugging.setEL(KeyConstants._id, pc.getId());
    }
    debugging.setEL(KeyConstants._pages, qryPage);
    debugging.setEL(PAGE_PARTS, qryPart);
    debugging.setEL(KeyConstants._queries, qryQueries);
    debugging.setEL(KeyConstants._timers, qryTimers);
    debugging.setEL(KeyConstants._traces, qryTraces);
    debugging.setEL("dumps", qryDumps);
    debugging.setEL(IMPLICIT_ACCESS, qryImplicitAccesseses);
    // debugging.setEL(OUTPUT_LOG,qryOutputLog);
    debugging.setEL(KeyConstants._history, history);
    debugging.setEL(KeyConstants._exceptions, arrExceptions);
    return debugging;
}
Also used : Query(lucee.runtime.type.Query) ArrayImpl(lucee.runtime.type.ArrayImpl) ArrayList(java.util.ArrayList) Struct(lucee.runtime.type.Struct) QueryImpl(lucee.runtime.type.QueryImpl) DateTimeImpl(lucee.runtime.type.dt.DateTimeImpl) PageException(lucee.runtime.exp.PageException) Array(lucee.runtime.type.Array) StructImpl(lucee.runtime.type.StructImpl) CatchBlock(lucee.runtime.exp.CatchBlock) Collection(lucee.runtime.type.Collection) DatabaseException(lucee.runtime.exp.DatabaseException) ConfigImpl(lucee.runtime.config.ConfigImpl) Key(lucee.runtime.type.Collection.Key)

Aggregations

Query (lucee.runtime.type.Query)82 QueryImpl (lucee.runtime.type.QueryImpl)52 Struct (lucee.runtime.type.Struct)19 Array (lucee.runtime.type.Array)16 Collection (lucee.runtime.type.Collection)14 Iterator (java.util.Iterator)13 PageException (lucee.runtime.exp.PageException)12 Map (java.util.Map)11 StructImpl (lucee.runtime.type.StructImpl)11 ApplicationException (lucee.runtime.exp.ApplicationException)10 Stopwatch (lucee.runtime.timer.Stopwatch)10 Key (lucee.runtime.type.Collection.Key)9 List (java.util.List)8 IOException (java.io.IOException)7 ArrayList (java.util.ArrayList)7 HashMap (java.util.HashMap)7 QueryColumn (lucee.runtime.type.QueryColumn)7 Enumeration (java.util.Enumeration)6 Entry (java.util.Map.Entry)6 FunctionException (lucee.runtime.exp.FunctionException)6