# This software is subject to the terms of the Eclipse Public License v1.0
# Agreement, available at the following URL:
# http://www.eclipse.org/legal/epl-v10.html.
# You must accept the terms of that agreement to use this software.
#
# Copyright (C) 2001-2005 Julian Hyde
# Copyright (C) 2005-2009 Pentaho and others
# All Rights Reserved.
#
# jhyde, 31 October, 2001


###############################################################################
# Below are lots of examples of setting up database connections for Mondrian.
#
# JDBC Driver class name, URL, user name and password need to be set in 
# the Workbench: Tools > Preferences
#
# Driver JARs can be placed in the drivers directory, where they will be
# picked up automatically by the workbench.
#

# Derby: needs user and password
#mondrian.foodmart.jdbcURL=jdbc:derby:demo/derby/foodmart
#mondrian.foodmart.jdbcUser=sa
#mondrian.foodmart.jdbcPassword=sa
#mondrian.jdbcDrivers=org.apache.derby.jdbc.EmbeddedDriver
#driver.classpath=testlib/derby.jar

# FireBirdSQL
#mondrian.foodmart.jdbcURL=jdbc:firebirdsql:localhost/3050:/mondrian/foodmart.gdb
#mondrian.jdbcDrivers=org.firebirdsql.jdbc.FBDriver
#driver.classpath=/jdbc/fb/firebirdsql-full.jar

# LucidDB
# (see http://docs.eigenbase.org/LucidDbOlap)
#mondrian.foodmart.jdbcURL=jdbc:luciddb:http://localhost
#mondrian.foodmart.jdbcUser=foodmart
#mondrian.jdbcDrivers=org.luciddb.jdbc.LucidDbClientDriver
#driver.classpath=/path/to/luciddb/plugin/LucidDbClient.jar

# Oracle (needs user and password)
#oracle.home=G:/oracle/product/10.1.0/Db_1
#mondrian.foodmart.jdbcURL.oracle=jdbc:oracle:thin:@//<host>:<port>/<service_name>
#mondrian.foodmart.jdbcURL=jdbc:oracle:thin:foodmart/foodmart@//stilton:1521/orcl
#mondrian.foodmart.jdbcURL=jdbc:oracle:oci8:foodmart/foodmart@orcl
#mondrian.foodmart.jdbcUser=FOODMART
#mondrian.foodmart.jdbcPassword=oracle
#mondrian.jdbcDrivers=oracle.jdbc.OracleDriver
#driver.classpath=/home/jhyde/open/mondrian/lib/ojdbc14.jar

# ODBC (Microsoft Access)
#mondrian.foodmart.jdbcURL=jdbc:odbc:MondrianFoodMart
#mondrian.jdbcDrivers=sun.jdbc.odbc.JdbcOdbcDriver
#driver.classpath=

# Hypersonic
#mondrian.foodmart.jdbcURL=jdbc:hsqldb:demo/hsql/FoodMart
#mondrian.jdbcDrivers=org.hsqldb.jdbcDriver
#driver.classpath=xx

# MySQL: needs user and password set in JDBC URL
mondrian.foodmart.jdbcURL=jdbc:mysql://localhost:3307/foodmart3?user=root&password=mypassword
mondrian.jdbcDrivers=com.mysql.jdbc.Driver
#driver.classpath=D:/mysql-connector-3.1.12

# NuoDB
#
# mondrian.foodmart.jdbcURL=jdbc:com.nuodb://localhost/foodmart?schema=mondrian
# mondrian.foodmart.jdbcUser=foodmart
# mondrian.foodmart.jdbcPassword=foodmart
# mondrian.jdbcDrivers=com.nuodb.jdbc.Driver
# driver.classpath=/opt/nuodb/jar/nuodbjdbc.jar
# mondrian.foodmart.jdbcSchema=mondrian

