Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
Shardingsphere
提交
ed737e37
Shardingsphere
项目概览
apache
/
Shardingsphere
通知
56
Star
3
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Shardingsphere
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
ed737e37
编写于
3月 05, 2020
作者:
T
tristaZero
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor ColumnProjectionSegment
上级
1deb1252
变更
13
隐藏空白更改
内联
并排
Showing
13 changed file
with
56 addition
and
53 deletion
+56
-53
encrypt-core/encrypt-core-rewrite/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/impl/EncryptProjectionTokenGenerator.java
...token/generator/impl/EncryptProjectionTokenGenerator.java
+4
-4
shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/sql/predicate/PredicateExtractor.java
...ngsphere/sql/parser/sql/predicate/PredicateExtractor.java
+0
-11
shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/sql/segment/dml/column/ColumnSegment.java
...here/sql/parser/sql/segment/dml/column/ColumnSegment.java
+3
-3
shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/sql/segment/dml/item/ColumnProjectionSegment.java
.../parser/sql/segment/dml/item/ColumnProjectionSegment.java
+17
-5
shardingsphere-sql-parser/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/visitor/impl/MySQLDMLVisitor.java
...ardingsphere/sql/parser/visitor/impl/MySQLDMLVisitor.java
+0
-3
shardingsphere-sql-parser/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/visitor/impl/OracleDMLVisitor.java
...rdingsphere/sql/parser/visitor/impl/OracleDMLVisitor.java
+0
-3
shardingsphere-sql-parser/shardingsphere-sql-parser-postgresql/src/main/java/org/apache/shardingsphere/sql/parser/visitor/impl/PostgreSQLDMLVisitor.java
...gsphere/sql/parser/visitor/impl/PostgreSQLDMLVisitor.java
+0
-3
shardingsphere-sql-parser/shardingsphere-sql-parser-relation/src/main/java/org/apache/shardingsphere/sql/parser/relation/segment/select/projection/engine/ProjectionEngine.java
...on/segment/select/projection/engine/ProjectionEngine.java
+2
-2
shardingsphere-sql-parser/shardingsphere-sql-parser-relation/src/main/java/org/apache/shardingsphere/sql/parser/relation/statement/dml/SelectStatementContext.java
...parser/relation/statement/dml/SelectStatementContext.java
+21
-6
shardingsphere-sql-parser/shardingsphere-sql-parser-relation/src/test/java/org/apache/shardingsphere/sql/parser/relation/segment/select/projection/engine/ProjectionsContextEngineTest.java
...elect/projection/engine/ProjectionsContextEngineTest.java
+1
-1
shardingsphere-sql-parser/shardingsphere-sql-parser-sql92/src/main/java/org/apache/shardingsphere/sql/parser/visitor/impl/SQL92DMLVisitor.java
...ardingsphere/sql/parser/visitor/impl/SQL92DMLVisitor.java
+0
-3
shardingsphere-sql-parser/shardingsphere-sql-parser-sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/visitor/impl/SQLServerDMLVisitor.java
...ngsphere/sql/parser/visitor/impl/SQLServerDMLVisitor.java
+0
-3
shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/java/org/apache/shardingsphere/sql/parser/integrate/asserts/segment/projection/ProjectionAssert.java
...ntegrate/asserts/segment/projection/ProjectionAssert.java
+8
-6
未找到文件。
encrypt-core/encrypt-core-rewrite/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/impl/EncryptProjectionTokenGenerator.java
浏览文件 @
ed737e37
...
...
@@ -66,13 +66,13 @@ public final class EncryptProjectionTokenGenerator extends BaseEncryptSQLTokenGe
}
private
boolean
isEncryptLogicColumn
(
final
ProjectionSegment
projectionSegment
,
final
EncryptTable
encryptTable
)
{
return
projectionSegment
instanceof
ColumnProjectionSegment
&&
encryptTable
.
getLogicColumns
().
contains
(((
ColumnProjectionSegment
)
projectionSegment
).
getIdentifier
().
getValue
());
return
projectionSegment
instanceof
ColumnProjectionSegment
&&
encryptTable
.
getLogicColumns
().
contains
(((
ColumnProjectionSegment
)
projectionSegment
).
get
Column
().
get
Identifier
().
getValue
());
}
private
SubstitutableColumnNameToken
generateSQLToken
(
final
ColumnProjectionSegment
segment
,
final
String
tableName
)
{
Optional
<
String
>
plainColumn
=
getEncryptRule
().
findPlainColumn
(
tableName
,
segment
.
getIdentifier
().
getValue
());
String
columnName
=
plainColumn
.
isPresent
()
&&
!
queryWithCipherColumn
?
plainColumn
.
get
()
:
getEncryptRule
().
getCipherColumn
(
tableName
,
segment
.
getIdentifier
().
getValue
());
return
segment
.
get
Owner
().
isPresent
()
?
new
SubstitutableColumnNameToken
(
segment
.
getOwner
().
get
().
getStopIndex
()
+
2
,
segment
.
getStopIndex
(),
columnName
)
Optional
<
String
>
plainColumn
=
getEncryptRule
().
findPlainColumn
(
tableName
,
segment
.
get
Column
().
get
Identifier
().
getValue
());
String
columnName
=
plainColumn
.
isPresent
()
&&
!
queryWithCipherColumn
?
plainColumn
.
get
()
:
getEncryptRule
().
getCipherColumn
(
tableName
,
segment
.
get
Column
().
get
Identifier
().
getValue
());
return
segment
.
get
Column
().
getOwner
().
isPresent
()
?
new
SubstitutableColumnNameToken
(
segment
.
getColumn
()
.
getOwner
().
get
().
getStopIndex
()
+
2
,
segment
.
getStopIndex
(),
columnName
)
:
new
SubstitutableColumnNameToken
(
segment
.
getStartIndex
(),
segment
.
getStopIndex
(),
columnName
);
}
}
shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/sql/predicate/PredicateExtractor.java
浏览文件 @
ed737e37
...
...
@@ -20,7 +20,6 @@ package org.apache.shardingsphere.sql.parser.sql.predicate;
import
com.google.common.base.Preconditions
;
import
lombok.RequiredArgsConstructor
;
import
org.apache.shardingsphere.sql.parser.sql.segment.dml.column.ColumnSegment
;
import
org.apache.shardingsphere.sql.parser.sql.segment.dml.item.ColumnProjectionSegment
;
import
org.apache.shardingsphere.sql.parser.sql.segment.dml.predicate.PredicateSegment
;
import
org.apache.shardingsphere.sql.parser.sql.segment.generic.OwnerSegment
;
import
org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment
;
...
...
@@ -55,11 +54,6 @@ public final class PredicateExtractor {
OwnerSegment
segment
=
((
ColumnSegment
)
predicate
.
getRightValue
()).
getOwner
().
get
();
result
.
add
(
new
TableSegment
(
segment
.
getStartIndex
(),
segment
.
getStopIndex
(),
segment
.
getIdentifier
()));
}
if
(
isToGenerateTableTokenForProjection
())
{
Preconditions
.
checkState
(((
ColumnProjectionSegment
)
predicate
.
getRightValue
()).
getOwner
().
isPresent
());
OwnerSegment
segment
=
((
ColumnProjectionSegment
)
predicate
.
getRightValue
()).
getOwner
().
get
();
new
TableSegment
(
segment
.
getStartIndex
(),
segment
.
getStopIndex
(),
segment
.
getIdentifier
());
}
return
result
;
}
...
...
@@ -72,11 +66,6 @@ public final class PredicateExtractor {
&&
((
ColumnSegment
)
predicate
.
getRightValue
()).
getOwner
().
isPresent
()
&&
isTable
(((
ColumnSegment
)
predicate
.
getRightValue
()).
getOwner
().
get
());
}
private
boolean
isToGenerateTableTokenForProjection
()
{
return
predicate
.
getRightValue
()
instanceof
ColumnProjectionSegment
&&
((
ColumnProjectionSegment
)
predicate
.
getRightValue
()).
getOwner
().
isPresent
()
&&
isTable
(((
ColumnProjectionSegment
)
predicate
.
getRightValue
()).
getOwner
().
get
());
}
private
boolean
isTable
(
final
OwnerSegment
owner
)
{
for
(
TableSegment
each
:
tables
)
{
if
(
owner
.
getIdentifier
().
getValue
().
equals
(
each
.
getAlias
().
orElse
(
null
)))
{
...
...
shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/sql/segment/dml/column/ColumnSegment.java
浏览文件 @
ed737e37
...
...
@@ -36,7 +36,7 @@ import java.util.Optional;
@Getter
@Setter
@ToString
public
class
ColumnSegment
implements
SQLSegment
,
PredicateRightValue
,
OwnerAvailable
{
public
final
class
ColumnSegment
implements
SQLSegment
,
PredicateRightValue
,
OwnerAvailable
{
private
final
int
startIndex
;
...
...
@@ -51,12 +51,12 @@ public class ColumnSegment implements SQLSegment, PredicateRightValue, OwnerAvai
*
* @return qualified name
*/
public
final
String
getQualifiedName
()
{
public
String
getQualifiedName
()
{
return
null
==
owner
?
identifier
.
getValue
()
:
owner
.
getIdentifier
().
getValue
()
+
"."
+
identifier
.
getValue
();
}
@Override
public
final
Optional
<
OwnerSegment
>
getOwner
()
{
public
Optional
<
OwnerSegment
>
getOwner
()
{
return
Optional
.
ofNullable
(
owner
);
}
}
shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/sql/segment/dml/item/ColumnProjectionSegment.java
浏览文件 @
ed737e37
...
...
@@ -29,7 +29,10 @@ import java.util.Optional;
/**
* Column projection segment.
*/
public
final
class
ColumnProjectionSegment
extends
ColumnSegment
implements
ProjectionSegment
,
AliasAvailable
{
public
final
class
ColumnProjectionSegment
implements
ProjectionSegment
,
AliasAvailable
{
@Getter
private
final
ColumnSegment
column
;
@Getter
private
final
String
text
;
...
...
@@ -38,15 +41,24 @@ public final class ColumnProjectionSegment extends ColumnSegment implements Proj
private
AliasSegment
alias
;
public
ColumnProjectionSegment
(
final
String
text
,
final
ColumnSegment
columnSegment
)
{
super
(
columnSegment
.
getStartIndex
(),
columnSegment
.
getStopIndex
(),
columnSegment
.
getIdentifier
())
;
column
=
columnSegment
;
this
.
text
=
SQLUtil
.
getExpressionWithoutOutsideParentheses
(
text
);
if
(
columnSegment
.
getOwner
().
isPresent
())
{
setOwner
(
columnSegment
.
getOwner
().
get
());
}
}
@Override
public
Optional
<
String
>
getAlias
()
{
return
null
==
alias
?
Optional
.
empty
()
:
Optional
.
ofNullable
(
alias
.
getIdentifier
().
getValue
());
}
@Override
public
int
getStartIndex
()
{
return
column
.
getStartIndex
();
}
@Override
public
int
getStopIndex
()
{
return
column
.
getStopIndex
();
// TODO
// return null == alias ? alias.getStopIndex() : column.getStopIndex();
}
}
shardingsphere-sql-parser/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/visitor/impl/MySQLDMLVisitor.java
浏览文件 @
ed737e37
...
...
@@ -537,9 +537,6 @@ public final class MySQLDMLVisitor extends MySQLVisitor implements DMLVisitor {
if
(
predicate
.
getRightValue
()
instanceof
ColumnSegment
&&
((
ColumnSegment
)
predicate
.
getRightValue
()).
getOwner
().
isPresent
())
{
result
.
getValue
().
add
(
createTableSegment
(((
ColumnSegment
)
predicate
.
getRightValue
()).
getOwner
().
get
()));
}
if
(
predicate
.
getRightValue
()
instanceof
ColumnProjectionSegment
&&
((
ColumnProjectionSegment
)
predicate
.
getRightValue
()).
getOwner
().
isPresent
())
{
result
.
getValue
().
add
(
createTableSegment
(((
ColumnProjectionSegment
)
predicate
.
getRightValue
()).
getOwner
().
get
()));
}
}
return
result
;
}
...
...
shardingsphere-sql-parser/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/visitor/impl/OracleDMLVisitor.java
浏览文件 @
ed737e37
...
...
@@ -441,9 +441,6 @@ public final class OracleDMLVisitor extends OracleVisitor implements DMLVisitor
if
(
predicate
.
getRightValue
()
instanceof
ColumnSegment
&&
((
ColumnSegment
)
predicate
.
getRightValue
()).
getOwner
().
isPresent
())
{
result
.
getValue
().
add
(
createTableSegment
(((
ColumnSegment
)
predicate
.
getRightValue
()).
getOwner
().
get
()));
}
if
(
predicate
.
getRightValue
()
instanceof
ColumnProjectionSegment
&&
((
ColumnProjectionSegment
)
predicate
.
getRightValue
()).
getOwner
().
isPresent
())
{
result
.
getValue
().
add
(
createTableSegment
(((
ColumnProjectionSegment
)
predicate
.
getRightValue
()).
getOwner
().
get
()));
}
}
return
result
;
}
...
...
shardingsphere-sql-parser/shardingsphere-sql-parser-postgresql/src/main/java/org/apache/shardingsphere/sql/parser/visitor/impl/PostgreSQLDMLVisitor.java
浏览文件 @
ed737e37
...
...
@@ -450,9 +450,6 @@ public final class PostgreSQLDMLVisitor extends PostgreSQLVisitor implements DML
if
(
predicate
.
getRightValue
()
instanceof
ColumnSegment
&&
((
ColumnSegment
)
predicate
.
getRightValue
()).
getOwner
().
isPresent
())
{
result
.
getValue
().
add
(
createTableSegment
(((
ColumnSegment
)
predicate
.
getRightValue
()).
getOwner
().
get
()));
}
if
(
predicate
.
getRightValue
()
instanceof
ColumnProjectionSegment
&&
((
ColumnProjectionSegment
)
predicate
.
getRightValue
()).
getOwner
().
isPresent
())
{
result
.
getValue
().
add
(
createTableSegment
(((
ColumnProjectionSegment
)
predicate
.
getRightValue
()).
getOwner
().
get
()));
}
}
return
result
;
}
...
...
shardingsphere-sql-parser/shardingsphere-sql-parser-relation/src/main/java/org/apache/shardingsphere/sql/parser/relation/segment/select/projection/engine/ProjectionEngine.java
浏览文件 @
ed737e37
...
...
@@ -77,8 +77,8 @@ public final class ProjectionEngine {
}
private
ColumnProjection
createProjection
(
final
ColumnProjectionSegment
projectionSegment
)
{
String
owner
=
projectionSegment
.
get
Owner
().
isPresent
()
?
projectionSegment
.
getOwner
().
get
().
getIdentifier
().
getValue
()
:
null
;
return
new
ColumnProjection
(
owner
,
projectionSegment
.
getIdentifier
().
getValue
(),
projectionSegment
.
getAlias
().
orElse
(
null
));
String
owner
=
projectionSegment
.
get
Column
().
getOwner
().
isPresent
()
?
projectionSegment
.
getColumn
()
.
getOwner
().
get
().
getIdentifier
().
getValue
()
:
null
;
return
new
ColumnProjection
(
owner
,
projectionSegment
.
get
Column
().
get
Identifier
().
getValue
(),
projectionSegment
.
getAlias
().
orElse
(
null
));
}
private
ExpressionProjection
createProjection
(
final
ExpressionProjectionSegment
projectionSegment
)
{
...
...
shardingsphere-sql-parser/shardingsphere-sql-parser-relation/src/main/java/org/apache/shardingsphere/sql/parser/relation/statement/dml/SelectStatementContext.java
浏览文件 @
ed737e37
...
...
@@ -36,6 +36,7 @@ import org.apache.shardingsphere.sql.parser.relation.segment.table.TableAvailabl
import
org.apache.shardingsphere.sql.parser.relation.segment.table.TablesContext
;
import
org.apache.shardingsphere.sql.parser.relation.statement.CommonSQLStatementContext
;
import
org.apache.shardingsphere.sql.parser.sql.predicate.PredicateExtractor
;
import
org.apache.shardingsphere.sql.parser.sql.segment.dml.item.ColumnProjectionSegment
;
import
org.apache.shardingsphere.sql.parser.sql.segment.dml.item.ProjectionSegment
;
import
org.apache.shardingsphere.sql.parser.sql.segment.dml.item.ProjectionsSegment
;
import
org.apache.shardingsphere.sql.parser.sql.segment.dml.order.item.ColumnOrderByItemSegment
;
...
...
@@ -212,16 +213,30 @@ public final class SelectStatementContext extends CommonSQLStatementContext<Sele
private
Collection
<
TableSegment
>
getAllTablesFromProjections
(
final
ProjectionsSegment
projections
)
{
Collection
<
TableSegment
>
result
=
new
LinkedList
<>();
for
(
ProjectionSegment
each
:
projections
.
getProjections
())
{
if
(
each
instanceof
OwnerAvailable
)
{
Optional
<
OwnerSegment
>
owner
=
((
OwnerAvailable
)
each
).
getOwner
();
if
(
owner
.
isPresent
()
&&
isTable
(
owner
.
get
(),
getSqlStatement
().
getTables
()))
{
result
.
add
(
new
TableSegment
(
owner
.
get
().
getStartIndex
(),
owner
.
get
().
getStopIndex
(),
owner
.
get
().
getIdentifier
()));
}
}
Optional
<
TableSegment
>
table
=
getTableSegment
(
each
);
table
.
ifPresent
(
result:
:
add
);
}
return
result
;
}
private
Optional
<
TableSegment
>
getTableSegment
(
final
ProjectionSegment
each
)
{
Optional
<
OwnerSegment
>
owner
=
getTableOwner
(
each
);
if
(
owner
.
isPresent
()
&&
isTable
(
owner
.
get
(),
getSqlStatement
().
getTables
()))
{
return
Optional
.
of
(
new
TableSegment
(
owner
.
get
().
getStartIndex
(),
owner
.
get
().
getStopIndex
(),
owner
.
get
().
getIdentifier
()));
}
return
Optional
.
empty
();
}
private
Optional
<
OwnerSegment
>
getTableOwner
(
final
ProjectionSegment
each
)
{
if
(
each
instanceof
OwnerAvailable
)
{
return
((
OwnerAvailable
)
each
).
getOwner
();
}
if
(
each
instanceof
ColumnProjectionSegment
)
{
return
((
ColumnProjectionSegment
)
each
).
getColumn
().
getOwner
();
}
return
Optional
.
empty
();
}
private
Collection
<
TableSegment
>
getAllTablesFromOrderByItems
(
final
Collection
<
OrderByItemSegment
>
orderByItems
)
{
Collection
<
TableSegment
>
result
=
new
LinkedList
<>();
for
(
OrderByItemSegment
each
:
orderByItems
)
{
...
...
shardingsphere-sql-parser/shardingsphere-sql-parser-relation/src/test/java/org/apache/shardingsphere/sql/parser/relation/segment/select/projection/engine/ProjectionsContextEngineTest.java
浏览文件 @
ed737e37
...
...
@@ -157,7 +157,7 @@ public final class ProjectionsContextEngineTest {
ColumnSegment
columnSegment
=
new
ColumnSegment
(
0
,
0
,
new
IdentifierValue
(
"col"
));
columnSegment
.
setOwner
(
owner
);
ColumnProjectionSegment
columnProjectionSegment
=
new
ColumnProjectionSegment
(
"ColumnProjectionSegment"
,
columnSegment
);
columnProjectionSegment
.
setOwner
(
owner
);
columnProjectionSegment
.
getColumn
().
setOwner
(
owner
);
projectionsSegment
.
getProjections
().
addAll
(
Lists
.
newArrayList
(
columnProjectionSegment
,
shorthandProjectionSegment
));
OrderByItem
orderByItem
=
new
OrderByItem
(
new
ColumnOrderByItemSegment
(
new
ColumnSegment
(
0
,
0
,
new
IdentifierValue
(
"name"
)),
OrderDirection
.
ASC
));
OrderByContext
orderByContext
=
new
OrderByContext
(
Collections
.
singleton
(
orderByItem
),
false
);
...
...
shardingsphere-sql-parser/shardingsphere-sql-parser-sql92/src/main/java/org/apache/shardingsphere/sql/parser/visitor/impl/SQL92DMLVisitor.java
浏览文件 @
ed737e37
...
...
@@ -413,9 +413,6 @@ public final class SQL92DMLVisitor extends SQL92Visitor implements DMLVisitor {
if
(
predicate
.
getRightValue
()
instanceof
ColumnSegment
&&
((
ColumnSegment
)
predicate
.
getRightValue
()).
getOwner
().
isPresent
())
{
result
.
getValue
().
add
(
createTableSegment
(((
ColumnSegment
)
predicate
.
getRightValue
()).
getOwner
().
get
()));
}
if
(
predicate
.
getRightValue
()
instanceof
ColumnProjectionSegment
&&
((
ColumnProjectionSegment
)
predicate
.
getRightValue
()).
getOwner
().
isPresent
())
{
result
.
getValue
().
add
(
createTableSegment
(((
ColumnProjectionSegment
)
predicate
.
getRightValue
()).
getOwner
().
get
()));
}
}
return
result
;
}
...
...
shardingsphere-sql-parser/shardingsphere-sql-parser-sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/visitor/impl/SQLServerDMLVisitor.java
浏览文件 @
ed737e37
...
...
@@ -436,9 +436,6 @@ public final class SQLServerDMLVisitor extends SQLServerVisitor implements DMLVi
if
(
predicate
.
getRightValue
()
instanceof
ColumnSegment
&&
((
ColumnSegment
)
predicate
.
getRightValue
()).
getOwner
().
isPresent
())
{
result
.
getValue
().
add
(
createTableSegment
(((
ColumnSegment
)
predicate
.
getRightValue
()).
getOwner
().
get
()));
}
if
(
predicate
.
getRightValue
()
instanceof
ColumnProjectionSegment
&&
((
ColumnProjectionSegment
)
predicate
.
getRightValue
()).
getOwner
().
isPresent
())
{
result
.
getValue
().
add
(
createTableSegment
(((
ColumnProjectionSegment
)
predicate
.
getRightValue
()).
getOwner
().
get
()));
}
}
return
result
;
}
...
...
shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/java/org/apache/shardingsphere/sql/parser/integrate/asserts/segment/projection/ProjectionAssert.java
浏览文件 @
ed737e37
...
...
@@ -111,17 +111,19 @@ public final class ProjectionAssert {
}
private
static
void
assertColumnProjection
(
final
SQLCaseAssertContext
assertContext
,
final
ColumnProjectionSegment
actual
,
final
ExpectedColumnProjection
expected
)
{
assertThat
(
assertContext
.
getText
(
"Column projection name assertion error: "
),
actual
.
getIdentifier
().
getValue
(),
is
(
expected
.
getName
()));
assertThat
(
assertContext
.
getText
(
"Column projection start delimiter assertion error: "
),
actual
.
getIdentifier
().
getQuoteCharacter
().
getStartDelimiter
(),
is
(
expected
.
getStartDelimiter
()));
assertThat
(
assertContext
.
getText
(
"Column projection end delimiter assertion error: "
),
actual
.
getIdentifier
().
getQuoteCharacter
().
getEndDelimiter
(),
is
(
expected
.
getEndDelimiter
()));
assertThat
(
assertContext
.
getText
(
"Column projection name assertion error: "
),
actual
.
getColumn
().
getIdentifier
().
getValue
(),
is
(
expected
.
getName
()));
assertThat
(
assertContext
.
getText
(
"Column projection start delimiter assertion error: "
),
actual
.
getColumn
().
getIdentifier
().
getQuoteCharacter
().
getStartDelimiter
(),
is
(
expected
.
getStartDelimiter
()));
assertThat
(
assertContext
.
getText
(
"Column projection end delimiter assertion error: "
),
actual
.
getColumn
().
getIdentifier
().
getQuoteCharacter
().
getEndDelimiter
(),
is
(
expected
.
getEndDelimiter
()));
assertThat
(
assertContext
.
getText
(
"Column projection alias assertion error: "
),
actual
.
getAlias
().
orElse
(
null
),
is
(
expected
.
getAlias
()));
if
(
null
!=
expected
.
getOwner
())
{
assertTrue
(
assertContext
.
getText
(
"Actual owner should exist."
),
actual
.
getOwner
().
isPresent
());
assertTrue
(
assertContext
.
getText
(
"Actual owner should exist."
),
actual
.
get
Column
().
get
Owner
().
isPresent
());
// TODO OwnerAssert is needed.
OwnerSegment
owner
=
actual
.
getOwner
().
get
();
OwnerSegment
owner
=
actual
.
get
Column
().
get
Owner
().
get
();
TableAssert
.
assertOwner
(
assertContext
,
new
TableSegment
(
owner
.
getStartIndex
(),
owner
.
getStopIndex
(),
owner
.
getIdentifier
()),
expected
.
getOwner
());
}
else
{
assertFalse
(
assertContext
.
getText
(
"Actual owner should not exist."
),
actual
.
getOwner
().
isPresent
());
assertFalse
(
assertContext
.
getText
(
"Actual owner should not exist."
),
actual
.
get
Column
().
get
Owner
().
isPresent
());
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录