Skip to content

Commit

Permalink
TEIID-5136 fixing the handling of guid types with inline views
Browse files Browse the repository at this point in the history
  • Loading branch information
shawkins committed Jan 19, 2018
1 parent 3958533 commit 510d9a9
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 7 deletions.
Expand Up @@ -251,14 +251,14 @@ public boolean useAsInGroupAlias(){
public List<?> translate(LanguageObject obj, ExecutionContext context) {
if (obj instanceof DerivedColumn) {
DerivedColumn derived = (DerivedColumn)obj;
if (derived.getExpression() instanceof ColumnReference) {
if (derived.isProjected() && derived.getExpression() instanceof ColumnReference) {
ColumnReference elem = (ColumnReference)derived.getExpression();
String nativeType = elem.getMetadataObject().getNativeType();
if (TypeFacility.RUNTIME_TYPES.STRING.equals(elem.getType())
&& elem.getMetadataObject() != null
&& nativeType != null
&& PIMetadataProcessor.guidPattern.matcher(nativeType).find()) {
return Arrays.asList("cast(", elem, " as String)"); //$NON-NLS-1$ //$NON-NLS-2$
if (elem.getMetadataObject() != null) {
String nativeType = elem.getMetadataObject().getNativeType();
if (nativeType != null && TypeFacility.RUNTIME_TYPES.STRING.equals(elem.getType())
&& PIMetadataProcessor.guidPattern.matcher(nativeType).find()) {
return Arrays.asList("cast(", elem, " as String)"); //$NON-NLS-1$ //$NON-NLS-2$
}
}
}
}
Expand Down
Expand Up @@ -105,6 +105,12 @@ public void testCrossApply() throws Exception {
TranslationHelper.helpTestVisitor(ddl, input, output, TRANSLATOR);
}

@Test public void testInlineViewJoin() throws Exception {
String input = "SELECT bqt2.smalla.intkey, g2.intkey, bqt2.smalla.bytenum FROM bqt2.smalla LEFT JOIN (SELECT intkey, bytenum FROM bqt2.mediuma) AS g2 ON bqt2.smalla.bytenum = g2.bytenum";
String output = "SELECT SmallA.IntKey, g2.intkey, SmallA.ByteNum FROM SmallA LEFT OUTER JOIN (SELECT MediumA.IntKey, MediumA.ByteNum FROM MediumA) AS g2 ON SmallA.ByteNum = g2.bytenum"; //$NON-NLS-1$
TranslationHelper.helpTestVisitor(TranslationHelper.BQT_VDB, input, output, TRANSLATOR);
}

@Test
public void testApplyOuter() throws Exception {
String input = "SELECT EA.ID, EAC.Path FROM ElementAttribute EA LEFT OUTER JOIN "
Expand Down

0 comments on commit 510d9a9

Please sign in to comment.