VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

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。