private static int appendParamMaskAndGetParamIndex()

in java/clickhouse-client/src/main/java/com/epam/deltix/clickhouse/util/SqlQueryHelper.java [136:180]


    private static int appendParamMaskAndGetParamIndex(StringBuilder sb, ExpressionDeclaration expression, int paramIndex) {
        if (expression.getDbDataType() instanceof NestedDataType) {
            List<ColumnDeclaration> nestedColumns = ((NestedDataType) expression.getDbDataType()).getColumns();
            for (int i = 0; i < nestedColumns.size(); i++) {
                if (i > 0)
                    sb.append(", ");

                ColumnDeclaration nestedColumn = nestedColumns.get(i);

                SqlDataType nestedType = nestedColumn.getDbDataType();
                if (nestedType instanceof ObjectDataType) {
                    List<ColumnDeclaration> objectColumns = ((ObjectDataType) nestedType).getColumns();
                    for (int i1 = 0; i1 < objectColumns.size(); i1++) {
                        if (i1 > 0)
                            sb.append(", ");

                        ColumnDeclaration objectColumn = objectColumns.get(i1);

                        sb.append('`');
                        sb.append(expression.getDbColumnName());
                        sb.append('.');
                        sb.append(nestedColumn.getDbColumnName());
                        sb.append('_');
                        sb.append(objectColumn.getDbColumnName());
                        sb.append('`');
                        paramIndex++;
                    }
                } else {
                    sb.append('`');
                    sb.append(expression.getDbColumnName());
                    sb.append('.');
                    sb.append(nestedColumn.getDbColumnName());
                    sb.append('`');
                    paramIndex++;
                }
            }
        } else {
            sb.append('`');
            sb.append(expression.getDbColumnName());
            sb.append('`');
            paramIndex++;
        }

        return paramIndex;
    }