// ============================================================================ // // Copyright (C) 2006-2016 Talend Inc. - www.talend.com // // This source code is available under agreement available at // %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt // // You should have received a copy of the agreement // along with this program; if not, write to Talend SA // 9 rue Pages 92150 Suresnes, France // // ============================================================================ package org.talend.dq.dbms; import java.sql.Connection; import java.sql.SQLException; import java.sql.Statement; import org.talend.utils.ProductVersion; import orgomg.cwm.objectmodel.core.Expression; /** * created by xqliu on Aug 7, 2013 Detailled comment * */ public class VerticaDbmsLanguage extends DbmsLanguage { public VerticaDbmsLanguage() { super(DbmsLanguage.VERTICA); } public VerticaDbmsLanguage(String dbmsType) { super(dbmsType); } public VerticaDbmsLanguage(String dbmsType, ProductVersion dbVersion) { super(dbmsType, dbVersion); } /* * (non-Javadoc) * * @see org.talend.dq.dbms.DbmsLanguage#createStatement(java.sql.Connection) */ @Override public Statement createStatement(Connection connection) throws SQLException { return connection.createStatement(); } @Override public String regexLike(String element, String regex) { return surroundWithSpaces(getRegularExpressionFunction() + "(TO_CHAR(" + element + ") , " + regex + " )"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } @Override public String regexNotLike(String element, String regex) { return surroundWithSpaces(this.not() + getRegularExpressionFunction() + "(TO_CHAR(" + element + ") , " + regex + " )"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } /* * (non-Javadoc) * * @see org.talend.dq.dbms.DbmsLanguage#getRegularExpressionFunction() */ @Override public String getRegularExpressionFunction() { return "REGEXP_LIKE"; //$NON-NLS-1$ } /* * (non-Javadoc) * * @see org.talend.dq.dbms.DbmsLanguage#getRegularExpressionFunction() */ @Override public String extractRegularExpressionFunction(Expression expression, String regex) { return getRegularExpressionFunction(); } @Override protected String getPatternFinderFunction(String expression, String charsToReplace, String replacementChars) { assert charsToReplace != null && replacementChars != null && charsToReplace.length() == replacementChars.length(); return translateUsingPattern(expression, charsToReplace, replacementChars); } /* * (non-Javadoc) * * @see org.talend.dq.dbms.DbmsLanguage#getInvalidClauseBenFord(java.lang.String) */ @Override public String getInvalidClauseBenFord(String columnName) { return columnName + " is null or " + "not regexp_like(to_char(" + columnName + "),'^[[:digit:]]')";//$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } /* * (non-Javadoc) * * @see org.talend.dq.dbms.DbmsLanguage#getColumnNameInQueryClause(java.lang.String) */ @Override public String castColumnNameToChar(String columnName) { return "to_char(" + columnName + ")"; //$NON-NLS-1$//$NON-NLS-2$ } /* * (non-Javadoc) * * @see org.talend.dq.dbms.DbmsLanguage#getRandomQuery(java.lang.String) */ @Override public String getRandomQuery(String query) { return query + orderBy() + "RANDOM() "; //$NON-NLS-1$ } }