QueryExecutorImpl类
V3 协议的 QueryExecutor 实现。
cancelCopy
功能描述
完成复制操作并解锁连接,丢弃任何交换的数据。
语法格式
public void cancelCopy(CopyOperationImpl op) throws SQLException
参数说明
op:可能当前在此连接上持有锁的复制操作。
返回值
无。
createFastpathParameters
功能描述
创建一个适合通过 QueryExecutor.fastpathCall(int, org.postgresql.core.ParameterList, boolean) 调用快速路径函数的新 ParameterList 实现。
语法格式
public ParameterList createFastpathParameters(int count)
参数说明
count:快速路径调用将采用的参数数量。
返回值
返回适合传递给 QueryExecutor.fastpathCall(int, org.postgresql.core.ParameterList, boolean) 的 ParameterList。
createSimpleQuery
功能描述
创建适合由此 QueryExecutor 执行的未参数化 Query 对象。 提供的查询字符串不会被解析为参数占位符('?' 字符),并且返回对象的 Query.createParameterList() ,将始终返回一个空的 ParameterList。
语法格式
public Query createSimpleQuery(String sql)
throws SQLException
参数说明
sql:要创建的查询的 SQL。
返回值
返回一个新的 Query 对象。
doSubprotocolBegin
功能描述
执行子协议开始。
语法格式
public void doSubprotocolBegin()
throws SQLException
参数说明
无。
返回值
无。
endCopy
功能描述
完成写入复制并解锁连接。
语法格式
public long endCopy(CopyOperationImpl op) throws SQLException
参数说明
op:可能当前在此连接上持有锁的复制操作。
返回值
返回更新的行数。
execute(Query[] queries, ParameterList[] parameterLists, BatchResultHandler batchHandler, int maxRows, int fetchSize, int flags)
功能描述
执行多个 Query,将结果传递给提供的 ResultHandler。
语法格式
public void execute(Query[] queries,
ParameterList[] parameterLists,
BatchResultHandler batchHandler,
int maxRows,
int fetchSize,
int flags)
throws SQLException
参数说明
queries:要执行的查询; 每个都必须是在此 QueryExecutor 对象上调用 QueryExecutor.wrap(List) 返回的查询。
parameterLists:查询的参数列表。 参数列表 1:1 对应于在查询数组中传递的查询。 如果相应的查询采用参数,则每个都必须为非空,并且必须是由相应查询创建的 Query.createParameterList() 返回的参数对象。
batchHandler:一个 ResultHandler 负责处理这个查询产生的结果。
maxRows:要检索的最大行数。
fetchSize:如果设置了 QUERY_FORWARD_CURSOR,则挂起前要检索的首选行数。
flags:指示如何处理查询的 QUERY_* 标志的组合。
返回值
无。
execute(Query query, ParameterList parameters, ResultHandler handler, int maxRows, int fetchSize, int flags)
功能描述
执行一个Query,将结果传递给提供的 ResultHandler。
语法格式
public void execute(Query query,
ParameterList parameters,
ResultHandler handler,
int maxRows,
int fetchSize,
int flags)
throws SQLException
参数说明
query:要执行的查询; 每个都必须是在此 QueryExecutor 对象上调用 QueryExecutor.wrap(List) 返回的查询。
parameters:查询的参数。 如果查询采用参数,则必须为非 null。 必须是 Query.createParameterList() 返回的参数对象。
handler:一个 ResultHandler 负责处理这个查询产生的结果。
maxRows:要检索的最大行数。
fetchSize:如果设置了 QUERY_FORWARD_CURSOR,则在挂起前要检索的首选行数。
flags:指示如何处理查询的 QUERY_* 标志的组合。
返回值
无。
executeBatch
功能描述
执行多个 Query,将结果传递给提供的 BatchResultHandler。
语法格式
public void executeBatch(Query[] queries,
ParameterList[] parameterLists,
BatchResultHandler batchHandler,
int maxRows,
int fetchSize,
int flags)
throws SQLException
参数说明
queries:要执行的查询; 每个都必须是在此 QueryExecutor 对象上调用 QueryExecutor.wrap(List) 返回的查询。
parameterLists:查询的参数列表。 参数列表 1:1 对应于在查询数组中传递的查询。 如果相应的查询采用参数,则每个都必须为非空,并且必须是由相应查询创建的 Query.createParameterList() 返回的参数对象。
batchHandler:一个 BatchResultHandler负责处理这个查询产生的结果。
maxRows:要检索的最大行数。
fetchSize:如果设置了 QUERY_FORWARD_CURSOR,则挂起前要检索的首选行数。
flags:指示如何处理查询的 QUERY_* 标志的组合。
返回值
无。
fastpathCall
功能描述
通过快速路径接口调用后端函数。
语法格式
public byte[] fastpathCall(int fnid,
ParameterList parameters,
boolean suppressBegin)
throws SQLException
参数说明
fnid:要调用的后端函数的 OID。
parameters:从 QueryExecutor.createFastpathParameters(int) 返回的 ParameterList 包含要传递给后端函数的参数。
suppressBegin:如果开始,则应该被抑制。
返回值
返回快速路径调用的格式结果,如果返回空结果,则为 null。
fetch
功能描述
从游标中获取其他行。
语法格式
public void fetch(ResultCursor cursor,
ResultHandler handler,
int fetchSize)
throws SQLException
参数说明
cursor:要从中获取的游标。
handler:将结果提供给的处理程序。
fetchSize:挂起前要检索的首选行数。
返回值
无。
flushCopy
功能描述
刷新copy缓存的数据。
语法格式
public void flushCopy(CopyOperationImpl op) throws SQLException
参数说明
op:可能当前在此连接上持有锁的复制操作。
返回值
无。
getApplicationName
功能描述
获取 application_name 连接属性。
语法格式
public String getApplicationName()
参数说明
无。
返回值
返回 application_name 连接属性。
getApplicationType
语法格式
public String getApplicationType()
说明
定义QueryExecutor接口的getApplicationType方法。
getCompatibilityMode
方法原型
public String getCompatibilityMode ()
说明
定义QueryExecutor接口的getCompatibilityMode方法。
生命周期
自V2.3版本启用。
getEnableOutparamOveride
方法原型
public String getEnableOutparamOveride ()
说明
定义QueryExecutor接口的getEnableOutparamOveride方法。
生命周期
自V2.3版本启用。
getGaussdbVersion
语法格式
public String getGaussdbVersion()
说明
定义:QueryExecutor接口的getGaussdbVersion方法。
getIntegerDateTimes
功能描述
如果服务器对二进制日期和时间编码使用整数而不是双精度,则返回 True。
语法格式
public boolean getIntegerDateTimes()
参数说明
无。
返回值
返回服务器 integer_datetime 设置。
getProtocolVersion
功能描述
获取协议的版本。
语法格式
public int getProtocolVersion()
参数说明
无。
返回值
返回协议的版本。
getReplicationProtocol
功能描述
获取此连接的 ReplicationProtocol 实例。
语法格式
public ReplicationProtocol getReplicationProtocol()
参数说明
无。
返回值
返回此连接的 ReplicationProtocol 实例。
getSocketAddress
语法格式
public String getSocketAddress()
说明
定义:QueryExecutor接口的getSocketAddress方法。
getTimeZone
功能描述
获取java 格式的后端时区。
语法格式
public TimeZone getTimeZone()
参数说明
无。
返回值
返回java 格式的后端时区。
processNotifies()
功能描述
在尝试检索通知之前,我们需要从网络缓冲区中提取任何最近收到的通知。 ProtocolConnection 中的通知检索无法做到这一点,因为它容易出现死锁,因此必须由更高级别的调用者负责,这需要公开此方法。
语法格式
public void processNotifies() throws SQLException
参数说明
无。
返回值
无。
processNotifies(int timeoutMillis)
功能描述
在尝试检索通知之前,我们需要从网络缓冲区中提取任何最近收到的通知。 ProtocolConnection 中的通知检索无法做到这一点,因为它容易出现死锁,因此必须由更高级别的调用者负责,这需要公开此方法。 此变体支持在给定时间内以毫秒为单位进行阻塞。
语法格式
public void processNotifies(int timeoutMillis) throws SQLException
参数说明
timeoutMillis:当> 0时,阻塞timeoutMillis时间,当=0时,永远阻塞,当< 0时,不阻塞。
返回值
无。
processResults
功能描述
处理结果。
语法格式
protected void processResults(ResultHandler handler,
int flags)
throws IOException
参数说明
handler:一个 ResultHandler 负责处理产生的结果。
flags:指示如何处理查询的 QUERY_* 标志的组合。
返回值
无。
说明
该方法不支持COPY操作。
readStartupMessages
功能描述
读取启动消息。
语法格式
public void readStartupMessages()
throws IOException,
SQLException
参数说明
无。
返回值
无。
receiveParameterStatus
功能描述
接收参数状态。
语法格式
public void receiveParameterStatus()
throws IOException,
SQLException
参数说明
无。
返回值
无。
sendCloseMessage
语法格式
protected void sendCloseMessage() throws IOException
说明
定义:QueryExecutorBase类的sendCloseMessage方法。
setApplicationName
功能描述
设置应用名称。
语法格式
public void setApplicationName(String applicationName)
参数说明
applicationName:应用名称。
返回值
无。
setApplicationType
功能描述
设置应用类型。
语法格式
public void setApplicationType(String applicationType)
参数说明
applicationType:应用类型。
返回值
无。
setBinaryReceiveOids
功能描述
设置应使用二进制编码接收的 oid。
定义:QueryExecutor接口的setBinarySendOids方法。
语法格式
public void setBinaryReceiveOids(Set<Integer> oids)
参数说明
oids:使用二进制编码请求的 oid。
返回值
无。
setBinarySendOids
功能描述
设置应使用二进制编码发送的 oid。
定义:QueryExecutor接口的setBinarySendOids方法。
语法格式
public void setBinarySendOids(Set<Integer> oids)
参数说明
oids:使用二进制编码发送的 oid。
返回值
无。
setCompatibilityMode
方法原型
public void setCompatibilityMode (String compatibilityMode)
说明
定义QueryExecutor接口的setCompatibilityMode方法。
生命周期
自V2.3版本启用。
setEnableOutparamOveride
方法原型
public void setEnableOutparamOveride (Boolean enableOutparamOveride)
说明
定义QueryExecutor接口的setEnableOutparamOveride方法。
生命周期
自V2.3版本启用。
setGaussdbVersion
语法格式
public void setGaussdbVersion(String gaussdbVersion)
说明
定义:QueryExecutor接口的setGaussdbVersion方法。
setProtocolVersion
语法格式
public void setProtocolVersion(int version)
说明
定义:QueryExecutor接口的setProtocolVersion方法。
setTimeZone
功能描述
设置时区。
语法格式
public void setTimeZone(TimeZone timeZone)
参数说明
timeZone:时区。
返回值
无。
startCopy
功能描述
向 BE 发送给定的语句以启动、初始化和锁定 CopyOperation 的连接。
定义:QueryExecutor接口的startCopy方法。
语法格式
public CopyOperation startCopy(String sql,
boolean suppressBegin)
throws SQLException
参数说明
sql:COPY FROM STDIN / COPY TO STDOUT 语句。
suppressBegin:如果开始,则应该被抑制。
返回值
返回CopyIn 或 CopyOut 操作对象。
useBinaryForReceive
功能描述
判断是否应该以二进制格式接收给定的 oid。
定义:TypeTransferModeRegistry接口的useBinaryForReceive方法。
语法格式
public boolean useBinaryForReceive(int oid)
参数说明
oid:类型 oid
返回值
如果应以二进制格式接收给定的 oid,则返回 True,否则为false。
useBinaryForSend
功能描述
判断给定的 oid 是否应该以二进制格式发送。
定义:TypeTransferModeRegistry接口的useBinaryForSend方法。
语法格式
public boolean useBinaryForSend(int oid)
参数说明
oid:类型 oid。
返回值
如果给定的 oid 应该以二进制格式发送,则返回 True,否则为false。
wrap
功能描述
将给定的本机查询包装成准备好执行的格式。
定义:QueryExecutor接口的wrap方法。
语法格式
public Query wrap(List<NativeQuery> queries)
参数说明
queries:数据库语法本机查询列表。
返回值
返回可供此查询执行器执行的查询对象。
writeToCopy
功能描述
在实时 COPY IN 操作期间发送数据。 仅当服务器突然返回 CommandComplete 时才解锁连接,这不应该发生。
语法格式
public void writeToCopy(CopyOperationImpl op,
byte[] data,
int off,
int siz)
throws SQLException
参数说明
op:CopyIn 操作可能当前持有此连接的锁定。
data:要发送的字节。
off:要发送的第一个字节的索引(通常为 0)。
siz:要发送的字节数(通常是 data.length)。
返回值
无。
startBulkload
功能描述
向后端发空指定查询,为BulkloadOperation初始化,并对当前连接加锁。
方法原型
public sychronized BulkloadOperation startBulkload( ResultHandler handler,
String sql,
Boolean suppresBegin,
int flags)
throws SQLException
参数说明
- handler:处理结果的回调。
- sql:输入的sql语句。
- suppressBegin:如果开始,应该被抑制。
- flags:1位表示是否使用BulkloadOperation。
返回值
BulkloadOperation对象
生命周期
自V2.2版本启用。
cancelBulkload
功能描述
结束bulkload操作,解锁连接,并丢弃所有已交换数据。
方法原型
public void canceltBulkload( BulkloadOperationImpl op)
throws SQLException
参数说明
op:当前持有锁的BulkloadOperation。
返回值
无。
生命周期
自V2.2版本启用。
endBulkload
功能描述
结束bulkload操作,解锁连接。
方法原型
public ResultSet endBulkload( BulkloadOperationImpl op)
throws SQLException
参数说明
op:当前持有锁的BulkloadOperation。
返回值
更新的行数。
生命周期
自V2.2版本启用。
writeToBulkload(byte[] data, int off, int siz)
功能描述
将给定字节数组的指定部分写入一个开放且可写的复制操作。
方法原型
void writeToBulkload(byte[] data,
int off,
int siz)
throws SQLException
参数说明
- data:要写入数组。
- off:写入的第一个字节的偏移量(通常为零)。
- siz:要写入的字节数(通常为buf.length)。
返回值
无。
生命周期
自V2.2版本启用。
flushBulkload
功能描述
强制将任何缓冲输出通过网络发送到后端。
方法原型
void flushBulkload()
throws SQLException
参数说明
无。
返回值
无。
生命周期
自V2.2版本启用。
其他
已实现的接口:QueryExecutor, TypeTransferModeRegistry。