[#8391] Fixed regression

This commit is contained in:
lukaseder 2019-03-07 14:05:43 +01:00
parent 6bff643921
commit fe5342fe9a
2 changed files with 13 additions and 5 deletions

View File

@ -43,6 +43,8 @@ import static org.jooq.impl.DefaultDataType.getDataType;
import static org.jooq.impl.SQLDataType.VARCHAR;
import static org.jooq.tools.StringUtils.defaultIfBlank;
import java.io.Reader;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@ -74,10 +76,14 @@ final class JSONReader {
}
final Result<Record> read(String string) {
return read(new StringReader(string));
}
final Result<Record> read(final Reader reader) {
try {
@SuppressWarnings("rawtypes")
Object root = new JSONParser().parse(string, new ContainerFactory() {
Object root = new JSONParser().parse(reader, new ContainerFactory() {
@Override
public Map createObjectContainer() {
return new LinkedHashMap();

View File

@ -82,6 +82,7 @@ import org.jooq.LoaderRowListener;
import org.jooq.LoaderRowsStep;
import org.jooq.LoaderXMLStep;
import org.jooq.Record;
import org.jooq.Result;
import org.jooq.SelectQuery;
import org.jooq.Table;
import org.jooq.exception.DataAccessException;
@ -649,15 +650,16 @@ final class LoaderImpl<R extends Record> implements
}
private void executeJSON() throws IOException {
JSONReader reader = null;
BufferedReader reader = null;
try {
reader = new JSONReader(data.reader());
source = Tools.fieldsByName(reader.getFields());
reader = data.reader();
Result<Record> r = new JSONReader(create).read(reader);
source = r.fields();
// The current json format is not designed for streaming. Thats why
// all records are loaded at once.
List<String[]> allRecords = reader.readAll();
List<Object[]> allRecords = Arrays.asList(r.intoArrays());
executeSQL(allRecords.iterator());
}