Examples of AkibanAppender


Examples of com.foundationdb.util.AkibanAppender

   
    public String processUpsert(Session session, AkibanInformationSchema ais, TableName tableName, JsonNode node) {
        ProcessContext context = new ProcessContext (ais, session, tableName);
        StringBuilder builder = new StringBuilder();
        AkibanAppender appender = AkibanAppender.of(builder);

        processContainer (node, appender, context);
       
        return appender.toString();

    }
View Full Code Here

Examples of com.foundationdb.util.AkibanAppender

            else {
                throw new InvalidArgumentTypeException("JSON must be object or array");
            }
        }
        boolean results = call.execute();
        AkibanAppender appender = AkibanAppender.of(writer);
        appender.append('{');
        boolean first = true;
        JDBCParameterMetaData md = (JDBCParameterMetaData)call.getParameterMetaData();
        for (int i = 1; i <= md.getParameterCount(); i++) {
            String name;
            switch (md.getParameterMode(i)) {
            case ParameterMetaData.parameterModeOut:
            case ParameterMetaData.parameterModeInOut:
                name = md.getParameterName(i);
                if (name == null)
                    name = String.format("arg%d", i);
                if (first)
                    first = false;
                else
                    appender.append(',');
                appender.append('"');
                Quote.DOUBLE_QUOTE.append(appender, name);
                appender.append("\":");
                call.formatAsJson(i, appender, options);
                break;
            }
        }
        int nresults = 0;
        while(results) {
            beginResultSetArray(appender, first, nresults++);
            first = false;
            collectResults((JDBCResultSet) call.getResultSet(), appender, options);
            endResultSetArray(appender);
            results = call.getMoreResults();
        }
        appender.append('}');
    }
View Full Code Here

Examples of com.foundationdb.util.AkibanAppender

   private void processSQL (Connection conn, PrintWriter writer,
            OutputType outputType, CommitMode commitMode,
            ProcessStatement stmt) throws SQLException {
        boolean useSubArrays = (outputType == OutputType.OBJECT);
        AkibanAppender appender = AkibanAppender.of(writer);
        int nresults = 0;
        commitMode.begin(conn);
        outputType.begin(appender);
       
        Statement s = stmt.processStatement(nresults);
        while (s != null) {
            if(useSubArrays) {
                beginResultSetArray(appender, nresults == 0, nresults);
            }
            JDBCResultSet results = (JDBCResultSet) s.getResultSet();
            int updateCount = s.getUpdateCount();
           
            if (results != null && !results.isClosed()) {
                collectResults(results, appender, options);
                // Force close the result set here because if you execute "SELECT...;INSERT..."
                // the call to s.getResultSet() returns the (now empty) SELECT result set
                // giving bad results
                results.close();
            } else {
                appender.append("\n{\"update_count\":");
                appender.append(updateCount);
                results = (JDBCResultSet) s.getGeneratedKeys();
                if (results != null) {
                    appender.append(",\n\"returning\":[");
                    collectResults(results, appender, options);
                    appender.append("]\n");
                }
                appender.append("}\n");
            }
            if(useSubArrays) {
                endResultSetArray(appender);
            }
            ++nresults;
View Full Code Here

Examples of com.foundationdb.util.AkibanAppender

    @Override
    public String toString()
    {
        StringBuilder buffer = new StringBuilder();
        AkibanAppender appender = AkibanAppender.of(buffer);
        buffer.append('(');
        boolean first = true;
        for (int i = 0, pEvalsSize = pEvaluatableExpressions.size(); i < pEvalsSize; i++) {
            ValueSource evaluation = value(i);
            TInstance type = rowType.typeAt(i);
View Full Code Here

Examples of com.foundationdb.util.AkibanAppender

    public String toString() {
        StringBuilder builder = new StringBuilder();
        builder.append(this.getClass().getSimpleName()).append('[');
        RowType rowType = rowType();
        final int fieldsCount = rowType.nFields();
        AkibanAppender appender = AkibanAppender.of(builder);
        for (int i=0; i < fieldsCount; ++i) {
            if (rowType.typeAt(i) == null) {
                assert value(i).isNull();
                builder.append("NULL");
            }
View Full Code Here

Examples of com.foundationdb.util.AkibanAppender

    }

    protected void outputRow(Row row, List<JsonResultColumn> resultColumns)
            throws IOException {
        encoder.appendString("{");
        AkibanAppender appender = encoder.getAppender();
        int ncols = resultColumns.size();
        for (int i = 0; i < ncols; i++) {
            JsonResultColumn resultColumn = resultColumns.get(i);
            encoder.appendString((i == 0) ? "\"" : ",\"");
            Quote.DOUBLE_QUOTE.append(appender, resultColumn.getName());
View Full Code Here

Examples of com.foundationdb.util.AkibanAppender

        messenger.writeByteStream(bytes);
        messenger.sendMessage();
    }

    public void outputMetaData(List<JsonResultColumn> resultColumns) throws IOException {
        AkibanAppender appender = encoder.getAppender();
        encoder.appendString("[");
        boolean first = true;
        for (JsonResultColumn resultColumn : resultColumns) {
            if (first)
                first = false;
View Full Code Here

Examples of com.foundationdb.util.AkibanAppender

                }
            };
        QueryBindings queryBindings = queryContext.createBindings();
        JsonRowWriter json = new JsonRowWriter(new TableRowTracker(table, depth));
        WriteTableRow rowWriter = new WriteTableRow();
        AkibanAppender appender = AkibanAppender.of(writer);
        boolean transaction = false;
        Cursor cursor = null;
        try {
            if (withTransaction) {
                transactionService.beginTransaction(session);
                transaction = true;
            }
            cursor = API.cursor(plan, queryContext, queryBindings);
            appender.append("[");
            boolean begun = false;

            if (keys == null) {
                begun = json.writeRows(cursor, appender, "\n", rowWriter, options);
            } else {
                for (List<Object> key : keys) {
                    for (int i = 0; i < key.size(); i++) {
                        ValueSource value = ValueSources.fromObject(key.get(i), null).value();
                        queryBindings.setValue(i, value);
                    }
                    if (json.writeRows(cursor, appender, begun ? ",\n" : "\n", rowWriter, options))
                        begun = true;
                }
            }

            appender.append(begun ? "\n]" : "]");
            if (withTransaction) {
                transactionService.commitTransaction(session);
                transaction = false;
            }
        }
View Full Code Here

Examples of com.foundationdb.util.AkibanAppender

    public String processInsert(Session session, AkibanInformationSchema ais, TableName rootTable, JsonNode node) {
        ProcessContext context = new ProcessContext ( ais, session, rootTable);
        insertGenerator = getGenerator(CACHED_INSERT_GENERATOR, context);
        StringBuilder builder = new StringBuilder();
        AkibanAppender appender = AkibanAppender.of(builder);
        processContainer (node, appender, context);
        return appender.toString();
    }
View Full Code Here

Examples of com.foundationdb.util.AkibanAppender

        context.pkValues = rowWriter.getPKValues();
        context.anyUpdates = true;
    }
   
    private String valueToString(ValueSource value) {
        AkibanAppender appender = AkibanAppender.of(new StringBuilder());
        value.getType().format(value, appender);
        return appender.toString();
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.