public List generateDdlStatementsFromJsonSchema()

in tools/query_verification/src/main/java/com/google/bigquery/TeradataManager.java [194:238]


    public List<String> generateDdlStatementsFromJsonSchema() {
        List<String> ddlStatements = new ArrayList<String>();
        for (JsonElement schemaElement : schema.getJsonArray()) {
            if (schema.getJsonArray().size() == 0) {
                return null;
            }
            JsonObject schemaObject = schemaElement.getAsJsonObject();

            if (schemaObject.has("tableReference")) {
                JsonObject tableReference = schemaObject.get("tableReference").getAsJsonObject();

                if (tableReference.has("datasetId") && tableReference.has("tableId")) {
                    StringBuilder statement = new StringBuilder("CREATE TABLE ");

                    statement.append(tableReference.get("datasetId").getAsString());
                    statement.append(".");
                    statement.append(tableReference.get("tableId").getAsString());
                    statement.append(" (");

                    // Generate column syntax for each field provided in JSON
                    List<String> columns = new ArrayList<>();
                    for (JsonElement fieldElement : schemaObject.getAsJsonArray("fields")) {
                        JsonObject field = fieldElement.getAsJsonObject();

                        // Assemble column syntax
                        StringBuilder column = new StringBuilder();
                        column.append(field.get("name").getAsString());
                        column.append(" ");
                        column.append(field.get("type").getAsString());
                        if (field.has("mode")) {
                            column.append(" ");
                            column.append(field.get("mode").getAsString());
                        }

                        columns.add(column.toString());
                    }
                    statement.append(String.join(", ", columns));
                    statement.append(")");

                    ddlStatements.add(statement.toString());
                }
            }
        }
        return ddlStatements;
    }