# Ingres
#mondrian.foodmart.jdbcURL=jdbc:ingres://192.168.200.129:II7/MondrianFoodMart;LOOP=on;AUTO=multi;UID=ingres;PWD=sergni
#mondrian.jdbcDrivers=com.ingres.jdbc.IngresDriver
#driver.classpath=c:/ingres2006/ingres/lib/iijdbc.jar

# Postgres: needs user and password
#mondrian.foodmart.jdbcURL=jdbc:postgresql://localhost/foodmart
#mondrian.foodmart.jdbcUser=postgres
#mondrian.foodmart.jdbcPassword=pgroot
#mondrian.jdbcDrivers=org.postgresql.Driver

# Sybase
#mondrian.foodmart.jdbcURL=jdbc:jtds:sybase://xxx.xxx.xxx.xxx:port/dbName
#mondrian.foodmart.jdbcUser=<USER>
#mondrian.foodmart.jdbcPassword=<PASSWORD>
#mondrian.jdbcDrivers=net.sourceforge.jtds.jdbc.Driver
#driver.classpath=<PATH>/jtds-1.2.jar

# Teradata
#mondrian.foodmart.jdbcURL=jdbc:teradata://DatabaseServerName/DATABASE=FoodMart
#mondrian.foodmart.jdbcUser=<USER>
#mondrian.foodmart.jdbcPassword=<PASSWORD>
#mondrian.jdbcDrivers=com.ncr.teradata.TeraDriver
#driver.classpath=<PATH>/terajdbc/classes/terajdbc4.jar

# DB2
#mondrian.foodmart.jdbcURL=jdbc:db2://172.17.3.177:50000/foodmart
#mondrian.test.jdbcUser=db2admin
#mondrian.test.jdbcPassword=jasper
#mondrian.jdbcDrivers=com.ibm.db2.jcc.DB2Driver


###############################################################################
# Diagnostics & tuning

###############################################################################
# Property which controls the amount of tracing displayed.
# 
# If trace level is above 0, SQL tracing will be enabled and logged as
# per the "mondrian.debug.out.file" below. This is separate from Log4j
# logging.
#mondrian.trace.level=0

###############################################################################
# Property containing the name of the file to which tracing is to be
# written. If empty (the default), prints to stdout.
#mondrian.debug.out.file=

###############################################################################
# Maximum number of simultaneous queries the system will allow.
# 
# Oracle fails if you try to run more than the 'processes' parameter in
# init.ora, typically 150. The throughput of Oracle and other databases
# will probably reduce long before you get to their limit.
#mondrian.query.limit=40

###############################################################################
# Max number of constraints in a single `IN' SQL clause.
# 
# This value may be variant among database prodcuts and their runtime settings.
# Oracle, for example, gives the error "ORA-01795: maximum number of expressions
# in a list is 1000".
# 
# Recommended values:
#  * Oracle: 1000
#  * DB2: 2500
#  * Other: 10000
#mondrian.rolap.maxConstraints=1000

###############################################################################
# Boolean property that controls whether Mondrian uses aggregate tables.
# 
# If true, then Mondrian uses aggregate tables. This property is
# queried prior to each aggregate query so that changing the value of this
# property dynamically (not just at startup) is meaningful.
# 
# Aggregates can be read from the database using the
# ReadAggregates property but will not be used unless this
# property is set to true.
#mondrian.rolap.aggregates.Use=false

###############################################################################
# Boolean property which determines whether Mondrian should read aggregate
# tables.
#
# If set to true, then Mondrian scans the database for aggregate tables.
# Unless mondrian.rolap.aggregates.Use is set to true, the aggregates
# found will not be used.
#mondrian.rolap.aggregates.Read=false

###############################################################################
# Boolean property which controls pretty-print mode.
# If set to true, the all SqlQuery SQL strings
# will be generated in pretty-print mode, formatted for ease of reading.
#mondrian.rolap.generate.formatted.sql=true

