Skip to content

investigate/convert to Calcite's SchemaPlus way of reading calcite models instea... #586

@github-actions

Description

@github-actions

investigate/convert to Calcite's SchemaPlus way of reading calcite models instead of manually handling JSON

* TODO: investigate/convert to Calcite's SchemaPlus way of reading calcite models instead of manually handling JSON

package org.apache.wayang.api.sql.calcite.utils;

import org.apache.wayang.core.api.Configuration;
import org.json.simple.parser.ParseException;

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.util.Iterator;
import java.util.Objects;

/* 
 * TODO: investigate/convert to Calcite's SchemaPlus way of reading calcite models instead of manually handling JSON
 */
public class ModelParser {
    private final Configuration configuration;
    private final JsonNode json;

    public ModelParser() throws IOException, ParseException {
        final String jsonString = Files
                .readString(new File("wayang-api/wayang-api-sql/src/main/resources/model.json").toPath());
        final ObjectMapper objectMapper = new ObjectMapper();

        this.json = objectMapper.readTree(jsonString);
        this.configuration = null;
    }

    public ModelParser(final Configuration configuration) throws IOException, ParseException {
        final String calciteModel = "{\"calcite\":" + configuration.getStringProperty("wayang.calcite.model")
                + ",\"separator\":\";\"}";
        final ObjectMapper objectMapper = new ObjectMapper();

        this.json = objectMapper.readTree(calciteModel);
        this.configuration = configuration;
    }

    /**

42ae52181df51b4758af79cc1688e807c1e634b0

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions