private long handleCopyIn(Connection conn, ParametersContext context, String std) throws SQLException, IOException{
SqlParameterCollection sqlParameters = createSqlParameterCollection(context);
BaseConnection connection=conn.unwrap(BaseConnection.class);
AbstractJdbc<?> logConnection=conn.unwrap(AbstractJdbc.class);
Object input=sqlParameters.getInputStream();
CopyManager copyManager = new CopyManager(connection);
String sql=sqlParameters.getSql();
long start = System.currentTimeMillis();
long result=-1;
try{
if ("STDIN".equals(std)){
if (input instanceof Reader){
result= copyManager.copyIn(sql, (Reader)input);
}else if (input instanceof InputStream){
result= copyManager.copyIn(sql, (InputStream)input);
} else{
result= copyManager.copyIn(sql, System.in);
}
} else{
CopyIn copyIn=copyManager.copyIn(sql);
result=copyIn.getHandledRowCount();
}
JdbcLogUtils.info(logConnection, "rowCount="+result);
return result;
} finally{
long end = System.currentTimeMillis();
JdbcLogUtils.logSql(logConnection, sql, start, end);
}
}