###############################################################################
# Integer property which controls whether to test operators' dependencies,
# and how much time to spend doing it.
# 
# If this property is positive, Mondrian's test framework allocates an
# expression evaluator which evaluates each expression several times, and
# makes sure that the results of the expression are independent of
# dimensions which the expression claims to be independent of.
#mondrian.test.ExpDependencies=0

###############################################################################
# Seed for random number generator used by some of the tests.
#
# Any value besides 0 or -1 gives deterministic behavior.
# The default value is 1234: most users should use this.
# Setting the seed to a different value can increase coverage, and
# therefore may uncover new bugs.
# 
# If you set the value to 0, the system will generate its own
# pseudo-random seed.
# 
# If you set the value to -1, Mondrian uses the next seed from an
# internal random-number generator. This is a little more deterministic
# than setting the value to 0.
#mondrian.test.random.seed=1234

###############################################################################
# Boolean property which controls whether to use a cache for frequently
# evaluated expressions. With the cache disabled, an expression like
# Rank([Product].CurrentMember,
# Order([Product].MEMBERS, [Measures].[Unit Sales])) would perform
# many redundant sorts. The default is true.
#mondrian.expCache.enable=true

###############################################################################
# Boolean property which controls whether each query axis implicit has the
# NON EMPTY option set. The default is false.
#mondrian.rolap.nonempty=false

###############################################################################
# String property which controls alerting behavior in case native
# evaluation of a function is enabled but not supported for that
# function's usage in a particular query.  (No alert is ever raised in 
# cases where native evaluation would definitely have been wasted
# effort.)  Values recognized are { OFF, WARN, ERROR }.
#mondrian.native.unsupported.alert=OFF

###############################################################################
# Boolean property which controls whether sibling members are
# compared according to order key value fetched from their ordinal
# expression.  The default is false (only database ORDER BY is used).
#mondrian.rolap.compareSiblingsByOrderKey=false

###############################################################################
# Integer property indicating timeout value, in seconds, for queries.
# Default of 0 indicates no timeout
#mondrian.rolap.queryTimeout=0

###############################################################################
# Boolean property indicating whether errors related to non-existent members
# should be ignored during schema load. If so, the non-existent member is 
# treated as a null member.
mondrian.rolap.ignoreInvalidMembers=false

###############################################################################
# Integer property indicating the maximum number of iterations allowed when
# iterating over members to compute aggregates.  Default of 0 indicates no
# limit.
mondrian.rolap.iterationLimit=0

###############################################################################
# Whether the MemoryMonitor should be enabled. By
# default for Java5 and above it is enabled.
#mondrian.util.memoryMonitor.enable=false

###############################################################################
# The default MemoryMonitor percentage threshold.
# If enabled, when Java5 memory monitor detects that post-garbage
# collection is above this value, notifications are generated.
#mondrian.util.memoryMonitor.percentage.threshold=90

###############################################################################
# Property for overriding default MemoryMonitor implementation.
#mondrian.util.MemoryMonitor.class=null

###############################################################################
# Property for overriding default ExpCompiler implementation.
# only for Java5 and above
#
# To test that for all test MDX queries that all functions can
# handle requests for ITERABLE, LIST and MUTABLE_LIST evalutation
# results, the following can be used:
# mondrian.calc.ExpCompiler.class=mondrian.olap.fun.ResultStyleCompiler
#
#mondrian.calc.ExpCompiler.class=null

###############################################################################
# Controls when a non-empty crossjoin input list will have the
# optimiztion applied base upon the list's size.
# The size of the list must be greater than the property value size
# for optimiztion.
# mondrian.olap.fun.crossjoin.optimizer.size=0

###############################################################################
# If true, the the RolapResult will apply its implicit member
# fix by merging axes when a non-empty crossjoin uses the incorrect
# memebers.
# mondrian.rolap.RolapResult.useImplicitMembers=true

# End mondrian.properties
