<?xml version="1.0" encoding="UTF-8"?>
<!--

  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.

-->
<x_base_cube name="sample_cube" xmlns="uri:lens:cube:0.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="uri:lens:cube:0.1 cube-0.1.xsd ">
  <properties>
    <property name="cube.sample_cube.timed.dimensions.list" value="dt"/>
  </properties>
  <measures>
    <measure name="measure1" _type="BIGINT"/>
    <measure name="measure2" _type="INT" default_aggr="SUM" />
    <measure name="measure3" _type="FLOAT" default_aggr="MAX" start_time='2013-12-12T00:00:00'/>
    <measure name="measure4" _type="DOUBLE" default_aggr="MIN"/>
    <measure name="measure5" _type="BIGINT">
      <tags>
        <property name="category" value="primary"/>
        <property name="is_ui_visible" value="true"/>
      </tags>
    </measure>
    <measure name="measure6" _type="BIGINT">
      <tags>
        <property name="category" value="secondary"/>
        <property name="is_ui_visible" value="false"/>
      </tags>
    </measure>
  </measures>
  <dim_attributes>
    <dim_attribute name="dim1" _type="INT"/>
    <dim_attribute name="dim2" _type="INT" start_time='2013-12-01T00:00:00'/>
    <dim_attribute name="dim3" _type="INT">
    </dim_attribute>
    <dim_attribute name="dim4" _type="BIGINT">
      <tags>
        <property name="category" value="primary"/>
        <property name="is_ui_visible" value="true"/>
      </tags>
    </dim_attribute>
  </dim_attributes>
  <expressions>
    <expression name="expr_msr5" _type="DOUBLE">
      <expr_spec expr = "measure3 + measure4" start_time='2013-12-12T00:00:00' />
      <expr_spec expr = "measure3 + measure4 + 0.01" end_time='2013-12-12T00:00:00'/>
    </expression>
    <expression name="expr_msr5" _type="DOUBLE">
      <tags>
        <property name="category" value="primary"/>
        <property name="is_ui_visible" value="true"/>
      </tags>
      <expr_spec expr = "measure3 + measure4" start_time='2013-12-12T00:00:00' />
      <expr_spec expr = "measure3 + measure4 + 0.01" end_time='2013-12-12T00:00:00'/>
    </expression>
  </expressions>
  <join_chains>
    <join_chain name="sample_dim_chain">
      <paths>
        <path>
          <edges>
            <edge>
              <from table="sample_cube" column="dim3" />
              <to table="sample_dim" column="id" />
            </edge>
          </edges>
        </path>
      </paths>
    </join_chain>
  </join_chains>
</x_base_cube>
