[ 
https://issues.apache.org/jira/browse/KYLIN-3996?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17371852#comment-17371852
 ] 

Shaoxiong Zhan commented on KYLIN-3996:
---------------------------------------

Most of the quoted scenarios related to jdbc source had been processed in JIRA 
https://issues.apache.org/jira/browse/KYLIN-4046, but it is found that there 
are some problems in 
org.apache.kylin.metadata.model.PartitionDesc.IPartitionConditionBuilder#buildDateRangeCondition.
 The use of hard code quotes requires similar processing. We need to choose the 
corresponding quote according to the data source.

such as:
{code:java}
public static class YearMonthDayPartitionConditionBuilder implements 
IPartitionConditionBuilder {

        @Override
        public String buildDateRangeCondition(PartitionDesc partDesc, ISegment 
seg, SegmentRange segRange, Function<TblColRef, String> func) {
            long startInclusive = (Long) segRange.start.v;
            long endExclusive = (Long) segRange.end.v;

            TblColRef partitionColumn = partDesc.getPartitionDateColumnRef();
            Preconditions.checkNotNull(partitionColumn);
            partitionColumn.setQuotedFunc(func);
            String tableAlias = partitionColumn.getTableAlias();

            String concatField = String.format(Locale.ROOT, 
"CONCAT(%s.YEAR,'-',%s.MONTH,'-',%s.DAY)", tableAlias,
                    tableAlias, tableAlias);
            StringBuilder builder = new StringBuilder();

            if (startInclusive > 0) {
                builder.append(concatField + " >= '" + 
DateFormat.formatToDateStr(startInclusive) + "' ");
                builder.append("AND ");
            }
            builder.append(concatField + " < '" + 
DateFormat.formatToDateStr(endExclusive) + "'");

            return builder.toString();
        }
    }
{code}


> postgresql can not to be used to construct the flat hive table in NO.1 step 
> in building cube via datasourcedefaultSdk
> ---------------------------------------------------------------------------------------------------------------------
>
>                 Key: KYLIN-3996
>                 URL: https://issues.apache.org/jira/browse/KYLIN-3996
>             Project: Kylin
>          Issue Type: Bug
>          Components: Driver - JDBC
>    Affects Versions: v2.6.1
>         Environment: kylin3.0.0+hadoop2.7.4+hive2.1.1+hbase1.2.6
>            Reporter: haijiandu
>            Assignee: Shaoxiong Zhan
>            Priority: Critical
>              Labels: datasource, postgresql, sdk
>             Fix For: v3.1.3
>
>         Attachments: kylin_log_error_1.jpg, kylin_log_error_2.jpg, 
> kylin_log_error_3.jpg, kylin_log_error_4.jpg, kylin_log_error_5.jpg, 
> kylin_properties_duhj.jpg, kylin_sql.jpg, 
> kylin_sqoopToflatHiveTable_Error.jpg, postgresql_xml.jpg, 
> server_config_kylin_1.jpg, server_config_kylin_1.jpg, 
> server_config_kylin_2.jpg
>
>
> postgresql can not to be used to construct the flat hive table in NO.1 step 
> in building cube via datasourcedefaultSdk. whether in kylin.properties or in 
> postgresql.xml,corresponding configureations have been finished as required 
> by official specification.There  alwarys occurs a problem such as "ERROR 
> manager.SqlManager: Error executing statement: 
> org.postgresql.util.PSQLException: 
> ERROR: syntax error at or near ".", 
> when kylin is linked to postgresql databese, it seems that the errors happen 
> in sql brought by kylin. the sql has  back quote,as it is "`" ,that causes 
> query failure brought by table name and columns defined by back quote(`).
> as required, in kylin.properties ,its configuration has been as followings
> kylin.source.default=16
> kylin.source.jdbc.connection-url=jdbc:postgresql://192.168.75.123:5432/dvdrental
> kylin.source.jdbc.driver=org.postgresql.Driver
> kylin.source.jdbc.dialect=postgresql
> kylin.source.jdbc.adaptor=org.apache.kylin.sdk.datasource.adaptor.DefaultAdaptor
> kylin.source.jdbc.user=postgres
> kylin.source.jdbc.pass=1234
> kylin.source.jdbc.sqoop-home=/duhj/sqoop-1.4.7.bin__hadoop-2.6.0
> kylin.source.jdbc.filed-delimiter=|
> kylin.source.jdbc.sqoop-mapper-num=4
> what is more, in 
> ~/apache-kylin-3.0/conf/datasource/postgresql.xml,corresponding conf is as 
> followings:
> -<DATASOURCE_DEF DIALECT="postgresql" ID="postgresql" NAME="kylin">
> <PROPERTY NAME="sql.default-converted-enabled" VALUE="true"/>
> <PROPERTY NAME="sql.allow-no-offset" VALUE="true"/>
> <PROPERTY NAME="sql.allow-fetch-no-rows" VALUE="true"/>
> <PROPERTY NAME="sql.allow-no-orderby-with-fetch" VALUE="true"/>
> <PROPERTY NAME="sql.keyword-default-escape" VALUE="true"/>
> <PROPERTY NAME="sql.keyword-default-uppercase" VALUE="true"/>
> <PROPERTY NAME="schema.database.black-list-pattern" VALUE="publi.*, edw"/>
> <PROPERTY NAME="sql.case-sensitive" VALUE="true"/>
> <PROPERTY NAME="metadata.enable-cache" VALUE="true"/>
> <PROPERTY NAME="sql.enable-quote-all-identifiers" VALUE="false"/>
> is there a method to solve it?
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to