Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录/注册
切换导航
H
h2database
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
Administrator
h2database
Commits
eeb08de1
提交
eeb08de1
authored
4月 02, 2009
作者:
Thomas Mueller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ResultSet.findColumn now also check for matching column names.
上级
d28db754
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
334 行增加
和
293 行删除
+334
-293
JdbcResultSet.java
h2/src/main/org/h2/jdbc/JdbcResultSet.java
+303
-291
TestResultSet.java
h2/src/test/org/h2/test/jdbc/TestResultSet.java
+31
-2
没有找到文件。
h2/src/main/org/h2/jdbc/JdbcResultSet.java
浏览文件 @
eeb08de1
...
...
@@ -65,7 +65,7 @@ import org.h2.value.ValueTimestamp;
* Represents a result set.
* </p>
* <p>
* Column
name
s are case-insensitive, quotes are not supported. The first column
* Column
label
s are case-insensitive, quotes are not supported. The first column
* has the column index 1.
* </p>
* <p>
...
...
@@ -87,7 +87,7 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
private
boolean
wasNull
;
private
Value
[]
insertRow
;
private
Value
[]
updateRow
;
private
HashMap
column
Name
Map
;
private
HashMap
column
Label
Map
;
private
HashMap
patchedRows
;
JdbcResultSet
(
JdbcConnection
conn
,
JdbcStatement
stat
,
ResultInterface
result
,
int
id
,
...
...
@@ -155,15 +155,15 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
* Searches for a specific column in the result set. A case-insensitive
* search is made.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @return the column index (1,2,...)
* @throws SQLException if the column is not found or if the result set is
* closed
*/
public
int
findColumn
(
String
column
Name
)
throws
SQLException
{
public
int
findColumn
(
String
column
Label
)
throws
SQLException
{
try
{
debugCodeCall
(
"findColumn"
,
column
Name
);
return
getColumnIndex
(
column
Name
);
debugCodeCall
(
"findColumn"
,
column
Label
);
return
getColumnIndex
(
column
Label
);
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -270,14 +270,14 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Returns the value of the specified column as a String.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @return the value
* @throws SQLException if the column is not found or if the result set is closed
*/
public
String
getString
(
String
column
Name
)
throws
SQLException
{
public
String
getString
(
String
column
Label
)
throws
SQLException
{
try
{
debugCodeCall
(
"getString"
,
column
Name
);
return
get
(
column
Name
).
getString
();
debugCodeCall
(
"getString"
,
column
Label
);
return
get
(
column
Label
).
getString
();
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -302,14 +302,14 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Returns the value of the specified column as an int.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @return the value
* @throws SQLException if the column is not found or if the result set is closed
*/
public
int
getInt
(
String
column
Name
)
throws
SQLException
{
public
int
getInt
(
String
column
Label
)
throws
SQLException
{
try
{
debugCodeCall
(
"getInt"
,
column
Name
);
return
get
(
column
Name
).
getInt
();
debugCodeCall
(
"getInt"
,
column
Label
);
return
get
(
column
Label
).
getInt
();
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -382,14 +382,14 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Returns the value of the specified column as a String.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @return the value
* @throws SQLException if the column is not found or if the result set is closed
*/
public
BigDecimal
getBigDecimal
(
String
column
Name
)
throws
SQLException
{
public
BigDecimal
getBigDecimal
(
String
column
Label
)
throws
SQLException
{
try
{
debugCodeCall
(
"getBigDecimal"
,
column
Name
);
return
get
(
column
Name
).
getBigDecimal
();
debugCodeCall
(
"getBigDecimal"
,
column
Label
);
return
get
(
column
Label
).
getBigDecimal
();
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -398,14 +398,14 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Returns the value of the specified column as a java.sql.Date.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @return the value
* @throws SQLException if the column is not found or if the result set is closed
*/
public
Date
getDate
(
String
column
Name
)
throws
SQLException
{
public
Date
getDate
(
String
column
Label
)
throws
SQLException
{
try
{
debugCodeCall
(
"getDate"
,
column
Name
);
return
get
(
column
Name
).
getDate
();
debugCodeCall
(
"getDate"
,
column
Label
);
return
get
(
column
Label
).
getDate
();
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -414,14 +414,14 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Returns the value of the specified column as a java.sql.Time.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @return the value
* @throws SQLException if the column is not found or if the result set is closed
*/
public
Time
getTime
(
String
column
Name
)
throws
SQLException
{
public
Time
getTime
(
String
column
Label
)
throws
SQLException
{
try
{
debugCodeCall
(
"getTime"
,
column
Name
);
return
get
(
column
Name
).
getTime
();
debugCodeCall
(
"getTime"
,
column
Label
);
return
get
(
column
Label
).
getTime
();
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -430,14 +430,14 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Returns the value of the specified column as a java.sql.Timestamp.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @return the value
* @throws SQLException if the column is not found or if the result set is closed
*/
public
Timestamp
getTimestamp
(
String
column
Name
)
throws
SQLException
{
public
Timestamp
getTimestamp
(
String
column
Label
)
throws
SQLException
{
try
{
debugCodeCall
(
"getTimestamp"
,
column
Name
);
return
get
(
column
Name
).
getTimestamp
();
debugCodeCall
(
"getTimestamp"
,
column
Label
);
return
get
(
column
Label
).
getTimestamp
();
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -466,15 +466,15 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
* Returns a column value as a Java object. For BINARY data, the data is
* de-serialized into a Java Object.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @return the value or null
* @throws SQLException if the column is not found or if the result set is
* closed
*/
public
Object
getObject
(
String
column
Name
)
throws
SQLException
{
public
Object
getObject
(
String
column
Label
)
throws
SQLException
{
try
{
debugCodeCall
(
"getObject"
,
column
Name
);
Value
v
=
get
(
column
Name
);
debugCodeCall
(
"getObject"
,
column
Label
);
Value
v
=
get
(
column
Label
);
return
conn
.
convertToDefaultObject
(
v
);
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
...
...
@@ -502,15 +502,15 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Returns the value of the specified column as a boolean.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @return the value
* @throws SQLException if the column is not found or if the result set is
* closed
*/
public
boolean
getBoolean
(
String
column
Name
)
throws
SQLException
{
public
boolean
getBoolean
(
String
column
Label
)
throws
SQLException
{
try
{
debugCodeCall
(
"getBoolean"
,
column
Name
);
Boolean
v
=
get
(
column
Name
).
getBoolean
();
debugCodeCall
(
"getBoolean"
,
column
Label
);
Boolean
v
=
get
(
column
Label
).
getBoolean
();
return
v
==
null
?
false
:
v
.
booleanValue
();
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
...
...
@@ -537,15 +537,15 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Returns the value of the specified column as a byte.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @return the value
* @throws SQLException if the column is not found or if the result set is
* closed
*/
public
byte
getByte
(
String
column
Name
)
throws
SQLException
{
public
byte
getByte
(
String
column
Label
)
throws
SQLException
{
try
{
debugCodeCall
(
"getByte"
,
column
Name
);
return
get
(
column
Name
).
getByte
();
debugCodeCall
(
"getByte"
,
column
Label
);
return
get
(
column
Label
).
getByte
();
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -571,15 +571,15 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Returns the value of the specified column as a short.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @return the value
* @throws SQLException if the column is not found or if the result set is
* closed
*/
public
short
getShort
(
String
column
Name
)
throws
SQLException
{
public
short
getShort
(
String
column
Label
)
throws
SQLException
{
try
{
debugCodeCall
(
"getShort"
,
column
Name
);
return
get
(
column
Name
).
getShort
();
debugCodeCall
(
"getShort"
,
column
Label
);
return
get
(
column
Label
).
getShort
();
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -605,15 +605,15 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Returns the value of the specified column as a long.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @return the value
* @throws SQLException if the column is not found or if the result set is
* closed
*/
public
long
getLong
(
String
column
Name
)
throws
SQLException
{
public
long
getLong
(
String
column
Label
)
throws
SQLException
{
try
{
debugCodeCall
(
"getLong"
,
column
Name
);
return
get
(
column
Name
).
getLong
();
debugCodeCall
(
"getLong"
,
column
Label
);
return
get
(
column
Label
).
getLong
();
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -639,15 +639,15 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Returns the value of the specified column as a float.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @return the value
* @throws SQLException if the column is not found or if the result set is
* closed
*/
public
float
getFloat
(
String
column
Name
)
throws
SQLException
{
public
float
getFloat
(
String
column
Label
)
throws
SQLException
{
try
{
debugCodeCall
(
"getFloat"
,
column
Name
);
return
get
(
column
Name
).
getFloat
();
debugCodeCall
(
"getFloat"
,
column
Label
);
return
get
(
column
Label
).
getFloat
();
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -673,15 +673,15 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Returns the value of the specified column as a double.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @return the value
* @throws SQLException if the column is not found or if the result set is
* closed
*/
public
double
getDouble
(
String
column
Name
)
throws
SQLException
{
public
double
getDouble
(
String
column
Label
)
throws
SQLException
{
try
{
debugCodeCall
(
"getDouble"
,
column
Name
);
return
get
(
column
Name
).
getDouble
();
debugCodeCall
(
"getDouble"
,
column
Label
);
return
get
(
column
Label
).
getDouble
();
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -692,20 +692,20 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
*
* @deprecated
*
* @param column
Name the column name
* @param column
Label the column label
* @return the value
* @throws SQLException if the column is not found or if the result set is
* closed
*/
public
BigDecimal
getBigDecimal
(
String
column
Name
,
int
scale
)
throws
SQLException
{
public
BigDecimal
getBigDecimal
(
String
column
Label
,
int
scale
)
throws
SQLException
{
try
{
if
(
isDebugEnabled
())
{
debugCode
(
"getBigDecimal("
+
StringUtils
.
quoteJavaString
(
column
Name
)+
", "
+
scale
+
");"
);
debugCode
(
"getBigDecimal("
+
StringUtils
.
quoteJavaString
(
column
Label
)+
", "
+
scale
+
");"
);
}
if
(
scale
<
0
)
{
throw
Message
.
getInvalidValueException
(
""
+
scale
,
"scale"
);
}
BigDecimal
bd
=
get
(
column
Name
).
getBigDecimal
();
BigDecimal
bd
=
get
(
column
Label
).
getBigDecimal
();
return
bd
==
null
?
null
:
MathUtils
.
setScale
(
bd
,
scale
);
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
...
...
@@ -754,9 +754,9 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
* [Not supported]
* @deprecated
*/
public
InputStream
getUnicodeStream
(
String
column
Name
)
throws
SQLException
{
public
InputStream
getUnicodeStream
(
String
column
Label
)
throws
SQLException
{
try
{
debugCodeCall
(
"getUnicodeStream"
,
column
Name
);
debugCodeCall
(
"getUnicodeStream"
,
column
Label
);
throw
Message
.
getUnsupportedException
(
"unicodeStream"
);
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
...
...
@@ -782,10 +782,10 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
* [Not supported] Gets a column as a object using the specified type
* mapping.
*/
public
Object
getObject
(
String
column
Name
,
Map
map
)
throws
SQLException
{
public
Object
getObject
(
String
column
Label
,
Map
map
)
throws
SQLException
{
try
{
if
(
isDebugEnabled
())
{
debugCode
(
"getObject("
+
quote
(
column
Name
)
+
", map);"
);
debugCode
(
"getObject("
+
quote
(
column
Label
)
+
", map);"
);
}
throw
Message
.
getUnsupportedException
(
"map"
);
}
catch
(
Exception
e
)
{
...
...
@@ -808,9 +808,9 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* [Not supported] Gets a column as a reference.
*/
public
Ref
getRef
(
String
column
Name
)
throws
SQLException
{
public
Ref
getRef
(
String
column
Label
)
throws
SQLException
{
try
{
debugCodeCall
(
"getRef"
,
column
Name
);
debugCodeCall
(
"getRef"
,
column
Label
);
throw
Message
.
getUnsupportedException
(
"ref"
);
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
...
...
@@ -843,18 +843,18 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
* Returns the value of the specified column as a java.sql.Date using a
* specified time zone.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @param calendar the calendar
* @return the value
* @throws SQLException if the column is not found or if the result set is
* closed
*/
public
Date
getDate
(
String
column
Name
,
Calendar
calendar
)
throws
SQLException
{
public
Date
getDate
(
String
column
Label
,
Calendar
calendar
)
throws
SQLException
{
try
{
if
(
isDebugEnabled
())
{
debugCode
(
"getDate("
+
StringUtils
.
quoteJavaString
(
column
Name
)
+
", calendar)"
);
debugCode
(
"getDate("
+
StringUtils
.
quoteJavaString
(
column
Label
)
+
", calendar)"
);
}
Date
x
=
get
(
column
Name
).
getDate
();
Date
x
=
get
(
column
Label
).
getDate
();
return
DateTimeUtils
.
convertDateToCalendar
(
x
,
calendar
);
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
...
...
@@ -887,18 +887,18 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
* Returns the value of the specified column as a java.sql.Time using a
* specified time zone.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @param calendar the calendar
* @return the value
* @throws SQLException if the column is not found or if the result set is
* closed
*/
public
Time
getTime
(
String
column
Name
,
Calendar
calendar
)
throws
SQLException
{
public
Time
getTime
(
String
column
Label
,
Calendar
calendar
)
throws
SQLException
{
try
{
if
(
isDebugEnabled
())
{
debugCode
(
"getTime("
+
StringUtils
.
quoteJavaString
(
column
Name
)
+
", calendar)"
);
debugCode
(
"getTime("
+
StringUtils
.
quoteJavaString
(
column
Label
)
+
", calendar)"
);
}
Time
x
=
get
(
column
Name
).
getTime
();
Time
x
=
get
(
column
Label
).
getTime
();
return
DateTimeUtils
.
convertTimeToCalendar
(
x
,
calendar
);
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
...
...
@@ -930,18 +930,18 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Returns the value of the specified column as a java.sql.Timestamp.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @param calendar the calendar
* @return the value
* @throws SQLException if the column is not found or if the result set is
* closed
*/
public
Timestamp
getTimestamp
(
String
column
Name
,
Calendar
calendar
)
throws
SQLException
{
public
Timestamp
getTimestamp
(
String
column
Label
,
Calendar
calendar
)
throws
SQLException
{
try
{
if
(
isDebugEnabled
())
{
debugCode
(
"getTimestamp("
+
StringUtils
.
quoteJavaString
(
column
Name
)
+
", calendar)"
);
debugCode
(
"getTimestamp("
+
StringUtils
.
quoteJavaString
(
column
Label
)
+
", calendar)"
);
}
Timestamp
x
=
get
(
column
Name
).
getTimestamp
();
Timestamp
x
=
get
(
column
Label
).
getTimestamp
();
return
DateTimeUtils
.
convertTimestampToCalendar
(
x
,
calendar
);
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
...
...
@@ -970,16 +970,16 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Returns the value of the specified column as a Blob.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @return the value
* @throws SQLException if the column is not found or if the result set is
* closed
*/
public
Blob
getBlob
(
String
column
Name
)
throws
SQLException
{
public
Blob
getBlob
(
String
column
Label
)
throws
SQLException
{
try
{
int
id
=
getNextId
(
TraceObject
.
BLOB
);
debugCodeAssign
(
"Blob"
,
TraceObject
.
BLOB
,
id
,
"getBlob("
+
quote
(
column
Name
)
+
")"
);
Value
v
=
get
(
column
Name
);
debugCodeAssign
(
"Blob"
,
TraceObject
.
BLOB
,
id
,
"getBlob("
+
quote
(
column
Label
)
+
")"
);
Value
v
=
get
(
column
Label
);
return
v
==
ValueNull
.
INSTANCE
?
null
:
new
JdbcBlob
(
conn
,
v
,
id
);
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
...
...
@@ -1006,15 +1006,15 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Returns the value of the specified column as a byte array.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @return the value
* @throws SQLException if the column is not found or if the result set is
* closed
*/
public
byte
[]
getBytes
(
String
column
Name
)
throws
SQLException
{
public
byte
[]
getBytes
(
String
column
Label
)
throws
SQLException
{
try
{
debugCodeCall
(
"getBytes"
,
column
Name
);
return
get
(
column
Name
).
getBytes
();
debugCodeCall
(
"getBytes"
,
column
Label
);
return
get
(
column
Label
).
getBytes
();
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -1040,15 +1040,15 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Returns the value of the specified column as input stream.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @return the value
* @throws SQLException if the column is not found or if the result set is
* closed
*/
public
InputStream
getBinaryStream
(
String
column
Name
)
throws
SQLException
{
public
InputStream
getBinaryStream
(
String
column
Label
)
throws
SQLException
{
try
{
debugCodeCall
(
"getBinaryStream"
,
column
Name
);
return
get
(
column
Name
).
getInputStream
();
debugCodeCall
(
"getBinaryStream"
,
column
Label
);
return
get
(
column
Label
).
getInputStream
();
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -1077,16 +1077,16 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Returns the value of the specified column as a Clob.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @return the value
* @throws SQLException if the column is not found or if the result set is
* closed
*/
public
Clob
getClob
(
String
column
Name
)
throws
SQLException
{
public
Clob
getClob
(
String
column
Label
)
throws
SQLException
{
try
{
int
id
=
getNextId
(
TraceObject
.
CLOB
);
debugCodeAssign
(
"Clob"
,
TraceObject
.
CLOB
,
id
,
"getClob("
+
quote
(
column
Name
)
+
")"
);
Value
v
=
get
(
column
Name
);
debugCodeAssign
(
"Clob"
,
TraceObject
.
CLOB
,
id
,
"getClob("
+
quote
(
column
Label
)
+
")"
);
Value
v
=
get
(
column
Label
);
return
v
==
ValueNull
.
INSTANCE
?
null
:
new
JdbcClob
(
conn
,
v
,
id
);
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
...
...
@@ -1115,16 +1115,16 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Returns the value of the specified column as an Array.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @return the value
* @throws SQLException if the column is not found or if the result set is
* closed
*/
public
Array
getArray
(
String
column
Name
)
throws
SQLException
{
public
Array
getArray
(
String
column
Label
)
throws
SQLException
{
try
{
int
id
=
getNextId
(
TraceObject
.
ARRAY
);
debugCodeAssign
(
"Clob"
,
TraceObject
.
ARRAY
,
id
,
"getArray("
+
quote
(
column
Name
)
+
")"
);
Value
v
=
get
(
column
Name
);
debugCodeAssign
(
"Clob"
,
TraceObject
.
ARRAY
,
id
,
"getArray("
+
quote
(
column
Label
)
+
")"
);
Value
v
=
get
(
column
Label
);
return
v
==
ValueNull
.
INSTANCE
?
null
:
new
JdbcArray
(
conn
,
v
,
id
);
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
...
...
@@ -1152,15 +1152,15 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Returns the value of the specified column as input stream.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @return the value
* @throws SQLException if the column is not found or if the result set is
* closed
*/
public
InputStream
getAsciiStream
(
String
column
Name
)
throws
SQLException
{
public
InputStream
getAsciiStream
(
String
column
Label
)
throws
SQLException
{
try
{
debugCodeCall
(
"getAsciiStream"
,
column
Name
);
String
s
=
get
(
column
Name
).
getString
();
debugCodeCall
(
"getAsciiStream"
,
column
Label
);
String
s
=
get
(
column
Label
).
getString
();
return
IOUtils
.
getInputStream
(
s
);
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
...
...
@@ -1187,15 +1187,15 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Returns the value of the specified column as input stream.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @return the value
* @throws SQLException if the column is not found or if the result set is
* closed
*/
public
Reader
getCharacterStream
(
String
column
Name
)
throws
SQLException
{
public
Reader
getCharacterStream
(
String
column
Label
)
throws
SQLException
{
try
{
debugCodeCall
(
"getCharacterStream"
,
column
Name
);
return
get
(
column
Name
).
getReader
();
debugCodeCall
(
"getCharacterStream"
,
column
Label
);
return
get
(
column
Label
).
getReader
();
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -1216,9 +1216,9 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* [Not supported]
*/
public
URL
getURL
(
String
column
Name
)
throws
SQLException
{
public
URL
getURL
(
String
column
Label
)
throws
SQLException
{
try
{
debugCodeCall
(
"getURL"
,
column
Name
);
debugCodeCall
(
"getURL"
,
column
Label
);
throw
Message
.
getUnsupportedException
(
"url"
);
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
...
...
@@ -1245,13 +1245,13 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Updates a column in the current or insert row.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @throws SQLException if the result set is closed
*/
public
void
updateNull
(
String
column
Name
)
throws
SQLException
{
public
void
updateNull
(
String
column
Label
)
throws
SQLException
{
try
{
debugCodeCall
(
"updateNull"
,
column
Name
);
update
(
column
Name
,
ValueNull
.
INSTANCE
);
debugCodeCall
(
"updateNull"
,
column
Label
);
update
(
column
Label
,
ValueNull
.
INSTANCE
);
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -1278,16 +1278,16 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Updates a column in the current or insert row.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @param x the value
* @throws SQLException if result set is closed
*/
public
void
updateBoolean
(
String
column
Name
,
boolean
x
)
throws
SQLException
{
public
void
updateBoolean
(
String
column
Label
,
boolean
x
)
throws
SQLException
{
try
{
if
(
isDebugEnabled
())
{
debugCode
(
"updateBoolean("
+
quote
(
column
Name
)+
", "
+
x
+
");"
);
debugCode
(
"updateBoolean("
+
quote
(
column
Label
)+
", "
+
x
+
");"
);
}
update
(
column
Name
,
ValueBoolean
.
get
(
x
));
update
(
column
Label
,
ValueBoolean
.
get
(
x
));
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -1314,16 +1314,16 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Updates a column in the current or insert row.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @param x the value
* @throws SQLException if the result set is closed
*/
public
void
updateByte
(
String
column
Name
,
byte
x
)
throws
SQLException
{
public
void
updateByte
(
String
column
Label
,
byte
x
)
throws
SQLException
{
try
{
if
(
isDebugEnabled
())
{
debugCode
(
"updateByte("
+
column
Name
+
", "
+
x
+
");"
);
debugCode
(
"updateByte("
+
column
Label
+
", "
+
x
+
");"
);
}
update
(
column
Name
,
ValueByte
.
get
(
x
));
update
(
column
Label
,
ValueByte
.
get
(
x
));
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -1350,16 +1350,16 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Updates a column in the current or insert row.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @param x the value
* @throws SQLException if the result set is closed
*/
public
void
updateBytes
(
String
column
Name
,
byte
[]
x
)
throws
SQLException
{
public
void
updateBytes
(
String
column
Label
,
byte
[]
x
)
throws
SQLException
{
try
{
if
(
isDebugEnabled
())
{
debugCode
(
"updateBytes("
+
quote
(
column
Name
)+
", x);"
);
debugCode
(
"updateBytes("
+
quote
(
column
Label
)+
", x);"
);
}
update
(
column
Name
,
x
==
null
?
(
Value
)
ValueNull
.
INSTANCE
:
ValueBytes
.
get
(
x
));
update
(
column
Label
,
x
==
null
?
(
Value
)
ValueNull
.
INSTANCE
:
ValueBytes
.
get
(
x
));
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -1386,16 +1386,16 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Updates a column in the current or insert row.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @param x the value
* @throws SQLException if the result set is closed
*/
public
void
updateShort
(
String
column
Name
,
short
x
)
throws
SQLException
{
public
void
updateShort
(
String
column
Label
,
short
x
)
throws
SQLException
{
try
{
if
(
isDebugEnabled
())
{
debugCode
(
"updateShort("
+
quote
(
column
Name
)+
", (short) "
+
x
+
");"
);
debugCode
(
"updateShort("
+
quote
(
column
Label
)+
", (short) "
+
x
+
");"
);
}
update
(
column
Name
,
ValueShort
.
get
(
x
));
update
(
column
Label
,
ValueShort
.
get
(
x
));
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -1422,16 +1422,16 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Updates a column in the current or insert row.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @param x the value
* @throws SQLException if the result set is closed
*/
public
void
updateInt
(
String
column
Name
,
int
x
)
throws
SQLException
{
public
void
updateInt
(
String
column
Label
,
int
x
)
throws
SQLException
{
try
{
if
(
isDebugEnabled
())
{
debugCode
(
"updateInt("
+
quote
(
column
Name
)+
", "
+
x
+
");"
);
debugCode
(
"updateInt("
+
quote
(
column
Label
)+
", "
+
x
+
");"
);
}
update
(
column
Name
,
ValueInt
.
get
(
x
));
update
(
column
Label
,
ValueInt
.
get
(
x
));
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -1458,16 +1458,16 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Updates a column in the current or insert row.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @param x the value
* @throws SQLException if the result set is closed
*/
public
void
updateLong
(
String
column
Name
,
long
x
)
throws
SQLException
{
public
void
updateLong
(
String
column
Label
,
long
x
)
throws
SQLException
{
try
{
if
(
isDebugEnabled
())
{
debugCode
(
"updateLong("
+
quote
(
column
Name
)+
", "
+
x
+
"L);"
);
debugCode
(
"updateLong("
+
quote
(
column
Label
)+
", "
+
x
+
"L);"
);
}
update
(
column
Name
,
ValueLong
.
get
(
x
));
update
(
column
Label
,
ValueLong
.
get
(
x
));
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -1494,16 +1494,16 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Updates a column in the current or insert row.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @param x the value
* @throws SQLException if the result set is closed
*/
public
void
updateFloat
(
String
column
Name
,
float
x
)
throws
SQLException
{
public
void
updateFloat
(
String
column
Label
,
float
x
)
throws
SQLException
{
try
{
if
(
isDebugEnabled
())
{
debugCode
(
"updateFloat("
+
quote
(
column
Name
)+
", "
+
x
+
"f);"
);
debugCode
(
"updateFloat("
+
quote
(
column
Label
)+
", "
+
x
+
"f);"
);
}
update
(
column
Name
,
ValueFloat
.
get
(
x
));
update
(
column
Label
,
ValueFloat
.
get
(
x
));
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -1530,16 +1530,16 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Updates a column in the current or insert row.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @param x the value
* @throws SQLException if the result set is closed
*/
public
void
updateDouble
(
String
column
Name
,
double
x
)
throws
SQLException
{
public
void
updateDouble
(
String
column
Label
,
double
x
)
throws
SQLException
{
try
{
if
(
isDebugEnabled
())
{
debugCode
(
"updateDouble("
+
quote
(
column
Name
)+
", "
+
x
+
"d);"
);
debugCode
(
"updateDouble("
+
quote
(
column
Label
)+
", "
+
x
+
"d);"
);
}
update
(
column
Name
,
ValueDouble
.
get
(
x
));
update
(
column
Label
,
ValueDouble
.
get
(
x
));
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -1566,16 +1566,16 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Updates a column in the current or insert row.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @param x the value
* @throws SQLException if the result set is closed
*/
public
void
updateBigDecimal
(
String
column
Name
,
BigDecimal
x
)
throws
SQLException
{
public
void
updateBigDecimal
(
String
column
Label
,
BigDecimal
x
)
throws
SQLException
{
try
{
if
(
isDebugEnabled
())
{
debugCode
(
"updateBigDecimal("
+
quote
(
column
Name
)+
", "
+
quoteBigDecimal
(
x
)
+
");"
);
debugCode
(
"updateBigDecimal("
+
quote
(
column
Label
)+
", "
+
quoteBigDecimal
(
x
)
+
");"
);
}
update
(
column
Name
,
x
==
null
?
(
Value
)
ValueNull
.
INSTANCE
:
ValueDecimal
.
get
(
x
));
update
(
column
Label
,
x
==
null
?
(
Value
)
ValueNull
.
INSTANCE
:
ValueDecimal
.
get
(
x
));
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -1602,16 +1602,16 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Updates a column in the current or insert row.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @param x the value
* @throws SQLException if the result set is closed
*/
public
void
updateString
(
String
column
Name
,
String
x
)
throws
SQLException
{
public
void
updateString
(
String
column
Label
,
String
x
)
throws
SQLException
{
try
{
if
(
isDebugEnabled
())
{
debugCode
(
"updateString("
+
quote
(
column
Name
)+
", "
+
quote
(
x
)+
");"
);
debugCode
(
"updateString("
+
quote
(
column
Label
)+
", "
+
quote
(
x
)+
");"
);
}
update
(
column
Name
,
x
==
null
?
(
Value
)
ValueNull
.
INSTANCE
:
ValueString
.
get
(
x
));
update
(
column
Label
,
x
==
null
?
(
Value
)
ValueNull
.
INSTANCE
:
ValueString
.
get
(
x
));
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -1638,16 +1638,16 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Updates a column in the current or insert row.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @param x the value
* @throws SQLException if the result set is closed
*/
public
void
updateDate
(
String
column
Name
,
Date
x
)
throws
SQLException
{
public
void
updateDate
(
String
column
Label
,
Date
x
)
throws
SQLException
{
try
{
if
(
isDebugEnabled
())
{
debugCode
(
"updateDate("
+
quote
(
column
Name
)+
", x);"
);
debugCode
(
"updateDate("
+
quote
(
column
Label
)+
", x);"
);
}
update
(
column
Name
,
x
==
null
?
(
Value
)
ValueNull
.
INSTANCE
:
ValueDate
.
get
(
x
));
update
(
column
Label
,
x
==
null
?
(
Value
)
ValueNull
.
INSTANCE
:
ValueDate
.
get
(
x
));
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -1674,16 +1674,16 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Updates a column in the current or insert row.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @param x the value
* @throws SQLException if the result set is closed
*/
public
void
updateTime
(
String
column
Name
,
Time
x
)
throws
SQLException
{
public
void
updateTime
(
String
column
Label
,
Time
x
)
throws
SQLException
{
try
{
if
(
isDebugEnabled
())
{
debugCode
(
"updateTime("
+
quote
(
column
Name
)+
", x);"
);
debugCode
(
"updateTime("
+
quote
(
column
Label
)+
", x);"
);
}
update
(
column
Name
,
x
==
null
?
(
Value
)
ValueNull
.
INSTANCE
:
ValueTime
.
get
(
x
));
update
(
column
Label
,
x
==
null
?
(
Value
)
ValueNull
.
INSTANCE
:
ValueTime
.
get
(
x
));
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -1710,16 +1710,16 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Updates a column in the current or insert row.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @param x the value
* @throws SQLException if the result set is closed
*/
public
void
updateTimestamp
(
String
column
Name
,
Timestamp
x
)
throws
SQLException
{
public
void
updateTimestamp
(
String
column
Label
,
Timestamp
x
)
throws
SQLException
{
try
{
if
(
isDebugEnabled
())
{
debugCode
(
"updateTimestamp("
+
quote
(
column
Name
)+
", x);"
);
debugCode
(
"updateTimestamp("
+
quote
(
column
Label
)+
", x);"
);
}
update
(
column
Name
,
x
==
null
?
(
Value
)
ValueNull
.
INSTANCE
:
ValueTimestamp
.
get
(
x
));
update
(
column
Label
,
x
==
null
?
(
Value
)
ValueNull
.
INSTANCE
:
ValueTimestamp
.
get
(
x
));
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -1772,42 +1772,42 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Updates a column in the current or insert row.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @param x the value
* @param length the number of characters
* @throws SQLException if the result set is closed
*/
public
void
updateAsciiStream
(
String
column
Name
,
InputStream
x
,
int
length
)
throws
SQLException
{
updateAsciiStream
(
column
Name
,
x
,
(
long
)
length
);
public
void
updateAsciiStream
(
String
column
Label
,
InputStream
x
,
int
length
)
throws
SQLException
{
updateAsciiStream
(
column
Label
,
x
,
(
long
)
length
);
}
/**
* Updates a column in the current or insert row.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @param x the value
* @throws SQLException if the result set is closed
*/
public
void
updateAsciiStream
(
String
column
Name
,
InputStream
x
)
throws
SQLException
{
updateAsciiStream
(
column
Name
,
x
,
-
1
);
public
void
updateAsciiStream
(
String
column
Label
,
InputStream
x
)
throws
SQLException
{
updateAsciiStream
(
column
Label
,
x
,
-
1
);
}
/**
* Updates a column in the current or insert row.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @param x the value
* @param length the number of characters
* @throws SQLException if the result set is closed
*/
public
void
updateAsciiStream
(
String
column
Name
,
InputStream
x
,
long
length
)
throws
SQLException
{
public
void
updateAsciiStream
(
String
column
Label
,
InputStream
x
,
long
length
)
throws
SQLException
{
try
{
if
(
isDebugEnabled
())
{
debugCode
(
"updateAsciiStream("
+
quote
(
column
Name
)+
", x, "
+
length
+
"L);"
);
debugCode
(
"updateAsciiStream("
+
quote
(
column
Label
)+
", x, "
+
length
+
"L);"
);
}
checkClosed
();
Value
v
=
conn
.
createClob
(
IOUtils
.
getAsciiReader
(
x
),
length
);
update
(
column
Name
,
v
);
update
(
column
Label
,
v
);
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -1860,42 +1860,42 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Updates a column in the current or insert row.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @param x the value
* @throws SQLException if the result set is closed
*/
public
void
updateBinaryStream
(
String
column
Name
,
InputStream
x
)
throws
SQLException
{
updateBinaryStream
(
column
Name
,
x
,
-
1
);
public
void
updateBinaryStream
(
String
column
Label
,
InputStream
x
)
throws
SQLException
{
updateBinaryStream
(
column
Label
,
x
,
-
1
);
}
/**
* Updates a column in the current or insert row.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @param x the value
* @param length the number of characters
* @throws SQLException if the result set is closed
*/
public
void
updateBinaryStream
(
String
column
Name
,
InputStream
x
,
int
length
)
throws
SQLException
{
updateBinaryStream
(
column
Name
,
x
,
(
long
)
length
);
public
void
updateBinaryStream
(
String
column
Label
,
InputStream
x
,
int
length
)
throws
SQLException
{
updateBinaryStream
(
column
Label
,
x
,
(
long
)
length
);
}
/**
* Updates a column in the current or insert row.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @param x the value
* @param length the number of characters
* @throws SQLException if the result set is closed
*/
public
void
updateBinaryStream
(
String
column
Name
,
InputStream
x
,
long
length
)
throws
SQLException
{
public
void
updateBinaryStream
(
String
column
Label
,
InputStream
x
,
long
length
)
throws
SQLException
{
try
{
if
(
isDebugEnabled
())
{
debugCode
(
"updateBinaryStream("
+
quote
(
column
Name
)+
", x, "
+
length
+
"L);"
);
debugCode
(
"updateBinaryStream("
+
quote
(
column
Label
)+
", x, "
+
length
+
"L);"
);
}
checkClosed
();
Value
v
=
conn
.
createBlob
(
x
,
length
);
update
(
column
Name
,
v
);
update
(
column
Label
,
v
);
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -1948,42 +1948,42 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Updates a column in the current or insert row.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @param x the value
* @param length the number of characters
* @throws SQLException if the result set is closed
*/
public
void
updateCharacterStream
(
String
column
Name
,
Reader
x
,
int
length
)
throws
SQLException
{
updateCharacterStream
(
column
Name
,
x
,
(
long
)
length
);
public
void
updateCharacterStream
(
String
column
Label
,
Reader
x
,
int
length
)
throws
SQLException
{
updateCharacterStream
(
column
Label
,
x
,
(
long
)
length
);
}
/**
* Updates a column in the current or insert row.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @param x the value
* @throws SQLException if the result set is closed
*/
public
void
updateCharacterStream
(
String
column
Name
,
Reader
x
)
throws
SQLException
{
updateCharacterStream
(
column
Name
,
x
,
-
1
);
public
void
updateCharacterStream
(
String
column
Label
,
Reader
x
)
throws
SQLException
{
updateCharacterStream
(
column
Label
,
x
,
-
1
);
}
/**
* Updates a column in the current or insert row.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @param x the value
* @param length the number of characters
* @throws SQLException if the result set is closed
*/
public
void
updateCharacterStream
(
String
column
Name
,
Reader
x
,
long
length
)
throws
SQLException
{
public
void
updateCharacterStream
(
String
column
Label
,
Reader
x
,
long
length
)
throws
SQLException
{
try
{
if
(
isDebugEnabled
())
{
debugCode
(
"updateCharacterStream("
+
quote
(
column
Name
)+
", x, "
+
length
+
"L);"
);
debugCode
(
"updateCharacterStream("
+
quote
(
column
Label
)+
", x, "
+
length
+
"L);"
);
}
checkClosed
();
Value
v
=
conn
.
createClob
(
x
,
length
);
update
(
column
Name
,
v
);
update
(
column
Label
,
v
);
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -2013,17 +2013,17 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Updates a column in the current or insert row.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @param x the value
* @param scale is ignored
* @throws SQLException if the result set is closed
*/
public
void
updateObject
(
String
column
Name
,
Object
x
,
int
scale
)
throws
SQLException
{
public
void
updateObject
(
String
column
Label
,
Object
x
,
int
scale
)
throws
SQLException
{
try
{
if
(
isDebugEnabled
())
{
debugCode
(
"updateObject("
+
quote
(
column
Name
)+
", x, "
+
scale
+
");"
);
debugCode
(
"updateObject("
+
quote
(
column
Label
)+
", x, "
+
scale
+
");"
);
}
update
(
column
Name
,
convertToUnknownValue
(
x
));
update
(
column
Label
,
convertToUnknownValue
(
x
));
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -2050,16 +2050,16 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Updates a column in the current or insert row.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @param x the value
* @throws SQLException if the result set is closed
*/
public
void
updateObject
(
String
column
Name
,
Object
x
)
throws
SQLException
{
public
void
updateObject
(
String
column
Label
,
Object
x
)
throws
SQLException
{
try
{
if
(
isDebugEnabled
())
{
debugCode
(
"updateObject("
+
quote
(
column
Name
)+
", x);"
);
debugCode
(
"updateObject("
+
quote
(
column
Label
)+
", x);"
);
}
update
(
column
Name
,
convertToUnknownValue
(
x
));
update
(
column
Label
,
convertToUnknownValue
(
x
));
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -2082,10 +2082,10 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* [Not supported]
*/
public
void
updateRef
(
String
column
Name
,
Ref
x
)
throws
SQLException
{
public
void
updateRef
(
String
column
Label
,
Ref
x
)
throws
SQLException
{
try
{
if
(
isDebugEnabled
())
{
debugCode
(
"updateRef("
+
quote
(
column
Name
)+
", x);"
);
debugCode
(
"updateRef("
+
quote
(
column
Label
)+
", x);"
);
}
throw
Message
.
getUnsupportedException
(
"ref"
);
}
catch
(
Exception
e
)
{
...
...
@@ -2153,14 +2153,14 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Updates a column in the current or insert row.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @param x the value
* @throws SQLException if the result set is closed
*/
public
void
updateBlob
(
String
column
Name
,
Blob
x
)
throws
SQLException
{
public
void
updateBlob
(
String
column
Label
,
Blob
x
)
throws
SQLException
{
try
{
if
(
isDebugEnabled
())
{
debugCode
(
"updateBlob("
+
quote
(
column
Name
)+
", x);"
);
debugCode
(
"updateBlob("
+
quote
(
column
Label
)+
", x);"
);
}
checkClosed
();
Value
v
;
...
...
@@ -2169,7 +2169,7 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
}
else
{
v
=
conn
.
createBlob
(
x
.
getBinaryStream
(),
-
1
);
}
update
(
column
Name
,
v
);
update
(
column
Label
,
v
);
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -2178,30 +2178,30 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Updates a column in the current or insert row.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @param x the value
* @throws SQLException if the result set is closed
*/
public
void
updateBlob
(
String
column
Name
,
InputStream
x
)
throws
SQLException
{
updateBlob
(
column
Name
,
x
,
-
1
);
public
void
updateBlob
(
String
column
Label
,
InputStream
x
)
throws
SQLException
{
updateBlob
(
column
Label
,
x
,
-
1
);
}
/**
* Updates a column in the current or insert row.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @param x the value
* @param length the length
* @throws SQLException if the result set is closed
*/
public
void
updateBlob
(
String
column
Name
,
InputStream
x
,
long
length
)
throws
SQLException
{
public
void
updateBlob
(
String
column
Label
,
InputStream
x
,
long
length
)
throws
SQLException
{
try
{
if
(
isDebugEnabled
())
{
debugCode
(
"updateBlob("
+
quote
(
column
Name
)+
", x, "
+
length
+
"L);"
);
debugCode
(
"updateBlob("
+
quote
(
column
Label
)+
", x, "
+
length
+
"L);"
);
}
checkClosed
();
Value
v
=
conn
.
createBlob
(
x
,
-
1
);
update
(
column
Name
,
v
);
update
(
column
Label
,
v
);
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -2267,14 +2267,14 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Updates a column in the current or insert row.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @param x the value
* @throws SQLException if the result set is closed
*/
public
void
updateClob
(
String
column
Name
,
Clob
x
)
throws
SQLException
{
public
void
updateClob
(
String
column
Label
,
Clob
x
)
throws
SQLException
{
try
{
if
(
isDebugEnabled
())
{
debugCode
(
"updateClob("
+
quote
(
column
Name
)+
", x);"
);
debugCode
(
"updateClob("
+
quote
(
column
Label
)+
", x);"
);
}
checkClosed
();
Value
v
;
...
...
@@ -2283,7 +2283,7 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
}
else
{
v
=
conn
.
createClob
(
x
.
getCharacterStream
(),
-
1
);
}
update
(
column
Name
,
v
);
update
(
column
Label
,
v
);
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -2292,30 +2292,30 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Updates a column in the current or insert row.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @param x the value
* @throws SQLException if the result set is closed
*/
public
void
updateClob
(
String
column
Name
,
Reader
x
)
throws
SQLException
{
updateClob
(
column
Name
,
x
,
-
1
);
public
void
updateClob
(
String
column
Label
,
Reader
x
)
throws
SQLException
{
updateClob
(
column
Label
,
x
,
-
1
);
}
/**
* Updates a column in the current or insert row.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @param x the value
* @param length the length
* @throws SQLException if the result set is closed
*/
public
void
updateClob
(
String
column
Name
,
Reader
x
,
long
length
)
throws
SQLException
{
public
void
updateClob
(
String
column
Label
,
Reader
x
,
long
length
)
throws
SQLException
{
try
{
if
(
isDebugEnabled
())
{
debugCode
(
"updateClob("
+
quote
(
column
Name
)+
", x, "
+
length
+
"L);"
);
debugCode
(
"updateClob("
+
quote
(
column
Label
)+
", x, "
+
length
+
"L);"
);
}
checkClosed
();
Value
v
=
conn
.
createClob
(
x
,
length
);
update
(
column
Name
,
v
);
update
(
column
Label
,
v
);
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -2338,10 +2338,10 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* [Not supported]
*/
public
void
updateArray
(
String
column
Name
,
Array
x
)
throws
SQLException
{
public
void
updateArray
(
String
column
Label
,
Array
x
)
throws
SQLException
{
try
{
if
(
isDebugEnabled
())
{
debugCode
(
"updateArray("
+
quote
(
column
Name
)+
", x);"
);
debugCode
(
"updateArray("
+
quote
(
column
Label
)+
", x);"
);
}
throw
Message
.
getUnsupportedException
(
"setArray"
);
}
catch
(
Exception
e
)
{
...
...
@@ -2916,52 +2916,64 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
return
row
;
}
private
int
getColumnIndex
(
String
column
Name
)
throws
SQLException
{
private
int
getColumnIndex
(
String
column
Label
)
throws
SQLException
{
checkClosed
();
if
(
column
Name
==
null
)
{
throw
Message
.
getInvalidValueException
(
"column
Name
"
,
null
);
if
(
column
Label
==
null
)
{
throw
Message
.
getInvalidValueException
(
"column
Label
"
,
null
);
}
if
(
columnCount
>=
SysProperties
.
MIN_COLUMN_NAME_MAP
)
{
if
(
column
Name
Map
==
null
)
{
if
(
column
Label
Map
==
null
)
{
HashMap
map
=
new
HashMap
(
columnCount
);
// first column names
for
(
int
i
=
0
;
i
<
columnCount
;
i
++)
{
String
c
=
result
.
getAlias
(
i
).
toUpperCase
();
map
.
put
(
c
,
ObjectUtils
.
getInteger
(
i
));
String
tabName
=
result
.
getTableName
(
i
);
if
(
tabName
!=
null
)
{
String
colName
=
result
.
getColumnName
(
i
);
if
(
colName
!=
null
)
{
c
=
tabName
+
"."
+
colName
;
if
(!
map
.
containsKey
(
c
))
{
map
.
put
(
c
,
ObjectUtils
.
getInteger
(
i
));
}
String
colName
=
result
.
getColumnName
(
i
);
if
(
colName
!=
null
)
{
colName
=
colName
.
toUpperCase
();
map
.
put
(
colName
,
ObjectUtils
.
getInteger
(
i
));
String
tabName
=
result
.
getTableName
(
i
);
if
(
tabName
!=
null
)
{
colName
=
tabName
.
toUpperCase
()
+
"."
+
colName
;
map
.
put
(
colName
,
ObjectUtils
.
getInteger
(
i
));
}
}
}
columnNameMap
=
map
;
// column labels have higher priority
// column names with the same name are replaced
for
(
int
i
=
0
;
i
<
columnCount
;
i
++)
{
String
c
=
result
.
getAlias
(
i
).
toUpperCase
();
map
.
put
(
c
,
ObjectUtils
.
getInteger
(
i
));
}
// assign at the end so concurrent access is supported
columnLabelMap
=
map
;
}
Integer
index
=
(
Integer
)
column
NameMap
.
get
(
columnName
.
toUpperCase
());
Integer
index
=
(
Integer
)
column
LabelMap
.
get
(
columnLabel
.
toUpperCase
());
if
(
index
==
null
)
{
throw
Message
.
getSQLException
(
ErrorCode
.
COLUMN_NOT_FOUND_1
,
column
Name
);
throw
Message
.
getSQLException
(
ErrorCode
.
COLUMN_NOT_FOUND_1
,
column
Label
);
}
return
index
.
intValue
()
+
1
;
}
for
(
int
i
=
0
;
i
<
columnCount
;
i
++)
{
if
(
column
Name
.
equalsIgnoreCase
(
result
.
getAlias
(
i
)))
{
if
(
column
Label
.
equalsIgnoreCase
(
result
.
getAlias
(
i
)))
{
return
i
+
1
;
}
}
int
idx
=
column
Name
.
indexOf
(
'.'
);
int
idx
=
column
Label
.
indexOf
(
'.'
);
if
(
idx
>
0
)
{
String
table
=
column
Name
.
substring
(
0
,
idx
);
String
col
=
column
Name
.
substring
(
idx
+
1
);
String
table
=
column
Label
.
substring
(
0
,
idx
);
String
col
=
column
Label
.
substring
(
idx
+
1
);
for
(
int
i
=
0
;
i
<
columnCount
;
i
++)
{
if
(
table
.
equalsIgnoreCase
(
result
.
getTableName
(
i
))
&&
col
.
equalsIgnoreCase
(
result
.
getColumnName
(
i
)))
{
return
i
+
1
;
}
}
}
else
{
for
(
int
i
=
0
;
i
<
columnCount
;
i
++)
{
if
(
columnLabel
.
equalsIgnoreCase
(
result
.
getColumnName
(
i
)))
{
return
i
+
1
;
}
}
}
throw
Message
.
getSQLException
(
ErrorCode
.
COLUMN_NOT_FOUND_1
,
column
Name
);
throw
Message
.
getSQLException
(
ErrorCode
.
COLUMN_NOT_FOUND_1
,
column
Label
);
}
private
void
checkColumnIndex
(
int
columnIndex
)
throws
SQLException
{
...
...
@@ -3011,13 +3023,13 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
return
value
;
}
private
Value
get
(
String
column
Name
)
throws
SQLException
{
int
columnIndex
=
getColumnIndex
(
column
Name
);
private
Value
get
(
String
column
Label
)
throws
SQLException
{
int
columnIndex
=
getColumnIndex
(
column
Label
);
return
get
(
columnIndex
);
}
private
void
update
(
String
column
Name
,
Value
v
)
throws
SQLException
{
int
columnIndex
=
getColumnIndex
(
column
Name
);
private
void
update
(
String
column
Label
,
Value
v
)
throws
SQLException
{
int
columnIndex
=
getColumnIndex
(
column
Label
);
update
(
columnIndex
,
v
);
}
...
...
@@ -3062,10 +3074,10 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* [Not supported] Returns the value of the specified column as a row id.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
*/
/*## Java 1.6 begin ##
public RowId getRowId(String column
Name
) throws SQLException {
public RowId getRowId(String column
Label
) throws SQLException {
throw Message.getUnsupportedException("rowId");
}
## Java 1.6 end ##*/
...
...
@@ -3085,11 +3097,11 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* [Not supported] Updates a column in the current or insert row.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @param x the value
*/
/*## Java 1.6 begin ##
public void updateRowId(String column
Name
, RowId x) throws SQLException {
public void updateRowId(String column
Label
, RowId x) throws SQLException {
throw Message.getUnsupportedException("rowId");
}
## Java 1.6 end ##*/
...
...
@@ -3145,16 +3157,16 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Updates a column in the current or insert row.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @param x the value
* @throws SQLException if the result set is closed
*/
public
void
updateNString
(
String
column
Name
,
String
x
)
throws
SQLException
{
public
void
updateNString
(
String
column
Label
,
String
x
)
throws
SQLException
{
try
{
if
(
isDebugEnabled
())
{
debugCode
(
"updateNString("
+
quote
(
column
Name
)+
", "
+
quote
(
x
)+
");"
);
debugCode
(
"updateNString("
+
quote
(
column
Label
)+
", "
+
quote
(
x
)+
");"
);
}
update
(
column
Name
,
x
==
null
?
(
Value
)
ValueNull
.
INSTANCE
:
ValueString
.
get
(
x
));
update
(
column
Label
,
x
==
null
?
(
Value
)
ValueNull
.
INSTANCE
:
ValueString
.
get
(
x
));
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -3213,11 +3225,11 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
* [Not supported]
*/
/*## Java 1.6 begin ##
public void updateNClob(String column
Name
, Reader x)
public void updateNClob(String column
Label
, Reader x)
throws SQLException {
try {
if (isDebugEnabled()) {
debugCode("updateNClob("+quote(column
Name
)+", x);");
debugCode("updateNClob("+quote(column
Label
)+", x);");
}
throw Message.getUnsupportedException("NClob");
} catch (Exception e) {
...
...
@@ -3230,11 +3242,11 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
* [Not supported]
*/
/*## Java 1.6 begin ##
public void updateNClob(String column
Name
, Reader x, long length)
public void updateNClob(String column
Label
, Reader x, long length)
throws SQLException {
try {
if (isDebugEnabled()) {
debugCode("updateNClob("+quote(column
Name
)+", x, " + length+"L);");
debugCode("updateNClob("+quote(column
Label
)+", x, " + length+"L);");
}
throw Message.getUnsupportedException("NClob");
} catch (Exception e) {
...
...
@@ -3247,10 +3259,10 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
* [Not supported]
*/
/*## Java 1.6 begin ##
public void updateNClob(String column
Name
, NClob x) throws SQLException {
public void updateNClob(String column
Label
, NClob x) throws SQLException {
try {
if (isDebugEnabled()) {
debugCode("updateNClob("+quote(column
Name
)+", x);");
debugCode("updateNClob("+quote(column
Label
)+", x);");
}
throw Message.getUnsupportedException("NClob");
} catch (Exception e) {
...
...
@@ -3283,16 +3295,16 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Returns the value of the specified column as a Clob.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @return the value
* @throws SQLException if the column is not found or if the result set is closed
*/
/*## Java 1.6 begin ##
public NClob getNClob(String column
Name
) throws SQLException {
public NClob getNClob(String column
Label
) throws SQLException {
try {
int id = getNextId(TraceObject.CLOB);
debugCodeAssign("NClob", TraceObject.CLOB, id, "getNClob(" + column
Name
+ ")");
Value v = get(column
Name
);
debugCodeAssign("NClob", TraceObject.CLOB, id, "getNClob(" + column
Label
+ ")");
Value v = get(column
Label
);
return v == ValueNull.INSTANCE ? null : new JdbcClob(conn, v, id);
} catch (Exception e) {
throw logAndConvert(e);
...
...
@@ -3313,7 +3325,7 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
* [Not supported] Returns the value of the specified column as a SQLXML object.
*/
/*## Java 1.6 begin ##
public SQLXML getSQLXML(String column
Name
) throws SQLException {
public SQLXML getSQLXML(String column
Label
) throws SQLException {
throw Message.getUnsupportedException("SQLXML");
}
## Java 1.6 end ##*/
...
...
@@ -3332,7 +3344,7 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
* [Not supported] Updates a column in the current or insert row.
*/
/*## Java 1.6 begin ##
public void updateSQLXML(String column
Name
, SQLXML xmlObject)
public void updateSQLXML(String column
Label
, SQLXML xmlObject)
throws SQLException {
throw Message.getUnsupportedException("SQLXML");
}
...
...
@@ -3358,15 +3370,15 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Returns the value of the specified column as a String.
*
* @param column
Name the column name
* @param column
Label the column label
* @return the value
* @throws SQLException if the column is not found or if the result set is
* closed
*/
public
String
getNString
(
String
column
Name
)
throws
SQLException
{
public
String
getNString
(
String
column
Label
)
throws
SQLException
{
try
{
debugCodeCall
(
"getNString"
,
column
Name
);
return
get
(
column
Name
).
getString
();
debugCodeCall
(
"getNString"
,
column
Label
);
return
get
(
column
Label
).
getString
();
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -3392,15 +3404,15 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Returns the value of the specified column as input stream.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @return the value
* @throws SQLException if the column is not found or if the result set is
* closed
*/
public
Reader
getNCharacterStream
(
String
column
Name
)
throws
SQLException
{
public
Reader
getNCharacterStream
(
String
column
Label
)
throws
SQLException
{
try
{
debugCodeCall
(
"getNCharacterStream"
,
column
Name
);
return
get
(
column
Name
).
getReader
();
debugCodeCall
(
"getNCharacterStream"
,
column
Label
);
return
get
(
column
Label
).
getReader
();
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
@@ -3441,30 +3453,30 @@ public class JdbcResultSet extends TraceObject implements ResultSet {
/**
* Updates a column in the current or insert row.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @param x the value
* @throws SQLException if the result set is closed
*/
public
void
updateNCharacterStream
(
String
column
Name
,
Reader
x
)
throws
SQLException
{
updateNCharacterStream
(
column
Name
,
x
,
-
1
);
public
void
updateNCharacterStream
(
String
column
Label
,
Reader
x
)
throws
SQLException
{
updateNCharacterStream
(
column
Label
,
x
,
-
1
);
}
/**
* Updates a column in the current or insert row.
*
* @param column
Name the name of
the column label
* @param column
Label
the column label
* @param x the value
* @param length the number of characters
* @throws SQLException if the result set is closed
*/
public
void
updateNCharacterStream
(
String
column
Name
,
Reader
x
,
long
length
)
throws
SQLException
{
public
void
updateNCharacterStream
(
String
column
Label
,
Reader
x
,
long
length
)
throws
SQLException
{
try
{
if
(
isDebugEnabled
())
{
debugCode
(
"updateNCharacterStream("
+
quote
(
column
Name
)+
", x, "
+
length
+
"L);"
);
debugCode
(
"updateNCharacterStream("
+
quote
(
column
Label
)+
", x, "
+
length
+
"L);"
);
}
checkClosed
();
Value
v
=
conn
.
createClob
(
x
,
length
);
update
(
column
Name
,
v
);
update
(
column
Label
,
v
);
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
...
...
h2/src/test/org/h2/test/jdbc/TestResultSet.java
浏览文件 @
eeb08de1
...
...
@@ -52,12 +52,14 @@ public class TestResultSet extends TestBase {
stat
=
conn
.
createStatement
();
testSubstringPrecision
();
testSubstringDataType
();
testColumnLabelColumnName
();
testAbsolute
();
testFetchSize
();
testOwnUpdates
();
testUpdatePrimaryKey
();
testFindColumn
();
testSubstringPrecision
();
testColumnLength
();
testArray
();
testLimitMaxRows
();
...
...
@@ -82,6 +84,33 @@ public class TestResultSet extends TestBase {
}
private
void
testSubstringDataType
()
throws
SQLException
{
ResultSet
rs
=
stat
.
executeQuery
(
"select substr(x, 1, 1) from dual"
);
rs
.
next
();
assertEquals
(
Types
.
VARCHAR
,
rs
.
getMetaData
().
getColumnType
(
1
));
}
private
void
testColumnLabelColumnName
()
throws
SQLException
{
ResultSet
rs
=
stat
.
executeQuery
(
"select x as y from dual"
);
rs
.
next
();
rs
.
getString
(
"x"
);
rs
.
getString
(
"y"
);
rs
.
close
();
rs
=
conn
.
getMetaData
().
getColumns
(
null
,
null
,
null
,
null
);
ResultSetMetaData
meta
=
rs
.
getMetaData
();
int
columnCount
=
meta
.
getColumnCount
();
String
[]
columnName
=
new
String
[
columnCount
];
for
(
int
i
=
1
;
i
<=
columnCount
;
i
++)
{
// columnName[i - 1] = meta.getColumnLabel(i);
columnName
[
i
-
1
]
=
meta
.
getColumnName
(
i
);
}
while
(
rs
.
next
())
{
for
(
int
i
=
0
;
i
<
columnCount
;
i
++)
{
rs
.
getObject
(
columnName
[
i
]);
}
}
}
private
void
testAbsolute
()
throws
SQLException
{
// stat.execute("SET MAX_MEMORY_ROWS 90");
stat
.
execute
(
"CREATE TABLE TEST(ID INT PRIMARY KEY)"
);
...
...
@@ -155,10 +184,10 @@ public class TestResultSet extends TestBase {
trace
(
"testSubstringPrecision"
);
stat
.
execute
(
"CREATE TABLE TEST(ID INT, NAME VARCHAR(10))"
);
stat
.
execute
(
"INSERT INTO TEST VALUES(1, 'Hello'), (2, 'WorldPeace')"
);
checkPrecision
(
0
,
"SELECT SUBSTR(NAME, 12, 4) FROM TEST"
);
checkPrecision
(
9
,
"SELECT SUBSTR(NAME, 2) FROM TEST"
);
checkPrecision
(
10
,
"SELECT SUBSTR(NAME, ID) FROM TEST"
);
checkPrecision
(
4
,
"SELECT SUBSTR(NAME, 2, 4) FROM TEST"
);
checkPrecision
(
0
,
"SELECT SUBSTR(NAME, 12, 4) FROM TEST"
);
checkPrecision
(
3
,
"SELECT SUBSTR(NAME, 8, 4) FROM TEST"
);
checkPrecision
(
4
,
"SELECT SUBSTR(NAME, 7, 4) FROM TEST"
);
checkPrecision
(
8
,
"SELECT SUBSTR(NAME, 3, ID*0) FROM TEST"
);
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论