See <http://ci.pentaho.com/job/mondrian/1045/changes>

Changes:

[Luc Boudreau] MONDRIAN: [MONDRIAN-944] Adds the first version of native support for Filter matching operations. It still needs to support aggregate tables.

It can't use native matching natively for any arguments of filter. Currently, only the following syntax gets transformed into a native filter match:

Filter([Dimension].[Level].Members, [Dimension].CurrentMember.Caption Matches ( [ regexp here ] )
Filter([Dimension].[Level].Members, [Dimension].CurrentMember.Name Matches ( [ regexp here ] )

As of now, it passes the regexp directly from MDX to SQL. There is no conversion made since there is no standard way to convert regular expressions from Java to SQL. Next step is to implement a conversion helper inside of RolapNativeSql.MatchingSqlCompiler. Maybe this needs to be in JdbcDialectImpl.

Only the Oracle dialect currently supports regular expression matching for native filters. We will add new implementations for the different dialects as we go along and do the research on each of those.

------------------------------------------
[...truncated 385 lines...]
[javacup] between value_expression_primary ::= NULL (*)
[javacup] under symbol LT
[javacup] Resolved in favor of shifting.
[javacup]
[javacup] *** Shift/Reduce conflict found in state #105
[javacup] between value_expression_primary ::= NULL (*)
[javacup] under symbol NE
[javacup] Resolved in favor of shifting.
[javacup]
[javacup] *** Shift/Reduce conflict found in state #105
[javacup] between value_expression_primary ::= NULL (*)
[javacup] under symbol RBRACE
[javacup] Resolved in favor of shifting.
[javacup]
[javacup] *** Shift/Reduce conflict found in state #105
[javacup] between value_expression_primary ::= NULL (*)
[javacup] under symbol RPAREN
[javacup] Resolved in favor of shifting.
[javacup]
[javacup] *** Shift/Reduce conflict found in state #105
[javacup] between term3 ::= term3 IS NULL (*)
[javacup] under symbol EOF
[javacup] Resolved in favor of shifting.
[javacup]
[javacup] *** Shift/Reduce conflict found in state #105
[javacup] between term3 ::= term3 IS NULL (*)
[javacup] under symbol AND
[javacup] Resolved in favor of shifting.
[javacup]
[javacup] *** Shift/Reduce conflict found in state #105
[javacup] between term3 ::= term3 IS NULL (*)
[javacup] under symbol AS
[javacup] Resolved in favor of shifting.
[javacup]
[javacup] *** Shift/Reduce conflict found in state #105
[javacup] between term3 ::= term3 IS NULL (*)
[javacup] under symbol CELL
[javacup] Resolved in favor of shifting.
[javacup]
[javacup] *** Shift/Reduce conflict found in state #105
[javacup] between term3 ::= term3 IS NULL (*)
[javacup] under symbol DIMENSION
[javacup] Resolved in favor of shifting.
[javacup]
[javacup] *** Shift/Reduce conflict found in state #105
[javacup] between term3 ::= term3 IS NULL (*)
[javacup] under symbol ELSE
[javacup] Resolved in favor of shifting.
[javacup]
[javacup] *** Shift/Reduce conflict found in state #105
[javacup] between term3 ::= term3 IS NULL (*)
[javacup] under symbol END
[javacup] Resolved in favor of shifting.
[javacup]
[javacup] *** Shift/Reduce conflict found in state #105
[javacup] between term3 ::= term3 IS NULL (*)
[javacup] under symbol IN
[javacup] Resolved in favor of shifting.
[javacup]
[javacup] *** Shift/Reduce conflict found in state #105
[javacup] between term3 ::= term3 IS NULL (*)
[javacup] under symbol IS
[javacup] Resolved in favor of shifting.
[javacup]
[javacup] *** Shift/Reduce conflict found in state #105
[javacup] between term3 ::= term3 IS NULL (*)
[javacup] under symbol MATCHES
[javacup] Resolved in favor of shifting.
[javacup]
[javacup] *** Shift/Reduce conflict found in state #105
[javacup] between term3 ::= term3 IS NULL (*)
[javacup] under symbol MEMBER
[javacup] Resolved in favor of shifting.
[javacup]
[javacup] *** Shift/Reduce conflict found in state #105
[javacup] between term3 ::= term3 IS NULL (*)
[javacup] under symbol NOT
[javacup] Resolved in favor of shifting.
[javacup]
[javacup] *** Shift/Reduce conflict found in state #105
[javacup] between term3 ::= term3 IS NULL (*)
[javacup] under symbol ON
[javacup] Resolved in favor of shifting.
[javacup]
[javacup] *** Shift/Reduce conflict found in state #105
[javacup] between term3 ::= term3 IS NULL (*)
[javacup] under symbol OR
[javacup] Resolved in favor of shifting.
[javacup]
[javacup] *** Shift/Reduce conflict found in state #105
[javacup] between term3 ::= term3 IS NULL (*)
[javacup] under symbol PROPERTIES
[javacup] Resolved in favor of shifting.
[javacup]
[javacup] *** Shift/Reduce conflict found in state #105
[javacup] between term3 ::= term3 IS NULL (*)
[javacup] under symbol RETURN
[javacup] Resolved in favor of shifting.
[javacup]
[javacup] *** Shift/Reduce conflict found in state #105
[javacup] between term3 ::= term3 IS NULL (*)
[javacup] under symbol SELECT
[javacup] Resolved in favor of shifting.
[javacup]
[javacup] *** Shift/Reduce conflict found in state #105
[javacup] between term3 ::= term3 IS NULL (*)
[javacup] under symbol SET
[javacup] Resolved in favor of shifting.
[javacup]
[javacup] *** Shift/Reduce conflict found in state #105
[javacup] between term3 ::= term3 IS NULL (*)
[javacup] under symbol THEN
[javacup] Resolved in favor of shifting.
[javacup]
[javacup] *** Shift/Reduce conflict found in state #105
[javacup] between term3 ::= term3 IS NULL (*)
[javacup] under symbol WHEN
[javacup] Resolved in favor of shifting.
[javacup]
[javacup] *** Shift/Reduce conflict found in state #105
[javacup] between term3 ::= term3 IS NULL (*)
[javacup] under symbol XOR
[javacup] Resolved in favor of shifting.
[javacup]
[javacup] *** Shift/Reduce conflict found in state #105
[javacup] between term3 ::= term3 IS NULL (*)
[javacup] under symbol COLON
[javacup] Resolved in favor of shifting.
[javacup]
[javacup] *** Shift/Reduce conflict found in state #105
[javacup] between term3 ::= term3 IS NULL (*)
[javacup] under symbol COMMA
[javacup] Resolved in favor of shifting.
[javacup]
[javacup] *** Shift/Reduce conflict found in state #105
[javacup] between term3 ::= term3 IS NULL (*)
[javacup] under symbol EQ
[javacup] Resolved in favor of shifting.
[javacup]
[javacup] *** Shift/Reduce conflict found in state #105
[javacup] between term3 ::= term3 IS NULL (*)
[javacup] under symbol GE
[javacup] Resolved in favor of shifting.
[javacup]
[javacup] *** Shift/Reduce conflict found in state #105
[javacup] between term3 ::= term3 IS NULL (*)
[javacup] under symbol GT
[javacup] Resolved in favor of shifting.
[javacup]
[javacup] *** Shift/Reduce conflict found in state #105
[javacup] between term3 ::= term3 IS NULL (*)
[javacup] under symbol LE
[javacup] Resolved in favor of shifting.
[javacup]
[javacup] *** Shift/Reduce conflict found in state #105
[javacup] between term3 ::= term3 IS NULL (*)
[javacup] under symbol LT
[javacup] Resolved in favor of shifting.
[javacup]
[javacup] *** Shift/Reduce conflict found in state #105
[javacup] between term3 ::= term3 IS NULL (*)
[javacup] under symbol NE
[javacup] Resolved in favor of shifting.
[javacup]
[javacup] *** Shift/Reduce conflict found in state #105
[javacup] between term3 ::= term3 IS NULL (*)
[javacup] under symbol RBRACE
[javacup] Resolved in favor of shifting.
[javacup]
[javacup] *** Shift/Reduce conflict found in state #105
[javacup] between term3 ::= term3 IS NULL (*)
[javacup] under symbol RPAREN
[javacup] Resolved in favor of shifting.
[javacup]
[javacup] Checking for non-reduced productions...
[javacup] Writing parser...
[javacup] Closing files...
[javacup] ------- CUP v0.10k Parser Generation Summary -------
[javacup] 0 errors and 64 warnings
[javacup] 66 terminals, 65 non-terminals, and 143 productions declared,
[javacup] producing 217 unique parse states.
[javacup] 1 terminal declared but not used.
[javacup] 0 non-terminal declared but not used.
[javacup] 0 productions never reduced.
[javacup] 63 conflicts detected (63 expected).
[javacup] Code written to "Parser.java", and "ParserSym.java".
[javacup] ---------------------------------------------------- (v0.10k)
[javacc] Java Compiler Compiler Version 5.0 (Parser Generator)
[javacc] (type "javacc" with no arguments for help)
[javacc] Reading from file <http://ci.pentaho.com/job/mondrian/ws/src/main/mondrian/parser/MdxParser.jj> . . .
[javacc] Note: UNICODE_INPUT option is specified. Please make sure you create the parser/lexer using a Reader with the correct character encoding.
[javacc] File "TokenMgrError.java" does not exist. Will create one.
[javacc] File "ParseException.java" does not exist. Will create one.
[javacc] File "Token.java" does not exist. Will create one.
[javacc] File "SimpleCharStream.java" does not exist. Will create one.
[javacc] Parser generated successfully.

generate.resources:
[javac] Compiling 7 source files to <http://ci.pentaho.com/job/mondrian/ws/classes>
[resgen] Generating <http://ci.pentaho.com/job/mondrian/ws/src/main/mondrian/resource/MondrianResource.java>
[resgen] Generating <http://ci.pentaho.com/job/mondrian/ws/classes/mondrian/resource/MondrianResource.properties>
[resgen] Generating <http://ci.pentaho.com/job/mondrian/ws/src/main/mondrian/resource/MondrianResource_en_US.java>
[resgen] Generating <http://ci.pentaho.com/job/mondrian/ws/classes/mondrian/resource/MondrianResource_en_US.properties>
[resgen] Generating <http://ci.pentaho.com/job/mondrian/ws/src/main/mondrian/resource/MondrianResource_de_DE.java>
[resgen] Generating <http://ci.pentaho.com/job/mondrian/ws/classes/mondrian/resource/MondrianResource_de_DE.properties>
[resgen] Generating <http://ci.pentaho.com/job/mondrian/ws/src/main/mondrian/resource/MondrianResource_de.java>
[resgen] Generating <http://ci.pentaho.com/job/mondrian/ws/classes/mondrian/resource/MondrianResource_de.properties>
[resgen] Generating <http://ci.pentaho.com/job/mondrian/ws/src/main/mondrian/resource/MondrianResource_es_ES.java>
[resgen] Generating <http://ci.pentaho.com/job/mondrian/ws/classes/mondrian/resource/MondrianResource_es_ES.properties>

generate.properties:
[javac] Compiling 1 source file to <http://ci.pentaho.com/job/mondrian/ws/classes>
[java] Generating src/main/mondrian/olap/MondrianProperties.java
[java] Generating doc/properties.html
[java] Generating mondrian.properties.template

def:
[xomgen] Writing <http://ci.pentaho.com/job/mondrian/ws/src/main/mondrian/olap/mondrian.dtd>
[xomgen] Writing <http://ci.pentaho.com/job/mondrian/ws/src/main/mondrian/olap/MondrianDef.java>
[xomgen] Done
[copy] Copying 1 file to <http://ci.pentaho.com/job/mondrian/ws/lib>
[xomgen] Writing <http://ci.pentaho.com/job/mondrian/ws/src/main/mondrian/gui/mondrian_SW.dtd>
[xomgen] Writing <http://ci.pentaho.com/job/mondrian/ws/src/main/mondrian/gui/MondrianGuiDef.java>
[xomgen] Done
[copy] Copying 1 file to <http://ci.pentaho.com/job/mondrian/ws/lib>
[xomgen] Writing <http://ci.pentaho.com/job/mondrian/ws/src/main/mondrian/xmla/datasourcesconfig.dtd>
[xomgen] Writing <http://ci.pentaho.com/job/mondrian/ws/src/main/mondrian/xmla/DataSourcesConfig.java>
[xomgen] Done
[copy] Copying 1 file to <http://ci.pentaho.com/job/mondrian/ws/lib>

compile.java:
[javac] Compiling 643 source files to <http://ci.pentaho.com/job/mondrian/ws/classes>
[javac] <http://ci.pentaho.com/job/mondrian/ws/src/main/mondrian/rolap/RolapNativeSql.java>:207: method does not override a method from its superclass
[javac] @Override
[javac] ^
[javac] Note: Some input files use or override a deprecated API.
[javac] Note: Recompile with -Xlint:deprecation for details.
[javac] Note: Some input files use unchecked or unsafe operations.
[javac] Note: Recompile with -Xlint:unchecked for details.
[javac] 1 error

BUILD FAILED
<http://ci.pentaho.com/job/mondrian/ws/build.xml>:528: Compile failed; see the compiler error output for details.

Total time: 52 seconds
Recording test results
Archiving artifacts
Recording fingerprints
Skipping Cobertura coverage report as build was not UNSTABLE or better ...

_______________________________________________
Mondrian mailing list
Mondrian (AT) pentaho (DOT) org
http://lists.pentaho.org/mailman/listinfo/mondrian