Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
Shardingsphere
提交
3118e420
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,体验更适合开发者的 AI 搜索 >>
提交
3118e420
编写于
7月 12, 2017
作者:
T
terrymanu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix page for SQLServer, add order by context to OrderByItems
上级
dd5f7bf4
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
12 addition
and
5 deletion
+12
-5
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/merger/limit/LimitDecoratorResultSetMerger.java
.../sharding/merger/limit/LimitDecoratorResultSetMerger.java
+1
-0
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/SQLParser.java
...ngdang/ddframe/rdb/sharding/parsing/parser/SQLParser.java
+1
-1
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/dialect/sqlserver/SQLServerSelectParser.java
...rsing/parser/dialect/sqlserver/SQLServerSelectParser.java
+7
-1
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/statement/select/AbstractSelectParser.java
...parsing/parser/statement/select/AbstractSelectParser.java
+2
-2
sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/tbl/pstatement/ShardingTablesOnlyForPreparedStatementWithSelectTest.java
...ShardingTablesOnlyForPreparedStatementWithSelectTest.java
+1
-1
未找到文件。
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/merger/limit/LimitDecoratorResultSetMerger.java
浏览文件 @
3118e420
...
...
@@ -48,6 +48,7 @@ public final class LimitDecoratorResultSetMerger extends AbstractDecoratorResult
return
true
;
}
}
rowNumber
=
limit
.
isRowCountRewriteFlag
()
?
0
:
limit
.
getOffsetValue
();
return
false
;
}
...
...
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/SQLParser.java
浏览文件 @
3118e420
...
...
@@ -150,7 +150,7 @@ public class SQLParser extends AbstractParser {
private
void
setTableToken
(
final
SQLStatement
sqlStatement
,
final
int
beginPosition
,
final
SQLPropertyExpression
propertyExpr
)
{
String
owner
=
propertyExpr
.
getOwner
().
getName
();
if
(
sqlStatement
.
getTables
().
getSingleTableName
().
equalsIgnoreCase
(
SQLUtil
.
getExactlyValue
(
owner
)))
{
if
(
!
sqlStatement
.
getTables
().
isEmpty
()
&&
sqlStatement
.
getTables
().
getSingleTableName
().
equalsIgnoreCase
(
SQLUtil
.
getExactlyValue
(
owner
)))
{
sqlStatement
.
getSqlTokens
().
add
(
new
TableToken
(
beginPosition
-
owner
.
length
(),
owner
));
}
}
...
...
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/dialect/sqlserver/SQLServerSelectParser.java
浏览文件 @
3118e420
...
...
@@ -25,6 +25,7 @@ import com.dangdang.ddframe.rdb.sharding.parsing.parser.context.selectitem.Commo
import
com.dangdang.ddframe.rdb.sharding.parsing.parser.context.selectitem.SelectItem
;
import
com.dangdang.ddframe.rdb.sharding.parsing.parser.exception.SQLParsingUnsupportedException
;
import
com.dangdang.ddframe.rdb.sharding.parsing.parser.statement.select.AbstractSelectParser
;
import
com.dangdang.ddframe.rdb.sharding.parsing.parser.statement.select.SelectStatement
;
import
com.google.common.base.Optional
;
public
class
SQLServerSelectParser
extends
AbstractSelectParser
{
...
...
@@ -67,9 +68,14 @@ public class SQLServerSelectParser extends AbstractSelectParser {
}
@Override
protected
SelectItem
parseRowNumberSelectItem
()
{
protected
SelectItem
parseRowNumberSelectItem
(
final
SelectStatement
selectStatement
)
{
getSqlParser
().
getLexer
().
nextToken
();
if
(
getSqlParser
().
equalAny
(
Symbol
.
LEFT_PAREN
))
{
getSqlParser
().
skipUntil
(
DefaultKeyword
.
OVER
);
getSqlParser
().
getLexer
().
nextToken
();
getSqlParser
().
skipIfEqual
(
Symbol
.
LEFT_PAREN
);
selectStatement
.
getOrderByItems
().
addAll
(
parseOrderBy
());
getSqlParser
().
skipIfEqual
(
Symbol
.
RIGHT_PAREN
);
getSqlParser
().
skipUntil
(
DefaultKeyword
.
AS
);
getSqlParser
().
getLexer
().
nextToken
();
SelectItem
result
=
new
CommonSelectItem
(
"ROW_NUMBER"
,
Optional
.
of
(
getSqlParser
().
getLexer
().
getCurrentToken
().
getLiterals
()),
false
);
...
...
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/parsing/parser/statement/select/AbstractSelectParser.java
浏览文件 @
3118e420
...
...
@@ -123,7 +123,7 @@ public abstract class AbstractSelectParser implements SQLStatementParser {
private
SelectItem
parseSelectItem
()
{
if
(
isRowNumberSelectItem
())
{
return
parseRowNumberSelectItem
();
return
parseRowNumberSelectItem
(
selectStatement
);
}
sqlParser
.
skipIfEqual
(
DefaultKeyword
.
CONNECT_BY_ROOT
);
String
literals
=
sqlParser
.
getLexer
().
getCurrentToken
().
getLiterals
();
...
...
@@ -153,7 +153,7 @@ public abstract class AbstractSelectParser implements SQLStatementParser {
return
false
;
}
protected
SelectItem
parseRowNumberSelectItem
()
{
protected
SelectItem
parseRowNumberSelectItem
(
final
SelectStatement
selectStatement
)
{
throw
new
UnsupportedOperationException
(
"Cannot support special select item."
);
}
...
...
sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/tbl/pstatement/ShardingTablesOnlyForPreparedStatementWithSelectTest.java
浏览文件 @
3118e420
...
...
@@ -73,7 +73,7 @@ public final class ShardingTablesOnlyForPreparedStatementWithSelectTest extends
@Test
public
void
assertSelectPagingWithOffsetAndRowCountSql
()
throws
SQLException
,
DatabaseUnitException
{
if
(
currentDbType
()
==
SQLServer
)
{
assertSelectPaging
(
"SelectPagingWithOffsetAndRowCountSql.xml"
,
replacePreparedStatement
(
getDatabaseTestSQL
().
getSelectPagingWithOffsetAndRowCountSql
()),
2
,
10
,
19
,
1000
,
1909
,
0
);
assertSelectPaging
(
"SelectPagingWithOffsetAndRowCountSql.xml"
,
replacePreparedStatement
(
getDatabaseTestSQL
().
getSelectPagingWithOffsetAndRowCountSql
()),
4
,
10
,
19
,
1000
,
1909
,
2
);
}
else
{
assertSelectPaging
(
"SelectPagingWithOffsetAndRowCountSql.xml"
,
replacePreparedStatement
(
getDatabaseTestSQL
().
getSelectPagingWithOffsetAndRowCountSql
()),
10
,
19
,
1000
,
1909
,
2
,
2
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录