<?xml version="1.0"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.

-->
<configuration>
  <!-- Input Definition -->
  <property>
    <name>csvSchemaInName</name>
    <value>ORDERS</value>
  </property>
  <property>
    <name>csvSchemaIn</name>
    <value>{"separator":",","quoteChar":"\"","fields":[{"name":"RowTime","type":"Date","constraints":{"format":"dd/MM/yyyy hh:mm:ss Z"}},{"name":"id","type":"Integer"},{"name":"Product","type":"String"},{"name":"units","type":"Integer"}]}</value>
  </property>
  <property>
    <name>sourceFile</name>
    <value>src/test/resources/input.csv</value>
  </property>

  <!-- Execution SQL -->
  <property>
    <name>sql</name>
    <value>SELECT STREAM ROWTIME, PRODUCT FROM ORDERS</value>
  </property>
</configuration>

