diff --git a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/CatalogResultSet 2.java b/src/connector/jdbc/src/main/java/com/taosdata/jdbc/CatalogResultSet 2.java deleted file mode 100644 index 3a01e2e09297d6af1405c63200e2ba91b3fa99a2..0000000000000000000000000000000000000000 --- a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/CatalogResultSet 2.java +++ /dev/null @@ -1,68 +0,0 @@ -/*************************************************************************** - * Copyright (c) 2019 TAOS Data, Inc. - * - * This program is free software: you can use, redistribute, and/or modify - * it under the terms of the GNU Affero General Public License, version 3 - * or later ("AGPL"), as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - *****************************************************************************/ -package com.taosdata.jdbc; - -import java.sql.ResultSet; -import java.sql.SQLException; - -/* - * TDengine only supports a subset of the standard SQL, thus this implemetation of the - * standard JDBC API contains more or less some adjustments customized for certain - * compatibility needs. - */ -public class CatalogResultSet extends TSDBResultSetWrapper { - - - public CatalogResultSet(ResultSet resultSet) { - super.setOriginalResultSet(resultSet); - } - - @Override - public String getString(int columnIndex) throws SQLException { - if (columnIndex <= 1) { - return super.getString(columnIndex); - } else { - return null; - } - } - - @Override - public boolean getBoolean(int columnIndex) throws SQLException { - if (columnIndex <= 1) { - return super.getBoolean(columnIndex); - } else { - return false; - } - } - - @Override - public byte[] getBytes(int columnIndex) throws SQLException { - if (columnIndex <= 1) { - return super.getBytes(columnIndex); - } else { - return null; - } - } - - @Override - public Object getObject(int columnIndex) throws SQLException { - if (columnIndex <= 1) { - return super.getObject(columnIndex); - } else { - return null; - } - } - -} diff --git a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/ColumnMetaData 2.java b/src/connector/jdbc/src/main/java/com/taosdata/jdbc/ColumnMetaData 2.java deleted file mode 100644 index 5c7f80c715c12d1d3831a4cfbfe5f4a326b569eb..0000000000000000000000000000000000000000 --- a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/ColumnMetaData 2.java +++ /dev/null @@ -1,55 +0,0 @@ -/*************************************************************************** - * Copyright (c) 2019 TAOS Data, Inc. - * - * This program is free software: you can use, redistribute, and/or modify - * it under the terms of the GNU Affero General Public License, version 3 - * or later ("AGPL"), as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - *****************************************************************************/ -package com.taosdata.jdbc; - -public class ColumnMetaData { - - int colType = 0; - String colName = null; - int colSize = -1; - int colIndex = 0; - - public int getColSize() { - return colSize; - } - - public void setColSize(int colSize) { - this.colSize = colSize; - } - - public int getColType() { - return colType; - } - - public void setColType(int colType) { - this.colType = colType; - } - - public String getColName() { - return colName; - } - - public void setColName(String colName) { - this.colName = colName; - } - - public int getColIndex() { - return colIndex; - } - - public void setColIndex(int colIndex) { - this.colIndex = colIndex; - } -} diff --git a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/DatabaseMetaDataResultSet 2.java b/src/connector/jdbc/src/main/java/com/taosdata/jdbc/DatabaseMetaDataResultSet 2.java deleted file mode 100644 index 027d2197a32a6d36bb574c76d9672ed4d5d1d1c7..0000000000000000000000000000000000000000 --- a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/DatabaseMetaDataResultSet 2.java +++ /dev/null @@ -1,1057 +0,0 @@ -/*************************************************************************** - * Copyright (c) 2019 TAOS Data, Inc. - * - * This program is free software: you can use, redistribute, and/or modify - * it under the terms of the GNU Affero General Public License, version 3 - * or later ("AGPL"), as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - *****************************************************************************/ -package com.taosdata.jdbc; - -import java.io.InputStream; -import java.io.Reader; -import java.math.BigDecimal; -import java.net.URL; -import java.sql.*; -import java.sql.Date; -import java.util.*; - -/* - * TDengine only supports a subset of the standard SQL, thus this implemetation of the - * standard JDBC API contains more or less some adjustments customized for certain - * compatibility needs. - */ -public class DatabaseMetaDataResultSet implements ResultSet { - - private List columnMetaDataList; - private List rowDataList; - private TSDBResultSetRowData rowCursor; - - // position of cursor, starts from 0 as beforeFirst, increases as next() is called - private int cursorRowNumber = 0; - - public DatabaseMetaDataResultSet() { - rowDataList = new ArrayList(); - columnMetaDataList = new ArrayList(); - } - - public List getRowDataList() { - return rowDataList; - } - - public void setRowDataList(List rowDataList) { - this.rowDataList = rowDataList; - } - - public List getColumnMetaDataList() { - return columnMetaDataList; - } - - public void setColumnMetaDataList(List columnMetaDataList) { - this.columnMetaDataList = columnMetaDataList; - } - - public TSDBResultSetRowData getRowCursor() { - return rowCursor; - } - - public void setRowCursor(TSDBResultSetRowData rowCursor) { - this.rowCursor = rowCursor; - } - - @Override - public boolean next() throws SQLException { - boolean ret = false; - if (rowDataList.size() > 0) { - ret = rowDataList.iterator().hasNext(); - if (ret) { - rowCursor = rowDataList.iterator().next(); - cursorRowNumber++; - } - } - return ret; - } - - @Override - public void close() throws SQLException { - - } - - @Override - public boolean wasNull() throws SQLException { - return false; - } - - @Override - public String getString(int columnIndex) throws SQLException { - columnIndex--; - return rowCursor.getString(columnIndex, columnMetaDataList.get(columnIndex).getColType()); - } - - @Override - public boolean getBoolean(int columnIndex) throws SQLException { - columnIndex--; - return rowCursor.getBoolean(columnIndex, columnMetaDataList.get(columnIndex).getColType()); - } - - @Override - public byte getByte(int columnIndex) throws SQLException { - return (byte) rowCursor.getInt(columnIndex, columnMetaDataList.get(columnIndex).getColType()); - } - - @Override - public short getShort(int columnIndex) throws SQLException { - return (short) rowCursor.getInt(columnIndex, columnMetaDataList.get(columnIndex).getColType()); - } - - @Override - public int getInt(int columnIndex) throws SQLException { - return rowCursor.getInt(columnIndex, columnMetaDataList.get(columnIndex).getColType()); - } - - @Override - public long getLong(int columnIndex) throws SQLException { - return rowCursor.getLong(columnIndex, columnMetaDataList.get(columnIndex).getColType()); - } - - @Override - public float getFloat(int columnIndex) throws SQLException { - return rowCursor.getFloat(columnIndex, columnMetaDataList.get(columnIndex).getColType()); - } - - @Override - public double getDouble(int columnIndex) throws SQLException { - return rowCursor.getDouble(columnIndex, columnMetaDataList.get(columnIndex).getColType()); - } - - @Override - public BigDecimal getBigDecimal(int columnIndex, int scale) throws SQLException { - return new BigDecimal(rowCursor.getDouble(columnIndex, columnMetaDataList.get(columnIndex).getColType())); - } - - @Override - public byte[] getBytes(int columnIndex) throws SQLException { - return (rowCursor.getString(columnIndex, columnMetaDataList.get(columnIndex).getColType())).getBytes(); - } - - @Override - public Date getDate(int columnIndex) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public Time getTime(int columnIndex) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public Timestamp getTimestamp(int columnIndex) throws SQLException { - return rowCursor.getTimestamp(columnIndex); - } - - @Override - public InputStream getAsciiStream(int columnIndex) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public InputStream getUnicodeStream(int columnIndex) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public InputStream getBinaryStream(int columnIndex) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public String getString(String columnLabel) throws SQLException { - return getString(findColumn(columnLabel)); - } - - @Override - public boolean getBoolean(String columnLabel) throws SQLException { - return getBoolean(findColumn(columnLabel)); - } - - @Override - public byte getByte(String columnLabel) throws SQLException { - return getByte(findColumn(columnLabel)); - } - - @Override - public short getShort(String columnLabel) throws SQLException { - return getShort(findColumn(columnLabel)); - } - - @Override - public int getInt(String columnLabel) throws SQLException { - return getInt(findColumn(columnLabel)); - } - - @Override - public long getLong(String columnLabel) throws SQLException { - return getLong(findColumn(columnLabel)); - } - - @Override - public float getFloat(String columnLabel) throws SQLException { - return getFloat(findColumn(columnLabel)); - } - - @Override - public double getDouble(String columnLabel) throws SQLException { - return getDouble(findColumn(columnLabel)); - } - - @Override - public BigDecimal getBigDecimal(String columnLabel, int scale) throws SQLException { - return getBigDecimal(findColumn(columnLabel)); - } - - @Override - public byte[] getBytes(String columnLabel) throws SQLException { - return getBytes(findColumn(columnLabel)); - } - - @Override - public Date getDate(String columnLabel) throws SQLException { - return getDate(findColumn(columnLabel)); - } - - @Override - public Time getTime(String columnLabel) throws SQLException { - return getTime(findColumn(columnLabel)); - } - - @Override - public Timestamp getTimestamp(String columnLabel) throws SQLException { - return getTimestamp(findColumn(columnLabel)); - } - - @Override - public InputStream getAsciiStream(String columnLabel) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public InputStream getUnicodeStream(String columnLabel) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public InputStream getBinaryStream(String columnLabel) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public SQLWarning getWarnings() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void clearWarnings() throws SQLException { - - } - - @Override - public String getCursorName() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public ResultSetMetaData getMetaData() throws SQLException { - return new TSDBResultSetMetaData(this.columnMetaDataList); - } - - @Override - public Object getObject(int columnIndex) throws SQLException { - return rowCursor.get(columnIndex); - } - - @Override - public Object getObject(String columnLabel) throws SQLException { - return rowCursor.get(findColumn(columnLabel)); - } - - @Override - public int findColumn(String columnLabel) throws SQLException { - Iterator colMetaDataIt = this.columnMetaDataList.iterator(); - while (colMetaDataIt.hasNext()) { - ColumnMetaData colMetaData = colMetaDataIt.next(); - if (colMetaData.getColName() != null && colMetaData.getColName().equalsIgnoreCase(columnLabel)) { - return colMetaData.getColIndex() + 1; - } - } - throw new SQLException(TSDBConstants.INVALID_VARIABLES); - } - - @Override - public Reader getCharacterStream(int columnIndex) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public Reader getCharacterStream(String columnLabel) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public BigDecimal getBigDecimal(int columnIndex) throws SQLException { - return new BigDecimal(rowCursor.getDouble(columnIndex, columnMetaDataList.get(columnIndex).getColType())); - } - - @Override - public BigDecimal getBigDecimal(String columnLabel) throws SQLException { - return getBigDecimal(findColumn(columnLabel)); - } - - @Override - public boolean isBeforeFirst() throws SQLException { - return cursorRowNumber == 0; - } - - @Override - public boolean isAfterLast() throws SQLException { - return rowDataList.iterator().hasNext(); - } - - @Override - public boolean isFirst() throws SQLException { - return cursorRowNumber == 1; - } - - @Override - public boolean isLast() throws SQLException { - return cursorRowNumber == rowDataList.size(); - } - - @Override - public void beforeFirst() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void afterLast() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public boolean first() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public boolean last() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public int getRow() throws SQLException { - if (cursorRowNumber > 0 && cursorRowNumber <= rowDataList.size()) { - return cursorRowNumber; - } else { - return 0; - } - - } - - @Override - public boolean absolute(int row) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public boolean relative(int rows) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public boolean previous() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void setFetchDirection(int direction) throws SQLException { - - } - - @Override - public int getFetchDirection() throws SQLException { - return ResultSet.FETCH_FORWARD; - } - - @Override - public void setFetchSize(int rows) throws SQLException { - - } - - @Override - public int getFetchSize() throws SQLException { - return 0; - } - - @Override - public int getType() throws SQLException { - return ResultSet.TYPE_FORWARD_ONLY; - } - - @Override - public int getConcurrency() throws SQLException { - return ResultSet.CONCUR_READ_ONLY; - } - - @Override - public boolean rowUpdated() throws SQLException { - return false; - } - - @Override - public boolean rowInserted() throws SQLException { - return false; - } - - @Override - public boolean rowDeleted() throws SQLException { - return false; - } - - @Override - public void updateNull(int columnIndex) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateBoolean(int columnIndex, boolean x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateByte(int columnIndex, byte x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateShort(int columnIndex, short x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateInt(int columnIndex, int x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateLong(int columnIndex, long x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateFloat(int columnIndex, float x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateDouble(int columnIndex, double x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateBigDecimal(int columnIndex, BigDecimal x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateString(int columnIndex, String x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateBytes(int columnIndex, byte[] x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateDate(int columnIndex, Date x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateTime(int columnIndex, Time x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateTimestamp(int columnIndex, Timestamp x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateAsciiStream(int columnIndex, InputStream x, int length) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateBinaryStream(int columnIndex, InputStream x, int length) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateCharacterStream(int columnIndex, Reader x, int length) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateObject(int columnIndex, Object x, int scaleOrLength) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateObject(int columnIndex, Object x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateNull(String columnLabel) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateBoolean(String columnLabel, boolean x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateByte(String columnLabel, byte x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateShort(String columnLabel, short x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateInt(String columnLabel, int x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateLong(String columnLabel, long x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateFloat(String columnLabel, float x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateDouble(String columnLabel, double x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateBigDecimal(String columnLabel, BigDecimal x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateString(String columnLabel, String x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateBytes(String columnLabel, byte[] x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateDate(String columnLabel, Date x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateTime(String columnLabel, Time x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateTimestamp(String columnLabel, Timestamp x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateAsciiStream(String columnLabel, InputStream x, int length) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateBinaryStream(String columnLabel, InputStream x, int length) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateCharacterStream(String columnLabel, Reader reader, int length) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateObject(String columnLabel, Object x, int scaleOrLength) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateObject(String columnLabel, Object x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void insertRow() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void updateRow() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void deleteRow() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void refreshRow() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void cancelRowUpdates() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void moveToInsertRow() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void moveToCurrentRow() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public Statement getStatement() throws SQLException { - return null; - } - - @Override - public Object getObject(int columnIndex, Map> map) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public Ref getRef(int columnIndex) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public Blob getBlob(int columnIndex) throws SQLException { - return null; - } - - @Override - public Clob getClob(int columnIndex) throws SQLException { - return null; - } - - @Override - public Array getArray(int columnIndex) throws SQLException { - return null; - } - - @Override - public Object getObject(String columnLabel, Map> map) throws SQLException { - return null; - } - - @Override - public Ref getRef(String columnLabel) throws SQLException { - return null; - } - - @Override - public Blob getBlob(String columnLabel) throws SQLException { - return null; - } - - @Override - public Clob getClob(String columnLabel) throws SQLException { - return null; - } - - @Override - public Array getArray(String columnLabel) throws SQLException { - return null; - } - - @Override - public Date getDate(int columnIndex, Calendar cal) throws SQLException { - return null; - } - - @Override - public Date getDate(String columnLabel, Calendar cal) throws SQLException { - return null; - } - - @Override - public Time getTime(int columnIndex, Calendar cal) throws SQLException { - return null; - } - - @Override - public Time getTime(String columnLabel, Calendar cal) throws SQLException { - return null; - } - - @Override - public Timestamp getTimestamp(int columnIndex, Calendar cal) throws SQLException { - return null; - } - - @Override - public Timestamp getTimestamp(String columnLabel, Calendar cal) throws SQLException { - return null; - } - - @Override - public URL getURL(int columnIndex) throws SQLException { - return null; - } - - @Override - public URL getURL(String columnLabel) throws SQLException { - return null; - } - - @Override - public void updateRef(int columnIndex, Ref x) throws SQLException { - - } - - @Override - public void updateRef(String columnLabel, Ref x) throws SQLException { - - } - - @Override - public void updateBlob(int columnIndex, Blob x) throws SQLException { - - } - - @Override - public void updateBlob(String columnLabel, Blob x) throws SQLException { - - } - - @Override - public void updateClob(int columnIndex, Clob x) throws SQLException { - - } - - @Override - public void updateClob(String columnLabel, Clob x) throws SQLException { - - } - - @Override - public void updateArray(int columnIndex, Array x) throws SQLException { - - } - - @Override - public void updateArray(String columnLabel, Array x) throws SQLException { - - } - - @Override - public RowId getRowId(int columnIndex) throws SQLException { - return null; - } - - @Override - public RowId getRowId(String columnLabel) throws SQLException { - return null; - } - - @Override - public void updateRowId(int columnIndex, RowId x) throws SQLException { - - } - - @Override - public void updateRowId(String columnLabel, RowId x) throws SQLException { - - } - - @Override - public int getHoldability() throws SQLException { - return 0; - } - - @Override - public boolean isClosed() throws SQLException { - return false; - } - - @Override - public void updateNString(int columnIndex, String nString) throws SQLException { - - } - - @Override - public void updateNString(String columnLabel, String nString) throws SQLException { - - } - - @Override - public void updateNClob(int columnIndex, NClob nClob) throws SQLException { - - } - - @Override - public void updateNClob(String columnLabel, NClob nClob) throws SQLException { - - } - - @Override - public NClob getNClob(int columnIndex) throws SQLException { - return null; - } - - @Override - public NClob getNClob(String columnLabel) throws SQLException { - return null; - } - - @Override - public SQLXML getSQLXML(int columnIndex) throws SQLException { - return null; - } - - @Override - public SQLXML getSQLXML(String columnLabel) throws SQLException { - return null; - } - - @Override - public void updateSQLXML(int columnIndex, SQLXML xmlObject) throws SQLException { - - } - - @Override - public void updateSQLXML(String columnLabel, SQLXML xmlObject) throws SQLException { - - } - - @Override - public String getNString(int columnIndex) throws SQLException { - return null; - } - - @Override - public String getNString(String columnLabel) throws SQLException { - return null; - } - - @Override - public Reader getNCharacterStream(int columnIndex) throws SQLException { - return null; - } - - @Override - public Reader getNCharacterStream(String columnLabel) throws SQLException { - return null; - } - - @Override - public void updateNCharacterStream(int columnIndex, Reader x, long length) throws SQLException { - - } - - @Override - public void updateNCharacterStream(String columnLabel, Reader reader, long length) throws SQLException { - - } - - @Override - public void updateAsciiStream(int columnIndex, InputStream x, long length) throws SQLException { - - } - - @Override - public void updateBinaryStream(int columnIndex, InputStream x, long length) throws SQLException { - - } - - @Override - public void updateCharacterStream(int columnIndex, Reader x, long length) throws SQLException { - - } - - @Override - public void updateAsciiStream(String columnLabel, InputStream x, long length) throws SQLException { - - } - - @Override - public void updateBinaryStream(String columnLabel, InputStream x, long length) throws SQLException { - - } - - @Override - public void updateCharacterStream(String columnLabel, Reader reader, long length) throws SQLException { - - } - - @Override - public void updateBlob(int columnIndex, InputStream inputStream, long length) throws SQLException { - - } - - @Override - public void updateBlob(String columnLabel, InputStream inputStream, long length) throws SQLException { - - } - - @Override - public void updateClob(int columnIndex, Reader reader, long length) throws SQLException { - - } - - @Override - public void updateClob(String columnLabel, Reader reader, long length) throws SQLException { - - } - - @Override - public void updateNClob(int columnIndex, Reader reader, long length) throws SQLException { - - } - - @Override - public void updateNClob(String columnLabel, Reader reader, long length) throws SQLException { - - } - - @Override - public void updateNCharacterStream(int columnIndex, Reader x) throws SQLException { - - } - - @Override - public void updateNCharacterStream(String columnLabel, Reader reader) throws SQLException { - - } - - @Override - public void updateAsciiStream(int columnIndex, InputStream x) throws SQLException { - - } - - @Override - public void updateBinaryStream(int columnIndex, InputStream x) throws SQLException { - - } - - @Override - public void updateCharacterStream(int columnIndex, Reader x) throws SQLException { - - } - - @Override - public void updateAsciiStream(String columnLabel, InputStream x) throws SQLException { - - } - - @Override - public void updateBinaryStream(String columnLabel, InputStream x) throws SQLException { - - } - - @Override - public void updateCharacterStream(String columnLabel, Reader reader) throws SQLException { - - } - - @Override - public void updateBlob(int columnIndex, InputStream inputStream) throws SQLException { - - } - - @Override - public void updateBlob(String columnLabel, InputStream inputStream) throws SQLException { - - } - - @Override - public void updateClob(int columnIndex, Reader reader) throws SQLException { - - } - - @Override - public void updateClob(String columnLabel, Reader reader) throws SQLException { - - } - - @Override - public void updateNClob(int columnIndex, Reader reader) throws SQLException { - - } - - @Override - public void updateNClob(String columnLabel, Reader reader) throws SQLException { - - } - - @Override - public T getObject(int columnIndex, Class type) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public T getObject(String columnLabel, Class type) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public T unwrap(Class iface) throws SQLException { - return null; - } - - @Override - public boolean isWrapperFor(Class iface) throws SQLException { - return false; - } - - private int getTrueColumnIndex(int columnIndex) throws SQLException { - if (columnIndex < 1) { - throw new SQLException("Column Index out of range, " + columnIndex + " < " + 1); - } - - int numOfCols = this.columnMetaDataList.size(); - if (columnIndex > numOfCols) { - throw new SQLException("Column Index out of range, " + columnIndex + " > " + numOfCols); - } - - return columnIndex - 1; - } -} diff --git a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/EmptyResultSet 2.java b/src/connector/jdbc/src/main/java/com/taosdata/jdbc/EmptyResultSet 2.java deleted file mode 100644 index b6587b942de3c46139fa0640c07098cbc2b025d4..0000000000000000000000000000000000000000 --- a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/EmptyResultSet 2.java +++ /dev/null @@ -1,986 +0,0 @@ -/*************************************************************************** - * Copyright (c) 2019 TAOS Data, Inc. - * - * This program is free software: you can use, redistribute, and/or modify - * it under the terms of the GNU Affero General Public License, version 3 - * or later ("AGPL"), as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - *****************************************************************************/ -package com.taosdata.jdbc; - -import java.io.InputStream; -import java.io.Reader; -import java.math.BigDecimal; -import java.net.URL; -import java.sql.*; -import java.util.Calendar; -import java.util.Map; - -/* - * TDengine only supports a subset of the standard SQL, thus this implemetation of the - * standard JDBC API contains more or less some adjustments customized for certain - * compatibility needs. - */ -public class EmptyResultSet implements ResultSet { - - @Override - public boolean next() throws SQLException { - return false; - } - - @Override - public void close() throws SQLException { - - } - - @Override - public boolean wasNull() throws SQLException { - return false; - } - - @Override - public String getString(int columnIndex) throws SQLException { - return null; - } - - @Override - public boolean getBoolean(int columnIndex) throws SQLException { - return false; - } - - @Override - public byte getByte(int columnIndex) throws SQLException { - return 0; - } - - @Override - public short getShort(int columnIndex) throws SQLException { - return 0; - } - - @Override - public int getInt(int columnIndex) throws SQLException { - return 0; - } - - @Override - public long getLong(int columnIndex) throws SQLException { - return 0; - } - - @Override - public float getFloat(int columnIndex) throws SQLException { - return 0; - } - - @Override - public double getDouble(int columnIndex) throws SQLException { - return 0; - } - - @Override - public BigDecimal getBigDecimal(int columnIndex, int scale) throws SQLException { - return null; - } - - @Override - public byte[] getBytes(int columnIndex) throws SQLException { - return new byte[0]; - } - - @Override - public Date getDate(int columnIndex) throws SQLException { - return null; - } - - @Override - public Time getTime(int columnIndex) throws SQLException { - return null; - } - - @Override - public Timestamp getTimestamp(int columnIndex) throws SQLException { - return null; - } - - @Override - public InputStream getAsciiStream(int columnIndex) throws SQLException { - return null; - } - - @Override - public InputStream getUnicodeStream(int columnIndex) throws SQLException { - return null; - } - - @Override - public InputStream getBinaryStream(int columnIndex) throws SQLException { - return null; - } - - @Override - public String getString(String columnLabel) throws SQLException { - return null; - } - - @Override - public boolean getBoolean(String columnLabel) throws SQLException { - return false; - } - - @Override - public byte getByte(String columnLabel) throws SQLException { - return 0; - } - - @Override - public short getShort(String columnLabel) throws SQLException { - return 0; - } - - @Override - public int getInt(String columnLabel) throws SQLException { - return 0; - } - - @Override - public long getLong(String columnLabel) throws SQLException { - return 0; - } - - @Override - public float getFloat(String columnLabel) throws SQLException { - return 0; - } - - @Override - public double getDouble(String columnLabel) throws SQLException { - return 0; - } - - @Override - public BigDecimal getBigDecimal(String columnLabel, int scale) throws SQLException { - return null; - } - - @Override - public byte[] getBytes(String columnLabel) throws SQLException { - return new byte[0]; - } - - @Override - public Date getDate(String columnLabel) throws SQLException { - return null; - } - - @Override - public Time getTime(String columnLabel) throws SQLException { - return null; - } - - @Override - public Timestamp getTimestamp(String columnLabel) throws SQLException { - return null; - } - - @Override - public InputStream getAsciiStream(String columnLabel) throws SQLException { - return null; - } - - @Override - public InputStream getUnicodeStream(String columnLabel) throws SQLException { - return null; - } - - @Override - public InputStream getBinaryStream(String columnLabel) throws SQLException { - return null; - } - - @Override - public SQLWarning getWarnings() throws SQLException { - return null; - } - - @Override - public void clearWarnings() throws SQLException { - - } - - @Override - public String getCursorName() throws SQLException { - return null; - } - - @Override - public ResultSetMetaData getMetaData() throws SQLException { - return null; - } - - @Override - public Object getObject(int columnIndex) throws SQLException { - return null; - } - - @Override - public Object getObject(String columnLabel) throws SQLException { - return null; - } - - @Override - public int findColumn(String columnLabel) throws SQLException { - return 0; - } - - @Override - public Reader getCharacterStream(int columnIndex) throws SQLException { - return null; - } - - @Override - public Reader getCharacterStream(String columnLabel) throws SQLException { - return null; - } - - @Override - public BigDecimal getBigDecimal(int columnIndex) throws SQLException { - return null; - } - - @Override - public BigDecimal getBigDecimal(String columnLabel) throws SQLException { - return null; - } - - @Override - public boolean isBeforeFirst() throws SQLException { - return false; - } - - @Override - public boolean isAfterLast() throws SQLException { - return false; - } - - @Override - public boolean isFirst() throws SQLException { - return false; - } - - @Override - public boolean isLast() throws SQLException { - return false; - } - - @Override - public void beforeFirst() throws SQLException { - - } - - @Override - public void afterLast() throws SQLException { - - } - - @Override - public boolean first() throws SQLException { - return false; - } - - @Override - public boolean last() throws SQLException { - return false; - } - - @Override - public int getRow() throws SQLException { - return 0; - } - - @Override - public boolean absolute(int row) throws SQLException { - return false; - } - - @Override - public boolean relative(int rows) throws SQLException { - return false; - } - - @Override - public boolean previous() throws SQLException { - return false; - } - - @Override - public void setFetchDirection(int direction) throws SQLException { - - } - - @Override - public int getFetchDirection() throws SQLException { - return 0; - } - - @Override - public void setFetchSize(int rows) throws SQLException { - - } - - @Override - public int getFetchSize() throws SQLException { - return 0; - } - - @Override - public int getType() throws SQLException { - return 0; - } - - @Override - public int getConcurrency() throws SQLException { - return 0; - } - - @Override - public boolean rowUpdated() throws SQLException { - return false; - } - - @Override - public boolean rowInserted() throws SQLException { - return false; - } - - @Override - public boolean rowDeleted() throws SQLException { - return false; - } - - @Override - public void updateNull(int columnIndex) throws SQLException { - - } - - @Override - public void updateBoolean(int columnIndex, boolean x) throws SQLException { - - } - - @Override - public void updateByte(int columnIndex, byte x) throws SQLException { - - } - - @Override - public void updateShort(int columnIndex, short x) throws SQLException { - - } - - @Override - public void updateInt(int columnIndex, int x) throws SQLException { - - } - - @Override - public void updateLong(int columnIndex, long x) throws SQLException { - - } - - @Override - public void updateFloat(int columnIndex, float x) throws SQLException { - - } - - @Override - public void updateDouble(int columnIndex, double x) throws SQLException { - - } - - @Override - public void updateBigDecimal(int columnIndex, BigDecimal x) throws SQLException { - - } - - @Override - public void updateString(int columnIndex, String x) throws SQLException { - - } - - @Override - public void updateBytes(int columnIndex, byte[] x) throws SQLException { - - } - - @Override - public void updateDate(int columnIndex, Date x) throws SQLException { - - } - - @Override - public void updateTime(int columnIndex, Time x) throws SQLException { - - } - - @Override - public void updateTimestamp(int columnIndex, Timestamp x) throws SQLException { - - } - - @Override - public void updateAsciiStream(int columnIndex, InputStream x, int length) throws SQLException { - - } - - @Override - public void updateBinaryStream(int columnIndex, InputStream x, int length) throws SQLException { - - } - - @Override - public void updateCharacterStream(int columnIndex, Reader x, int length) throws SQLException { - - } - - @Override - public void updateObject(int columnIndex, Object x, int scaleOrLength) throws SQLException { - - } - - @Override - public void updateObject(int columnIndex, Object x) throws SQLException { - - } - - @Override - public void updateNull(String columnLabel) throws SQLException { - - } - - @Override - public void updateBoolean(String columnLabel, boolean x) throws SQLException { - - } - - @Override - public void updateByte(String columnLabel, byte x) throws SQLException { - - } - - @Override - public void updateShort(String columnLabel, short x) throws SQLException { - - } - - @Override - public void updateInt(String columnLabel, int x) throws SQLException { - - } - - @Override - public void updateLong(String columnLabel, long x) throws SQLException { - - } - - @Override - public void updateFloat(String columnLabel, float x) throws SQLException { - - } - - @Override - public void updateDouble(String columnLabel, double x) throws SQLException { - - } - - @Override - public void updateBigDecimal(String columnLabel, BigDecimal x) throws SQLException { - - } - - @Override - public void updateString(String columnLabel, String x) throws SQLException { - - } - - @Override - public void updateBytes(String columnLabel, byte[] x) throws SQLException { - - } - - @Override - public void updateDate(String columnLabel, Date x) throws SQLException { - - } - - @Override - public void updateTime(String columnLabel, Time x) throws SQLException { - - } - - @Override - public void updateTimestamp(String columnLabel, Timestamp x) throws SQLException { - - } - - @Override - public void updateAsciiStream(String columnLabel, InputStream x, int length) throws SQLException { - - } - - @Override - public void updateBinaryStream(String columnLabel, InputStream x, int length) throws SQLException { - - } - - @Override - public void updateCharacterStream(String columnLabel, Reader reader, int length) throws SQLException { - - } - - @Override - public void updateObject(String columnLabel, Object x, int scaleOrLength) throws SQLException { - - } - - @Override - public void updateObject(String columnLabel, Object x) throws SQLException { - - } - - @Override - public void insertRow() throws SQLException { - - } - - @Override - public void updateRow() throws SQLException { - - } - - @Override - public void deleteRow() throws SQLException { - - } - - @Override - public void refreshRow() throws SQLException { - - } - - @Override - public void cancelRowUpdates() throws SQLException { - - } - - @Override - public void moveToInsertRow() throws SQLException { - - } - - @Override - public void moveToCurrentRow() throws SQLException { - - } - - @Override - public Statement getStatement() throws SQLException { - return null; - } - - @Override - public Object getObject(int columnIndex, Map> map) throws SQLException { - return null; - } - - @Override - public Ref getRef(int columnIndex) throws SQLException { - return null; - } - - @Override - public Blob getBlob(int columnIndex) throws SQLException { - return null; - } - - @Override - public Clob getClob(int columnIndex) throws SQLException { - return null; - } - - @Override - public Array getArray(int columnIndex) throws SQLException { - return null; - } - - @Override - public Object getObject(String columnLabel, Map> map) throws SQLException { - return null; - } - - @Override - public Ref getRef(String columnLabel) throws SQLException { - return null; - } - - @Override - public Blob getBlob(String columnLabel) throws SQLException { - return null; - } - - @Override - public Clob getClob(String columnLabel) throws SQLException { - return null; - } - - @Override - public Array getArray(String columnLabel) throws SQLException { - return null; - } - - @Override - public Date getDate(int columnIndex, Calendar cal) throws SQLException { - return null; - } - - @Override - public Date getDate(String columnLabel, Calendar cal) throws SQLException { - return null; - } - - @Override - public Time getTime(int columnIndex, Calendar cal) throws SQLException { - return null; - } - - @Override - public Time getTime(String columnLabel, Calendar cal) throws SQLException { - return null; - } - - @Override - public Timestamp getTimestamp(int columnIndex, Calendar cal) throws SQLException { - return null; - } - - @Override - public Timestamp getTimestamp(String columnLabel, Calendar cal) throws SQLException { - return null; - } - - @Override - public URL getURL(int columnIndex) throws SQLException { - return null; - } - - @Override - public URL getURL(String columnLabel) throws SQLException { - return null; - } - - @Override - public void updateRef(int columnIndex, Ref x) throws SQLException { - - } - - @Override - public void updateRef(String columnLabel, Ref x) throws SQLException { - - } - - @Override - public void updateBlob(int columnIndex, Blob x) throws SQLException { - - } - - @Override - public void updateBlob(String columnLabel, Blob x) throws SQLException { - - } - - @Override - public void updateClob(int columnIndex, Clob x) throws SQLException { - - } - - @Override - public void updateClob(String columnLabel, Clob x) throws SQLException { - - } - - @Override - public void updateArray(int columnIndex, Array x) throws SQLException { - - } - - @Override - public void updateArray(String columnLabel, Array x) throws SQLException { - - } - - @Override - public RowId getRowId(int columnIndex) throws SQLException { - return null; - } - - @Override - public RowId getRowId(String columnLabel) throws SQLException { - return null; - } - - @Override - public void updateRowId(int columnIndex, RowId x) throws SQLException { - - } - - @Override - public void updateRowId(String columnLabel, RowId x) throws SQLException { - - } - - @Override - public int getHoldability() throws SQLException { - return 0; - } - - @Override - public boolean isClosed() throws SQLException { - return false; - } - - @Override - public void updateNString(int columnIndex, String nString) throws SQLException { - - } - - @Override - public void updateNString(String columnLabel, String nString) throws SQLException { - - } - - @Override - public void updateNClob(int columnIndex, NClob nClob) throws SQLException { - - } - - @Override - public void updateNClob(String columnLabel, NClob nClob) throws SQLException { - - } - - @Override - public NClob getNClob(int columnIndex) throws SQLException { - return null; - } - - @Override - public NClob getNClob(String columnLabel) throws SQLException { - return null; - } - - @Override - public SQLXML getSQLXML(int columnIndex) throws SQLException { - return null; - } - - @Override - public SQLXML getSQLXML(String columnLabel) throws SQLException { - return null; - } - - @Override - public void updateSQLXML(int columnIndex, SQLXML xmlObject) throws SQLException { - - } - - @Override - public void updateSQLXML(String columnLabel, SQLXML xmlObject) throws SQLException { - - } - - @Override - public String getNString(int columnIndex) throws SQLException { - return null; - } - - @Override - public String getNString(String columnLabel) throws SQLException { - return null; - } - - @Override - public Reader getNCharacterStream(int columnIndex) throws SQLException { - return null; - } - - @Override - public Reader getNCharacterStream(String columnLabel) throws SQLException { - return null; - } - - @Override - public void updateNCharacterStream(int columnIndex, Reader x, long length) throws SQLException { - - } - - @Override - public void updateNCharacterStream(String columnLabel, Reader reader, long length) throws SQLException { - - } - - @Override - public void updateAsciiStream(int columnIndex, InputStream x, long length) throws SQLException { - - } - - @Override - public void updateBinaryStream(int columnIndex, InputStream x, long length) throws SQLException { - - } - - @Override - public void updateCharacterStream(int columnIndex, Reader x, long length) throws SQLException { - - } - - @Override - public void updateAsciiStream(String columnLabel, InputStream x, long length) throws SQLException { - - } - - @Override - public void updateBinaryStream(String columnLabel, InputStream x, long length) throws SQLException { - - } - - @Override - public void updateCharacterStream(String columnLabel, Reader reader, long length) throws SQLException { - - } - - @Override - public void updateBlob(int columnIndex, InputStream inputStream, long length) throws SQLException { - - } - - @Override - public void updateBlob(String columnLabel, InputStream inputStream, long length) throws SQLException { - - } - - @Override - public void updateClob(int columnIndex, Reader reader, long length) throws SQLException { - - } - - @Override - public void updateClob(String columnLabel, Reader reader, long length) throws SQLException { - - } - - @Override - public void updateNClob(int columnIndex, Reader reader, long length) throws SQLException { - - } - - @Override - public void updateNClob(String columnLabel, Reader reader, long length) throws SQLException { - - } - - @Override - public void updateNCharacterStream(int columnIndex, Reader x) throws SQLException { - - } - - @Override - public void updateNCharacterStream(String columnLabel, Reader reader) throws SQLException { - - } - - @Override - public void updateAsciiStream(int columnIndex, InputStream x) throws SQLException { - - } - - @Override - public void updateBinaryStream(int columnIndex, InputStream x) throws SQLException { - - } - - @Override - public void updateCharacterStream(int columnIndex, Reader x) throws SQLException { - - } - - @Override - public void updateAsciiStream(String columnLabel, InputStream x) throws SQLException { - - } - - @Override - public void updateBinaryStream(String columnLabel, InputStream x) throws SQLException { - - } - - @Override - public void updateCharacterStream(String columnLabel, Reader reader) throws SQLException { - - } - - @Override - public void updateBlob(int columnIndex, InputStream inputStream) throws SQLException { - - } - - @Override - public void updateBlob(String columnLabel, InputStream inputStream) throws SQLException { - - } - - @Override - public void updateClob(int columnIndex, Reader reader) throws SQLException { - - } - - @Override - public void updateClob(String columnLabel, Reader reader) throws SQLException { - - } - - @Override - public void updateNClob(int columnIndex, Reader reader) throws SQLException { - - } - - @Override - public void updateNClob(String columnLabel, Reader reader) throws SQLException { - - } - - @Override - public T getObject(int columnIndex, Class type) throws SQLException { - return null; - } - - @Override - public T getObject(String columnLabel, Class type) throws SQLException { - return null; - } - - @Override - public T unwrap(Class iface) throws SQLException { - return null; - } - - @Override - public boolean isWrapperFor(Class iface) throws SQLException { - return false; - } -} diff --git a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/GetColumnsResultSet 2.java b/src/connector/jdbc/src/main/java/com/taosdata/jdbc/GetColumnsResultSet 2.java deleted file mode 100644 index e15415e037948dd7ec757bcdeee03d14a0d588fb..0000000000000000000000000000000000000000 --- a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/GetColumnsResultSet 2.java +++ /dev/null @@ -1,51 +0,0 @@ -/*************************************************************************** - * Copyright (c) 2019 TAOS Data, Inc. - * - * This program is free software: you can use, redistribute, and/or modify - * it under the terms of the GNU Affero General Public License, version 3 - * or later ("AGPL"), as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - *****************************************************************************/ -package com.taosdata.jdbc; - -import java.sql.ResultSet; - -/* - * TDengine only supports a subset of the standard SQL, thus this implemetation of the - * standard JDBC API contains more or less some adjustments customized for certain - * compatibility needs. - */ -public class GetColumnsResultSet extends TSDBResultSetWrapper { - private String catalog; - private String schemaPattern; - private String tableNamePattern; - private String columnNamePattern; - - public GetColumnsResultSet(ResultSet resultSet, String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern) { - super.setOriginalResultSet(resultSet); - this.catalog = catalog; - this.schemaPattern = schemaPattern; - this.tableNamePattern = tableNamePattern; - this.columnNamePattern = columnNamePattern; - } - - @Override - public String getString(int columnIndex) { - switch (columnIndex) { - case 1: - return catalog; - case 2: - return null; - case 3: - return tableNamePattern; - default: - return null; - } - } -} diff --git a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/GetTablesResultSet 2.java b/src/connector/jdbc/src/main/java/com/taosdata/jdbc/GetTablesResultSet 2.java deleted file mode 100644 index e28f6e3c9adf8564437e1214b28b2eb13bdaf8d9..0000000000000000000000000000000000000000 --- a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/GetTablesResultSet 2.java +++ /dev/null @@ -1,53 +0,0 @@ -/*************************************************************************** - * Copyright (c) 2019 TAOS Data, Inc. - * - * This program is free software: you can use, redistribute, and/or modify - * it under the terms of the GNU Affero General Public License, version 3 - * or later ("AGPL"), as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - *****************************************************************************/ -package com.taosdata.jdbc; - -import java.sql.ResultSet; -import java.sql.SQLException; - -/* - * TDengine only supports a subset of the standard SQL, thus this implemetation of the - * standard JDBC API contains more or less some adjustments customized for certain - * compatibility needs. - */ -public class GetTablesResultSet extends TSDBResultSetWrapper { - - private String catalog; - private String schemaPattern; - private String tableNamePattern; - private String[] types; - - public GetTablesResultSet(ResultSet resultSet, String catalog, String schemaPattern, String tableNamePattern, String[] types) { - super.setOriginalResultSet(resultSet); - this.catalog = catalog; - this.schemaPattern = schemaPattern; - this.tableNamePattern = tableNamePattern; - this.types = types; - } - - @Override - public String getString(int columnIndex) throws SQLException { - String ret = null; - switch (columnIndex) { - case 3: - return super.getString(1); - case 4: - return "table"; - default: - return null; - } - } - -} diff --git a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/SavedPreparedStatement 2.java b/src/connector/jdbc/src/main/java/com/taosdata/jdbc/SavedPreparedStatement 2.java deleted file mode 100644 index a0aa7ec584ee351185d10b023e5142d00d60d66b..0000000000000000000000000000000000000000 --- a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/SavedPreparedStatement 2.java +++ /dev/null @@ -1,453 +0,0 @@ -package com.taosdata.jdbc; - -import com.taosdata.jdbc.bean.TSDBPreparedParam; - -import java.sql.SQLException; -import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.List; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -/** - * this class is used to precompile the sql of tdengine insert or import ops - */ -public class SavedPreparedStatement { - - private TSDBPreparedStatement tsdbPreparedStatement; - - /** - * sql param List - */ - private List sqlParamList; - - /** - * init param according the sql - */ - private TSDBPreparedParam initPreparedParam; - - /** - * is table name dynamic in the prepared sql - */ - private boolean isTableNameDynamic; - - /** - * insert or import sql template pattern, the template are the following: - *

- * insert/import into tableName [(field1, field2, ...)] [using stables tags(?, ?, ...) ] values(?, ?, ...) (?, ?, ...) - *

- * we split it to three part: - * 1. prefix, insert/import - * 2. middle, tableName [(field1, field2, ...)] [using stables tags(?, ?, ...) ] - * 3. valueList, the content after values, for example (?, ?, ...) (?, ?, ...) - */ - private Pattern sqlPattern = Pattern.compile("(?s)(?i)^\\s*(INSERT|IMPORT)\\s+INTO\\s+((?\\S+)\\s*(\\(.*\\))?\\s+(USING\\s+(?\\S+)\\s+TAGS\\s*\\((?.+)\\))?)\\s*VALUES\\s*(?\\(.*\\)).*"); - - /** - * the raw sql template - */ - private String sql; - - /** - * the prefix part of sql - */ - private String prefix; - - /** - * the middle part of sql - */ - private String middle; - - private int middleParamSize; - - /** - * the valueList part of sql - */ - private String valueList; - - private int valueListSize; - - /** - * default param value - */ - private static final String DEFAULT_VALUE = "NULL"; - - private static final String PLACEHOLDER = "?"; - - private String tableName; - - /** - * is the parameter add to batch list - */ - private boolean isAddBatch; - - public SavedPreparedStatement(String sql, TSDBPreparedStatement tsdbPreparedStatement) throws SQLException { - this.sql = sql; - this.tsdbPreparedStatement = tsdbPreparedStatement; - this.sqlParamList = new ArrayList<>(); - - parsePreparedParam(this.sql); - } - - /** - * parse the init param according the sql param - * - * @param sql - */ - private void parsePreparedParam(String sql) throws SQLException { - - Matcher matcher = sqlPattern.matcher(sql); - - if (matcher.find()) { - - tableName = matcher.group("tablename"); - - if (tableName != null && PLACEHOLDER.equals(tableName)) { - // the table name is dynamic - this.isTableNameDynamic = true; - } - - prefix = matcher.group(1); - middle = matcher.group(2); - valueList = matcher.group("valueList"); - - if (middle != null && !"".equals(middle)) { - middleParamSize = parsePlaceholder(middle); - } - - if (valueList != null && !"".equals(valueList)) { - valueListSize = parsePlaceholder(valueList); - } - - initPreparedParam = initDefaultParam(tableName, middleParamSize, valueListSize); - - } else { - // not match - throw new SQLException(TSDBConstants.WrapErrMsg("the sql is not complete!")); - } - - } - - private TSDBPreparedParam initDefaultParam(String tableName, int middleParamSize, int valueListSize) { - - TSDBPreparedParam tsdbPreparedParam = new TSDBPreparedParam(tableName); - - tsdbPreparedParam.setMiddleParamList(getDefaultParamList(middleParamSize)); - - tsdbPreparedParam.setValueList(getDefaultParamList(valueListSize)); - - return tsdbPreparedParam; - } - - /** - * generate the default param value list - * - * @param paramSize - * @return - */ - private List getDefaultParamList(int paramSize) { - - List paramList = new ArrayList<>(paramSize); - if (paramSize > 0) { - for (int i = 0; i < paramSize; i++) { - paramList.add(i, DEFAULT_VALUE); - } - } - - return paramList; - } - - /** - * calculate the placeholder num - * - * @param value - * @return - */ - private int parsePlaceholder(String value) { - - Pattern pattern = Pattern.compile("[?]"); - - Matcher matcher = pattern.matcher(value); - - int result = 0; - while (matcher.find()) { - result++; - } - return result; - } - - /** - * set current row params - * - * @param parameterIndex the first parameter is 1, the second is 2, ... - * @param x the parameter value - */ - public void setParam(int parameterIndex, Object x) throws SQLException { - - int paramSize = this.middleParamSize + this.valueListSize; - - String errorMsg = String.format("the parameterIndex %s out of the range [1, %s]", parameterIndex, paramSize); - - if (parameterIndex < 1 || parameterIndex > paramSize) { - throw new SQLException(TSDBConstants.WrapErrMsg(errorMsg)); - } - - this.isAddBatch = false; //set isAddBatch to false - - if (x == null) { - x = DEFAULT_VALUE; // set default null string - } - - parameterIndex = parameterIndex - 1; // start from 0 in param list - - if (this.middleParamSize > 0 && parameterIndex >= 0 && parameterIndex < this.middleParamSize) { - - this.initPreparedParam.setMiddleParam(parameterIndex, x); - return; - } - - if (this.valueListSize > 0 && parameterIndex >= this.middleParamSize && parameterIndex < paramSize) { - - this.initPreparedParam.setValueParam(parameterIndex - this.middleParamSize, x); - return; - } - - throw new SQLException(TSDBConstants.WrapErrMsg(errorMsg)); - } - - public void addBatch() { - - addCurrentRowParamToList(); - this.initPreparedParam = initDefaultParam(tableName, middleParamSize, valueListSize); - } - - /** - * add current param to batch list - */ - private void addCurrentRowParamToList() { - - if (initPreparedParam != null && (this.middleParamSize > 0 || this.valueListSize > 0)) { - this.sqlParamList.add(initPreparedParam); // add current param to batch list - } - this.isAddBatch = true; - } - - - /** - * execute the sql with batch sql - * - * @return - * @throws SQLException - */ - public int[] executeBatch() throws SQLException { - - int result = executeBatchInternal(); - - return new int[]{result}; - } - - - public int executeBatchInternal() throws SQLException { - - if (!isAddBatch) { - addCurrentRowParamToList(); // add current param to batch list - } - - //1. generate batch sql - String sql = generateExecuteSql(); - //2. execute batch sql - int result = executeSql(sql); - - //3. clear batch param list - this.sqlParamList.clear(); - - return result; - } - - /** - * generate the batch sql - * - * @return - */ - private String generateExecuteSql() { - - StringBuilder stringBuilder = new StringBuilder(); - - stringBuilder.append(prefix); - stringBuilder.append(" into "); - - if (!isTableNameDynamic) { - // tablename will not need to be replaced - String middleValue = replaceMiddleListParam(middle, sqlParamList); - stringBuilder.append(middleValue); - stringBuilder.append(" values"); - - stringBuilder.append(replaceValueListParam(valueList, sqlParamList)); - - } else { - // need to replace tablename - - if (sqlParamList.size() > 0) { - - TSDBPreparedParam firstPreparedParam = sqlParamList.get(0); - - //replace middle part and value part of first row - String firstRow = replaceMiddleAndValuePart(firstPreparedParam); - stringBuilder.append(firstRow); - - //the first param in the middleParamList is the tableName - String lastTableName = firstPreparedParam.getMiddleParamList().get(0).toString(); - - if (sqlParamList.size() > 1) { - - for (int i = 1; i < sqlParamList.size(); i++) { - TSDBPreparedParam currentParam = sqlParamList.get(i); - String currentTableName = currentParam.getMiddleParamList().get(0).toString(); - if (lastTableName.equalsIgnoreCase(currentTableName)) { - // tablename is same with the last row ,so only need to append the part of value - - String values = replaceTemplateParam(valueList, currentParam.getValueList()); - stringBuilder.append(values); - - } else { - // tablename difference with the last row - //need to replace middle part and value part - String row = replaceMiddleAndValuePart(currentParam); - stringBuilder.append(row); - lastTableName = currentTableName; - } - } - } - - } else { - - stringBuilder.append(middle); - stringBuilder.append(" values"); - stringBuilder.append(valueList); - } - - } - - return stringBuilder.toString(); - } - - /** - * replace the middle and value part - * - * @param tsdbPreparedParam - * @return - */ - private String replaceMiddleAndValuePart(TSDBPreparedParam tsdbPreparedParam) { - - StringBuilder stringBuilder = new StringBuilder(" "); - - String middlePart = replaceTemplateParam(middle, tsdbPreparedParam.getMiddleParamList()); - - stringBuilder.append(middlePart); - stringBuilder.append(" values "); - - String valuePart = replaceTemplateParam(valueList, tsdbPreparedParam.getValueList()); - stringBuilder.append(valuePart); - stringBuilder.append(" "); - - return stringBuilder.toString(); - } - - /** - * replace the placeholder of the middle part of sql template with TSDBPreparedParam list - * - * @param template - * @param sqlParamList - * @return - */ - private String replaceMiddleListParam(String template, List sqlParamList) { - - if (sqlParamList.size() > 0) { - - //becase once the subTableName is static then will be ignore the tag which after the first setTag - return replaceTemplateParam(template, sqlParamList.get(0).getMiddleParamList()); - - } - - return template; - } - - - /** - * replace the placeholder of the template with TSDBPreparedParam list - * - * @param template - * @param sqlParamList - * @return - */ - private String replaceValueListParam(String template, List sqlParamList) { - - StringBuilder stringBuilder = new StringBuilder(); - - if (sqlParamList.size() > 0) { - - for (TSDBPreparedParam tsdbPreparedParam : sqlParamList) { - - String tmp = replaceTemplateParam(template, tsdbPreparedParam.getValueList()); - - stringBuilder.append(tmp); - } - - } else { - stringBuilder.append(template); - } - - return stringBuilder.toString(); - } - - /** - * replace the placeholder of the template with paramList - * - * @param template - * @param paramList - * @return - */ - private String replaceTemplateParam(String template, List paramList) { - - if (paramList.size() > 0) { - - String tmp = template; - - for (int i = 0; i < paramList.size(); ++i) { - - String paraStr = getParamString(paramList.get(i)); - - tmp = tmp.replaceFirst("[" + PLACEHOLDER + "]", paraStr); - - } - - return tmp; - - } else { - return template; - } - - } - - /** - * get the string of param object - * - * @param paramObj - * @return - */ - private String getParamString(Object paramObj) { - - String paraStr = paramObj.toString(); - if (paramObj instanceof Timestamp || (paramObj instanceof String && !DEFAULT_VALUE.equalsIgnoreCase(paraStr))) { - paraStr = "'" + paraStr + "'"; - } - return paraStr; - } - - - private int executeSql(String sql) throws SQLException { - - return tsdbPreparedStatement.executeUpdate(sql); - } - -} diff --git a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBConnection 2.java b/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBConnection 2.java deleted file mode 100644 index 4640f6b446b6d285806408856489c5e950b37a81..0000000000000000000000000000000000000000 --- a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBConnection 2.java +++ /dev/null @@ -1,352 +0,0 @@ -/*************************************************************************** - * Copyright (c) 2019 TAOS Data, Inc. - * - * This program is free software: you can use, redistribute, and/or modify - * it under the terms of the GNU Affero General Public License, version 3 - * or later ("AGPL"), as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - *****************************************************************************/ -package com.taosdata.jdbc; - -import java.sql.Array; -import java.sql.Blob; -import java.sql.CallableStatement; -import java.sql.Clob; -import java.sql.Connection; -import java.sql.DatabaseMetaData; -import java.sql.NClob; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLClientInfoException; -import java.sql.SQLException; -import java.sql.SQLWarning; -import java.sql.SQLXML; -import java.sql.Savepoint; -import java.sql.Statement; -import java.sql.Struct; -import java.util.Enumeration; -import java.util.Map; -import java.util.Properties; -import java.util.concurrent.Executor; - -public class TSDBConnection implements Connection { - - private TSDBJNIConnector connector = null; - - protected Properties props = null; - - private String catalog = null; - - private TSDBDatabaseMetaData dbMetaData = null; - - private Properties clientInfoProps = new Properties(); - - private int timeoutMilliseconds = 0; - - private String tsCharSet = ""; - - public TSDBConnection(Properties info, TSDBDatabaseMetaData meta) throws SQLException { - this.dbMetaData = meta; - connect(info.getProperty(TSDBDriver.PROPERTY_KEY_HOST), - Integer.parseInt(info.getProperty(TSDBDriver.PROPERTY_KEY_PORT, "0")), - info.getProperty(TSDBDriver.PROPERTY_KEY_DBNAME), info.getProperty(TSDBDriver.PROPERTY_KEY_USER), - info.getProperty(TSDBDriver.PROPERTY_KEY_PASSWORD)); - } - - private void connect(String host, int port, String dbName, String user, String password) throws SQLException { - this.connector = new TSDBJNIConnector(); - this.connector.connect(host, port, dbName, user, password); - - try { - this.setCatalog(dbName); - } catch (SQLException e) { - e.printStackTrace(); - } - - this.dbMetaData.setConnection(this); - } - - public TSDBJNIConnector getConnection() { - return this.connector; - } - - public Statement createStatement() throws SQLException { - if (!this.connector.isClosed()) { - return new TSDBStatement(this.connector); - } else { - throw new SQLException(TSDBConstants.FixErrMsg(TSDBConstants.JNI_CONNECTION_NULL)); - } - } - - public PreparedStatement prepareStatement(String sql) throws SQLException { - if (!this.connector.isClosed()) { - return new TSDBPreparedStatement(this.connector, sql); - } else { - throw new SQLException(TSDBConstants.FixErrMsg(TSDBConstants.JNI_CONNECTION_NULL)); - } - } - - public CallableStatement prepareCall(String sql) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public String nativeSQL(String sql) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void setAutoCommit(boolean autoCommit) throws SQLException { - } - - public boolean getAutoCommit() throws SQLException { - return true; - } - - public void commit() throws SQLException { - } - - public void rollback() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void close() throws SQLException { - if (this.connector != null && !this.connector.isClosed()) { - this.connector.closeConnection(); - } else { - throw new SQLException(TSDBConstants.WrapErrMsg("connection is already closed!")); - } - } - - public boolean isClosed() throws SQLException { - return this.connector.isClosed(); - } - - /** - * A connection's database is able to provide information describing its tables, - * its supported SQL grammar, its stored procedures, the capabilities of this - * connection, etc. This information is made available through a - * DatabaseMetaData object. - * - * @return a DatabaseMetaData object for this connection - * @exception SQLException - * if a database access error occurs - */ - public DatabaseMetaData getMetaData() throws SQLException { - return this.dbMetaData; - } - - /** - * This readOnly option is not supported by TDengine. However, the method is intentionally left blank here to - * support HikariCP connection. - * @param readOnly - * @throws SQLException - */ - public void setReadOnly(boolean readOnly) throws SQLException { - } - - public boolean isReadOnly() throws SQLException { - return true; - } - - public void setCatalog(String catalog) throws SQLException { - this.catalog = catalog; - } - - public String getCatalog() throws SQLException { - return this.catalog; - } - - /** - * The transaction isolation level option is not supported by TDengine. - * This method is intentionally left empty to support HikariCP connection. - * @param level - * @throws SQLException - */ - public void setTransactionIsolation(int level) throws SQLException { - } - - /** - * The transaction isolation level option is not supported by TDengine. - * @return - * @throws SQLException - */ - public int getTransactionIsolation() throws SQLException { - return Connection.TRANSACTION_NONE; - } - - public SQLWarning getWarnings() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void clearWarnings() throws SQLException { - // left blank to support HikariCP connection - //todo: implement getWarnings according to the warning messages returned from TDengine - } - - public Statement createStatement(int resultSetType, int resultSetConcurrency) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) - throws SQLException { - // This method is implemented in the current way to support Spark - if (resultSetType != ResultSet.TYPE_FORWARD_ONLY) { - throw new SQLException(TSDBConstants.INVALID_VARIABLES); - } - - if (resultSetConcurrency != ResultSet.CONCUR_READ_ONLY) { - throw new SQLException(TSDBConstants.INVALID_VARIABLES); - } - - return this.prepareStatement(sql); - } - - public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public Map> getTypeMap() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void setTypeMap(Map> map) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void setHoldability(int holdability) throws SQLException { - // intentionally left empty to support druid connection pool. - } - - /** - * the transaction is not supported by TDengine, so the opened ResultSet Objects will remain open - * @return - * @throws SQLException - */ - public int getHoldability() throws SQLException { - //intentionally left empty to support HikariCP connection. - return ResultSet.HOLD_CURSORS_OVER_COMMIT; - } - - public Savepoint setSavepoint() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public Savepoint setSavepoint(String name) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void rollback(Savepoint savepoint) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void releaseSavepoint(Savepoint savepoint) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) - throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency, - int resultSetHoldability) throws SQLException { - return this.prepareStatement(sql, resultSetType, resultSetConcurrency); - } - - public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency, - int resultSetHoldability) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public PreparedStatement prepareStatement(String sql, int[] columnIndexes) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public PreparedStatement prepareStatement(String sql, String[] columnNames) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public Clob createClob() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public Blob createBlob() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public NClob createNClob() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public SQLXML createSQLXML() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public boolean isValid(int timeout) throws SQLException { - return !this.isClosed(); - } - - public void setClientInfo(String name, String value) throws SQLClientInfoException { - clientInfoProps.setProperty(name, value); - } - - public void setClientInfo(Properties properties) throws SQLClientInfoException { - for (Enumeration enumer = properties.keys(); enumer.hasMoreElements();) { - String name = (String) enumer.nextElement(); - clientInfoProps.put(name, properties.getProperty(name)); - } - } - - public String getClientInfo(String name) throws SQLException { - return clientInfoProps.getProperty(name); - } - - public Properties getClientInfo() throws SQLException { - return clientInfoProps; - } - - public Array createArrayOf(String typeName, Object[] elements) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public Struct createStruct(String typeName, Object[] attributes) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void setSchema(String schema) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public String getSchema() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void abort(Executor executor) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void setNetworkTimeout(Executor executor, int milliseconds) throws SQLException { - this.timeoutMilliseconds = milliseconds; - } - - public int getNetworkTimeout() throws SQLException { - return this.timeoutMilliseconds; - } - - public T unwrap(Class iface) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public boolean isWrapperFor(Class iface) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } -} diff --git a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBConstants 2.java b/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBConstants 2.java deleted file mode 100644 index 3940e809300b7d8e0b6c79038afaa6ff76f81bf0..0000000000000000000000000000000000000000 --- a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBConstants 2.java +++ /dev/null @@ -1,86 +0,0 @@ -/*************************************************************************** - * Copyright (c) 2019 TAOS Data, Inc. - * - * This program is free software: you can use, redistribute, and/or modify - * it under the terms of the GNU Affero General Public License, version 3 - * or later ("AGPL"), as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - *****************************************************************************/ -package com.taosdata.jdbc; - -import java.util.HashMap; -import java.util.Map; - -public abstract class TSDBConstants { - - public static final String DEFAULT_PORT = "6200"; - public static final String UNSUPPORT_METHOD_EXCEPTIONZ_MSG = "this operation is NOT supported currently!"; - public static final String INVALID_VARIABLES = "invalid variables"; - public static Map DATATYPE_MAP = null; - - public static final long JNI_NULL_POINTER = 0L; - - public static final int JNI_SUCCESS = 0; - public static final int JNI_TDENGINE_ERROR = -1; - public static final int JNI_CONNECTION_NULL = -2; - public static final int JNI_RESULT_SET_NULL = -3; - public static final int JNI_NUM_OF_FIELDS_0 = -4; - public static final int JNI_SQL_NULL = -5; - public static final int JNI_FETCH_END = -6; - - public static final int TSDB_DATA_TYPE_NULL = 0; - public static final int TSDB_DATA_TYPE_BOOL = 1; - public static final int TSDB_DATA_TYPE_TINYINT = 2; - public static final int TSDB_DATA_TYPE_SMALLINT = 3; - public static final int TSDB_DATA_TYPE_INT = 4; - public static final int TSDB_DATA_TYPE_BIGINT = 5; - public static final int TSDB_DATA_TYPE_FLOAT = 6; - public static final int TSDB_DATA_TYPE_DOUBLE = 7; - public static final int TSDB_DATA_TYPE_BINARY = 8; - public static final int TSDB_DATA_TYPE_TIMESTAMP = 9; - public static final int TSDB_DATA_TYPE_NCHAR = 10; - - public static String WrapErrMsg(String msg) { - return "TDengine Error: " + msg; - } - - public static String FixErrMsg(int code) { - switch (code) { - case JNI_TDENGINE_ERROR: - return WrapErrMsg("internal error of database!"); - case JNI_CONNECTION_NULL: - return WrapErrMsg("invalid tdengine connection!"); - case JNI_RESULT_SET_NULL: - return WrapErrMsg("invalid resultset pointer!"); - case JNI_NUM_OF_FIELDS_0: - return WrapErrMsg("invalid num of fields!"); - case JNI_SQL_NULL: - return WrapErrMsg("can't execute empty sql!"); - case JNI_FETCH_END: - return WrapErrMsg("fetch to the end of resultset"); - default: - break; - } - return WrapErrMsg("unkown error!"); - } - - static { - DATATYPE_MAP = new HashMap(); - DATATYPE_MAP.put(1, "BOOL"); - DATATYPE_MAP.put(2, "TINYINT"); - DATATYPE_MAP.put(3, "SMALLINT"); - DATATYPE_MAP.put(4, "INT"); - DATATYPE_MAP.put(5, "BIGINT"); - DATATYPE_MAP.put(6, "FLOAT"); - DATATYPE_MAP.put(7, "DOUBLE"); - DATATYPE_MAP.put(8, "BINARY"); - DATATYPE_MAP.put(9, "TIMESTAMP"); - DATATYPE_MAP.put(10, "NCHAR"); - } -} diff --git a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBDatabaseMetaData 2.java b/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBDatabaseMetaData 2.java deleted file mode 100644 index 6cb3263e56749ffb9901fb0a401ab0be244c3646..0000000000000000000000000000000000000000 --- a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBDatabaseMetaData 2.java +++ /dev/null @@ -1,800 +0,0 @@ -/*************************************************************************** - * Copyright (c) 2019 TAOS Data, Inc. - * - * This program is free software: you can use, redistribute, and/or modify - * it under the terms of the GNU Affero General Public License, version 3 - * or later ("AGPL"), as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - *****************************************************************************/ -package com.taosdata.jdbc; - -import java.sql.*; -import java.util.ArrayList; -import java.util.List; - -public class TSDBDatabaseMetaData implements java.sql.DatabaseMetaData { - - private String dbProductName = null; - private String url = null; - private String userName = null; - private Connection conn = null; - - public TSDBDatabaseMetaData(String dbProductName, String url, String userName) { - this.dbProductName = dbProductName; - this.url = url; - this.userName = userName; - } - - public void setConnection(Connection conn) { - this.conn = conn; - } - - public T unwrap(Class iface) throws SQLException { - return null; - } - - public boolean isWrapperFor(Class iface) throws SQLException { - return false; - } - - public boolean allProceduresAreCallable() throws SQLException { - return false; - } - - public boolean allTablesAreSelectable() throws SQLException { - return false; - } - - public String getURL() throws SQLException { - return this.url; - } - - public String getUserName() throws SQLException { - return this.userName; - } - - public boolean isReadOnly() throws SQLException { - return false; - } - - public boolean nullsAreSortedHigh() throws SQLException { - return false; - } - - public boolean nullsAreSortedLow() throws SQLException { - return false; - } - - public boolean nullsAreSortedAtStart() throws SQLException { - return false; - } - - public boolean nullsAreSortedAtEnd() throws SQLException { - return false; - } - - public String getDatabaseProductName() throws SQLException { - return this.dbProductName; - } - - public String getDatabaseProductVersion() throws SQLException { - return "1.5.1"; - } - - public String getDriverName() throws SQLException { - return TSDBDriver.class.getName(); - } - - public String getDriverVersion() throws SQLException { - return "1.0.0"; - } - - public int getDriverMajorVersion() { - return 0; - } - - public int getDriverMinorVersion() { - return 0; - } - - public boolean usesLocalFiles() throws SQLException { - return false; - } - - public boolean usesLocalFilePerTable() throws SQLException { - return false; - } - - public boolean supportsMixedCaseIdentifiers() throws SQLException { - return false; - } - - public boolean storesUpperCaseIdentifiers() throws SQLException { - return false; - } - - public boolean storesLowerCaseIdentifiers() throws SQLException { - return false; - } - - public boolean storesMixedCaseIdentifiers() throws SQLException { - return false; - } - - public boolean supportsMixedCaseQuotedIdentifiers() throws SQLException { - return false; - } - - public boolean storesUpperCaseQuotedIdentifiers() throws SQLException { - return false; - } - - public boolean storesLowerCaseQuotedIdentifiers() throws SQLException { - return false; - } - - public boolean storesMixedCaseQuotedIdentifiers() throws SQLException { - return false; - } - - public String getIdentifierQuoteString() throws SQLException { - return " "; - } - - public String getSQLKeywords() throws SQLException { - return null; - } - - public String getNumericFunctions() throws SQLException { - return null; - } - - public String getStringFunctions() throws SQLException { - return null; - } - - public String getSystemFunctions() throws SQLException { - return null; - } - - public String getTimeDateFunctions() throws SQLException { - return null; - } - - public String getSearchStringEscape() throws SQLException { - return null; - } - - public String getExtraNameCharacters() throws SQLException { - return null; - } - - public boolean supportsAlterTableWithAddColumn() throws SQLException { - return true; - } - - public boolean supportsAlterTableWithDropColumn() throws SQLException { - return true; - } - - public boolean supportsColumnAliasing() throws SQLException { - return true; - } - - public boolean nullPlusNonNullIsNull() throws SQLException { - return false; - } - - public boolean supportsConvert() throws SQLException { - return false; - } - - public boolean supportsConvert(int fromType, int toType) throws SQLException { - return false; - } - - public boolean supportsTableCorrelationNames() throws SQLException { - return false; - } - - public boolean supportsDifferentTableCorrelationNames() throws SQLException { - return false; - } - - public boolean supportsExpressionsInOrderBy() throws SQLException { - return false; - } - - public boolean supportsOrderByUnrelated() throws SQLException { - return false; - } - - public boolean supportsGroupBy() throws SQLException { - return false; - } - - public boolean supportsGroupByUnrelated() throws SQLException { - return false; - } - - public boolean supportsGroupByBeyondSelect() throws SQLException { - return false; - } - - public boolean supportsLikeEscapeClause() throws SQLException { - return false; - } - - public boolean supportsMultipleResultSets() throws SQLException { - return false; - } - - public boolean supportsMultipleTransactions() throws SQLException { - return false; - } - - public boolean supportsNonNullableColumns() throws SQLException { - return false; - } - - public boolean supportsMinimumSQLGrammar() throws SQLException { - return false; - } - - public boolean supportsCoreSQLGrammar() throws SQLException { - return false; - } - - public boolean supportsExtendedSQLGrammar() throws SQLException { - return false; - } - - public boolean supportsANSI92EntryLevelSQL() throws SQLException { - return false; - } - - public boolean supportsANSI92IntermediateSQL() throws SQLException { - return false; - } - - public boolean supportsANSI92FullSQL() throws SQLException { - return false; - } - - public boolean supportsIntegrityEnhancementFacility() throws SQLException { - return false; - } - - public boolean supportsOuterJoins() throws SQLException { - return false; - } - - public boolean supportsFullOuterJoins() throws SQLException { - return false; - } - - public boolean supportsLimitedOuterJoins() throws SQLException { - return false; - } - - public String getSchemaTerm() throws SQLException { - return null; - } - - public String getProcedureTerm() throws SQLException { - return null; - } - - public String getCatalogTerm() throws SQLException { - return "database"; - } - - public boolean isCatalogAtStart() throws SQLException { - return true; - } - - public String getCatalogSeparator() throws SQLException { - return "."; - } - - public boolean supportsSchemasInDataManipulation() throws SQLException { - return false; - } - - public boolean supportsSchemasInProcedureCalls() throws SQLException { - return false; - } - - public boolean supportsSchemasInTableDefinitions() throws SQLException { - return false; - } - - public boolean supportsSchemasInIndexDefinitions() throws SQLException { - return false; - } - - public boolean supportsSchemasInPrivilegeDefinitions() throws SQLException { - return false; - } - - public boolean supportsCatalogsInDataManipulation() throws SQLException { - return true; - } - - public boolean supportsCatalogsInProcedureCalls() throws SQLException { - return false; - } - - public boolean supportsCatalogsInTableDefinitions() throws SQLException { - return false; - } - - public boolean supportsCatalogsInIndexDefinitions() throws SQLException { - return false; - } - - public boolean supportsCatalogsInPrivilegeDefinitions() throws SQLException { - return false; - } - - public boolean supportsPositionedDelete() throws SQLException { - return false; - } - - public boolean supportsPositionedUpdate() throws SQLException { - return false; - } - - public boolean supportsSelectForUpdate() throws SQLException { - return false; - } - - public boolean supportsStoredProcedures() throws SQLException { - return false; - } - - public boolean supportsSubqueriesInComparisons() throws SQLException { - return false; - } - - public boolean supportsSubqueriesInExists() throws SQLException { - return false; - } - - public boolean supportsSubqueriesInIns() throws SQLException { - return false; - } - - public boolean supportsSubqueriesInQuantifieds() throws SQLException { - return false; - } - - public boolean supportsCorrelatedSubqueries() throws SQLException { - return false; - } - - public boolean supportsUnion() throws SQLException { - return false; - } - - public boolean supportsUnionAll() throws SQLException { - return false; - } - - public boolean supportsOpenCursorsAcrossCommit() throws SQLException { - return false; - } - - public boolean supportsOpenCursorsAcrossRollback() throws SQLException { - return false; - } - - public boolean supportsOpenStatementsAcrossCommit() throws SQLException { - return false; - } - - public boolean supportsOpenStatementsAcrossRollback() throws SQLException { - return false; - } - - public int getMaxBinaryLiteralLength() throws SQLException { - return 0; - } - - public int getMaxCharLiteralLength() throws SQLException { - return 0; - } - - public int getMaxColumnNameLength() throws SQLException { - return 0; - } - - public int getMaxColumnsInGroupBy() throws SQLException { - return 0; - } - - public int getMaxColumnsInIndex() throws SQLException { - return 0; - } - - public int getMaxColumnsInOrderBy() throws SQLException { - return 0; - } - - public int getMaxColumnsInSelect() throws SQLException { - return 0; - } - - public int getMaxColumnsInTable() throws SQLException { - return 0; - } - - public int getMaxConnections() throws SQLException { - return 0; - } - - public int getMaxCursorNameLength() throws SQLException { - return 0; - } - - public int getMaxIndexLength() throws SQLException { - return 0; - } - - public int getMaxSchemaNameLength() throws SQLException { - return 0; - } - - public int getMaxProcedureNameLength() throws SQLException { - return 0; - } - - public int getMaxCatalogNameLength() throws SQLException { - return 0; - } - - public int getMaxRowSize() throws SQLException { - return 0; - } - - public boolean doesMaxRowSizeIncludeBlobs() throws SQLException { - return false; - } - - public int getMaxStatementLength() throws SQLException { - return 0; - } - - public int getMaxStatements() throws SQLException { - return 0; - } - - public int getMaxTableNameLength() throws SQLException { - return 0; - } - - public int getMaxTablesInSelect() throws SQLException { - return 0; - } - - public int getMaxUserNameLength() throws SQLException { - return 0; - } - - public int getDefaultTransactionIsolation() throws SQLException { - return 0; - } - - public boolean supportsTransactions() throws SQLException { - return false; - } - - public boolean supportsTransactionIsolationLevel(int level) throws SQLException { - return false; - } - - public boolean supportsDataDefinitionAndDataManipulationTransactions() throws SQLException { - return false; - } - - public boolean supportsDataManipulationTransactionsOnly() throws SQLException { - return false; - } - - public boolean dataDefinitionCausesTransactionCommit() throws SQLException { - return false; - } - - public boolean dataDefinitionIgnoredInTransactions() throws SQLException { - return false; - } - - public ResultSet getProcedures(String catalog, String schemaPattern, String procedureNamePattern) - throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public ResultSet getProcedureColumns(String catalog, String schemaPattern, String procedureNamePattern, - String columnNamePattern) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public ResultSet getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types) - throws SQLException { - if (conn != null && !conn.isClosed()) { - Statement stmt = conn.createStatement(); - if (catalog == null || catalog.length() < 1) { - catalog = conn.getCatalog(); - } - stmt.executeUpdate("use " + catalog); - ResultSet resultSet0 = stmt.executeQuery("show tables"); - GetTablesResultSet getTablesResultSet = new GetTablesResultSet(resultSet0, catalog, schemaPattern, tableNamePattern, types); - return getTablesResultSet; - } else { - throw new SQLException(TSDBConstants.FixErrMsg(TSDBConstants.JNI_CONNECTION_NULL)); - } - } - - public ResultSet getSchemas() throws SQLException { - return getEmptyResultSet(); - } - - public ResultSet getCatalogs() throws SQLException { - - if (conn != null && !conn.isClosed()) { - Statement stmt = conn.createStatement(); - ResultSet resultSet0 = stmt.executeQuery("show databases"); - CatalogResultSet resultSet = new CatalogResultSet(resultSet0); - return resultSet; - } else { - return getEmptyResultSet(); - } - } - - public ResultSet getTableTypes() throws SQLException { - DatabaseMetaDataResultSet resultSet = new DatabaseMetaDataResultSet(); - - // set up ColumnMetaDataList - List columnMetaDataList = new ArrayList(1); - ColumnMetaData colMetaData = new ColumnMetaData(); - colMetaData.setColIndex(0); - colMetaData.setColName("TABLE_TYPE"); - colMetaData.setColSize(10); - colMetaData.setColType(TSDBConstants.TSDB_DATA_TYPE_BINARY); - columnMetaDataList.add(colMetaData); - - // set up rowDataList - List rowDataList = new ArrayList(2); - TSDBResultSetRowData rowData = new TSDBResultSetRowData(); - rowData.setString(0, "TABLE"); - rowDataList.add(rowData); - rowData = new TSDBResultSetRowData(); - rowData.setString(0, "STABLE"); - rowDataList.add(rowData); - - resultSet.setColumnMetaDataList(columnMetaDataList); - resultSet.setRowDataList(rowDataList); - return resultSet; - } - - public ResultSet getColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern) - throws SQLException { - return getEmptyResultSet(); - } - - public ResultSet getColumnPrivileges(String catalog, String schema, String table, String columnNamePattern) - throws SQLException { - return getEmptyResultSet(); - } - - public ResultSet getTablePrivileges(String catalog, String schemaPattern, String tableNamePattern) - throws SQLException { - return getEmptyResultSet(); - } - - public ResultSet getBestRowIdentifier(String catalog, String schema, String table, int scope, boolean nullable) - throws SQLException { - return getEmptyResultSet(); - } - - public ResultSet getVersionColumns(String catalog, String schema, String table) throws SQLException { - return getEmptyResultSet(); - } - - public ResultSet getPrimaryKeys(String catalog, String schema, String table) throws SQLException { - return getEmptyResultSet(); - } - - public ResultSet getImportedKeys(String catalog, String schema, String table) throws SQLException { - return getEmptyResultSet(); - } - - public ResultSet getExportedKeys(String catalog, String schema, String table) throws SQLException { - return getEmptyResultSet(); - } - - public ResultSet getCrossReference(String parentCatalog, String parentSchema, String parentTable, - String foreignCatalog, String foreignSchema, String foreignTable) throws SQLException { - return getEmptyResultSet(); - } - - public ResultSet getTypeInfo() throws SQLException { - return getEmptyResultSet(); - } - - public ResultSet getIndexInfo(String catalog, String schema, String table, boolean unique, boolean approximate) - throws SQLException { - return getEmptyResultSet(); - } - - public boolean supportsResultSetType(int type) throws SQLException { - return false; - } - - public boolean supportsResultSetConcurrency(int type, int concurrency) throws SQLException { - return false; - } - - public boolean ownUpdatesAreVisible(int type) throws SQLException { - return false; - } - - public boolean ownDeletesAreVisible(int type) throws SQLException { - return false; - } - - public boolean ownInsertsAreVisible(int type) throws SQLException { - return false; - } - - public boolean othersUpdatesAreVisible(int type) throws SQLException { - return false; - } - - public boolean othersDeletesAreVisible(int type) throws SQLException { - return false; - } - - public boolean othersInsertsAreVisible(int type) throws SQLException { - return false; - } - - public boolean updatesAreDetected(int type) throws SQLException { - return false; - } - - public boolean deletesAreDetected(int type) throws SQLException { - return false; - } - - public boolean insertsAreDetected(int type) throws SQLException { - return false; - } - - public boolean supportsBatchUpdates() throws SQLException { - return false; - } - - public ResultSet getUDTs(String catalog, String schemaPattern, String typeNamePattern, int[] types) - throws SQLException { - return getEmptyResultSet(); - } - - public Connection getConnection() throws SQLException { - return null; - } - - public boolean supportsSavepoints() throws SQLException { - return false; - } - - public boolean supportsNamedParameters() throws SQLException { - return false; - } - - public boolean supportsMultipleOpenResults() throws SQLException { - return false; - } - - public boolean supportsGetGeneratedKeys() throws SQLException { - return false; - } - - public ResultSet getSuperTypes(String catalog, String schemaPattern, String typeNamePattern) throws SQLException { - return getEmptyResultSet(); - } - - public ResultSet getSuperTables(String catalog, String schemaPattern, String tableNamePattern) throws SQLException { - return getEmptyResultSet(); - } - - public ResultSet getAttributes(String catalog, String schemaPattern, String typeNamePattern, - String attributeNamePattern) throws SQLException { - return getEmptyResultSet(); - } - - public boolean supportsResultSetHoldability(int holdability) throws SQLException { - return false; - } - - public int getResultSetHoldability() throws SQLException { - return 0; - } - - public int getDatabaseMajorVersion() throws SQLException { - return 0; - } - - public int getDatabaseMinorVersion() throws SQLException { - return 0; - } - - public int getJDBCMajorVersion() throws SQLException { - return 0; - } - - public int getJDBCMinorVersion() throws SQLException { - return 0; - } - - public int getSQLStateType() throws SQLException { - return 0; - } - - public boolean locatorsUpdateCopy() throws SQLException { - return false; - } - - public boolean supportsStatementPooling() throws SQLException { - return false; - } - - public RowIdLifetime getRowIdLifetime() throws SQLException { - return null; - } - - public ResultSet getSchemas(String catalog, String schemaPattern) throws SQLException { - return null; - } - - public boolean supportsStoredFunctionsUsingCallSyntax() throws SQLException { - return false; - } - - public boolean autoCommitFailureClosesAllResultSets() throws SQLException { - return false; - } - - public ResultSet getClientInfoProperties() throws SQLException { - return getEmptyResultSet(); - } - - public ResultSet getFunctions(String catalog, String schemaPattern, String functionNamePattern) - throws SQLException { - return getEmptyResultSet(); - } - - public ResultSet getFunctionColumns(String catalog, String schemaPattern, String functionNamePattern, - String columnNamePattern) throws SQLException { - return getEmptyResultSet(); - } - - public ResultSet getPseudoColumns(String catalog, String schemaPattern, String tableNamePattern, - String columnNamePattern) throws SQLException { - return getEmptyResultSet(); - } - - public boolean generatedKeyAlwaysReturned() throws SQLException { - return false; - } - - private ResultSet getEmptyResultSet() { - return new EmptyResultSet(); - } -} \ No newline at end of file diff --git a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBDriver 2.java b/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBDriver 2.java deleted file mode 100755 index c297fb67b063355b4499b1020499104e1e10f627..0000000000000000000000000000000000000000 --- a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBDriver 2.java +++ /dev/null @@ -1,358 +0,0 @@ -/*************************************************************************** - * Copyright (c) 2019 TAOS Data, Inc. - * - * This program is free software: you can use, redistribute, and/or modify - * it under the terms of the GNU Affero General Public License, version 3 - * or later ("AGPL"), as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - *****************************************************************************/ -package com.taosdata.jdbc; - -import org.apache.commons.lang3.StringUtils; - -import java.sql.*; -import java.util.Properties; -import java.util.logging.Logger; - -/** - * The Java SQL framework allows for multiple database drivers. Each driver - * should supply a class that implements the Driver interface - * - *

- * The DriverManager will try to load as many drivers as it can find and then - * for any given connection request, it will ask each driver in turn to try to - * connect to the target URL. - * - *

- * It is strongly recommended that each Driver class should be small and stand - * alone so that the Driver class can be loaded and queried without bringing in - * vast quantities of supporting code. - * - *

- * When a Driver class is loaded, it should create an instance of itself and - * register it with the DriverManager. This means that a user can load and - * register a driver by doing Class.forName("foo.bah.Driver") - */ -public class TSDBDriver implements java.sql.Driver { - - @Deprecated - private static final String URL_PREFIX1 = "jdbc:TSDB://"; - - private static final String URL_PREFIX = "jdbc:TAOS://"; - - /** - * Key used to retrieve the database value from the properties instance passed - * to the driver. - */ - public static final String PROPERTY_KEY_DBNAME = "dbname"; - - /** - * Key used to retrieve the host value from the properties instance passed to - * the driver. - */ - public static final String PROPERTY_KEY_HOST = "host"; - /** - * Key used to retrieve the password value from the properties instance passed - * to the driver. - */ - public static final String PROPERTY_KEY_PASSWORD = "password"; - - /** - * Key used to retrieve the port number value from the properties instance - * passed to the driver. - */ - public static final String PROPERTY_KEY_PORT = "port"; - - /** - * Key used to retrieve the user value from the properties instance passed to - * the driver. - */ - public static final String PROPERTY_KEY_USER = "user"; - - /** - * Key for the configuration file directory of TSDB client in properties instance - */ - public static final String PROPERTY_KEY_CONFIG_DIR = "cfgdir"; - - /** - * Key for the timezone used by the TSDB client in properties instance - */ - public static final String PROPERTY_KEY_TIME_ZONE = "timezone"; - - /** - * Key for the locale used by the TSDB client in properties instance - */ - public static final String PROPERTY_KEY_LOCALE = "locale"; - - - /** - * Key for the char encoding used by the TSDB client in properties instance - */ - public static final String PROPERTY_KEY_CHARSET = "charset"; - - public static final String PROPERTY_KEY_PROTOCOL = "protocol"; - - /** - * Index for port coming out of parseHostPortPair(). - */ - public final static int PORT_NUMBER_INDEX = 1; - - /** - * Index for host coming out of parseHostPortPair(). - */ - public final static int HOST_NAME_INDEX = 0; - - private TSDBDatabaseMetaData dbMetaData = null; - - static { - try { - java.sql.DriverManager.registerDriver(new TSDBDriver()); - } catch (SQLException E) { - throw new RuntimeException(TSDBConstants.WrapErrMsg("can't register tdengine jdbc driver!")); - } - } - - public Connection connect(String url, Properties info) throws SQLException { - if (url == null) { - throw new SQLException(TSDBConstants.WrapErrMsg("url is not set!")); - } - - Properties props = null; - - if ((props = parseURL(url, info)) == null) { - return null; - } - - try { - TSDBJNIConnector.init((String) props.get(PROPERTY_KEY_CONFIG_DIR), (String) props.get(PROPERTY_KEY_LOCALE), (String) props.get(PROPERTY_KEY_CHARSET), - (String) props.get(PROPERTY_KEY_TIME_ZONE)); - Connection newConn = new TSDBConnection(props, this.dbMetaData); - return newConn; - } catch (SQLWarning sqlWarning) { - sqlWarning.printStackTrace(); - Connection newConn = new TSDBConnection(props, this.dbMetaData); - return newConn; - } catch (SQLException sqlEx) { - throw sqlEx; - } catch (Exception ex) { - SQLException sqlEx = new SQLException("SQLException:" + ex.toString()); - sqlEx.initCause(ex); - throw sqlEx; - } - } - - /** - * Parses hostPortPair in the form of [host][:port] into an array, with the - * element of index HOST_NAME_INDEX being the host (or null if not specified), - * and the element of index PORT_NUMBER_INDEX being the port (or null if not - * specified). - * - * @param hostPortPair - * host and port in form of of [host][:port] - * - * @return array containing host and port as Strings - * - * @throws SQLException - * if a parse error occurs - */ - protected static String[] parseHostPortPair(String hostPortPair) throws SQLException { - String[] splitValues = new String[2]; - - int portIndex = hostPortPair.indexOf(":"); - - String hostname = null; - - if (portIndex != -1) { - if ((portIndex + 1) < hostPortPair.length()) { - String portAsString = hostPortPair.substring(portIndex + 1); - hostname = hostPortPair.substring(0, portIndex); - - splitValues[HOST_NAME_INDEX] = hostname; - - splitValues[PORT_NUMBER_INDEX] = portAsString; - } else { - throw new SQLException(TSDBConstants.WrapErrMsg("port is not proper!")); - } - } else { - splitValues[HOST_NAME_INDEX] = hostPortPair; - splitValues[PORT_NUMBER_INDEX] = null; - } - - return splitValues; - } - - public boolean acceptsURL(String url) throws SQLException { - return true; - } - - public DriverPropertyInfo[] getPropertyInfo(String url, Properties info) throws SQLException { - if (info == null) { - info = new Properties(); - } - - if ((url != null) && (url.startsWith(URL_PREFIX) || url.startsWith(URL_PREFIX1))) { - info = parseURL(url, info); - } - - DriverPropertyInfo hostProp = new DriverPropertyInfo(PROPERTY_KEY_HOST, info.getProperty(PROPERTY_KEY_HOST)); - hostProp.required = true; - - DriverPropertyInfo portProp = new DriverPropertyInfo(PROPERTY_KEY_PORT, - info.getProperty(PROPERTY_KEY_PORT, TSDBConstants.DEFAULT_PORT)); - portProp.required = false; - - DriverPropertyInfo dbProp = new DriverPropertyInfo(PROPERTY_KEY_DBNAME, info.getProperty(PROPERTY_KEY_DBNAME)); - dbProp.required = false; - dbProp.description = "Database name"; - - DriverPropertyInfo userProp = new DriverPropertyInfo(PROPERTY_KEY_USER, info.getProperty(PROPERTY_KEY_USER)); - userProp.required = true; - - DriverPropertyInfo passwordProp = new DriverPropertyInfo(PROPERTY_KEY_PASSWORD, - info.getProperty(PROPERTY_KEY_PASSWORD)); - passwordProp.required = true; - - DriverPropertyInfo[] propertyInfo = new DriverPropertyInfo[5]; - propertyInfo[0] = hostProp; - propertyInfo[1] = portProp; - propertyInfo[2] = dbProp; - propertyInfo[3] = userProp; - propertyInfo[4] = passwordProp; - - return propertyInfo; - } - - /** - * example: jdbc:TSDB://127.0.0.1:0/db?user=root&password=your_password - */ - - public Properties parseURL(String url, Properties defaults) throws java.sql.SQLException { - Properties urlProps = (defaults != null) ? defaults : new Properties(); - if (url == null) { - return null; - } - - if (!StringUtils.startsWithIgnoreCase(url, URL_PREFIX) && !StringUtils.startsWithIgnoreCase(url, URL_PREFIX1)) { - return null; - } - - String urlForMeta = url; - - String dbProductName = url.substring(url.indexOf(":") + 1); - dbProductName = dbProductName.substring(0, dbProductName.indexOf(":")); - int beginningOfSlashes = url.indexOf("//"); - url = url.substring(beginningOfSlashes + 2); - - String host = url.substring(0, url.indexOf(":")); - url = url.substring(url.indexOf(":") + 1); - urlProps.setProperty(PROPERTY_KEY_HOST, host); - - String port = url.substring(0, url.indexOf("/")); - urlProps.setProperty(PROPERTY_KEY_PORT, port); - url = url.substring(url.indexOf("/") + 1); - - if (url.indexOf("?") != -1) { - String dbName = url.substring(0, url.indexOf("?")); - urlProps.setProperty(PROPERTY_KEY_DBNAME, dbName); - url = url.trim().substring(1); - } else { - // without user & password so return - String dbName = url.trim(); - urlProps.setProperty(PROPERTY_KEY_DBNAME, dbName); - this.dbMetaData = new TSDBDatabaseMetaData(dbProductName, urlForMeta, urlProps.getProperty("user")); - return urlProps; - } - - String[] queryStrings = url.trim().split("&"); - String user = ""; - for (String queryStr : queryStrings) { - String[] kvPair = queryStr.trim().split("="); - if (kvPair.length < 2){ - continue; - } - switch (kvPair[0].toLowerCase()) { - case PROPERTY_KEY_USER: - urlProps.setProperty(PROPERTY_KEY_USER, kvPair[1]); - user = kvPair[1]; - break; - case PROPERTY_KEY_PASSWORD: - urlProps.setProperty(PROPERTY_KEY_PASSWORD, kvPair[1]); - break; - case PROPERTY_KEY_TIME_ZONE: - urlProps.setProperty(PROPERTY_KEY_TIME_ZONE, kvPair[1]); - break; - case PROPERTY_KEY_LOCALE: - urlProps.setProperty(PROPERTY_KEY_LOCALE, kvPair[1]); - break; - case PROPERTY_KEY_CHARSET: - urlProps.setProperty(PROPERTY_KEY_CHARSET, kvPair[1]); - break; - case PROPERTY_KEY_CONFIG_DIR: - urlProps.setProperty(PROPERTY_KEY_CONFIG_DIR, kvPair[1]); - break; - } - } - - this.dbMetaData = new TSDBDatabaseMetaData(dbProductName, urlForMeta, user); - - return urlProps; - } - - public int getMajorVersion() { - return 1; - } - - public int getMinorVersion() { - return 1; - } - - public boolean jdbcCompliant() { - return false; - } - - public Logger getParentLogger() throws SQLFeatureNotSupportedException { - return null; - } - - /** - * Returns the host property - * - * @param props - * the java.util.Properties instance to retrieve the hostname from. - * - * @return the host - */ - public String host(Properties props) { - return props.getProperty(PROPERTY_KEY_HOST, "localhost"); - } - - /** - * Returns the port number property - * - * @param props - * the properties to get the port number from - * - * @return the port number - */ - public int port(Properties props) { - return Integer.parseInt(props.getProperty(PROPERTY_KEY_PORT, TSDBConstants.DEFAULT_PORT)); - } - - /** - * Returns the database property from props - * - * @param props - * the Properties to look for the database property. - * - * @return the database name. - */ - public String database(Properties props) { - return props.getProperty(PROPERTY_KEY_DBNAME); - } -} \ No newline at end of file diff --git a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBError 2.java b/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBError 2.java deleted file mode 100644 index 7d5b02606ea0b05069785331fe223503a205e46b..0000000000000000000000000000000000000000 --- a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBError 2.java +++ /dev/null @@ -1,223 +0,0 @@ -/*************************************************************************** - * Copyright (c) 2019 TAOS Data, Inc. - * - * This program is free software: you can use, redistribute, and/or modify - * it under the terms of the GNU Affero General Public License, version 3 - * or later ("AGPL"), as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - *****************************************************************************/ -package com.taosdata.jdbc; - -import java.util.HashMap; -import java.util.Map; - -/** - * - * TDengine error code and error message enumeration. - * - */ -public enum TSDBError { - - TSDB_CODE_SUCCESS(0, "success"), - TSDB_CODE_ACTION_IN_PROGRESS(1, "in progress"), - TSDB_CODE_LAST_SESSION_NOT_FINISHED(5, "last session not finished"), - TSDB_CODE_INVALID_SESSION_ID(6, "invalid session ID"), - TSDB_CODE_INVALID_TRAN_ID(7, "invalid tran ID"), - TSDB_CODE_INVALID_MSG_TYPE(8, "invalid msg type"), - TSDB_CODE_ALREADY_PROCESSED(9, "alredy processed"), - TSDB_CODE_AUTH_FAILURE(10, "authentication failure"), - TSDB_CODE_WRONG_MSG_SIZE(11, "wrong msg size"), - TSDB_CODE_UNEXPECTED_RESPONSE(12, "unexpected response"), - TSDB_CODE_INVALID_RESPONSE_TYPE(13, "invalid response type"), - TSDB_CODE_NO_RESOURCE(14, "no resource"), - TSDB_CODE_INVALID_TIME_STAMP(15, "invalid time stamp"), - TSDB_CODE_MISMATCHED_METER_ID(16, "mismatched meter ID"), - TSDB_CODE_ACTION_TRANS_NOT_FINISHED(17, "transcation not finished"), - TSDB_CODE_ACTION_NOT_ONLINE(18, "not online"), - TSDB_CODE_ACTION_SEND_FAILD(19, "send failed"), - TSDB_CODE_NOT_ACTIVE_SESSION(20, "not active session"), - TSDB_CODE_INSERT_FAILED(21, "insert failed"), - TSDB_CODE_APP_ERROR(22, "App error"), - TSDB_CODE_INVALID_IE(23, "invalid IE"), - TSDB_CODE_INVALID_VALUE(24, "invalid value"), - TSDB_CODE_REDIRECT(25, "service not available"), - TSDB_CODE_ALREADY_THERE(26, "already there"), - TSDB_CODE_INVALID_METER_ID(27, "invalid meter ID"), - TSDB_CODE_INVALID_SQL(28, "invalid SQL"), // this message often comes with additional info which will vary based on the specific error situation - TSDB_CODE_NETWORK_UNAVAIL(29, "failed to connect to server"), - TSDB_CODE_INVALID_MSG_LEN(30, "invalid msg len"), - TSDB_CODE_INVALID_DB(31, "invalid DB"), - TSDB_CODE_INVALID_TABLE(32, "invalid table"), - TSDB_CODE_DB_ALREADY_EXIST(33, "DB already there"), - TSDB_CODE_TABLE_ALREADY_EXIST(34, "table already there"), - TSDB_CODE_INVALID_USER(35, "invalid user name"), - TSDB_CODE_INVALID_ACCT(36, "invalid acct name"), - TSDB_CODE_INVALID_PASS(37, "invalid password"), - TSDB_CODE_DB_NOT_SELECTED(38, "DB not selected"), - TSDB_CODE_MEMORY_CORRUPTED(39, "memory corrupted"), - TSDB_CODE_USER_ALREADY_EXIST(40, "user name exists"), - TSDB_CODE_NO_RIGHTS(41, "not authorized"), - TSDB_CODE_DISCONNECTED(42, "login disconnected), login again"), - TSDB_CODE_NO_MASTER(43, "mgmt master node not available"), - TSDB_CODE_NOT_CONFIGURED(44, "not configured"), - TSDB_CODE_INVALID_OPTION(45, "invalid option"), - TSDB_CODE_NODE_OFFLINE(46, "node offline"), - TSDB_CODE_SYNC_REQUIRED(47, "sync required"), - TSDB_CODE_NO_ENOUGH_DNODES(48, "more dnodes are needed"), - TSDB_CODE_UNSYNCED(49, "node in unsynced state"), - TSDB_CODE_TOO_SLOW(50, "too slow"), - TSDB_CODE_OTHERS(51, "others"), - TSDB_CODE_NO_REMOVE_MASTER(52, "can't remove dnode which is master"), - TSDB_CODE_WRONG_SCHEMA(53, "wrong schema"), - TSDB_CODE_NO_RESULT(54, "no results"), - TSDB_CODE_TOO_MANY_USERS(55, "num of users execeed maxUsers"), - TSDB_CODE_TOO_MANY_DATABSES(56, "num of databases execeed maxDbs"), - TSDB_CODE_TOO_MANY_TABLES(57, "num of tables execeed maxTables"), - TSDB_CODE_TOO_MANY_DNODES(58, "num of dnodes execeed maxDnodes"), - TSDB_CODE_TOO_MANY_ACCTS(59, "num of accounts execeed maxAccts"), - TSDB_CODE_ACCT_ALREADY_EXIST(60, "accout name exists"), - TSDB_CODE_DNODE_ALREADY_EXIST(61, "dnode ip exists"), - TSDB_CODE_SDB_ERROR(62, "sdb error"), - TSDB_CODE_METRICMETA_EXPIRED(63, "metric meta expired"), // local cached metric-meta expired causes error in metric query - TSDB_CODE_NOT_READY(64, "not ready"), // peer is not ready to process data - TSDB_CODE_MAX_SESSIONS(65, "too many sessions on server"), // too many sessions - TSDB_CODE_MAX_CONNECTIONS(66, "too many sessions from app"), // too many connections - TSDB_CODE_SESSION_ALREADY_EXIST(67, "session to dest is already there"), - TSDB_CODE_NO_QSUMMARY(68, "query list not there), please show again"), - TSDB_CODE_SERV_OUT_OF_MEMORY(69, "server out of memory"), - TSDB_CODE_INVALID_QHANDLE(70, "invalid query handle"), - TSDB_CODE_RELATED_TABLES_EXIST(71, "tables related to metric exist"), - TSDB_CODE_MONITOR_DB_FORBEIDDEN(72, "can't drop monitor database or tables"), - TSDB_CODE_VG_COMMITLOG_INIT_FAILED(73, "commit log init failed"), - TSDB_CODE_VG_INIT_FAILED(74, "vgroup init failed"), - TSDB_CODE_DATA_ALREADY_IMPORTED(75, "data is already imported"), - TSDB_CODE_OPS_NOT_SUPPORT(76, "not supported operation"), - TSDB_CODE_INVALID_QUERY_ID(77, "invalid query id string"), - TSDB_CODE_INVALID_STREAM_ID(78, "invalid stream id string"), - TSDB_CODE_INVALID_CONNECTION(79, "invalid connection string"), - TSDB_CODE_ACTION_NOT_BALANCED(80, "dnode not balanced"), - TSDB_CODE_CLI_OUT_OF_MEMORY(81, "client out of memory"), - TSDB_CODE_DATA_OVERFLOW(82, "data value overflow"), - TSDB_CODE_QUERY_CANCELLED(83, "query cancelled"), - TSDB_CODE_GRANT_POINT_LIMITED(84, "grant points limited"), - TSDB_CODE_GRANT_EXPIRED(85, "grant expired"), - TSDB_CODE_CLI_NO_DISKSPACE(86, "client no disk space"), - TSDB_CODE_FILE_CORRUPTED(87, "DB file corrupted"), - TSDB_CODE_INVALID_CLIENT_VERSION(88, "version of client and server not match"); - - private long errCode; - private String errMessage; - private static Map errorCodeMap = new HashMap<>(86); - static { - errorCodeMap.put(0, "success"); - errorCodeMap.put(1, "in progress"); - errorCodeMap.put(5, "last session not finished"); - errorCodeMap.put(6, "invalid session ID"); - errorCodeMap.put(7, "invalid tran ID"); - errorCodeMap.put(8, "invalid msg type"); - errorCodeMap.put(9, "alredy processed"); - errorCodeMap.put(10, "authentication failure"); - errorCodeMap.put(11, "wrong msg size"); - errorCodeMap.put(12, "unexpected response"); - errorCodeMap.put(13, "invalid response type"); - errorCodeMap.put(14, "no resource"); - errorCodeMap.put(15, "invalid time stamp"); - errorCodeMap.put(16, "mismatched meter ID"); - errorCodeMap.put(17, "transcation not finished"); - errorCodeMap.put(18, "not online"); - errorCodeMap.put(19, "send failed"); - errorCodeMap.put(20, "not active session"); - errorCodeMap.put(21, "insert failed"); - errorCodeMap.put(22, "App error"); - errorCodeMap.put(23, "invalid IE"); - errorCodeMap.put(24, "invalid value"); - errorCodeMap.put(25, "service not available"); - errorCodeMap.put(26, "already there"); - errorCodeMap.put(27, "invalid meter ID"); - errorCodeMap.put(28, "invalid SQL"); // this message often comes with additional info which will vary based on the specific error situation - errorCodeMap.put(29, "failed to connect to server"); - errorCodeMap.put(30, "invalid msg len"); - errorCodeMap.put(31, "invalid DB"); - errorCodeMap.put(32, "invalid table"); - errorCodeMap.put(33, "DB already there"); - errorCodeMap.put(34, "table already there"); - errorCodeMap.put(35, "invalid user name"); - errorCodeMap.put(36, "invalid acct name"); - errorCodeMap.put(37, "invalid password"); - errorCodeMap.put(38, "DB not selected"); - errorCodeMap.put(39, "memory corrupted"); - errorCodeMap.put(40, "user name exists"); - errorCodeMap.put(41, "not authorized"); - errorCodeMap.put(42, "login disconnected); login again"); - errorCodeMap.put(43, "mgmt master node not available"); - errorCodeMap.put(44, "not configured"); - errorCodeMap.put(45, "invalid option"); - errorCodeMap.put(46, "node offline"); - errorCodeMap.put(47, "sync required"); - errorCodeMap.put(48, "more dnodes are needed"); - errorCodeMap.put(49, "node in unsynced state"); - errorCodeMap.put(50, "too slow"); - errorCodeMap.put(51, "others"); - errorCodeMap.put(52, "can't remove dnode which is master"); - errorCodeMap.put(53, "wrong schema"); - errorCodeMap.put(54, "no results"); - errorCodeMap.put(55, "num of users execeed maxUsers"); - errorCodeMap.put(56, "num of databases execeed maxDbs"); - errorCodeMap.put(57, "num of tables execeed maxTables"); - errorCodeMap.put(58, "num of dnodes execeed maxDnodes"); - errorCodeMap.put(59, "num of accounts execeed maxAccts"); - errorCodeMap.put(60, "accout name exists"); - errorCodeMap.put(61, "dnode ip exists"); - errorCodeMap.put(62, "sdb error"); - errorCodeMap.put(63, "metric meta expired"); // local cached metric-meta expired causes error in metric query - errorCodeMap.put(64, "not ready"); // peer is not ready to process data - errorCodeMap.put(65, "too many sessions on server"); // too many sessions - errorCodeMap.put(66, "too many sessions from app"); // too many connections - errorCodeMap.put(67, "session to dest is already there"); - errorCodeMap.put(68, "query list not there); please show again"); - errorCodeMap.put(69, "server out of memory"); - errorCodeMap.put(70, "invalid query handle"); - errorCodeMap.put(71, "tables related to metric exist"); - errorCodeMap.put(72, "can't drop monitor database or tables"); - errorCodeMap.put(73, "commit log init failed"); - errorCodeMap.put(74, "vgroup init failed"); - errorCodeMap.put(75, "data is already imported"); - errorCodeMap.put(76, "not supported operation"); - errorCodeMap.put(77, "invalid query id string"); - errorCodeMap.put(78, "invalid stream id string"); - errorCodeMap.put(79, "invalid connection string"); - errorCodeMap.put(80, "dnode not balanced"); - errorCodeMap.put(81, "client out of memory"); - errorCodeMap.put(82, "data value overflow"); - errorCodeMap.put(83, "query cancelled"); - errorCodeMap.put(84, "grant points limited"); - errorCodeMap.put(85, "grant expired"); - errorCodeMap.put(86, "client no disk space"); - errorCodeMap.put(87, "DB file corrupted"); - errorCodeMap.put(88, "version of client and server not match"); - } - - TSDBError(long code, String message) { - this.errCode = code; - this.errMessage = message; - } - - public long getErrCode() { - return this.errCode; - } - - public String getErrMessage() { - return this.errMessage; - } - - public static String getErrMessageByCode(long errCode) { - return errorCodeMap.get(errCode); - } - -} diff --git a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBJNIConnector 2.java b/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBJNIConnector 2.java deleted file mode 100755 index 3adb601822567a6a7c515fa405801024e99a4609..0000000000000000000000000000000000000000 --- a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBJNIConnector 2.java +++ /dev/null @@ -1,300 +0,0 @@ -/*************************************************************************** - * Copyright (c) 2019 TAOS Data, Inc. - * - * This program is free software: you can use, redistribute, and/or modify - * it under the terms of the GNU Affero General Public License, version 3 - * or later ("AGPL"), as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - *****************************************************************************/ -package com.taosdata.jdbc; - -import java.sql.SQLException; -import java.sql.SQLWarning; -import java.util.List; - -public class TSDBJNIConnector { - static volatile Boolean isInitialized = false; - - static { - System.loadLibrary("taos"); - System.out.println("java.library.path:" + System.getProperty("java.library.path")); - } - - /** - * Connection pointer used in C - */ - private long taos = TSDBConstants.JNI_NULL_POINTER; - - /** - * Result set pointer for the current connection - */ - private long taosResultSetPointer = TSDBConstants.JNI_NULL_POINTER; - - /** - * result set status in current connection - */ - private boolean isResultsetClosed = true; - private int affectedRows = -1; - - /** - * Whether the connection is closed - */ - public boolean isClosed() { - return this.taos == TSDBConstants.JNI_NULL_POINTER; - } - - /** - * Returns the status of last result set in current connection - * - * @return - */ - public boolean isResultsetClosed() { - return this.isResultsetClosed; - } - - /** - * Initialize static variables in JNI to optimize performance - */ - public static void init(String configDir, String locale, String charset, String timezone) throws SQLWarning { - synchronized (isInitialized) { - if (!isInitialized) { - initImp(configDir); - if (setOptions(0, locale) < 0) { - throw new SQLWarning(TSDBConstants.WrapErrMsg("Failed to set locale: " + locale + ". System default will be used.")); - } - if (setOptions(1, charset) < 0) { - throw new SQLWarning(TSDBConstants.WrapErrMsg("Failed to set charset: " + charset + ". System default will be used.")); - } - if (setOptions(2, timezone) < 0) { - throw new SQLWarning(TSDBConstants.WrapErrMsg("Failed to set timezone: " + timezone + ". System default will be used.")); - } - isInitialized = true; - TaosGlobalConfig.setCharset(getTsCharset()); - } - } - } - - public static native void initImp(String configDir); - - public static native int setOptions(int optionIndex, String optionValue); - - public static native String getTsCharset(); - - /** - * Get connection pointer - * - * @throws SQLException - */ - public boolean connect(String host, int port, String dbName, String user, String password) throws SQLException { - if (this.taos != TSDBConstants.JNI_NULL_POINTER) { - this.closeConnectionImp(this.taos); - this.taos = TSDBConstants.JNI_NULL_POINTER; - } - - this.taos = this.connectImp(host, port, dbName, user, password); - if (this.taos == TSDBConstants.JNI_NULL_POINTER) { - throw new SQLException(TSDBConstants.WrapErrMsg(this.getErrMsg()), "", this.getErrCode()); - } - - return true; - } - - private native long connectImp(String host, int port, String dbName, String user, String password); - - /** - * Execute DML/DDL operation - * - * @throws SQLException - */ - public int executeQuery(String sql) throws SQLException { - if (!this.isResultsetClosed) { - freeResultSet(taosResultSetPointer); - } - - int code; - try { - code = this.executeQueryImp(sql.getBytes(TaosGlobalConfig.getCharset()), this.taos); - } catch (Exception e) { - e.printStackTrace(); - throw new SQLException(TSDBConstants.WrapErrMsg("Unsupported encoding")); - } - affectedRows = code; - if (code < 0) { - affectedRows = -1; - if (code == TSDBConstants.JNI_TDENGINE_ERROR) { - throw new SQLException(TSDBConstants.WrapErrMsg(this.getErrMsg()), "", this.getErrCode()); - } else { - throw new SQLException(TSDBConstants.FixErrMsg(code), "", this.getErrCode()); - } - } - - // Try retrieving result set for the executed SQL using the current connection pointer. If the executed - // SQL is a DML/DDL which doesn't return a result set, then taosResultSetPointer should be 0L. Otherwise, - // taosResultSetPointer should be a non-zero value. - taosResultSetPointer = this.getResultSetImp(this.taos); - if (taosResultSetPointer != TSDBConstants.JNI_NULL_POINTER) { - isResultsetClosed = false; - } - return code; - } - - private native int executeQueryImp(byte[] sqlBytes, long connection); - - /** - * Get recent error code by connection - */ - public int getErrCode() { - return Math.abs(this.getErrCodeImp(this.taos)); - } - - private native int getErrCodeImp(long connection); - - /** - * Get recent error message by connection - */ - public String getErrMsg() { - return this.getErrMsgImp(this.taos); - } - - private native String getErrMsgImp(long connection); - - /** - * Get resultset pointer - * Each connection should have a single open result set at a time - */ - public long getResultSet() { - return taosResultSetPointer; - } - - private native long getResultSetImp(long connection); - - /** - * Free resultset operation from C to release resultset pointer by JNI - */ - public int freeResultSet(long result) { - int res = TSDBConstants.JNI_SUCCESS; - if (result != taosResultSetPointer && taosResultSetPointer != TSDBConstants.JNI_NULL_POINTER) { - throw new RuntimeException("Invalid result set pointer"); - } else if (taosResultSetPointer != TSDBConstants.JNI_NULL_POINTER) { - res = this.freeResultSetImp(this.taos, result); - isResultsetClosed = true; // reset resultSetPointer to 0 after freeResultSetImp() return - taosResultSetPointer = TSDBConstants.JNI_NULL_POINTER; - } else { - isResultsetClosed = true; - } - return res; - } - - /** - * Close the open result set which is associated to the current connection. If the result set is already - * closed, return 0 for success. - * - * @return - */ - public int freeResultSet() { - int resCode = TSDBConstants.JNI_SUCCESS; - if (!isResultsetClosed) { - resCode = this.freeResultSetImp(this.taos, this.taosResultSetPointer); - taosResultSetPointer = TSDBConstants.JNI_NULL_POINTER; - isResultsetClosed = true; - } - return resCode; - } - - private native int freeResultSetImp(long connection, long result); - - /** - * Get affected rows count - */ - public int getAffectedRows() { - int affectedRows = this.affectedRows; - if (affectedRows < 0) { - affectedRows = this.getAffectedRowsImp(this.taos); - } - return affectedRows; - } - - private native int getAffectedRowsImp(long connection); - - /** - * Get schema metadata - */ - public int getSchemaMetaData(long resultSet, List columnMetaData) { - return this.getSchemaMetaDataImp(this.taos, resultSet, columnMetaData); - } - - private native int getSchemaMetaDataImp(long connection, long resultSet, List columnMetaData); - - /** - * Get one row data - */ - public int fetchRow(long resultSet, TSDBResultSetRowData rowData) { - return this.fetchRowImp(this.taos, resultSet, rowData); - } - - private native int fetchRowImp(long connection, long resultSet, TSDBResultSetRowData rowData); - - /** - * Execute close operation from C to release connection pointer by JNI - * - * @throws SQLException - */ - public void closeConnection() throws SQLException { - int code = this.closeConnectionImp(this.taos); - if (code < 0) { - throw new SQLException(TSDBConstants.FixErrMsg(code), "", this.getErrCode()); - } else if (code == 0) { - this.taos = TSDBConstants.JNI_NULL_POINTER; - } else { - throw new SQLException("Undefined error code returned by TDengine when closing a connection"); - } - } - - private native int closeConnectionImp(long connection); - - /** - * Subscribe to a table in TSDB - */ - public long subscribe(String host, String user, String password, String database, String table, long time, int period) { - return subscribeImp(host, user, password, database, table, time, period); - } - - private native long subscribeImp(String host, String user, String password, String database, String table, long time, int period); - - /** - * Consume a subscribed table - */ - public TSDBResultSetRowData consume(long subscription) { - return this.consumeImp(subscription); - } - - private native TSDBResultSetRowData consumeImp(long subscription); - - /** - * Unsubscribe a table - * - * @param subscription - */ - public void unsubscribe(long subscription) { - unsubscribeImp(subscription); - } - - private native void unsubscribeImp(long subscription); - - /** - * Validate if a create table sql statement is correct without actually creating that table - */ - public boolean validateCreateTableSql(String sql) { - long connection = taos; - int res = validateCreateTableSqlImp(connection, sql.getBytes()); - return res != 0 ? false : true; - } - - private native int validateCreateTableSqlImp(long connection, byte[] sqlBytes); -} diff --git a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBParameterMetaData 2.java b/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBParameterMetaData 2.java deleted file mode 100644 index d9227523d4ac623d23d85be6376a1530ca606751..0000000000000000000000000000000000000000 --- a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBParameterMetaData 2.java +++ /dev/null @@ -1,75 +0,0 @@ -/*************************************************************************** - * Copyright (c) 2019 TAOS Data, Inc. - * - * This program is free software: you can use, redistribute, and/or modify - * it under the terms of the GNU Affero General Public License, version 3 - * or later ("AGPL"), as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - *****************************************************************************/ -package com.taosdata.jdbc; - -import java.sql.ParameterMetaData; -import java.sql.SQLException; - -public class TSDBParameterMetaData implements ParameterMetaData { - @Override - public int getParameterCount() throws SQLException { - return 0; - } - - @Override - public int isNullable(int param) throws SQLException { - return 0; - } - - @Override - public boolean isSigned(int param) throws SQLException { - return false; - } - - @Override - public int getPrecision(int param) throws SQLException { - return 0; - } - - @Override - public int getScale(int param) throws SQLException { - return 0; - } - - @Override - public int getParameterType(int param) throws SQLException { - return 0; - } - - @Override - public String getParameterTypeName(int param) throws SQLException { - return null; - } - - @Override - public String getParameterClassName(int param) throws SQLException { - return null; - } - - @Override - public int getParameterMode(int param) throws SQLException { - return 0; - } - - @Override - public T unwrap(Class iface) throws SQLException { - return null; - } - - @Override - public boolean isWrapperFor(Class iface) throws SQLException { - return false; - } -} diff --git a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBPreparedStatement 2.java b/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBPreparedStatement 2.java deleted file mode 100644 index 6097ad9c43f517f19c42da94c865a5c1caae65ea..0000000000000000000000000000000000000000 --- a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBPreparedStatement 2.java +++ /dev/null @@ -1,478 +0,0 @@ -/*************************************************************************** - * Copyright (c) 2019 TAOS Data, Inc. - * - * This program is free software: you can use, redistribute, and/or modify - * it under the terms of the GNU Affero General Public License, version 3 - * or later ("AGPL"), as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - *****************************************************************************/ -package com.taosdata.jdbc; - -import java.io.InputStream; -import java.io.Reader; -import java.math.BigDecimal; -import java.net.URL; -import java.sql.*; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -/* - * TDengine only supports a subset of the standard SQL, thus this implemetation of the - * standard JDBC API contains more or less some adjustments customized for certain - * compatibility needs. - */ -public class TSDBPreparedStatement extends TSDBStatement implements PreparedStatement { - protected String rawSql; - protected String sql; - protected ArrayList parameters = new ArrayList(); - - //start with insert or import and is case-insensitive - private static Pattern savePattern = Pattern.compile("(?i)^\\s*(insert|import)"); - - // is insert or import - private boolean isSaved; - - private SavedPreparedStatement savedPreparedStatement; - - TSDBPreparedStatement(TSDBJNIConnector connecter, String sql) { - super(connecter); - init(sql); - } - - private void init(String sql) { - this.rawSql = sql; - preprocessSql(); - - this.isSaved = isSavedSql(this.rawSql); - if (this.isSaved) { - - try { - this.savedPreparedStatement = new SavedPreparedStatement(this.rawSql, this); - } catch (SQLException e) { - e.printStackTrace(); - } - } - } - - /** - * if the precompiled sql is insert or import - * - * @param sql - * @return - */ - private boolean isSavedSql(String sql) { - Matcher matcher = savePattern.matcher(sql); - return matcher.find(); - } - - @Override - public int[] executeBatch() throws SQLException { - if (isSaved) { - return this.savedPreparedStatement.executeBatch(); - } else { - return super.executeBatch(); - } - } - - public ArrayList getParameters() { - return parameters; - } - - public void setParameters(ArrayList parameters) { - this.parameters = parameters; - } - - public String getRawSql() { - return rawSql; - } - - /* - * Some of the SQLs sent by other popular frameworks or tools like Spark, contains syntax that cannot be parsed by - * the TDengine client. Thus, some simple parsers/filters are intentionally added in this JDBC implementation in - * order to process those supported SQLs. - */ - private void preprocessSql() { - - /***** For processing some of Spark SQLs*****/ - // should replace it first - this.rawSql = this.rawSql.replaceAll("or (.*) is null", ""); - this.rawSql = this.rawSql.replaceAll(" where ", " WHERE "); - this.rawSql = this.rawSql.replaceAll(" or ", " OR "); - this.rawSql = this.rawSql.replaceAll(" and ", " AND "); - this.rawSql = this.rawSql.replaceAll(" is null", " IS NULL"); - this.rawSql = this.rawSql.replaceAll(" is not null", " IS NOT NULL"); - - // SELECT * FROM db.tb WHERE 1=0 - this.rawSql = this.rawSql.replaceAll("WHERE 1=0", "WHERE _c0=1"); - this.rawSql = this.rawSql.replaceAll("WHERE 1=2", "WHERE _c0=1"); - - // SELECT "ts","val" FROM db.tb - this.rawSql = this.rawSql.replaceAll("\"", ""); - - // SELECT 1 FROM db.tb - this.rawSql = this.rawSql.replaceAll("SELECT 1 FROM", "SELECT * FROM"); - - // SELECT "ts","val" FROM db.tb WHERE ts < 33 or ts is null - this.rawSql = this.rawSql.replaceAll("OR (.*) IS NULL", ""); - - // SELECT "ts","val" FROM db.tb WHERE ts is null or ts < 33 - this.rawSql = this.rawSql.replaceAll("(.*) IS NULL OR", ""); - - // SELECT 1 FROM db.tb WHERE (("val" IS NOT NULL) AND ("val" > 50)) AND (ts >= 66) - this.rawSql = this.rawSql.replaceAll("\\(\\((.*) IS NOT NULL\\) AND", "("); - - // SELECT 1 FROM db.tb WHERE ("val" IS NOT NULL) AND ("val" > 50) AND (ts >= 66) - this.rawSql = this.rawSql.replaceAll("\\((.*) IS NOT NULL\\) AND", ""); - - // SELECT "ts","val" FROM db.tb WHERE (("val" IS NOT NULL)) AND (ts < 33 or ts is null) - this.rawSql = this.rawSql.replaceAll("\\(\\((.*) IS NOT NULL\\)\\) AND", ""); - - /***** For processing inner subqueries *****/ - Pattern pattern = Pattern.compile("FROM\\s+((\\(.+\\))\\s+SUB_QRY)", Pattern.CASE_INSENSITIVE); - Matcher matcher = pattern.matcher(rawSql); - String tableFullName = ""; - if (matcher.find() && matcher.groupCount() == 2) { - String subQry = matcher.group(2); - Pattern pattern1 = Pattern.compile("FROM\\s+(\\w+\\.\\w+)", Pattern.CASE_INSENSITIVE); - Matcher matcher1 = pattern1.matcher(subQry); - if (matcher1.find() && matcher1.groupCount() == 1) { - tableFullName = matcher1.group(1); - } - rawSql = rawSql.replace(matcher.group(1), tableFullName); - } - /***** for inner queries *****/ - - } - - /** - * Populate parameters into prepared sql statements - * - * @return a string of the native sql statement for TSDB - */ - private String getNativeSql() { - this.sql = this.rawSql; - for (int i = 0; i < parameters.size(); ++i) { - Object para = parameters.get(i); - if (para != null) { - String paraStr = para.toString(); - if (para instanceof Timestamp || para instanceof String) { - paraStr = "'" + paraStr + "'"; - } - this.sql = this.sql.replaceFirst("[?]", paraStr); - } else { - this.sql = this.sql.replaceFirst("[?]", "NULL"); - } - } - parameters.clear(); - return sql; - } - - @Override - public ResultSet executeQuery() throws SQLException { - if (isSaved) { - this.savedPreparedStatement.executeBatchInternal(); - return null; - } else { - return super.executeQuery(getNativeSql()); - } - } - - @Override - public int executeUpdate() throws SQLException { - if (isSaved) { - return this.savedPreparedStatement.executeBatchInternal(); - } else { - return super.executeUpdate(getNativeSql()); - } - } - - @Override - public void setNull(int parameterIndex, int sqlType) throws SQLException { - setObject(parameterIndex, new String("NULL")); - } - - @Override - public void setBoolean(int parameterIndex, boolean x) throws SQLException { - setObject(parameterIndex, x); - } - - @Override - public void setByte(int parameterIndex, byte x) throws SQLException { - setObject(parameterIndex, x); - } - - @Override - public void setShort(int parameterIndex, short x) throws SQLException { - setObject(parameterIndex, x); - } - - @Override - public void setInt(int parameterIndex, int x) throws SQLException { - setObject(parameterIndex, x); - } - - @Override - public void setLong(int parameterIndex, long x) throws SQLException { - setObject(parameterIndex, x); - } - - @Override - public void setFloat(int parameterIndex, float x) throws SQLException { - setObject(parameterIndex, x); - } - - @Override - public void setDouble(int parameterIndex, double x) throws SQLException { - setObject(parameterIndex, x); - } - - @Override - public void setBigDecimal(int parameterIndex, BigDecimal x) throws SQLException { - setObject(parameterIndex, x); - } - - @Override - public void setString(int parameterIndex, String x) throws SQLException { - setObject(parameterIndex, x); - } - - @Override - public void setBytes(int parameterIndex, byte[] x) throws SQLException { - setObject(parameterIndex, x); - } - - @Override - public void setDate(int parameterIndex, Date x) throws SQLException { - setObject(parameterIndex, x); - } - - @Override - public void setTime(int parameterIndex, Time x) throws SQLException { - setObject(parameterIndex, x); - } - - @Override - public void setTimestamp(int parameterIndex, Timestamp x) throws SQLException { - setObject(parameterIndex, x); - } - - @Override - public void setAsciiStream(int parameterIndex, InputStream x, int length) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void setUnicodeStream(int parameterIndex, InputStream x, int length) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void setBinaryStream(int parameterIndex, InputStream x, int length) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void clearParameters() throws SQLException { - parameters.clear(); - } - - @Override - public void setObject(int parameterIndex, Object x, int targetSqlType) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void setObject(int parameterIndex, Object x) throws SQLException { - if (isSaved) { - this.savedPreparedStatement.setParam(parameterIndex, x); - } else { - parameters.add(x); - } - } - - @Override - public boolean execute() throws SQLException { - if (isSaved) { - int result = this.savedPreparedStatement.executeBatchInternal(); - return result > 0; - } else { - return super.execute(getNativeSql()); - } - } - - @Override - public void addBatch() throws SQLException { - if (isSaved) { - this.savedPreparedStatement.addBatch(); - } else { - - if (this.batchedArgs == null) { - batchedArgs = new ArrayList(); - } - super.addBatch(getNativeSql()); - } - } - - @Override - public void setCharacterStream(int parameterIndex, Reader reader, int length) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void setRef(int parameterIndex, Ref x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void setBlob(int parameterIndex, Blob x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void setClob(int parameterIndex, Clob x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void setArray(int parameterIndex, Array x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public ResultSetMetaData getMetaData() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void setDate(int parameterIndex, Date x, Calendar cal) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void setTime(int parameterIndex, Time x, Calendar cal) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void setTimestamp(int parameterIndex, Timestamp x, Calendar cal) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void setNull(int parameterIndex, int sqlType, String typeName) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void setURL(int parameterIndex, URL x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public ParameterMetaData getParameterMetaData() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void setRowId(int parameterIndex, RowId x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void setNString(int parameterIndex, String value) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void setNCharacterStream(int parameterIndex, Reader value, long length) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void setNClob(int parameterIndex, NClob value) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void setClob(int parameterIndex, Reader reader, long length) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void setBlob(int parameterIndex, InputStream inputStream, long length) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void setNClob(int parameterIndex, Reader reader, long length) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void setSQLXML(int parameterIndex, SQLXML xmlObject) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void setObject(int parameterIndex, Object x, int targetSqlType, int scaleOrLength) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void setAsciiStream(int parameterIndex, InputStream x, long length) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void setBinaryStream(int parameterIndex, InputStream x, long length) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void setCharacterStream(int parameterIndex, Reader reader, long length) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void setAsciiStream(int parameterIndex, InputStream x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void setBinaryStream(int parameterIndex, InputStream x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void setCharacterStream(int parameterIndex, Reader reader) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void setNCharacterStream(int parameterIndex, Reader value) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void setClob(int parameterIndex, Reader reader) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void setBlob(int parameterIndex, InputStream inputStream) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public void setNClob(int parameterIndex, Reader reader) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } -} diff --git a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBResultSet 2.java b/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBResultSet 2.java deleted file mode 100644 index 8acf77975630e2f652b79d6c492f98194a943931..0000000000000000000000000000000000000000 --- a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBResultSet 2.java +++ /dev/null @@ -1,1033 +0,0 @@ -/*************************************************************************** - * Copyright (c) 2019 TAOS Data, Inc. - * - * This program is free software: you can use, redistribute, and/or modify - * it under the terms of the GNU Affero General Public License, version 3 - * or later ("AGPL"), as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - *****************************************************************************/ -package com.taosdata.jdbc; - -import java.io.InputStream; -import java.io.Reader; -import java.math.BigDecimal; -import java.net.URL; -import java.sql.Array; -import java.sql.Blob; -import java.sql.Clob; -import java.sql.Date; -import java.sql.NClob; -import java.sql.Ref; -import java.sql.ResultSet; -import java.sql.ResultSetMetaData; -import java.sql.RowId; -import java.sql.SQLException; -import java.sql.SQLWarning; -import java.sql.SQLXML; -import java.sql.Statement; -import java.sql.Time; -import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -@SuppressWarnings("unused") -public class TSDBResultSet implements ResultSet { - private TSDBJNIConnector jniConnector = null; - - private long resultSetPointer = 0L; - private List columnMetaDataList = new ArrayList(); - - private TSDBResultSetRowData rowData; - - private boolean lastWasNull = false; - private final int COLUMN_INDEX_START_VALUE = 1; - - public TSDBJNIConnector getJniConnector() { - return jniConnector; - } - - public void setJniConnector(TSDBJNIConnector jniConnector) { - this.jniConnector = jniConnector; - } - - public long getResultSetPointer() { - return resultSetPointer; - } - - public void setResultSetPointer(long resultSetPointer) { - this.resultSetPointer = resultSetPointer; - } - - public List getColumnMetaDataList() { - return columnMetaDataList; - } - - public void setColumnMetaDataList(List columnMetaDataList) { - this.columnMetaDataList = columnMetaDataList; - } - - public TSDBResultSetRowData getRowData() { - return rowData; - } - - public void setRowData(TSDBResultSetRowData rowData) { - this.rowData = rowData; - } - - public boolean isLastWasNull() { - return lastWasNull; - } - - public void setLastWasNull(boolean lastWasNull) { - this.lastWasNull = lastWasNull; - } - - public TSDBResultSet() { - } - - public TSDBResultSet(TSDBJNIConnector connecter, long resultSetPointer) throws SQLException { - this.jniConnector = connecter; - this.resultSetPointer = resultSetPointer; - int code = this.jniConnector.getSchemaMetaData(this.resultSetPointer, this.columnMetaDataList); - if (code == TSDBConstants.JNI_CONNECTION_NULL) { - throw new SQLException(TSDBConstants.FixErrMsg(TSDBConstants.JNI_CONNECTION_NULL)); - } else if (code == TSDBConstants.JNI_RESULT_SET_NULL) { - throw new SQLException(TSDBConstants.FixErrMsg(TSDBConstants.JNI_RESULT_SET_NULL)); - } else if (code == TSDBConstants.JNI_NUM_OF_FIELDS_0) { - throw new SQLException(TSDBConstants.FixErrMsg(TSDBConstants.JNI_NUM_OF_FIELDS_0)); - } - - this.rowData = new TSDBResultSetRowData(this.columnMetaDataList.size()); - } - - public T unwrap(Class iface) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public boolean isWrapperFor(Class iface) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public boolean next() throws SQLException { - if (rowData != null) { - this.rowData.clear(); - } - - int code = this.jniConnector.fetchRow(this.resultSetPointer, this.rowData); - if (code == TSDBConstants.JNI_CONNECTION_NULL) { - throw new SQLException(TSDBConstants.FixErrMsg(TSDBConstants.JNI_CONNECTION_NULL)); - } else if (code == TSDBConstants.JNI_RESULT_SET_NULL) { - throw new SQLException(TSDBConstants.FixErrMsg(TSDBConstants.JNI_RESULT_SET_NULL)); - } else if (code == TSDBConstants.JNI_NUM_OF_FIELDS_0) { - throw new SQLException(TSDBConstants.FixErrMsg(TSDBConstants.JNI_NUM_OF_FIELDS_0)); - } else if (code == TSDBConstants.JNI_FETCH_END) { - return false; - } else { - return true; - } - } - - public void close() throws SQLException { - if (this.jniConnector != null) { - int code = this.jniConnector.freeResultSet(this.resultSetPointer); - if (code == TSDBConstants.JNI_CONNECTION_NULL) { - throw new SQLException(TSDBConstants.FixErrMsg(TSDBConstants.JNI_CONNECTION_NULL)); - } else if (code == TSDBConstants.JNI_RESULT_SET_NULL) { - throw new SQLException(TSDBConstants.FixErrMsg(TSDBConstants.JNI_RESULT_SET_NULL)); - } - } - } - - public boolean wasNull() throws SQLException { - return this.lastWasNull; - } - - public String getString(int columnIndex) throws SQLException { - String res = null; - int colIndex = getTrueColumnIndex(columnIndex); - - this.lastWasNull = this.rowData.wasNull(colIndex); - if (!lastWasNull) { - res = this.rowData.getString(colIndex, this.columnMetaDataList.get(colIndex).getColType()); - } - return res; - } - - public boolean getBoolean(int columnIndex) throws SQLException { - boolean res = false; - int colIndex = getTrueColumnIndex(columnIndex); - - this.lastWasNull = this.rowData.wasNull(colIndex); - if (!lastWasNull) { - res = this.rowData.getBoolean(colIndex, this.columnMetaDataList.get(colIndex).getColType()); - } - return res; - } - - public byte getByte(int columnIndex) throws SQLException { - byte res = 0; - int colIndex = getTrueColumnIndex(columnIndex); - - this.lastWasNull = this.rowData.wasNull(colIndex); - if (!lastWasNull) { - res = (byte) this.rowData.getInt(colIndex, this.columnMetaDataList.get(colIndex).getColType()); - } - return res; - } - - public short getShort(int columnIndex) throws SQLException { - short res = 0; - int colIndex = getTrueColumnIndex(columnIndex); - - this.lastWasNull = this.rowData.wasNull(colIndex); - if (!lastWasNull) { - res = (short) this.rowData.getInt(colIndex, this.columnMetaDataList.get(colIndex).getColType()); - } - return res; - } - - public int getInt(int columnIndex) throws SQLException { - int res = 0; - int colIndex = getTrueColumnIndex(columnIndex); - - this.lastWasNull = this.rowData.wasNull(colIndex); - if (!lastWasNull) { - res = this.rowData.getInt(colIndex, this.columnMetaDataList.get(colIndex).getColType()); - } - return res; - } - - public long getLong(int columnIndex) throws SQLException { - long res = 0l; - int colIndex = getTrueColumnIndex(columnIndex); - - this.lastWasNull = this.rowData.wasNull(colIndex); - if (!lastWasNull) { - res = this.rowData.getLong(colIndex, this.columnMetaDataList.get(colIndex).getColType()); - } - return res; - } - - public float getFloat(int columnIndex) throws SQLException { - float res = 0; - int colIndex = getTrueColumnIndex(columnIndex); - - this.lastWasNull = this.rowData.wasNull(colIndex); - if (!lastWasNull) { - res = this.rowData.getFloat(colIndex, this.columnMetaDataList.get(colIndex).getColType()); - } - return res; - } - - public double getDouble(int columnIndex) throws SQLException { - double res = 0; - int colIndex = getTrueColumnIndex(columnIndex); - - this.lastWasNull = this.rowData.wasNull(colIndex); - if (!lastWasNull) { - res = this.rowData.getDouble(colIndex, this.columnMetaDataList.get(colIndex).getColType()); - } - return res; - } - - /* - * (non-Javadoc) - * - * @see java.sql.ResultSet#getBigDecimal(int, int) - * - * @deprecated Use {@code getBigDecimal(int columnIndex)} or {@code - * getBigDecimal(String columnLabel)} - */ - @Deprecated - public BigDecimal getBigDecimal(int columnIndex, int scale) throws SQLException { - BigDecimal res = null; - int colIndex = getTrueColumnIndex(columnIndex); - - this.lastWasNull = this.rowData.wasNull(colIndex); - if (!lastWasNull) { - res = new BigDecimal(this.rowData.getLong(colIndex, this.columnMetaDataList.get(colIndex).getColType())); - } - return res; - } - - public byte[] getBytes(int columnIndex) throws SQLException { - byte[] res = null; - int colIndex = getTrueColumnIndex(columnIndex); - - this.lastWasNull = this.rowData.wasNull(colIndex); - if (!lastWasNull) { - res = this.rowData.getString(colIndex, this.columnMetaDataList.get(colIndex).getColType()).getBytes(); - } - return res; - } - - public Date getDate(int columnIndex) throws SQLException { - int colIndex = getTrueColumnIndex(columnIndex); - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public Time getTime(int columnIndex) throws SQLException { - int colIndex = getTrueColumnIndex(columnIndex); - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public Timestamp getTimestamp(int columnIndex) throws SQLException { - Timestamp res = null; - int colIndex = getTrueColumnIndex(columnIndex); - - this.lastWasNull = this.rowData.wasNull(colIndex); - if (!lastWasNull) { - res = this.rowData.getTimestamp(colIndex); - } - return res; - } - - public InputStream getAsciiStream(int columnIndex) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - /* - * (non-Javadoc) - * - * @see java.sql.ResultSet#getUnicodeStream(int) - * - * * @deprecated use getCharacterStream in place of - * getUnicodeStream - */ - @Deprecated - public InputStream getUnicodeStream(int columnIndex) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public InputStream getBinaryStream(int columnIndex) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public String getString(String columnLabel) throws SQLException { - return this.getString(this.findColumn(columnLabel)); - } - - public boolean getBoolean(String columnLabel) throws SQLException { - return this.getBoolean(this.findColumn(columnLabel)); - } - - public byte getByte(String columnLabel) throws SQLException { - return this.getByte(this.findColumn(columnLabel)); - } - - public short getShort(String columnLabel) throws SQLException { - return this.getShort(this.findColumn(columnLabel)); - } - - public int getInt(String columnLabel) throws SQLException { - return this.getInt(this.findColumn(columnLabel)); - } - - public long getLong(String columnLabel) throws SQLException { - return this.getLong(this.findColumn(columnLabel)); - } - - public float getFloat(String columnLabel) throws SQLException { - return this.getFloat(this.findColumn(columnLabel)); - } - - public double getDouble(String columnLabel) throws SQLException { - return this.getDouble(this.findColumn(columnLabel)); - } - - /* - * used by spark - */ - @Deprecated - public BigDecimal getBigDecimal(String columnLabel, int scale) throws SQLException { - return this.getBigDecimal(this.findColumn(columnLabel), scale); - } - - public byte[] getBytes(String columnLabel) throws SQLException { - return this.getBytes(this.findColumn(columnLabel)); - } - - public Date getDate(String columnLabel) throws SQLException { - return this.getDate(this.findColumn(columnLabel)); - } - - public Time getTime(String columnLabel) throws SQLException { - return this.getTime(this.findColumn(columnLabel)); - } - - public Timestamp getTimestamp(String columnLabel) throws SQLException { - return this.getTimestamp(this.findColumn(columnLabel)); - } - - public InputStream getAsciiStream(String columnLabel) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Deprecated - public InputStream getUnicodeStream(String columnLabel) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public InputStream getBinaryStream(String columnLabel) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public SQLWarning getWarnings() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void clearWarnings() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public String getCursorName() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public ResultSetMetaData getMetaData() throws SQLException { - return new TSDBResultSetMetaData(this.columnMetaDataList); - } - - public Object getObject(int columnIndex) throws SQLException { - int colIndex = getTrueColumnIndex(columnIndex); - - this.lastWasNull = this.rowData.wasNull(colIndex); - return this.rowData.get(colIndex); - } - - public Object getObject(String columnLabel) throws SQLException { - return this.getObject(this.findColumn(columnLabel)); - } - - public int findColumn(String columnLabel) throws SQLException { - Iterator colMetaDataIt = this.columnMetaDataList.iterator(); - while (colMetaDataIt.hasNext()) { - ColumnMetaData colMetaData = colMetaDataIt.next(); - if (colMetaData.getColName() != null && colMetaData.getColName().equalsIgnoreCase(columnLabel)) { - return colMetaData.getColIndex() + 1; - } - } - throw new SQLException(TSDBConstants.INVALID_VARIABLES); - } - - public Reader getCharacterStream(int columnIndex) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public Reader getCharacterStream(String columnLabel) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - /* - * used by spark - */ - public BigDecimal getBigDecimal(int columnIndex) throws SQLException { - int colIndex = getTrueColumnIndex(columnIndex); - - this.lastWasNull = this.rowData.wasNull(colIndex); - return new BigDecimal(this.rowData.getLong(colIndex, this.columnMetaDataList.get(colIndex).getColType())); - } - - public BigDecimal getBigDecimal(String columnLabel) throws SQLException { - return this.getBigDecimal(this.findColumn(columnLabel)); - } - - public boolean isBeforeFirst() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public boolean isAfterLast() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public boolean isFirst() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public boolean isLast() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void beforeFirst() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void afterLast() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public boolean first() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public boolean last() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public int getRow() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public boolean absolute(int row) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public boolean relative(int rows) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public boolean previous() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void setFetchDirection(int direction) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public int getFetchDirection() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void setFetchSize(int rows) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public int getFetchSize() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public int getType() throws SQLException { - return ResultSet.TYPE_FORWARD_ONLY; - } - - public int getConcurrency() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public boolean rowUpdated() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public boolean rowInserted() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public boolean rowDeleted() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateNull(int columnIndex) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateBoolean(int columnIndex, boolean x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateByte(int columnIndex, byte x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateShort(int columnIndex, short x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateInt(int columnIndex, int x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateLong(int columnIndex, long x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateFloat(int columnIndex, float x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateDouble(int columnIndex, double x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateBigDecimal(int columnIndex, BigDecimal x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateString(int columnIndex, String x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateBytes(int columnIndex, byte[] x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateDate(int columnIndex, Date x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateTime(int columnIndex, Time x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateTimestamp(int columnIndex, Timestamp x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateAsciiStream(int columnIndex, InputStream x, int length) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateBinaryStream(int columnIndex, InputStream x, int length) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateCharacterStream(int columnIndex, Reader x, int length) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateObject(int columnIndex, Object x, int scaleOrLength) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateObject(int columnIndex, Object x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateNull(String columnLabel) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateBoolean(String columnLabel, boolean x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateByte(String columnLabel, byte x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateShort(String columnLabel, short x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateInt(String columnLabel, int x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateLong(String columnLabel, long x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateFloat(String columnLabel, float x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateDouble(String columnLabel, double x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateBigDecimal(String columnLabel, BigDecimal x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateString(String columnLabel, String x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateBytes(String columnLabel, byte[] x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateDate(String columnLabel, Date x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateTime(String columnLabel, Time x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateTimestamp(String columnLabel, Timestamp x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateAsciiStream(String columnLabel, InputStream x, int length) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateBinaryStream(String columnLabel, InputStream x, int length) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateCharacterStream(String columnLabel, Reader reader, int length) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateObject(String columnLabel, Object x, int scaleOrLength) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateObject(String columnLabel, Object x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void insertRow() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateRow() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void deleteRow() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void refreshRow() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void cancelRowUpdates() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void moveToInsertRow() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void moveToCurrentRow() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public Statement getStatement() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public Object getObject(int columnIndex, Map> map) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public Ref getRef(int columnIndex) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public Blob getBlob(int columnIndex) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public Clob getClob(int columnIndex) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public Array getArray(int columnIndex) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public Object getObject(String columnLabel, Map> map) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public Ref getRef(String columnLabel) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public Blob getBlob(String columnLabel) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public Clob getClob(String columnLabel) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public Array getArray(String columnLabel) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public Date getDate(int columnIndex, Calendar cal) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public Date getDate(String columnLabel, Calendar cal) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public Time getTime(int columnIndex, Calendar cal) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public Time getTime(String columnLabel, Calendar cal) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public Timestamp getTimestamp(int columnIndex, Calendar cal) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public Timestamp getTimestamp(String columnLabel, Calendar cal) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public URL getURL(int columnIndex) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public URL getURL(String columnLabel) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateRef(int columnIndex, Ref x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateRef(String columnLabel, Ref x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateBlob(int columnIndex, Blob x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateBlob(String columnLabel, Blob x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateClob(int columnIndex, Clob x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateClob(String columnLabel, Clob x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateArray(int columnIndex, Array x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateArray(String columnLabel, Array x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public RowId getRowId(int columnIndex) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public RowId getRowId(String columnLabel) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateRowId(int columnIndex, RowId x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateRowId(String columnLabel, RowId x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public int getHoldability() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public boolean isClosed() throws SQLException { - boolean isClosed = true; - if (jniConnector != null) { - isClosed = jniConnector.isResultsetClosed(); - } - return isClosed; - } - - public void updateNString(int columnIndex, String nString) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateNString(String columnLabel, String nString) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateNClob(int columnIndex, NClob nClob) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateNClob(String columnLabel, NClob nClob) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public NClob getNClob(int columnIndex) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public NClob getNClob(String columnLabel) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public SQLXML getSQLXML(int columnIndex) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public SQLXML getSQLXML(String columnLabel) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateSQLXML(int columnIndex, SQLXML xmlObject) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateSQLXML(String columnLabel, SQLXML xmlObject) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public String getNString(int columnIndex) throws SQLException { - int colIndex = getTrueColumnIndex(columnIndex); - return (String) rowData.get(colIndex); - } - - public String getNString(String columnLabel) throws SQLException { - return (String) this.getString(columnLabel); - } - - public Reader getNCharacterStream(int columnIndex) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public Reader getNCharacterStream(String columnLabel) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateNCharacterStream(int columnIndex, Reader x, long length) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateNCharacterStream(String columnLabel, Reader reader, long length) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateAsciiStream(int columnIndex, InputStream x, long length) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateBinaryStream(int columnIndex, InputStream x, long length) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateCharacterStream(int columnIndex, Reader x, long length) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateAsciiStream(String columnLabel, InputStream x, long length) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateBinaryStream(String columnLabel, InputStream x, long length) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateCharacterStream(String columnLabel, Reader reader, long length) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateBlob(int columnIndex, InputStream inputStream, long length) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateBlob(String columnLabel, InputStream inputStream, long length) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateClob(int columnIndex, Reader reader, long length) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateClob(String columnLabel, Reader reader, long length) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateNClob(int columnIndex, Reader reader, long length) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateNClob(String columnLabel, Reader reader, long length) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateNCharacterStream(int columnIndex, Reader x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateNCharacterStream(String columnLabel, Reader reader) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateAsciiStream(int columnIndex, InputStream x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateBinaryStream(int columnIndex, InputStream x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateCharacterStream(int columnIndex, Reader x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateAsciiStream(String columnLabel, InputStream x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateBinaryStream(String columnLabel, InputStream x) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateCharacterStream(String columnLabel, Reader reader) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateBlob(int columnIndex, InputStream inputStream) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateBlob(String columnLabel, InputStream inputStream) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateClob(int columnIndex, Reader reader) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateClob(String columnLabel, Reader reader) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateNClob(int columnIndex, Reader reader) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void updateNClob(String columnLabel, Reader reader) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public T getObject(int columnIndex, Class type) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public T getObject(String columnLabel, Class type) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - private int getTrueColumnIndex(int columnIndex) throws SQLException { - if (columnIndex < this.COLUMN_INDEX_START_VALUE) { - throw new SQLException("Column Index out of range, " + columnIndex + " < " + this.COLUMN_INDEX_START_VALUE); - } - - int numOfCols = this.columnMetaDataList.size(); - if (columnIndex > numOfCols) { - throw new SQLException("Column Index out of range, " + columnIndex + " > " + numOfCols); - } - - return columnIndex - 1; - } -} diff --git a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBResultSetMetaData 2.java b/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBResultSetMetaData 2.java deleted file mode 100644 index d6d69bd8b02db7de9350c023e696f4cf2e2f5e65..0000000000000000000000000000000000000000 --- a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBResultSetMetaData 2.java +++ /dev/null @@ -1,213 +0,0 @@ -/*************************************************************************** - * Copyright (c) 2019 TAOS Data, Inc. - * - * This program is free software: you can use, redistribute, and/or modify - * it under the terms of the GNU Affero General Public License, version 3 - * or later ("AGPL"), as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - *****************************************************************************/ -package com.taosdata.jdbc; - -import java.sql.ResultSetMetaData; -import java.sql.SQLException; -import java.sql.Timestamp; -import java.sql.Types; -import java.util.List; - -public class TSDBResultSetMetaData implements ResultSetMetaData { - - List colMetaDataList = null; - - public TSDBResultSetMetaData(List metaDataList) { - this.colMetaDataList = metaDataList; - } - - public T unwrap(Class iface) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public boolean isWrapperFor(Class iface) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public int getColumnCount() throws SQLException { - return colMetaDataList.size(); - } - - public boolean isAutoIncrement(int column) throws SQLException { - return false; - } - - public boolean isCaseSensitive(int column) throws SQLException { - return false; - } - - public boolean isSearchable(int column) throws SQLException { - if (column == 1) { - return true; - } - return false; - } - - public boolean isCurrency(int column) throws SQLException { - return false; - } - - public int isNullable(int column) throws SQLException { - if (column == 1) { - return columnNoNulls; - } - return columnNullable; - } - - public boolean isSigned(int column) throws SQLException { - ColumnMetaData meta = this.colMetaDataList.get(column - 1); - switch (meta.getColType()) { - case TSDBConstants.TSDB_DATA_TYPE_TINYINT: - case TSDBConstants.TSDB_DATA_TYPE_SMALLINT: - case TSDBConstants.TSDB_DATA_TYPE_INT: - case TSDBConstants.TSDB_DATA_TYPE_BIGINT: - case TSDBConstants.TSDB_DATA_TYPE_FLOAT: - case TSDBConstants.TSDB_DATA_TYPE_DOUBLE: - return true; - default: - return false; - } - } - - public int getColumnDisplaySize(int column) throws SQLException { - return colMetaDataList.get(column - 1).getColSize(); - } - - public String getColumnLabel(int column) throws SQLException { - return colMetaDataList.get(column - 1).getColName(); - } - - public String getColumnName(int column) throws SQLException { - return colMetaDataList.get(column - 1).getColName(); - } - - public String getSchemaName(int column) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public int getPrecision(int column) throws SQLException { - ColumnMetaData columnMetaData = this.colMetaDataList.get(column - 1); - switch (columnMetaData.getColType()) { - case TSDBConstants.TSDB_DATA_TYPE_FLOAT: - return 5; - case TSDBConstants.TSDB_DATA_TYPE_DOUBLE: - return 9; - case TSDBConstants.TSDB_DATA_TYPE_BINARY: - case TSDBConstants.TSDB_DATA_TYPE_NCHAR: - return columnMetaData.getColSize(); - default: - return 0; - } - } - - public int getScale(int column) throws SQLException { - ColumnMetaData meta = this.colMetaDataList.get(column - 1); - switch (meta.getColType()) { - case TSDBConstants.TSDB_DATA_TYPE_FLOAT: - return 5; - case TSDBConstants.TSDB_DATA_TYPE_DOUBLE: - return 9; - default: - return 0; - } - } - - public String getTableName(int column) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public String getCatalogName(int column) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public int getColumnType(int column) throws SQLException { - ColumnMetaData meta = this.colMetaDataList.get(column - 1); - switch (meta.getColType()) { - case TSDBConstants.TSDB_DATA_TYPE_BOOL: - return java.sql.Types.BIT; - case TSDBConstants.TSDB_DATA_TYPE_TINYINT: - return java.sql.Types.TINYINT; - case TSDBConstants.TSDB_DATA_TYPE_SMALLINT: - return java.sql.Types.SMALLINT; - case TSDBConstants.TSDB_DATA_TYPE_INT: - return java.sql.Types.INTEGER; - case TSDBConstants.TSDB_DATA_TYPE_BIGINT: - return java.sql.Types.BIGINT; - case TSDBConstants.TSDB_DATA_TYPE_FLOAT: - return java.sql.Types.FLOAT; - case TSDBConstants.TSDB_DATA_TYPE_DOUBLE: - return java.sql.Types.DOUBLE; - case TSDBConstants.TSDB_DATA_TYPE_BINARY: - return java.sql.Types.CHAR; - case TSDBConstants.TSDB_DATA_TYPE_TIMESTAMP: - return java.sql.Types.BIGINT; - case TSDBConstants.TSDB_DATA_TYPE_NCHAR: - return java.sql.Types.CHAR; - } - throw new SQLException(TSDBConstants.INVALID_VARIABLES); - } - - public String getColumnTypeName(int column) throws SQLException { - ColumnMetaData meta = this.colMetaDataList.get(column - 1); - return TSDBConstants.DATATYPE_MAP.get(meta.getColType()); - } - - public boolean isReadOnly(int column) throws SQLException { - return true; - } - - public boolean isWritable(int column) throws SQLException { - return false; - } - - public boolean isDefinitelyWritable(int column) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public String getColumnClassName(int column) throws SQLException { - int columnType = getColumnType(column); - String columnClassName = ""; - switch (columnType) { - case Types.TIMESTAMP: - columnClassName = Timestamp.class.getName(); - break; - case Types.CHAR: - columnClassName = String.class.getName(); - break; - case Types.DOUBLE: - columnClassName = Double.class.getName(); - break; - case Types.FLOAT: - columnClassName = Float.class.getName(); - break; - case Types.BIGINT: - columnClassName = Long.class.getName(); - break; - case Types.INTEGER: - columnClassName = Integer.class.getName(); - break; - case Types.SMALLINT: - columnClassName = Short.class.getName(); - break; - case Types.TINYINT: - columnClassName = Byte.class.getName(); - break; - case Types.BIT: - columnClassName = Boolean.class.getName(); - break; - } - return columnClassName; - } -} diff --git a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBResultSetRowData 2.java b/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBResultSetRowData 2.java deleted file mode 100644 index 8efcac90001b63af53c2943c0137f3c89bc994c5..0000000000000000000000000000000000000000 --- a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBResultSetRowData 2.java +++ /dev/null @@ -1,222 +0,0 @@ -/*************************************************************************** - * Copyright (c) 2019 TAOS Data, Inc. - * - * This program is free software: you can use, redistribute, and/or modify - * it under the terms of the GNU Affero General Public License, version 3 - * or later ("AGPL"), as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - *****************************************************************************/ -package com.taosdata.jdbc; - -import java.sql.SQLException; -import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.Collections; - -public class TSDBResultSetRowData { - private ArrayList data = null; - private int colSize = 0; - - public TSDBResultSetRowData(int colSize) { - this.setColSize(colSize); - } - - public TSDBResultSetRowData() { - this.data = new ArrayList(); - this.setColSize(0); - } - - public void clear() { - if(this.data != null) { - this.data.clear(); - } - if (this.colSize == 0) { - return; - } - this.data = new ArrayList(colSize); - this.data.addAll(Collections.nCopies(this.colSize, null)); - } - - public boolean wasNull(int col) { - return data.get(col) == null; - } - - public void setBoolean(int col, boolean value) { - data.set(col, value); - } - - public boolean getBoolean(int col, int srcType) throws SQLException { - Object obj = data.get(col); - - switch(srcType) { - case TSDBConstants.TSDB_DATA_TYPE_BOOL: return (Boolean) obj; - case TSDBConstants.TSDB_DATA_TYPE_FLOAT: return ((Float) obj) == 1.0? Boolean.TRUE:Boolean.FALSE; - case TSDBConstants.TSDB_DATA_TYPE_DOUBLE: return ((Double) obj) == 1.0? Boolean.TRUE:Boolean.FALSE; - case TSDBConstants.TSDB_DATA_TYPE_TINYINT: return ((Byte) obj) == 1? Boolean.TRUE:Boolean.FALSE; - case TSDBConstants.TSDB_DATA_TYPE_SMALLINT:return ((Short)obj) == 1? Boolean.TRUE:Boolean.FALSE; - case TSDBConstants.TSDB_DATA_TYPE_INT: return ((Integer)obj) == 1? Boolean.TRUE:Boolean.FALSE; - case TSDBConstants.TSDB_DATA_TYPE_TIMESTAMP: - case TSDBConstants.TSDB_DATA_TYPE_BIGINT: return ((Long) obj) == 1L? Boolean.TRUE:Boolean.FALSE; - } - - return Boolean.TRUE; - } - - public void setByte(int col, byte value) { - data.set(col, value); - } - - public void setShort(int col, short value) { - data.set(col, value); - } - - public void setInt(int col, int value) { - data.set(col, value); - } - - public int getInt(int col, int srcType) throws SQLException { - Object obj = data.get(col); - - switch(srcType) { - case TSDBConstants.TSDB_DATA_TYPE_BOOL: return Boolean.TRUE.equals(obj)? 1:0; - case TSDBConstants.TSDB_DATA_TYPE_FLOAT: return ((Float) obj).intValue(); - case TSDBConstants.TSDB_DATA_TYPE_DOUBLE: return ((Double)obj).intValue(); - case TSDBConstants.TSDB_DATA_TYPE_TINYINT: return (Byte) obj; - case TSDBConstants.TSDB_DATA_TYPE_SMALLINT:return (Short) obj; - case TSDBConstants.TSDB_DATA_TYPE_INT: return (Integer) obj; - case TSDBConstants.TSDB_DATA_TYPE_TIMESTAMP: - case TSDBConstants.TSDB_DATA_TYPE_BIGINT: return ((Long) obj).intValue(); - case TSDBConstants.TSDB_DATA_TYPE_NCHAR: - case TSDBConstants.TSDB_DATA_TYPE_BINARY: return Integer.parseInt((String) obj); - } - - return 0; - } - - public void setLong(int col, long value) { - data.set(col, value); - } - - public long getLong(int col, int srcType) throws SQLException { - Object obj = data.get(col); - - switch(srcType) { - case TSDBConstants.TSDB_DATA_TYPE_BOOL: return Boolean.TRUE.equals(obj)? 1:0; - case TSDBConstants.TSDB_DATA_TYPE_FLOAT: return ((Float) obj).longValue(); - case TSDBConstants.TSDB_DATA_TYPE_DOUBLE: return ((Double) obj).longValue(); - case TSDBConstants.TSDB_DATA_TYPE_TINYINT: return (Byte) obj; - case TSDBConstants.TSDB_DATA_TYPE_SMALLINT:return (Short) obj; - case TSDBConstants.TSDB_DATA_TYPE_INT: return (Integer) obj; - case TSDBConstants.TSDB_DATA_TYPE_TIMESTAMP: - case TSDBConstants.TSDB_DATA_TYPE_BIGINT: return (Long) obj; - case TSDBConstants.TSDB_DATA_TYPE_NCHAR: - case TSDBConstants.TSDB_DATA_TYPE_BINARY: return Long.parseLong((String) obj); - } - - return 0; - } - - public void setFloat(int col, float value) { - data.set(col, value); - } - - public float getFloat(int col, int srcType) throws SQLException { - Object obj = data.get(col); - - switch(srcType) { - case TSDBConstants.TSDB_DATA_TYPE_BOOL: return Boolean.TRUE.equals(obj)? 1:0; - case TSDBConstants.TSDB_DATA_TYPE_FLOAT: return (Float) obj; - case TSDBConstants.TSDB_DATA_TYPE_DOUBLE: return ((Double) obj).floatValue(); - case TSDBConstants.TSDB_DATA_TYPE_TINYINT: return (Byte) obj; - case TSDBConstants.TSDB_DATA_TYPE_SMALLINT: return (Short) obj; - case TSDBConstants.TSDB_DATA_TYPE_INT: return (Integer) obj; - case TSDBConstants.TSDB_DATA_TYPE_TIMESTAMP: - case TSDBConstants.TSDB_DATA_TYPE_BIGINT: return (Long) obj; - } - - return 0; - } - - public void setDouble(int col, double value) { - data.set(col, value); - } - - public double getDouble(int col, int srcType) throws SQLException { - Object obj = data.get(col); - - switch(srcType) { - case TSDBConstants.TSDB_DATA_TYPE_BOOL: return Boolean.TRUE.equals(obj)? 1:0; - case TSDBConstants.TSDB_DATA_TYPE_FLOAT: return (Float) obj; - case TSDBConstants.TSDB_DATA_TYPE_DOUBLE: return (Double) obj; - case TSDBConstants.TSDB_DATA_TYPE_TINYINT: return (Byte) obj; - case TSDBConstants.TSDB_DATA_TYPE_SMALLINT:return (Short) obj; - case TSDBConstants.TSDB_DATA_TYPE_INT: return (Integer) obj; - case TSDBConstants.TSDB_DATA_TYPE_TIMESTAMP: - case TSDBConstants.TSDB_DATA_TYPE_BIGINT: return (Long) obj; - } - - return 0; - } - - public void setString(int col, String value) { - data.set(col, value); - } - - public void setByteArray(int col, byte[] value) { - try { - data.set(col, new String(value, TaosGlobalConfig.getCharset())); - } catch (Exception e) { - e.printStackTrace(); - } - } - - /** - * The original type may not be a string type, but will be converted to by calling this method - * @param col column index - * @return - * @throws SQLException - */ - public String getString(int col, int srcType) throws SQLException { - if (srcType == TSDBConstants.TSDB_DATA_TYPE_BINARY || srcType == TSDBConstants.TSDB_DATA_TYPE_NCHAR) { - return (String) data.get(col); - } else { - return String.valueOf(data.get(col)); - } - } - - public void setTimestamp(int col, long ts) { - data.set(col, ts); - } - - public Timestamp getTimestamp(int col) { - return new Timestamp((Long) data.get(col)); - } - - public Object get(int col) { - return data.get(col); - } - - public int getColSize() { - return colSize; - } - - public void setColSize(int colSize) { - this.colSize = colSize; - this.clear(); - } - - public ArrayList getData() { - return data; - } - - public void setData(ArrayList data) { - this.data = (ArrayList) data.clone(); - } - -} diff --git a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBResultSetWrapper 2.java b/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBResultSetWrapper 2.java deleted file mode 100644 index 059962a7a120073c17258652f9fb3609cc5072be..0000000000000000000000000000000000000000 --- a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBResultSetWrapper 2.java +++ /dev/null @@ -1,1172 +0,0 @@ -/*************************************************************************** - * Copyright (c) 2019 TAOS Data, Inc. - * - * This program is free software: you can use, redistribute, and/or modify - * it under the terms of the GNU Affero General Public License, version 3 - * or later ("AGPL"), as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - *****************************************************************************/ -package com.taosdata.jdbc; - -import java.io.InputStream; -import java.io.Reader; -import java.math.BigDecimal; -import java.net.URL; -import java.sql.*; -import java.util.Calendar; -import java.util.Map; - -/* - * TDengine only supports a subset of the standard SQL, thus this implemetation of the - * standard JDBC API contains more or less some adjustments customized for certain - * compatibility needs. - */ -public class TSDBResultSetWrapper implements ResultSet { - - private ResultSet originalResultSet; - - public ResultSet getOriginalResultSet() { - return originalResultSet; - } - - public void setOriginalResultSet(ResultSet originalResultSet) { - this.originalResultSet = originalResultSet; - } - - @Override - public boolean next() throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.next(); - } - - @Override - public void close() throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - this.originalResultSet.close(); - } - - @Override - public boolean wasNull() throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.wasNull(); - } - - @Override - public String getString(int columnIndex) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getString(columnIndex); - } - - @Override - public boolean getBoolean(int columnIndex) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getBoolean(columnIndex); - } - - @Override - public byte getByte(int columnIndex) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getByte(columnIndex); - } - - @Override - public short getShort(int columnIndex) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getShort(columnIndex); - } - - @Override - public int getInt(int columnIndex) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getInt(columnIndex); - } - - @Override - public long getLong(int columnIndex) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getLong(columnIndex); - } - - @Override - public float getFloat(int columnIndex) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getFloat(columnIndex); - } - - @Override - public double getDouble(int columnIndex) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getDouble(columnIndex); - } - - @Override - public BigDecimal getBigDecimal(int columnIndex, int scale) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getBigDecimal(columnIndex, scale); - } - - @Override - public byte[] getBytes(int columnIndex) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - if (columnIndex <= 1) { - return this.originalResultSet.getBytes(columnIndex); - } else { - return null; - } - } - - @Override - public Date getDate(int columnIndex) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getDate(columnIndex); - } - - @Override - public Time getTime(int columnIndex) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getTime(columnIndex); - } - - @Override - public Timestamp getTimestamp(int columnIndex) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getTimestamp(columnIndex); - } - - @Override - public InputStream getAsciiStream(int columnIndex) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getAsciiStream(columnIndex); - } - - @Override - public InputStream getUnicodeStream(int columnIndex) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getUnicodeStream(columnIndex); - } - - @Override - public InputStream getBinaryStream(int columnIndex) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getBinaryStream(columnIndex); - } - - @Override - public String getString(String columnLabel) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getString(columnLabel); - } - - @Override - public boolean getBoolean(String columnLabel) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getBoolean(columnLabel); - } - - @Override - public byte getByte(String columnLabel) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getByte(columnLabel); - } - - @Override - public short getShort(String columnLabel) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getShort(columnLabel); - } - - @Override - public int getInt(String columnLabel) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getInt(columnLabel); - } - - @Override - public long getLong(String columnLabel) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getLong(columnLabel); - } - - @Override - public float getFloat(String columnLabel) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getFloat(columnLabel); - } - - @Override - public double getDouble(String columnLabel) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getDouble(columnLabel); - } - - @Override - public BigDecimal getBigDecimal(String columnLabel, int scale) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getBigDecimal(columnLabel, scale); - } - - @Override - public byte[] getBytes(String columnLabel) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getBytes(columnLabel); - } - - @Override - public Date getDate(String columnLabel) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getDate(columnLabel); - } - - @Override - public Time getTime(String columnLabel) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getTime(columnLabel); - } - - @Override - public Timestamp getTimestamp(String columnLabel) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getTimestamp(columnLabel); - } - - @Override - public InputStream getAsciiStream(String columnLabel) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getAsciiStream(columnLabel); - } - - @Override - public InputStream getUnicodeStream(String columnLabel) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getUnicodeStream(columnLabel); - } - - @Override - public InputStream getBinaryStream(String columnLabel) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getBinaryStream(columnLabel); - } - - @Override - public SQLWarning getWarnings() throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getWarnings(); - } - - @Override - public void clearWarnings() throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - this.originalResultSet.clearWarnings(); - } - - @Override - public String getCursorName() throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getCursorName(); - } - - @Override - public ResultSetMetaData getMetaData() throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getMetaData(); - } - - @Override - public Object getObject(int columnIndex) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getObject(columnIndex); - } - - @Override - public Object getObject(String columnLabel) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getObject(columnLabel); - } - - @Override - public int findColumn(String columnLabel) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.findColumn(columnLabel); - } - - @Override - public Reader getCharacterStream(int columnIndex) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getCharacterStream(columnIndex); - } - - @Override - public Reader getCharacterStream(String columnLabel) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getCharacterStream(columnLabel); - } - - @Override - public BigDecimal getBigDecimal(int columnIndex) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getBigDecimal(columnIndex); - } - - @Override - public BigDecimal getBigDecimal(String columnLabel) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getBigDecimal(columnLabel); - } - - @Override - public boolean isBeforeFirst() throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.isBeforeFirst(); - } - - @Override - public boolean isAfterLast() throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.isAfterLast(); - } - - @Override - public boolean isFirst() throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.isFirst(); - } - - @Override - public boolean isLast() throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.isLast(); - } - - @Override - public void beforeFirst() throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - this.originalResultSet.beforeFirst(); - } - - @Override - public void afterLast() throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - this.originalResultSet.afterLast(); - } - - @Override - public boolean first() throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.first(); - } - - @Override - public boolean last() throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.last(); - } - - @Override - public int getRow() throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.getRow(); - } - - @Override - public boolean absolute(int row) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.absolute(row); - } - - @Override - public boolean relative(int rows) throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.relative(rows); - } - - @Override - public boolean previous() throws SQLException { - if (originalResultSet == null) { - throw new SQLException("No original result set is injected"); - } - return this.originalResultSet.previous(); - } - - @Override - public void setFetchDirection(int direction) throws SQLException { - this.originalResultSet.setFetchDirection(direction); - } - - @Override - public int getFetchDirection() throws SQLException { - return this.originalResultSet.getFetchDirection(); - } - - @Override - public void setFetchSize(int rows) throws SQLException { - this.originalResultSet.setFetchSize(rows); - } - - @Override - public int getFetchSize() throws SQLException { - return this.originalResultSet.getFetchSize(); - } - - @Override - public int getType() throws SQLException { - return this.originalResultSet.getType(); - } - - @Override - public int getConcurrency() throws SQLException { - return this.originalResultSet.getConcurrency(); - } - - @Override - public boolean rowUpdated() throws SQLException { - return this.originalResultSet.rowUpdated(); - } - - @Override - public boolean rowInserted() throws SQLException { - return this.originalResultSet.rowInserted(); - } - - @Override - public boolean rowDeleted() throws SQLException { - return this.originalResultSet.rowDeleted(); - } - - @Override - public void updateNull(int columnIndex) throws SQLException { - this.originalResultSet.updateNull(columnIndex); - } - - @Override - public void updateBoolean(int columnIndex, boolean x) throws SQLException { - this.originalResultSet.updateBoolean(columnIndex, x); - } - - @Override - public void updateByte(int columnIndex, byte x) throws SQLException { - this.originalResultSet.updateByte(columnIndex, x); - } - - @Override - public void updateShort(int columnIndex, short x) throws SQLException { - this.originalResultSet.updateShort(columnIndex, x); - } - - @Override - public void updateInt(int columnIndex, int x) throws SQLException { - this.originalResultSet.updateInt(columnIndex, x); - } - - @Override - public void updateLong(int columnIndex, long x) throws SQLException { - this.originalResultSet.updateLong(columnIndex, x); - } - - @Override - public void updateFloat(int columnIndex, float x) throws SQLException { - this.originalResultSet.updateFloat(columnIndex, x); - } - - @Override - public void updateDouble(int columnIndex, double x) throws SQLException { - this.originalResultSet.updateDouble(columnIndex, x); - } - - @Override - public void updateBigDecimal(int columnIndex, BigDecimal x) throws SQLException { - this.originalResultSet.updateBigDecimal(columnIndex, x); - } - - @Override - public void updateString(int columnIndex, String x) throws SQLException { - this.originalResultSet.updateString(columnIndex, x); - } - - @Override - public void updateBytes(int columnIndex, byte[] x) throws SQLException { - this.originalResultSet.updateBytes(columnIndex, x); - } - - @Override - public void updateDate(int columnIndex, Date x) throws SQLException { - this.originalResultSet.updateDate(columnIndex, x); - } - - @Override - public void updateTime(int columnIndex, Time x) throws SQLException { - this.originalResultSet.updateTime(columnIndex, x); - } - - @Override - public void updateTimestamp(int columnIndex, Timestamp x) throws SQLException { - this.originalResultSet.updateTimestamp(columnIndex, x); - } - - @Override - public void updateAsciiStream(int columnIndex, InputStream x, int length) throws SQLException { - this.originalResultSet.updateAsciiStream(columnIndex, x, length); - } - - @Override - public void updateBinaryStream(int columnIndex, InputStream x, int length) throws SQLException { - this.originalResultSet.updateBinaryStream(columnIndex, x, length); - } - - @Override - public void updateCharacterStream(int columnIndex, Reader x, int length) throws SQLException { - this.originalResultSet.updateCharacterStream(columnIndex, x, length); - } - - @Override - public void updateObject(int columnIndex, Object x, int scaleOrLength) throws SQLException { - this.originalResultSet.updateObject(columnIndex, x, scaleOrLength); - } - - @Override - public void updateObject(int columnIndex, Object x) throws SQLException { - this.originalResultSet.updateObject(columnIndex, x); - } - - @Override - public void updateNull(String columnLabel) throws SQLException { - this.originalResultSet.updateNull(columnLabel); - } - - @Override - public void updateBoolean(String columnLabel, boolean x) throws SQLException { - this.originalResultSet.updateBoolean(columnLabel, x); - } - - @Override - public void updateByte(String columnLabel, byte x) throws SQLException { - this.originalResultSet.updateByte(columnLabel, x); - } - - @Override - public void updateShort(String columnLabel, short x) throws SQLException { - this.originalResultSet.updateShort(columnLabel, x); - } - - @Override - public void updateInt(String columnLabel, int x) throws SQLException { - this.originalResultSet.updateInt(columnLabel, x); - } - - @Override - public void updateLong(String columnLabel, long x) throws SQLException { - this.originalResultSet.updateLong(columnLabel, x); - } - - @Override - public void updateFloat(String columnLabel, float x) throws SQLException { - this.originalResultSet.updateFloat(columnLabel, x); - } - - @Override - public void updateDouble(String columnLabel, double x) throws SQLException { - this.originalResultSet.updateDouble(columnLabel, x); - } - - @Override - public void updateBigDecimal(String columnLabel, BigDecimal x) throws SQLException { - this.originalResultSet.updateBigDecimal(columnLabel, x); - } - - @Override - public void updateString(String columnLabel, String x) throws SQLException { - this.originalResultSet.updateString(columnLabel, x); - } - - @Override - public void updateBytes(String columnLabel, byte[] x) throws SQLException { - this.originalResultSet.updateBytes(columnLabel, x); - } - - @Override - public void updateDate(String columnLabel, Date x) throws SQLException { - this.originalResultSet.updateDate(columnLabel, x); - } - - @Override - public void updateTime(String columnLabel, Time x) throws SQLException { - this.originalResultSet.updateTime(columnLabel, x); - } - - @Override - public void updateTimestamp(String columnLabel, Timestamp x) throws SQLException { - this.originalResultSet.updateTimestamp(columnLabel, x); - } - - @Override - public void updateAsciiStream(String columnLabel, InputStream x, int length) throws SQLException { - this.originalResultSet.updateAsciiStream(columnLabel, x, length); - } - - @Override - public void updateBinaryStream(String columnLabel, InputStream x, int length) throws SQLException { - this.originalResultSet.updateBinaryStream(columnLabel, x, length); - } - - @Override - public void updateCharacterStream(String columnLabel, Reader reader, int length) throws SQLException { - this.originalResultSet.updateCharacterStream(columnLabel, reader, length); - } - - @Override - public void updateObject(String columnLabel, Object x, int scaleOrLength) throws SQLException { - this.originalResultSet.updateObject(columnLabel, x, scaleOrLength); - } - - @Override - public void updateObject(String columnLabel, Object x) throws SQLException { - this.originalResultSet.updateObject(columnLabel, x); - } - - @Override - public void insertRow() throws SQLException { - this.originalResultSet.insertRow(); - } - - @Override - public void updateRow() throws SQLException { - this.originalResultSet.updateRow(); - } - - @Override - public void deleteRow() throws SQLException { - this.originalResultSet.deleteRow(); - } - - @Override - public void refreshRow() throws SQLException { - this.originalResultSet.refreshRow(); - } - - @Override - public void cancelRowUpdates() throws SQLException { - this.originalResultSet.cancelRowUpdates(); - } - - @Override - public void moveToInsertRow() throws SQLException { - this.originalResultSet.moveToInsertRow(); - } - - @Override - public void moveToCurrentRow() throws SQLException { - this.originalResultSet.moveToCurrentRow(); - } - - @Override - public Statement getStatement() throws SQLException { - return this.originalResultSet.getStatement(); - } - - @Override - public Object getObject(int columnIndex, Map> map) throws SQLException { - return this.originalResultSet.getObject(columnIndex, map); - } - - @Override - public Ref getRef(int columnIndex) throws SQLException { - return this.originalResultSet.getRef(columnIndex); - } - - @Override - public Blob getBlob(int columnIndex) throws SQLException { - return this.originalResultSet.getBlob(columnIndex); - } - - @Override - public Clob getClob(int columnIndex) throws SQLException { - return this.originalResultSet.getClob(columnIndex); - } - - @Override - public Array getArray(int columnIndex) throws SQLException { - return this.originalResultSet.getArray(columnIndex); - } - - @Override - public Object getObject(String columnLabel, Map> map) throws SQLException { - return this.originalResultSet.getObject(columnLabel, map); - } - - @Override - public Ref getRef(String columnLabel) throws SQLException { - return this.originalResultSet.getRef(columnLabel); - } - - @Override - public Blob getBlob(String columnLabel) throws SQLException { - return this.originalResultSet.getBlob(columnLabel); - } - - @Override - public Clob getClob(String columnLabel) throws SQLException { - return this.originalResultSet.getClob(columnLabel); - } - - @Override - public Array getArray(String columnLabel) throws SQLException { - return this.originalResultSet.getArray(columnLabel); - } - - @Override - public Date getDate(int columnIndex, Calendar cal) throws SQLException { - return this.originalResultSet.getDate(columnIndex, cal); - } - - @Override - public Date getDate(String columnLabel, Calendar cal) throws SQLException { - return this.originalResultSet.getDate(columnLabel, cal); - } - - @Override - public Time getTime(int columnIndex, Calendar cal) throws SQLException { - return this.originalResultSet.getTime(columnIndex, cal); - } - - @Override - public Time getTime(String columnLabel, Calendar cal) throws SQLException { - return this.originalResultSet.getTime(columnLabel, cal); - } - - @Override - public Timestamp getTimestamp(int columnIndex, Calendar cal) throws SQLException { - return this.originalResultSet.getTimestamp(columnIndex, cal); - } - - @Override - public Timestamp getTimestamp(String columnLabel, Calendar cal) throws SQLException { - return this.originalResultSet.getTimestamp(columnLabel, cal); - } - - @Override - public URL getURL(int columnIndex) throws SQLException { - return this.originalResultSet.getURL(columnIndex); - } - - @Override - public URL getURL(String columnLabel) throws SQLException { - return this.originalResultSet.getURL(columnLabel); - } - - @Override - public void updateRef(int columnIndex, Ref x) throws SQLException { - this.originalResultSet.updateRef(columnIndex, x); - } - - @Override - public void updateRef(String columnLabel, Ref x) throws SQLException { - this.originalResultSet.updateRef(columnLabel, x); - } - - @Override - public void updateBlob(int columnIndex, Blob x) throws SQLException { - this.originalResultSet.updateBlob(columnIndex, x); - } - - @Override - public void updateBlob(String columnLabel, Blob x) throws SQLException { - this.originalResultSet.updateBlob(columnLabel, x); - } - - @Override - public void updateClob(int columnIndex, Clob x) throws SQLException { - this.originalResultSet.updateClob(columnIndex, x); - } - - @Override - public void updateClob(String columnLabel, Clob x) throws SQLException { - this.originalResultSet.updateClob(columnLabel, x); - } - - @Override - public void updateArray(int columnIndex, Array x) throws SQLException { - this.originalResultSet.updateArray(columnIndex, x); - } - - @Override - public void updateArray(String columnLabel, Array x) throws SQLException { - this.originalResultSet.updateArray(columnLabel, x); - } - - @Override - public RowId getRowId(int columnIndex) throws SQLException { - return this.originalResultSet.getRowId(columnIndex); - } - - @Override - public RowId getRowId(String columnLabel) throws SQLException { - return this.originalResultSet.getRowId(columnLabel); - } - - @Override - public void updateRowId(int columnIndex, RowId x) throws SQLException { - this.originalResultSet.updateRowId(columnIndex, x); - } - - @Override - public void updateRowId(String columnLabel, RowId x) throws SQLException { - this.originalResultSet.updateRowId(columnLabel, x); - } - - @Override - public int getHoldability() throws SQLException { - return this.originalResultSet.getHoldability(); - } - - @Override - public boolean isClosed() throws SQLException { - return this.originalResultSet.isClosed(); - } - - @Override - public void updateNString(int columnIndex, String nString) throws SQLException { - this.originalResultSet.updateNString(columnIndex, nString); - } - - @Override - public void updateNString(String columnLabel, String nString) throws SQLException { - this.originalResultSet.updateNString(columnLabel, nString); - } - - @Override - public void updateNClob(int columnIndex, NClob nClob) throws SQLException { - this.originalResultSet.updateNClob(columnIndex, nClob); - } - - @Override - public void updateNClob(String columnLabel, NClob nClob) throws SQLException { - this.originalResultSet.updateNClob(columnLabel, nClob); - } - - @Override - public NClob getNClob(int columnIndex) throws SQLException { - return this.originalResultSet.getNClob(columnIndex); - } - - @Override - public NClob getNClob(String columnLabel) throws SQLException { - return this.originalResultSet.getNClob(columnLabel); - } - - @Override - public SQLXML getSQLXML(int columnIndex) throws SQLException { - return this.originalResultSet.getSQLXML(columnIndex); - } - - @Override - public SQLXML getSQLXML(String columnLabel) throws SQLException { - return this.originalResultSet.getSQLXML(columnLabel); - } - - @Override - public void updateSQLXML(int columnIndex, SQLXML xmlObject) throws SQLException { - this.originalResultSet.updateSQLXML(columnIndex, xmlObject); - } - - @Override - public void updateSQLXML(String columnLabel, SQLXML xmlObject) throws SQLException { - this.originalResultSet.updateSQLXML(columnLabel, xmlObject); - } - - @Override - public String getNString(int columnIndex) throws SQLException { - return this.originalResultSet.getNString(columnIndex); - } - - @Override - public String getNString(String columnLabel) throws SQLException { - return this.originalResultSet.getNString(columnLabel); - } - - @Override - public Reader getNCharacterStream(int columnIndex) throws SQLException { - return this.originalResultSet.getNCharacterStream(columnIndex); - } - - @Override - public Reader getNCharacterStream(String columnLabel) throws SQLException { - return this.originalResultSet.getNCharacterStream(columnLabel); - } - - @Override - public void updateNCharacterStream(int columnIndex, Reader x, long length) throws SQLException { - this.originalResultSet.updateNCharacterStream(columnIndex, x, length); - } - - @Override - public void updateNCharacterStream(String columnLabel, Reader reader, long length) throws SQLException { - this.originalResultSet.updateNCharacterStream(columnLabel, reader, length); - } - - @Override - public void updateAsciiStream(int columnIndex, InputStream x, long length) throws SQLException { - this.originalResultSet.updateAsciiStream(columnIndex, x, length); - } - - @Override - public void updateBinaryStream(int columnIndex, InputStream x, long length) throws SQLException { - this.originalResultSet.updateBinaryStream(columnIndex, x, length); - } - - @Override - public void updateCharacterStream(int columnIndex, Reader x, long length) throws SQLException { - this.originalResultSet.updateCharacterStream(columnIndex, x, length); - } - - @Override - public void updateAsciiStream(String columnLabel, InputStream x, long length) throws SQLException { - this.originalResultSet.updateAsciiStream(columnLabel, x, length); - } - - @Override - public void updateBinaryStream(String columnLabel, InputStream x, long length) throws SQLException { - this.originalResultSet.updateBinaryStream(columnLabel, x, length); - } - - @Override - public void updateCharacterStream(String columnLabel, Reader reader, long length) throws SQLException { - this.originalResultSet.updateCharacterStream(columnLabel, reader, length); - } - - @Override - public void updateBlob(int columnIndex, InputStream inputStream, long length) throws SQLException { - this.originalResultSet.updateBlob(columnIndex, inputStream, length); - } - - @Override - public void updateBlob(String columnLabel, InputStream inputStream, long length) throws SQLException { - this.originalResultSet.updateBlob(columnLabel, inputStream, length); - } - - @Override - public void updateClob(int columnIndex, Reader reader, long length) throws SQLException { - this.originalResultSet.updateClob(columnIndex, reader, length); - } - - @Override - public void updateClob(String columnLabel, Reader reader, long length) throws SQLException { - this.originalResultSet.updateClob(columnLabel, reader, length); - } - - @Override - public void updateNClob(int columnIndex, Reader reader, long length) throws SQLException { - this.originalResultSet.updateNClob(columnIndex, reader, length); - } - - @Override - public void updateNClob(String columnLabel, Reader reader, long length) throws SQLException { - this.originalResultSet.updateNClob(columnLabel, reader, length); - } - - @Override - public void updateNCharacterStream(int columnIndex, Reader x) throws SQLException { - this.originalResultSet.updateNCharacterStream(columnIndex, x); - } - - @Override - public void updateNCharacterStream(String columnLabel, Reader reader) throws SQLException { - this.originalResultSet.updateNCharacterStream(columnLabel, reader); - } - - @Override - public void updateAsciiStream(int columnIndex, InputStream x) throws SQLException { - this.originalResultSet.updateAsciiStream(columnIndex, x); - } - - @Override - public void updateBinaryStream(int columnIndex, InputStream x) throws SQLException { - this.originalResultSet.updateBinaryStream(columnIndex, x); - } - - @Override - public void updateCharacterStream(int columnIndex, Reader x) throws SQLException { - this.originalResultSet.updateCharacterStream(columnIndex, x); - } - - @Override - public void updateAsciiStream(String columnLabel, InputStream x) throws SQLException { - this.originalResultSet.updateAsciiStream(columnLabel, x); - } - - @Override - public void updateBinaryStream(String columnLabel, InputStream x) throws SQLException { - this.originalResultSet.updateBinaryStream(columnLabel, x); - } - - @Override - public void updateCharacterStream(String columnLabel, Reader reader) throws SQLException { - this.originalResultSet.updateCharacterStream(columnLabel, reader); - } - - @Override - public void updateBlob(int columnIndex, InputStream inputStream) throws SQLException { - this.originalResultSet.updateBlob(columnIndex, inputStream); - } - - @Override - public void updateBlob(String columnLabel, InputStream inputStream) throws SQLException { - this.originalResultSet.updateBlob(columnLabel, inputStream); - } - - @Override - public void updateClob(int columnIndex, Reader reader) throws SQLException { - this.originalResultSet.updateClob(columnIndex, reader); - } - - @Override - public void updateClob(String columnLabel, Reader reader) throws SQLException { - this.originalResultSet.updateClob(columnLabel, reader); - } - - @Override - public void updateNClob(int columnIndex, Reader reader) throws SQLException { - this.originalResultSet.updateNClob(columnIndex, reader); - } - - @Override - public void updateNClob(String columnLabel, Reader reader) throws SQLException { - this.originalResultSet.updateNClob(columnLabel, reader); - } - - public T getObject(int columnIndex, Class type) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public T getObject(String columnLabel, Class type) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - @Override - public T unwrap(Class iface) throws SQLException { - return this.originalResultSet.unwrap(iface); - } - - @Override - public boolean isWrapperFor(Class iface) throws SQLException { - return this.originalResultSet.isWrapperFor(iface); - } -} diff --git a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBStatement 2.java b/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBStatement 2.java deleted file mode 100644 index 455b73bb927b8253f967d975a9030482c097f00c..0000000000000000000000000000000000000000 --- a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBStatement 2.java +++ /dev/null @@ -1,294 +0,0 @@ -/*************************************************************************** - * Copyright (c) 2019 TAOS Data, Inc. - * - * This program is free software: you can use, redistribute, and/or modify - * it under the terms of the GNU Affero General Public License, version 3 - * or later ("AGPL"), as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - *****************************************************************************/ -package com.taosdata.jdbc; - -import java.sql.*; -import java.util.ArrayList; -import java.util.List; - -public class TSDBStatement implements Statement { - private TSDBJNIConnector connecter = null; - - /** To store batched commands */ - protected List batchedArgs; - - /** Timeout for a query */ - protected int queryTimeout = 0; - - /** - * Status of current statement - */ - private boolean isClosed = true; - - TSDBStatement(TSDBJNIConnector connecter) { - this.connecter = connecter; - this.isClosed = false; - } - - public T unwrap(Class iface) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public boolean isWrapperFor(Class iface) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public ResultSet executeQuery(String sql) throws SQLException { - if (isClosed) { - throw new SQLException("Invalid method call on a closed statement."); - } - this.connecter.executeQuery(sql); - - long resultSetPointer = this.connecter.getResultSet(); - - if (resultSetPointer == TSDBConstants.JNI_CONNECTION_NULL) { - throw new SQLException(TSDBConstants.FixErrMsg(TSDBConstants.JNI_CONNECTION_NULL)); - } else if (resultSetPointer == TSDBConstants.JNI_NULL_POINTER) { - return null; - } else { - return new TSDBResultSet(this.connecter, resultSetPointer); - } - } - - public int executeUpdate(String sql) throws SQLException { - if (isClosed) { - throw new SQLException("Invalid method call on a closed statement."); - } - int res = this.connecter.executeQuery(sql); - long resultSetPointer = this.connecter.getResultSet(); - - if (resultSetPointer == TSDBConstants.JNI_CONNECTION_NULL) { - throw new SQLException(TSDBConstants.FixErrMsg(TSDBConstants.JNI_CONNECTION_NULL)); - } else if (resultSetPointer != TSDBConstants.JNI_NULL_POINTER) { - this.connecter.freeResultSet(); - throw new SQLException("The executed SQL is not a DML or a DDL"); - } else { - return res; - } - } - - public String getErrorMsg() { - return this.connecter.getErrMsg(); - } - - public void close() throws SQLException { - if (!isClosed) { - if (!this.connecter.isResultsetClosed()) { - this.connecter.freeResultSet(); - } - isClosed = true; - } - } - - public int getMaxFieldSize() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void setMaxFieldSize(int max) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public int getMaxRows() throws SQLException { - // always set maxRows to zero, meaning unlimitted rows in a resultSet - return 0; - } - - public void setMaxRows(int max) throws SQLException { - // always set maxRows to zero, meaning unlimitted rows in a resultSet - } - - public void setEscapeProcessing(boolean enable) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public int getQueryTimeout() throws SQLException { - return queryTimeout; - } - - public void setQueryTimeout(int seconds) throws SQLException { - this.queryTimeout = seconds; - } - - public void cancel() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public SQLWarning getWarnings() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void clearWarnings() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void setCursorName(String name) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public boolean execute(String sql) throws SQLException { - if (isClosed) { - throw new SQLException("Invalid method call on a closed statement."); - } - boolean res = true; - this.connecter.executeQuery(sql); - long resultSetPointer = this.connecter.getResultSet(); - - if (resultSetPointer == TSDBConstants.JNI_CONNECTION_NULL) { - throw new SQLException(TSDBConstants.FixErrMsg(TSDBConstants.JNI_CONNECTION_NULL)); - } else if (resultSetPointer == TSDBConstants.JNI_NULL_POINTER) { - // no result set is retrieved - res = false; - } - return res; - } - - public ResultSet getResultSet() throws SQLException { - if (isClosed) { - throw new SQLException("Invalid method call on a closed statement."); - } - long resultSetPointer = connecter.getResultSet(); - TSDBResultSet resSet = null; - if (resultSetPointer != TSDBConstants.JNI_NULL_POINTER) { - resSet = new TSDBResultSet(connecter, resultSetPointer); - } - return resSet; - } - - public int getUpdateCount() throws SQLException { - if (isClosed) { - throw new SQLException("Invalid method call on a closed statement."); - } - return this.connecter.getAffectedRows(); - } - - public boolean getMoreResults() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void setFetchDirection(int direction) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public int getFetchDirection() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - /* - * used by spark - */ - public void setFetchSize(int rows) throws SQLException { - } - - /* - * used by spark - */ - public int getFetchSize() throws SQLException { - return 4096; - } - - public int getResultSetConcurrency() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public int getResultSetType() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void addBatch(String sql) throws SQLException { - if (batchedArgs == null) { - batchedArgs = new ArrayList(); - } - batchedArgs.add(sql); - } - - public void clearBatch() throws SQLException { - batchedArgs.clear(); - } - - public int[] executeBatch() throws SQLException { - if (isClosed) { - throw new SQLException("Invalid method call on a closed statement."); - } - if (batchedArgs == null) { - throw new SQLException(TSDBConstants.WrapErrMsg("Batch is empty!")); - } else { - int[] res = new int[batchedArgs.size()]; - for (int i = 0; i < batchedArgs.size(); i++) { - res[i] = executeUpdate(batchedArgs.get(i)); - } - return res; - } - } - - public Connection getConnection() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public boolean getMoreResults(int current) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public ResultSet getGeneratedKeys() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public int executeUpdate(String sql, int autoGeneratedKeys) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public int executeUpdate(String sql, int[] columnIndexes) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public int executeUpdate(String sql, String[] columnNames) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public boolean execute(String sql, int autoGeneratedKeys) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public boolean execute(String sql, int[] columnIndexes) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public boolean execute(String sql, String[] columnNames) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public int getResultSetHoldability() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public boolean isClosed() throws SQLException { - return isClosed; - } - - public void setPoolable(boolean poolable) throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public boolean isPoolable() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public void closeOnCompletion() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } - - public boolean isCloseOnCompletion() throws SQLException { - throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG); - } -} diff --git a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TaosGlobalConfig 2.java b/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TaosGlobalConfig 2.java deleted file mode 100644 index 171189763b2198104c4445020cc931bc2133b55e..0000000000000000000000000000000000000000 --- a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/TaosGlobalConfig 2.java +++ /dev/null @@ -1,30 +0,0 @@ -/*************************************************************************** - * Copyright (c) 2019 TAOS Data, Inc. - * - * This program is free software: you can use, redistribute, and/or modify - * it under the terms of the GNU Affero General Public License, version 3 - * or later ("AGPL"), as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - *****************************************************************************/ -package com.taosdata.jdbc; - -public class TaosGlobalConfig { - static String charset = ""; - - public static String getCharset() { - if (charset == null || charset.isEmpty()) { - charset = System.getProperty("file.encoding"); - } - return charset; - } - - public static void setCharset(String tsCharset) { - TaosGlobalConfig.charset = tsCharset; - } -} diff --git a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/bean/TSDBPreparedParam 2.java b/src/connector/jdbc/src/main/java/com/taosdata/jdbc/bean/TSDBPreparedParam 2.java deleted file mode 100644 index ef78292de60d11b535df7403cd27d622686fbba1..0000000000000000000000000000000000000000 --- a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/bean/TSDBPreparedParam 2.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.taosdata.jdbc.bean; - -import java.util.List; - -/** - * tdengine batch insert or import param object - */ -public class TSDBPreparedParam { - - /** - * tableName, if sTable Name is not null, and this is sub table name. - */ - private String tableName; - - /** - * sub middle param list - */ - private List middleParamList; - - /** - * value list - */ - private List valueList; - - public TSDBPreparedParam(String tableName) { - this.tableName = tableName; - } - - public String getTableName() { - return tableName; - } - - public void setTableName(String tableName) { - this.tableName = tableName; - } - - public List getMiddleParamList() { - return middleParamList; - } - - public void setMiddleParamList(List middleParamList) { - this.middleParamList = middleParamList; - } - - public void setMiddleParam(int parameterIndex, Object x) { - this.middleParamList.set(parameterIndex, x); - } - - public List getValueList() { - return valueList; - } - - public void setValueList(List valueList) { - this.valueList = valueList; - } - - - public void setValueParam(int parameterIndex, Object x) { - this.valueList.set(parameterIndex, x); - } - -} diff --git a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/utils/SqlSyntaxValidator 2.java b/src/connector/jdbc/src/main/java/com/taosdata/jdbc/utils/SqlSyntaxValidator 2.java deleted file mode 100644 index 7e144cbe0f032b6e675749fce704e171f75f2d94..0000000000000000000000000000000000000000 --- a/src/connector/jdbc/src/main/java/com/taosdata/jdbc/utils/SqlSyntaxValidator 2.java +++ /dev/null @@ -1,45 +0,0 @@ -/*************************************************************************** - * Copyright (c) 2019 TAOS Data, Inc. - * - * This program is free software: you can use, redistribute, and/or modify - * it under the terms of the GNU Affero General Public License, version 3 - * or later ("AGPL"), as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - *****************************************************************************/ -package com.taosdata.jdbc.utils; - -import com.taosdata.jdbc.TSDBConnection; -import com.taosdata.jdbc.TSDBJNIConnector; - -import java.sql.Connection; -import java.sql.SQLException; - -public class SqlSyntaxValidator { - - private TSDBConnection tsdbConnection; - public SqlSyntaxValidator(Connection connection) { - this.tsdbConnection = (TSDBConnection) connection; - } - - public boolean validateSqlSyntax(String sql) throws SQLException { - - boolean res = false; - if (tsdbConnection == null || tsdbConnection.isClosed()) { - throw new SQLException("invalid connection"); - } else { - TSDBJNIConnector jniConnector = tsdbConnection.getConnection(); - if (jniConnector == null) { - throw new SQLException("jniConnector is null"); - } else { - res = jniConnector.validateCreateTableSql(sql); - } - } - return res; - } -} diff --git a/src/connector/jdbc/src/main/resources/META-INF/services/.java.sql 2.Driver.icloud b/src/connector/jdbc/src/main/resources/META-INF/services/.java.sql 2.Driver.icloud deleted file mode 100644 index a834ea1b5fe8d33b63527efc729d37fd67ad0520..0000000000000000000000000000000000000000 Binary files a/src/connector/jdbc/src/main/resources/META-INF/services/.java.sql 2.Driver.icloud and /dev/null differ diff --git a/src/inc/mnode.h b/src/inc/mnode.h index 794e41cc6c741848e26af4f0ab88968fbfc26d6a..cce403e2bf826cd430ebeb615ba877b96aae1d2f 100644 --- a/src/inc/mnode.h +++ b/src/inc/mnode.h @@ -254,6 +254,8 @@ typedef struct _user_obj { char reserved[16]; char updateEnd[1]; struct _user_obj *prev, *next; + int8_t writeAuth; + int8_t superAuth; } SUserObj; typedef struct { diff --git a/src/inc/taosmsg.h b/src/inc/taosmsg.h index ea8045c8515432aa0a9d6e56c259b6eada7757f3..3de7834b3d8d170b9770738c70754ed509d84e33 100644 --- a/src/inc/taosmsg.h +++ b/src/inc/taosmsg.h @@ -187,6 +187,13 @@ typedef enum { extern char *taosMsg[]; +#define TSDB_MSG_DEF_MAX_MPEERS 5 +#define TSDB_MSG_DEF_VERSION_LEN 64 +#define TSDB_MSG_DEF_DB_LEN 128 +#define TSDB_MSG_DEF_USER_LEN 128 +#define TSDB_MSG_DEF_TABLE_LEN 128 +#define TSDB_MSG_DEF_ACCT_LEN 128 + #pragma pack(push, 1) typedef struct { @@ -325,9 +332,23 @@ typedef struct { } SAlterTableMsg; typedef struct { - char clientVersion[TSDB_VERSION_LEN]; - char db[TSDB_TABLE_ID_LEN]; -} SConnectMsg; + char clientVersion[TSDB_MSG_DEF_VERSION_LEN]; + char msgVersion[TSDB_MSG_DEF_VERSION_LEN]; + char db[TSDB_MSG_DEF_DB_LEN]; +} SCMConnectMsg; + +typedef struct { + char acctId[TSDB_MSG_DEF_ACCT_LEN]; + char serverVersion[TSDB_MSG_DEF_VERSION_LEN]; + int8_t writeAuth; + int8_t superAuth; + int8_t usePublicIp; + int16_t index; + int16_t numOfIps; + uint16_t port; + uint32_t ip[TSDB_MSG_DEF_MAX_MPEERS]; +} SCMConnectRsp; + typedef struct { int32_t maxUsers; @@ -360,13 +381,6 @@ typedef struct { char db[TSDB_TABLE_ID_LEN]; } SMgmtHead; -typedef struct { - char acctId[TSDB_ACCT_LEN]; - char version[TSDB_VERSION_LEN]; - char writeAuth; - char superAuth; -} SConnectRsp; - typedef struct { short vnode; int32_t sid; diff --git a/src/mnode/inc/mgmtShell.h b/src/mnode/inc/mgmtShell.h index e1181ff0f347ab8234353ae3774f6eb3c4d72932..529a4396045cb0b17528c07c8e01d1ec4ba2713e 100644 --- a/src/mnode/inc/mgmtShell.h +++ b/src/mnode/inc/mgmtShell.h @@ -24,7 +24,7 @@ extern "C" { #include #include "mnode.h" -int mgmtInitShell(); +int32_t mgmtInitShell(); void mgmtCleanUpShell(); extern int32_t (*mgmtCheckRedirectMsg)(SConnObj *pConn, int32_t msgType); diff --git a/src/mnode/src/mgmtShell.c b/src/mnode/src/mgmtShell.c index 1ddf6500ee6a5f3f9892915b9fa7129a901b03b5..f46d0e9a378fd2d7a8d85d269a20306596d514e0 100644 --- a/src/mnode/src/mgmtShell.c +++ b/src/mnode/src/mgmtShell.c @@ -46,32 +46,32 @@ static void mgmtInitShowMsgFp(); void * tsShellConn = NULL; SConnObj *connList; -void mgmtProcessMsgFromShell(char type, void *pCont, int contLen, void *ahandle, int32_t code); -int mgmtRetriveUserAuthInfo(char *user, char *spi, char *encrypt, char *secret, char *ckey); -int (*mgmtProcessShellMsg[TSDB_MSG_TYPE_MAX])(char *, int, SConnObj *); +void mgmtProcessMsgFromShell(char type, void *pCont, int32_t contLen, void *ahandle, int32_t code); +int32_t mgmtRetriveUserAuthInfo(char *user, char *spi, char *encrypt, char *secret, char *ckey); +int32_t (*mgmtProcessShellMsg[TSDB_MSG_TYPE_MAX])(char *, int32_t, SConnObj *); void mgmtInitProcessShellMsg(); -int mgmtRedirectMsg(SConnObj *pConn, int msgType); -int mgmtKillQuery(char *queryId, SConnObj *pConn); +int32_t mgmtRedirectMsg(SConnObj *pConn, int32_t msgType); +int32_t mgmtKillQuery(char *queryId, SConnObj *pConn); void mgmtProcessTranRequest(SSchedMsg *pSchedMsg) { SIntMsg * pMsg = (SIntMsg *)(pSchedMsg->msg); SConnObj *pConn = (SConnObj *)(pSchedMsg->thandle); char *cont = (char *)pMsg->content + sizeof(SMgmtHead); - int contLen = pMsg->msgLen - sizeof(SIntMsg) - sizeof(SMgmtHead); + int32_t contLen = pMsg->msgLen - sizeof(SIntMsg) - sizeof(SMgmtHead); if (pConn->pAcct) (*mgmtProcessShellMsg[pMsg->msgType])(cont, contLen, pConn); if (pSchedMsg->msg) free(pSchedMsg->msg); } -int mgmtInitShell() { +int32_t mgmtInitShell() { SRpcInit rpcInit; mgmtInitProcessShellMsg(); mgmtInitShowMsgFp(); - int size = sizeof(SConnObj) * tsMaxShellConns; + int32_t size = sizeof(SConnObj) * tsMaxShellConns; connList = (SConnObj *)malloc(size); if (connList == NULL) { mError("failed to malloc for connList to shell"); @@ -79,7 +79,7 @@ int mgmtInitShell() { } memset(connList, 0, size); - int numOfThreads = tsNumOfCores * tsNumOfThreadsPerCore / 4.0; + int32_t numOfThreads = tsNumOfCores * tsNumOfThreadsPerCore / 4.0; if (numOfThreads < 1) numOfThreads = 1; memset(&rpcInit, 0, sizeof(rpcInit)); @@ -113,7 +113,7 @@ void mgmtCleanUpShell() { static void mgmtSetSchemaFromMeters(SSchema *pSchema, STabObj *pMeterObj, uint32_t numOfCols) { SSchema *pMeterSchema = (SSchema *)(pMeterObj->schema); - for (int i = 0; i < numOfCols; ++i) { + for (int32_t i = 0; i < numOfCols; ++i) { pSchema->type = pMeterSchema[i].type; strcpy(pSchema->name, pMeterSchema[i].name); pSchema->bytes = htons(pMeterSchema[i].bytes); @@ -180,7 +180,7 @@ bool mgmtCheckMeterMetaMsgType(char *pMsg) { return 0; } -int mgmtProcessMeterMetaMsg(char *pMsg, int msgLen, SConnObj *pConn) { +int32_t mgmtProcessMeterMetaMsg(char *pMsg, int32_t msgLen, SConnObj *pConn) { // SMeterInfoMsg *pInfo = (SMeterInfoMsg *)pMsg; // STabObj * pMeterObj = NULL; // SVgObj * pVgroup = NULL; @@ -191,7 +191,7 @@ int mgmtProcessMeterMetaMsg(char *pMsg, int msgLen, SConnObj *pConn) { // // pInfo->createFlag = htons(pInfo->createFlag); // -// int size = sizeof(STaosHeader) + sizeof(STaosRsp) + sizeof(SMeterMeta) + sizeof(SSchema) * TSDB_MAX_COLUMNS + +// int32_t size = sizeof(STaosHeader) + sizeof(STaosRsp) + sizeof(SMeterMeta) + sizeof(SSchema) * TSDB_MAX_COLUMNS + // sizeof(SSchema) * TSDB_MAX_TAGS + TSDB_MAX_TAGS_LEN + TSDB_EXTRA_PAYLOAD_SIZE; // // SDbObj *pDb = NULL; @@ -320,7 +320,7 @@ int mgmtProcessMeterMetaMsg(char *pMsg, int msgLen, SConnObj *pConn) { // pRsp->code = TSDB_CODE_INVALID_TABLE; // goto _exit_code; // } -// for (int i = 0; i < TSDB_VNODES_SUPPORT; ++i) { +// for (int32_t i = 0; i < TSDB_VNODES_SUPPORT; ++i) { // if (pConn->usePublicIp) { // pMeta->vpeerDesc[i].ip = pVgroup->vnodeGid[i].publicIp; // pMeta->vpeerDesc[i].vnode = htonl(pVgroup->vnodeGid[i].vnode); @@ -352,7 +352,7 @@ int mgmtProcessMeterMetaMsg(char *pMsg, int msgLen, SConnObj *pConn) { * | | | * pStart pCurMeter pTail **/ -int mgmtProcessMultiMeterMetaMsg(char *pMsg, int msgLen, SConnObj *pConn) { +int32_t mgmtProcessMultiMeterMetaMsg(char *pMsg, int32_t msgLen, SConnObj *pConn) { // SDbObj * pDbObj = NULL; // STabObj * pMeterObj = NULL; // SVgObj * pVgroup = NULL; @@ -365,7 +365,7 @@ int mgmtProcessMultiMeterMetaMsg(char *pMsg, int msgLen, SConnObj *pConn) { // char * str = pMsg + sizeof(SMultiMeterInfoMsg); // pInfo->numOfMeters = htonl(pInfo->numOfMeters); // -// int size = 4*1024*1024; // first malloc 4 MB, subsequent reallocation as twice +// int32_t size = 4*1024*1024; // first malloc 4 MB, subsequent reallocation as twice // // char *pNewMsg; // if ((pStart = mgmtForMultiAllocMsg(pConn, size, &pNewMsg, &pRsp)) == NULL) { @@ -465,7 +465,7 @@ int mgmtProcessMultiMeterMetaMsg(char *pMsg, int msgLen, SConnObj *pConn) { // goto _error_exit_code; // } // -// for (int i = 0; i < TSDB_VNODES_SUPPORT; ++i) { +// for (int32_t i = 0; i < TSDB_VNODES_SUPPORT; ++i) { // if (pConn->usePublicIp) { // pMeta->meta.vpeerDesc[i].ip = pVgroup->vnodeGid[i].publicIp; // pMeta->meta.vpeerDesc[i].vnode = htonl(pVgroup->vnodeGid[i].vnode); @@ -507,7 +507,7 @@ int mgmtProcessMultiMeterMetaMsg(char *pMsg, int msgLen, SConnObj *pConn) { return 0; } -int mgmtProcessMetricMetaMsg(char *pMsg, int msgLen, SConnObj *pConn) { +int32_t mgmtProcessMetricMetaMsg(char *pMsg, int32_t msgLen, SConnObj *pConn) { // SSuperTableMetaMsg *pSuperTableMetaMsg = (SSuperTableMetaMsg *)pMsg; // STabObj * pMetric; // STaosRsp * pRsp; @@ -558,9 +558,9 @@ int mgmtProcessMetricMetaMsg(char *pMsg, int msgLen, SConnObj *pConn) { return 0; } -int mgmtProcessCreateDbMsg(char *pMsg, int msgLen, SConnObj *pConn) { +int32_t mgmtProcessCreateDbMsg(char *pMsg, int32_t msgLen, SConnObj *pConn) { // SCreateDbMsg *pCreate = (SCreateDbMsg *)pMsg; -// int code = 0; +// int32_t code = 0; // // if (mgmtCheckRedirectMsg(pConn, TSDB_MSG_TYPE_CREATE_DB_RSP) != 0) { // return 0; @@ -593,14 +593,14 @@ int mgmtProcessCreateDbMsg(char *pMsg, int msgLen, SConnObj *pConn) { return 0; } -int mgmtProcessCreateMnodeMsg(char *pMsg, int msgLen, SConnObj *pConn) { +int32_t mgmtProcessCreateMnodeMsg(char *pMsg, int32_t msgLen, SConnObj *pConn) { // return rpcSendResponse(pConn->thandle, TSDB_MSG_TYPE_CREATE_MNODE_RSP, TSDB_CODE_OPS_NOT_SUPPORT); return 0; } -int mgmtProcessAlterDbMsg(char *pMsg, int msgLen, SConnObj *pConn) { +int32_t mgmtProcessAlterDbMsg(char *pMsg, int32_t msgLen, SConnObj *pConn) { // SAlterDbMsg *pAlter = (SAlterDbMsg *)pMsg; -// int code = 0; +// int32_t code = 0; // // if (mgmtCheckRedirectMsg(pConn, TSDB_MSG_TYPE_ALTER_DB_RSP) != 0) { // return 0; @@ -624,8 +624,8 @@ int mgmtProcessAlterDbMsg(char *pMsg, int msgLen, SConnObj *pConn) { return 0; } -int mgmtProcessKillQueryMsg(char *pMsg, int msgLen, SConnObj *pConn) { -// int code = 0; +int32_t mgmtProcessKillQueryMsg(char *pMsg, int32_t msgLen, SConnObj *pConn) { +// int32_t code = 0; // SKillQuery *pKill = (SKillQuery *)pMsg; // // if (!pConn->writeAuth) { @@ -639,8 +639,8 @@ int mgmtProcessKillQueryMsg(char *pMsg, int msgLen, SConnObj *pConn) { return 0; } -int mgmtProcessKillStreamMsg(char *pMsg, int msgLen, SConnObj *pConn) { -// int code = 0; +int32_t mgmtProcessKillStreamMsg(char *pMsg, int32_t msgLen, SConnObj *pConn) { +// int32_t code = 0; // SKillStream *pKill = (SKillStream *)pMsg; // // if (!pConn->writeAuth) { @@ -654,8 +654,8 @@ int mgmtProcessKillStreamMsg(char *pMsg, int msgLen, SConnObj *pConn) { return 0; } -int mgmtProcessKillConnectionMsg(char *pMsg, int msgLen, SConnObj *pConn) { -// int code = 0; +int32_t mgmtProcessKillConnectionMsg(char *pMsg, int32_t msgLen, SConnObj *pConn) { +// int32_t code = 0; // SKillConnection *pKill = (SKillConnection *)pMsg; // // if (!pConn->superAuth) { @@ -669,9 +669,9 @@ int mgmtProcessKillConnectionMsg(char *pMsg, int msgLen, SConnObj *pConn) { return 0; } -int mgmtProcessCreateUserMsg(char *pMsg, int msgLen, SConnObj *pConn) { +int32_t mgmtProcessCreateUserMsg(char *pMsg, int32_t msgLen, SConnObj *pConn) { // SCreateUserMsg *pCreate = (SCreateUserMsg *)pMsg; -// int code = 0; +// int32_t code = 0; // // if (mgmtCheckRedirectMsg(pConn, TSDB_MSG_TYPE_CREATE_USER_RSP) != 0) { // return 0; @@ -691,9 +691,9 @@ int mgmtProcessCreateUserMsg(char *pMsg, int msgLen, SConnObj *pConn) { return 0; } -int mgmtProcessAlterUserMsg(char *pMsg, int msgLen, SConnObj *pConn) { +int32_t mgmtProcessAlterUserMsg(char *pMsg, int32_t msgLen, SConnObj *pConn) { // SAlterUserMsg *pAlter = (SAlterUserMsg *)pMsg; -// int code = 0; +// int32_t code = 0; // SUserObj * pUser; // SUserObj * pOperUser; // @@ -803,9 +803,9 @@ int mgmtProcessAlterUserMsg(char *pMsg, int msgLen, SConnObj *pConn) { return 0; } -int mgmtProcessDropUserMsg(char *pMsg, int msgLen, SConnObj *pConn) { +int32_t mgmtProcessDropUserMsg(char *pMsg, int32_t msgLen, SConnObj *pConn) { // SDropUserMsg *pDrop = (SDropUserMsg *)pMsg; -// int code = 0; +// int32_t code = 0; // SUserObj * pUser; // SUserObj * pOperUser; // @@ -862,9 +862,9 @@ int mgmtProcessDropUserMsg(char *pMsg, int msgLen, SConnObj *pConn) { return 0; } -int mgmtProcessDropDbMsg(char *pMsg, int msgLen, SConnObj *pConn) { +int32_t mgmtProcessDropDbMsg(char *pMsg, int32_t msgLen, SConnObj *pConn) { // SDropDbMsg *pDrop = (SDropDbMsg *)pMsg; -// int code; +// int32_t code; // // if (mgmtCheckRedirectMsg(pConn, TSDB_MSG_TYPE_DROP_DB_RSP) != 0) { // return 0; @@ -883,9 +883,9 @@ int mgmtProcessDropDbMsg(char *pMsg, int msgLen, SConnObj *pConn) { return 0; } -int mgmtProcessUseDbMsg(char *pMsg, int msgLen, SConnObj *pConn) { +int32_t mgmtProcessUseDbMsg(char *pMsg, int32_t msgLen, SConnObj *pConn) { // SUseDbMsg *pUse = (SUseDbMsg *)pMsg; -// int code; +// int32_t code; // // code = mgmtUseDb(pConn, pUse->db); // if (code == 0) mTrace("DB is change to:%s by %s", pUse->db, pConn->pUser->user); @@ -933,11 +933,11 @@ static void mgmtInitShowMsgFp() { mgmtRetrieveFp[TSDB_MGMT_TABLE_VNODES] = mgmtRetrieveVnodes; } -int mgmtProcessShowMsg(char *pMsg, int msgLen, SConnObj *pConn) { +int32_t mgmtProcessShowMsg(char *pMsg, int32_t msgLen, SConnObj *pConn) { // SShowMsg * pShowMsg = (SShowMsg *)pMsg; // STaosRsp * pRsp; // char * pStart; -// int code = 0; +// int32_t code = 0; // SShowRspMsg *pShowRsp; // SShowObj * pShow = NULL; // @@ -947,7 +947,7 @@ int mgmtProcessShowMsg(char *pMsg, int msgLen, SConnObj *pConn) { // } // } // -// int size = sizeof(STaosHeader) + sizeof(STaosRsp) + sizeof(SShowRspMsg) + sizeof(SSchema) * TSDB_MAX_COLUMNS + +// int32_t size = sizeof(STaosHeader) + sizeof(STaosRsp) + sizeof(SShowRspMsg) + sizeof(SSchema) * TSDB_MAX_COLUMNS + // TSDB_EXTRA_PAYLOAD_SIZE; // pStart = taosBuildRspMsgWithSize(pConn->thandle, TSDB_MSG_TYPE_SHOW_RSP, size); // if (pStart == NULL) { @@ -992,12 +992,12 @@ int mgmtProcessShowMsg(char *pMsg, int msgLen, SConnObj *pConn) { return 0; } -int mgmtProcessRetrieveMsg(char *pMsg, int msgLen, SConnObj *pConn) { +int32_t mgmtProcessRetrieveMsg(char *pMsg, int32_t msgLen, SConnObj *pConn) { // SRetrieveMeterMsg *pRetrieve; // SRetrieveMeterRsp *pRsp; -// int rowsToRead = 0, size = 0, rowsRead = 0; +// int32_t rowsToRead = 0, size = 0, rowsRead = 0; // char * pStart; -// int code = 0; +// int32_t code = 0; // SShowObj * pShow; // // pRetrieve = (SRetrieveMeterMsg *)pMsg; @@ -1080,9 +1080,9 @@ int mgmtProcessRetrieveMsg(char *pMsg, int msgLen, SConnObj *pConn) { return 0; } -int mgmtProcessCreateTableMsg(char *pMsg, int msgLen, SConnObj *pConn) { +int32_t mgmtProcessCreateTableMsg(char *pMsg, int32_t msgLen, SConnObj *pConn) { // SCreateTableMsg *pCreate = (SCreateTableMsg *)pMsg; -// int code; +// int32_t code; // SSchema * pSchema; // // if (mgmtCheckRedirectMsg(pConn, TSDB_MSG_TYPE_CREATE_TABLE_RSP) != 0) { @@ -1097,7 +1097,7 @@ int mgmtProcessCreateTableMsg(char *pMsg, int msgLen, SConnObj *pConn) { // // pCreate->sqlLen = htons(pCreate->sqlLen); // pSchema = pCreate->schema; -// for (int i = 0; i < pCreate->numOfColumns + pCreate->numOfTags; ++i) { +// for (int32_t i = 0; i < pCreate->numOfColumns + pCreate->numOfTags; ++i) { // pSchema->bytes = htons(pSchema->bytes); // pSchema->colId = i; // pSchema++; @@ -1135,9 +1135,9 @@ int mgmtProcessCreateTableMsg(char *pMsg, int msgLen, SConnObj *pConn) { return 0; } -int mgmtProcessDropTableMsg(char *pMsg, int msgLen, SConnObj *pConn) { +int32_t mgmtProcessDropTableMsg(char *pMsg, int32_t msgLen, SConnObj *pConn) { // SDropTableMsg *pDrop = (SDropTableMsg *)pMsg; -// int code; +// int32_t code; // // if (mgmtCheckRedirectMsg(pConn, TSDB_MSG_TYPE_DROP_TABLE_RSP) != 0) { // return 0; @@ -1161,9 +1161,9 @@ int mgmtProcessDropTableMsg(char *pMsg, int msgLen, SConnObj *pConn) { return 0; } -int mgmtProcessAlterTableMsg(char *pMsg, int msgLen, SConnObj *pConn) { +int32_t mgmtProcessAlterTableMsg(char *pMsg, int32_t msgLen, SConnObj *pConn) { // SAlterTableMsg *pAlter = (SAlterTableMsg *)pMsg; -// int code; +// int32_t code; // // if (mgmtCheckRedirectMsg(pConn, TSDB_MSG_TYPE_ALTER_TABLE_RSP) != 0) { // return 0; @@ -1202,8 +1202,8 @@ int mgmtProcessAlterTableMsg(char *pMsg, int msgLen, SConnObj *pConn) { return 0; } -int mgmtProcessCfgDnodeMsg(char *pMsg, int msgLen, SConnObj *pConn) { -// int code = 0; +int32_t mgmtProcessCfgDnodeMsg(char *pMsg, int32_t msgLen, SConnObj *pConn) { +// int32_t code = 0; // SCfgMsg *pCfg = (SCfgMsg *)pMsg; // // if (mgmtCheckRedirectMsg(pConn, TSDB_MSG_TYPE_CFG_MNODE_RSP) != 0) { @@ -1223,9 +1223,9 @@ int mgmtProcessCfgDnodeMsg(char *pMsg, int msgLen, SConnObj *pConn) { // return 0; //} // -//int mgmtProcessHeartBeatMsg(char *cont, int contLen, SConnObj *pConn) { +//int32_t mgmtProcessHeartBeatMsg(char *cont, int32_t contLen, SConnObj *pConn) { // char * pStart, *pMsg; -// int msgLen; +// int32_t msgLen; // STaosRsp *pRsp; // // mgmtSaveQueryStreamList(cont, contLen, pConn); @@ -1247,7 +1247,7 @@ int mgmtProcessCfgDnodeMsg(char *pMsg, int msgLen, SConnObj *pConn) { // // if (pConn->usePublicIp) { // if (pSdbPublicIpList != NULL) { -// int size = pSdbPublicIpList->numOfIps * 4; +// int32_t size = pSdbPublicIpList->numOfIps * 4; // pHBRsp->ipList.numOfIps = pSdbPublicIpList->numOfIps; // memcpy(pHBRsp->ipList.ip, pSdbPublicIpList->ip, size); // pMsg += sizeof(SHeartBeatRsp) + size; @@ -1258,7 +1258,7 @@ int mgmtProcessCfgDnodeMsg(char *pMsg, int msgLen, SConnObj *pConn) { // // } else { // if (pSdbIpList != NULL) { -// int size = pSdbIpList->numOfIps * 4; +// int32_t size = pSdbIpList->numOfIps * 4; // pHBRsp->ipList.numOfIps = pSdbIpList->numOfIps; // memcpy(pHBRsp->ipList.ip, pSdbIpList->ip, size); // pMsg += sizeof(SHeartBeatRsp) + size; @@ -1296,132 +1296,102 @@ void mgmtEstablishConn(SConnObj *pConn) { // mgmtAddConnIntoAcct(pConn); } -int mgmtRetriveUserAuthInfo(char *user, char *spi, char *encrypt, char *secret, char *ckey) { - SUserObj *pUser = NULL; - - *spi = 0; - *encrypt = 0; - secret[0] = 0; - ckey[0] = 0; - - pUser = mgmtGetUser(user); - if (pUser == NULL) return TSDB_CODE_INVALID_USER; +int32_t mgmtRetriveUserAuthInfo(char *user, char *spi, char *encrypt, char *secret, char *ckey) { + SUserObj *pUser = mgmtGetUser(user); + if (pUser == NULL) { + *spi = 0; + *encrypt = 0; + *ckey = 0; + *secret = 0; + return TSDB_CODE_INVALID_USER; + } *spi = 1; *encrypt = 0; + *ckey = 0; memcpy(secret, pUser->pass, TSDB_KEY_LEN); - - return 0; + return TSDB_CODE_SUCCESS; } -int mgmtProcessConnectMsg(char *pMsg, int msgLen, SConnObj *pConn) { -// STaosRsp * pRsp; -// SConnectRsp *pConnectRsp; -// SConnectMsg *pConnectMsg; -// char * pStart; -// int code = TSDB_CODE_INVALID_USER; -// SAcctObj * pAcct = NULL; -// SUserObj * pUser = NULL; -// SDbObj * pDb = NULL; -// char dbName[256] = {0}; -// -// pConnectMsg = (SConnectMsg *)pMsg; -// -// pUser = mgmtGetUser(pConn->user); -// if (pUser == NULL) { -// code = TSDB_CODE_INVALID_USER; -// goto _rsp; -// } -// -// if (mgmtCheckExpired()) { -// code = TSDB_CODE_GRANT_EXPIRED; -// goto _rsp; -// } -// -// pAcct = mgmtGetAcct(pUser->acct); -// -// code = taosCheckVersion(pConnectMsg->clientVersion, version, 3); -// if (code != 0) { -// mError("invalid client version:%s", pConnectMsg->clientVersion); -// goto _rsp; -// } -// -// if (pConnectMsg->db[0]) { -// sprintf(dbName, "%x%s%s", pAcct->acctId, TS_PATH_DELIMITER, pConnectMsg->db); -// pDb = mgmtGetDb(dbName); -// if (pDb == NULL) { -// code = TSDB_CODE_INVALID_DB; -// goto _rsp; -// } -// } -// -// if (pConn->pAcct) { -// mgmtRemoveConnFromAcct(pConn); -// atomic_fetch_sub_32(&mgmtShellConns, 1); -// atomic_fetch_sub_32(&sdbExtConns, 1); -// } -// -// code = 0; -// pConn->pAcct = pAcct; -// pConn->pDb = pDb; -// pConn->pUser = pUser; -// mgmtEstablishConn(pConn); -// -//_rsp: -// pStart = taosBuildRspMsgWithSize(pConn->thandle, TSDB_MSG_TYPE_CONNECT_RSP, 128); -// if (pStart == NULL) return 0; -// -// pMsg = pStart; -// pRsp = (STaosRsp *)pMsg; -// pRsp->code = code; -// pMsg += sizeof(STaosRsp); -// -// if (code == 0) { -// pConnectRsp = (SConnectRsp *)pRsp->more; -// sprintf(pConnectRsp->acctId, "%x", pConn->pAcct->acctId); -// strcpy(pConnectRsp->version, version); -// pConnectRsp->writeAuth = pConn->writeAuth; -// pConnectRsp->superAuth = pConn->superAuth; -// pMsg += sizeof(SConnectRsp); -// -// int size; -// if (pSdbPublicIpList != NULL && pSdbIpList != NULL) { -// size = pSdbPublicIpList->numOfIps * 4 + sizeof(SIpList); -// if (pConn->usePublicIp) { -// memcpy(pMsg, pSdbPublicIpList, size); -// } else { -// memcpy(pMsg, pSdbIpList, size); -// } -// } else { -// SIpList tmpIpList; -// tmpIpList.numOfIps = 0; -// size = tmpIpList.numOfIps * 4 + sizeof(SIpList); -// memcpy(pMsg, &tmpIpList, size); -// } -// -// pMsg += size; -// -// // set the time resolution: millisecond or microsecond -// *((uint32_t *)pMsg) = tsTimePrecision; -// pMsg += sizeof(uint32_t); -// -// } else { -// pConn->pAcct = NULL; -// pConn->pUser = NULL; -// } -// -// msgLen = pMsg - pStart; -// taosSendMsgToPeer(pConn->thandle, pStart, msgLen); -// -// char ipstr[24]; -// tinet_ntoa(ipstr, pConn->ip); -// mLPrint("user:%s login from %s, code:%d", pConn->user, ipstr, code); -// -// return code; - return 0; +int32_t mgmtProcessConnectMsg(int8_t type, void *pCont, int32_t contLen, void *ahandle, int32_t code) { + SCMConnectMsg *pConnectMsg = (SCMConnectMsg *) pCont; + uint32_t destIp = 0; + uint32_t srcIp = 0; + + SUserObj *pUser = mgmtGetUser(pConnectMsg->head.userId); + if (pUser == NULL) { + mLError("user:%s login from %s to %s, code:%d", pConnectMsg->head.userId, taosIpStr(srcIp), taosIpStr(destIp), code); + rpcSendResponse(ahandle, TSDB_CODE_INVALID_USER, NULL, 0); + return TSDB_CODE_INVALID_USER; + } + + if (mgmtCheckExpired()) { + mLError("user:%s login from %s to %s, code:%d", pConnectMsg->head.userId, taosIpStr(srcIp), taosIpStr(destIp), code); + rpcSendResponse(ahandle, TSDB_CODE_GRANT_EXPIRED, NULL, 0); + return TSDB_CODE_GRANT_EXPIRED; + } + + SAcctObj *pAcct = mgmtGetAcct(pUser->acct); + if (pAcct == NULL) { + mLError("user:%s login from %s to %s, code:%d", pConnectMsg->head.userId, taosIpStr(srcIp), taosIpStr(destIp), code); + rpcSendResponse(ahandle, TSDB_CODE_INVALID_ACCT, NULL, 0); + return TSDB_CODE_INVALID_ACCT; + } + + code = taosCheckVersion(pConnectMsg->clientVersion, version, 3); + if (code != TSDB_CODE_SUCCESS) { + mLError("user:%s login from %s to %s, code:%d", pConnectMsg->head.userId, taosIpStr(srcIp), taosIpStr(destIp), code); + rpcSendResponse(ahandle, code, NULL, 0); + return code; + } + + if (pConnectMsg->db[0]) { + char dbName[TSDB_TABLE_ID_LEN] = {0}; + sprintf(dbName, "%x%s%s", pAcct->acctId, TS_PATH_DELIMITER, pConnectMsg->db); + SDbObj *pDb = mgmtGetDb(dbName); + if (pDb == NULL) { + mLError("user:%s login from %s to %s, code:%d", pConnectMsg->head.userId, taosIpStr(srcIp), taosIpStr(destIp), code); + rpcSendResponse(ahandle, TSDB_CODE_INVALID_DB, NULL, 0); + return TSDB_CODE_INVALID_DB; + } + } + + SCMConnectRsp *pConnectRsp = rpcMallocCont(sizeof(SCMConnectRsp)); + if (pConnectRsp == NULL) { + mLError("user:%s login from %s to %s, code:%d", pConnectMsg->head.userId, taosIpStr(srcIp), taosIpStr(destIp), code); + rpcSendResponse(ahandle, TSDB_CODE_SERV_OUT_OF_MEMORY, NULL, 0); + return TSDB_CODE_SERV_OUT_OF_MEMORY; + } + + sprintf(pConnectRsp->acctId, "%x", pAcct->acctId); + strcpy(pConnectRsp->serverVersion, version); + pConnectRsp->writeAuth = pConn->writeAuth; + pConnectRsp->superAuth = pConn->superAuth; + + pConnectRsp->index = 0; + pConnectRsp->usePublicIp = (destIp == tsPublicIpInt ? 1 : 0); + if (pSdbPublicIpList != NULL && pSdbIpList != NULL) { + pConnectRsp->numOfIps = htons(pSdbPublicIpList->numOfIps); + pConnectRsp->port = htons(tsMgmtShellPort); + if (pConnectRsp->usePublicIp) { + for (int i = 0; i < pSdbPublicIpList->numOfIps; ++i) { + pConnectRsp->ip[i] = htonl(pSdbPublicIpList->ip[i]); + } + } else { + for (int i = 0; i < pSdbIpList->numOfIps; ++i) { + pConnectRsp->ip[i] = htonl(pSdbIpList->ip[i]); + } + } + } else { + pConnectRsp->numOfIps = 0; + pConnectRsp->port = htons(tsMgmtShellPort); + } + + mLPrint("user:%s login from %s to %s, code:%d", pConnectMsg->head.userId, taosIpStr(srcIp), taosIpStr(destIp), code); + return TSDB_CODE_SUCCESS; } -void mgmtProcessMsgFromShell(char type, void *pCont, int contLen, void *ahandle, int32_t code) { +void mgmtProcessMsgFromShell(char type, void *pCont, int32_t contLen, void *ahandle, int32_t code) { // SIntMsg * pMsg = (SIntMsg *)msg; // SConnObj *pConn = (SConnObj *)ahandle; // @@ -1472,7 +1442,7 @@ void mgmtProcessMsgFromShell(char type, void *pCont, int contLen, void *ahandle, // } // // char *cont = (char *)pMsg->content + sizeof(SMgmtHead); -// int contLen = pMsg->msgLen - sizeof(SIntMsg) - sizeof(SMgmtHead); +// int32_t contLen = pMsg->msgLen - sizeof(SIntMsg) - sizeof(SMgmtHead); // // // read-only request can be executed concurrently // if ((pMsg->msgType == TSDB_MSG_TYPE_TABLE_META && (!mgmtCheckMeterMetaMsgType(cont))) || diff --git a/src/rpc/CMakeLists 2.txt b/src/rpc/CMakeLists 2.txt deleted file mode 100644 index 8d54d5fda591acd790c4bfab751cec079762e561..0000000000000000000000000000000000000000 --- a/src/rpc/CMakeLists 2.txt +++ /dev/null @@ -1,24 +0,0 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 2.8) -PROJECT(TDengine) - -INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/inc) -INCLUDE_DIRECTORIES(${TD_OS_DIR}/inc) -INCLUDE_DIRECTORIES(inc) - -IF ((TD_LINUX_64) OR (TD_LINUX_32 AND TD_ARM)) - AUX_SOURCE_DIRECTORY(./src SRC) -ELSEIF (TD_DARWIN_64) - LIST(APPEND SRC ./src/thaship.c) - LIST(APPEND SRC ./src/trpc.c) - LIST(APPEND SRC ./src/tstring.c) - LIST(APPEND SRC ./src/tudp.c) -ELSEIF (TD_WINDOWS_64) - INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/deps/pthread) - LIST(APPEND SRC ./src/thaship.c) - LIST(APPEND SRC ./src/trpc.c) - LIST(APPEND SRC ./src/tstring.c) - LIST(APPEND SRC ./src/tudp.c) -ENDIF () - -ADD_LIBRARY(trpc ${SRC}) -TARGET_LINK_LIBRARIES(trpc tutil) diff --git a/tests/comparisonTest/cassandra/cassandratest/src/main/java/com/cassandra/test/CassandraTest 2.java b/tests/comparisonTest/cassandra/cassandratest/src/main/java/com/cassandra/test/CassandraTest 2.java deleted file mode 100644 index a3f72de13c714d8601d4249dd79819d3425012ce..0000000000000000000000000000000000000000 --- a/tests/comparisonTest/cassandra/cassandratest/src/main/java/com/cassandra/test/CassandraTest 2.java +++ /dev/null @@ -1,200 +0,0 @@ -import com.datastax.oss.driver.api.core.CqlSession; -import com.datastax.oss.driver.api.core.cql.*; -import com.datastax.oss.driver.api.core.session.*; -import com.datastax.oss.driver.api.core.config.*; -import com.datastax.oss.driver.api.core.cql.ResultSet; -import com.datastax.oss.driver.api.core.cql.Row; -//import com.datastax.driver.core.Cluster; -//import com.datastax.driver.core.Cluster; - -import java.io.BufferedWriter; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileWriter; -import java.io.FileReader; -import java.io.IOException; -import java.text.DecimalFormat; -import java.util.Random; -import java.math.*; -import java.lang.reflect.Method; - - -public class CassandraTest{ - - public static void main(String args[]) { - - - // begin to parse argument - String datadir = "/home/ubuntu/testdata"; - String sqlfile = "/home/ubuntu/fang/cassandra/q1.txt"; - String cfgfile = "/home/ubuntu/fang/cassandra/application.conf"; - boolean q4flag = false; - int numOfRows = 1000000; - int numOfFiles =0; - int numOfClients =0; - int rowsPerRequest =0; - for (int i = 0; i < args.length; ++i) { - if (args[i].equalsIgnoreCase("-dataDir")) { - if (i < args.length - 1) { - datadir = args[++i]; - } - } else if (args[i].equalsIgnoreCase("-numofFiles")) { - if (i < args.length - 1) { - numOfFiles = Integer.parseInt(args[++i]); - } - } else if (args[i].equalsIgnoreCase("-rowsPerRequest")) { - if (i < args.length - 1) { - rowsPerRequest = Integer.parseInt(args[++i]); - } - } else if (args[i].equalsIgnoreCase("-writeClients")) { - if (i < args.length - 1) { - numOfClients = Integer.parseInt(args[++i]); - } - } else if (args[i].equalsIgnoreCase("-sql")) { - sqlfile = args[++i]; - } else if (args[i].equalsIgnoreCase("-timetest")) { - q4flag = true; - } else if (args[i].equalsIgnoreCase("-conf")) { - cfgfile = args[++i]; - } - } - // file below to make sure no timeout error - File confile = new File(cfgfile); - - System.out.println("parameters\n"); - - if (numOfFiles >0) { - // write data - System.out.printf("----dataDir:%s\n", datadir); - System.out.printf("----numOfFiles:%d\n", numOfFiles); - System.out.printf("----numOfClients:%d\n", numOfClients); - System.out.printf("----rowsPerRequest:%d\n", rowsPerRequest); - - // connect to cassandra server - System.out.printf("----connecting to cassandra server\n"); - try { - CqlSession session = CqlSession.builder() - .withConfigLoader(DriverConfigLoader.fromFile(confile)) - .build(); - - session.execute("drop keyspace if exists cassandra"); - session.execute("CREATE KEYSPACE if not exists cassandra WITH replication = {'class':'SimpleStrategy', 'replication_factor':1}"); - if (q4flag) { - session.execute("create table if not exists cassandra.test (devid int, devname text, devgroup int, ts bigint, minute bigint, temperature int, humidity float ,primary key (minute,ts,devgroup,devid,devname))"); - } else { - session.execute("create table if not exists cassandra.test (devid int, devname text, devgroup int, ts bigint, temperature int, humidity float ,primary key (devgroup,devid,devname,ts))"); - } - session.close(); - System.out.printf("----created keyspace cassandra and table test\n"); - - // begin to insert data - System.out.printf("----begin to insert data\n"); - long startTime = System.currentTimeMillis(); - int a = numOfFiles/numOfClients; - int b = numOfFiles%numOfClients; - int last = 0; - - WriteThread[] writethreads = new WriteThread[numOfClients]; - int[] wargs = new int[2]; // data file start, end - wargs[0] = numOfRows; //rows to be read from each file - wargs[1] = rowsPerRequest; - int fstart =0; - int fend =0; - for (int i = 0; i10) { - long startTime = System.currentTimeMillis(); - // begin to query one line command // - // end querying one line command - try { - - ResultSet results = session.execute(line); - long icounter = 0; - for (Row row : results) { - icounter++; - } - - long stopTime = System.currentTimeMillis(); - float elapseTime = stopTime - startTime; - elapseTime = elapseTime/1000; - System.out.printf("----spend %f seconds to query: %s\n", elapseTime, line); - } catch (Exception ex) { - ex.printStackTrace(); - System.out.printf("---- query failed!\n"); - System.exit(1); - } - - } - } catch (FileNotFoundException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } finally { - if (br != null) { - try { - br.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - session.close(); - } - } catch (Exception ex) { - ex.printStackTrace(); - } finally { - System.out.println("query end:----\n"); - } - } // end write or query - System.exit(0); - }// end main -}// end class diff --git a/tests/comparisonTest/cassandra/cassandratest/src/main/java/com/cassandra/test/WriteThread 2.java b/tests/comparisonTest/cassandra/cassandratest/src/main/java/com/cassandra/test/WriteThread 2.java deleted file mode 100644 index 7d8679a3030dcd8f46062ac0e3fa6ce4ff3d1d3b..0000000000000000000000000000000000000000 --- a/tests/comparisonTest/cassandra/cassandratest/src/main/java/com/cassandra/test/WriteThread 2.java +++ /dev/null @@ -1,99 +0,0 @@ -import java.io.BufferedReader; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.IOException; -import java.math.*; - -import com.datastax.oss.driver.api.core.CqlSession; -import com.datastax.oss.driver.api.core.cql.*; -import com.datastax.oss.driver.api.core.session.*; -import com.datastax.oss.driver.api.core.config.*; - - -public class WriteThread extends Thread { - - private int[] wargs; // fstart, fend, rows to be read, rows perrequest - private String fdir; - private int fstart; - private int fend; - private boolean q4flag; - - public WriteThread (int fstart, int fend,int[] wargs, String fdir, boolean q4flag) { - this.fstart = fstart; - this.fend = fend; - this.fdir = fdir; - this.wargs = wargs; - this.q4flag = q4flag; - } - - // begin to insert in this thread - public void run() { - /* - // this configuration file makes sure no timeout error - File confile = new File("/home/ubuntu/fang/cassandra/application.conf"); - */ - // connect to server - try { - CqlSession session = CqlSession.builder() - //.withConfigLoader(DriverConfigLoader.fromFile(confile)) - .build(); - //session.execute("use cassandra"); - int tominute = 6000; - for (int i=fstart; i<=fend; i++) { - String csvfile; - csvfile = fdir + "/testdata"+ Integer.toString(i)+".csv"; - BufferedReader br = null; - String line = ""; - String cvsSplitBy = " "; - try { - br = new BufferedReader(new FileReader(csvfile)); - System.out.println("---- begin to read file " +csvfile+"\n"); - for (int itotalrow =0; itotalrow0) { - // write data - System.out.printf("----dataDir:%s\n", datadir); - System.out.printf("----numOfFiles:%d\n", numOfFiles); - System.out.printf("----numOfClients:%d\n", numOfClients); - System.out.printf("----rowsPerRequest:%d\n", rowsPerRequest); - try { - // begin to insert data - System.out.printf("----begin to insert data\n"); - long startTime = System.currentTimeMillis(); - int a = numOfFiles/numOfClients; - int b = numOfFiles%numOfClients; - int last = 0; - - WriteThread[] writethreads = new WriteThread[numOfClients]; - int[] wargs = new int[2]; // data file start, end - wargs[0] = numOfRows; //rows to be read from each file - wargs[1] = rowsPerRequest; - int fstart =0; - int fend =0; - for (int i = 0; i= 1) { - this.host = args[0]; - } - - if (args.length >= 2) { - this.tablesCount = Integer.parseInt(args[1]); - } - - if (args.length >= 3) { - this.loopCount = Integer.parseInt(args[2]); - } - - if (args.length >= 4) { - this.batchSize = Integer.parseInt(args[3]); - } - } - - private void doMakeJdbcUrl() { - // jdbc:TSDB://127.0.0.1:0/dbname?user=root&password=taosdata - System.out.println("\nJDBC URL to use:"); - this.jdbcUrl = String.format("%s%s:%d/%s?user=%s&password=%s", JDBC_PROTOCAL, this.host, this.port, "", - this.user, this.password); - System.out.println(this.jdbcUrl); - } - - private void doCreateDbAndTable() { - System.out.println("\n---------------------------------------------------------------"); - System.out.println("Start creating databases and tables..."); - String sql = ""; - try (Connection conn = DriverManager.getConnection(jdbcUrl); - Statement stmt = conn.createStatement()){ - - sql = "create database if not exists " + this.databaseName; - stmt.executeUpdate(sql); - System.out.printf("Successfully executed: %s\n", sql); - - sql = "use " + this.databaseName; - stmt.executeUpdate(sql); - System.out.printf("Successfully executed: %s\n", sql); - - sql = "create table if not exists " + this.metricsName + " (ts timestamp, v1 int) tags(t1 int)"; - stmt.executeUpdate(sql); - System.out.printf("Successfully executed: %s\n", sql); - - for (int i = 0; i < this.tablesCount; i++) { - sql = String.format("create table if not exists %s%d using %s tags(%d)", this.tablePrefix, i, - this.metricsName, i); - stmt.executeUpdate(sql); - System.out.printf("Successfully executed: %s\n", sql); - } - } catch (SQLException e) { - e.printStackTrace(); - System.out.printf("Failed to execute SQL: %s\n", sql); - System.exit(4); - } catch (Exception e) { - e.printStackTrace(); - System.exit(4); - } - System.out.println("Successfully created databases and tables"); - } - - public void doExecuteInsert() { - System.out.println("\n---------------------------------------------------------------"); - System.out.println("Start inserting data..."); - int start = (int) System.currentTimeMillis(); - StringBuilder sql = new StringBuilder(""); - try (Connection conn = DriverManager.getConnection(jdbcUrl); - Statement stmt = conn.createStatement()){ - stmt.executeUpdate("use " + databaseName); - for (int loop = 0; loop < this.loopCount; loop++) { - for (int table = 0; table < this.tablesCount; ++table) { - sql = new StringBuilder("insert into "); - sql.append(this.tablePrefix).append(table).append(" values"); - for (int batch = 0; batch < this.batchSize; ++batch) { - int rows = loop * this.batchSize + batch; - sql.append("(").append(this.beginTimestamp + rows).append(",").append(rows).append(")"); - } - int affectRows = stmt.executeUpdate(sql.toString()); - this.rowsInserted += affectRows; - } - } - } catch (SQLException e) { - e.printStackTrace(); - System.out.printf("Failed to execute SQL: %s\n", sql.toString()); - System.exit(4); - } catch (Exception e) { - e.printStackTrace(); - System.exit(4); - } - int end = (int) System.currentTimeMillis(); - System.out.println("Inserting completed!"); - System.out.printf("Total %d rows inserted, %d rows failed, time spend %d seconds.\n", this.rowsInserted, - this.loopCount * this.batchSize - this.rowsInserted, (end - start) / 1000); - } - - public void doExecuteQuery() { - System.out.println("\n---------------------------------------------------------------"); - System.out.println("Starting querying data..."); - ResultSet resSet = null; - StringBuilder sql = new StringBuilder(""); - StringBuilder resRow = new StringBuilder(""); - try (Connection conn = DriverManager.getConnection(jdbcUrl); - Statement stmt = conn.createStatement()){ - stmt.executeUpdate("use " + databaseName); - for (int i = 0; i < this.tablesCount; ++i) { - sql = new StringBuilder("select * from ").append(this.tablePrefix).append(i); - - resSet = stmt.executeQuery(sql.toString()); - if (resSet == null) { - System.out.println(sql + " failed"); - System.exit(4); - } - - ResultSetMetaData metaData = resSet.getMetaData(); - System.out.println("Retrieve metadata of " + tablePrefix + i); - for (int column = 1; column <= metaData.getColumnCount(); ++column) { - System.out.printf("Column%d: name = %s, type = %d, type name = %s, display size = %d\n", column, metaData.getColumnName(column), metaData.getColumnType(column), - metaData.getColumnTypeName(column), metaData.getColumnDisplaySize(column)); - } - int rows = 0; - System.out.println("Retrieve data of " + tablePrefix + i); - while (resSet.next()) { - resRow = new StringBuilder(); - for (int col = 1; col <= metaData.getColumnCount(); col++) { - resRow.append(metaData.getColumnName(col)).append("=").append(resSet.getObject(col)) - .append(" "); - } - System.out.println(resRow.toString()); - rows++; - } - - try { - if (resSet != null) - resSet.close(); - } catch (SQLException e) { - e.printStackTrace(); - } - System.out.printf("Successfully executed query: %s;\nTotal rows returned: %d\n", sql.toString(), rows); - } - } catch (SQLException e) { - e.printStackTrace(); - System.out.printf("Failed to execute query: %s\n", sql.toString()); - System.exit(4); - } catch (Exception e) { - e.printStackTrace(); - System.exit(4); - } - System.out.println("Query completed!"); - } - -} diff --git a/tests/examples/JDBC/SpringJdbcTemplate/src/main/java/com/taosdata/jdbc/App 2.java b/tests/examples/JDBC/SpringJdbcTemplate/src/main/java/com/taosdata/jdbc/App 2.java deleted file mode 100644 index 3230af46a8016fee3d58c89ea3b2c1ddcf39cea5..0000000000000000000000000000000000000000 --- a/tests/examples/JDBC/SpringJdbcTemplate/src/main/java/com/taosdata/jdbc/App 2.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.taosdata.jdbc; - - -import org.springframework.context.ApplicationContext; -import org.springframework.context.support.ClassPathXmlApplicationContext; -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.util.CollectionUtils; - -import java.util.List; -import java.util.Map; - -public class App { - - public static void main( String[] args ) { - - ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); - - JdbcTemplate jdbcTemplate = (JdbcTemplate) ctx.getBean("jdbcTemplate"); - - // create database - jdbcTemplate.execute("create database if not exists db "); - - // create table - jdbcTemplate.execute("create table if not exists db.tb (ts timestamp, temperature int, humidity float)"); - - String insertSql = "insert into db.tb values(now, 23, 10.3) (now + 1s, 20, 9.3)"; - - // insert rows - int affectedRows = jdbcTemplate.update(insertSql); - - System.out.println("insert success " + affectedRows + " rows."); - - // query for list - List> resultList = jdbcTemplate.queryForList("select * from db.tb"); - - if(!CollectionUtils.isEmpty(resultList)){ - for (Map row : resultList){ - System.out.printf("%s, %d, %s\n", row.get("ts"), row.get("temperature"), row.get("humidity")); - } - } - - } - -} diff --git a/tests/examples/JDBC/SpringJdbcTemplate/src/main/resources/applicationContext 2.xml b/tests/examples/JDBC/SpringJdbcTemplate/src/main/resources/applicationContext 2.xml deleted file mode 100644 index 41128148ec3fb69f342c634cc8e9dd9fbd3c0037..0000000000000000000000000000000000000000 --- a/tests/examples/JDBC/SpringJdbcTemplate/src/main/resources/applicationContext 2.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/tests/examples/JDBC/SpringJdbcTemplate/src/test/java/com/taosdata/jdbc/AppTest 2.java b/tests/examples/JDBC/SpringJdbcTemplate/src/test/java/com/taosdata/jdbc/AppTest 2.java deleted file mode 100644 index d6a699598e73470663af4eb04e03a9a6b083bc4c..0000000000000000000000000000000000000000 --- a/tests/examples/JDBC/SpringJdbcTemplate/src/test/java/com/taosdata/jdbc/AppTest 2.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.taosdata.jdbc; - -import static org.junit.Assert.assertTrue; - -import org.junit.Test; - -/** - * Unit test for simple App. - */ -public class AppTest -{ - /** - * Rigorous Test :-) - */ - @Test - public void shouldAnswerWithTrue() - { - assertTrue( true ); - } -} diff --git a/tests/examples/JDBC/springbootdemo/src/main/java/com/taosdata/jdbc/springbootdemo/SpringbootdemoApplication 2.java b/tests/examples/JDBC/springbootdemo/src/main/java/com/taosdata/jdbc/springbootdemo/SpringbootdemoApplication 2.java deleted file mode 100644 index 69cd3e0ced2888575d890ffea36407455c4bea7a..0000000000000000000000000000000000000000 --- a/tests/examples/JDBC/springbootdemo/src/main/java/com/taosdata/jdbc/springbootdemo/SpringbootdemoApplication 2.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.taosdata.jdbc.springbootdemo; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@MapperScan(basePackages = {"com.taosdata.jdbc.springbootdemo.dao"}) -@SpringBootApplication -public class SpringbootdemoApplication { - - public static void main(String[] args) { - SpringApplication.run(SpringbootdemoApplication.class, args); - } - -} diff --git a/tests/examples/JDBC/springbootdemo/src/main/java/com/taosdata/jdbc/springbootdemo/controller/WeatherController 2.java b/tests/examples/JDBC/springbootdemo/src/main/java/com/taosdata/jdbc/springbootdemo/controller/WeatherController 2.java deleted file mode 100644 index 9123abd97b82fe1d4267c7341f3ea87bd5127caa..0000000000000000000000000000000000000000 --- a/tests/examples/JDBC/springbootdemo/src/main/java/com/taosdata/jdbc/springbootdemo/controller/WeatherController 2.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.taosdata.jdbc.springbootdemo.controller; - -import com.taosdata.jdbc.springbootdemo.domain.Weather; -import com.taosdata.jdbc.springbootdemo.service.WeatherService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -@RequestMapping("/weather") -@RestController -public class WeatherController { - - @Autowired - private WeatherService weatherService; - - /** - * create database and table - * @return - */ - @GetMapping("/init") - public boolean init(){ - return weatherService.init(); - } - - /** - * Pagination Query - * @param limit - * @param offset - * @return - */ - @GetMapping("/{limit}/{offset}") - public List queryWeather(@PathVariable Long limit, @PathVariable Long offset){ - return weatherService.query(limit, offset); - } - - /** - * upload single weather info - * @param temperature - * @param humidity - * @return - */ - @PostMapping("/{temperature}/{humidity}") - public int saveWeather(@PathVariable int temperature, @PathVariable float humidity){ - - return weatherService.save(temperature, humidity); - } - - /** - * upload multi weather info - * @param weatherList - * @return - */ - @PostMapping("/batch") - public int batchSaveWeather(@RequestBody List weatherList){ - - return weatherService.save(weatherList); - } - -} diff --git a/tests/examples/JDBC/springbootdemo/src/main/java/com/taosdata/jdbc/springbootdemo/dao/WeatherMapper 2.java b/tests/examples/JDBC/springbootdemo/src/main/java/com/taosdata/jdbc/springbootdemo/dao/WeatherMapper 2.java deleted file mode 100644 index 1e3db1f49106606c412851c0a74ad382adea68fb..0000000000000000000000000000000000000000 --- a/tests/examples/JDBC/springbootdemo/src/main/java/com/taosdata/jdbc/springbootdemo/dao/WeatherMapper 2.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.taosdata.jdbc.springbootdemo.dao; - -import com.taosdata.jdbc.springbootdemo.domain.Weather; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -public interface WeatherMapper { - - int insert(Weather weather); - - int batchInsert(List weatherList); - - List select(@Param("limit") Long limit, @Param("offset")Long offset); - - void createDB(); - - void createTable(); -} diff --git a/tests/examples/JDBC/springbootdemo/src/main/java/com/taosdata/jdbc/springbootdemo/domain/Weather 2.java b/tests/examples/JDBC/springbootdemo/src/main/java/com/taosdata/jdbc/springbootdemo/domain/Weather 2.java deleted file mode 100644 index 9547a8a89bf4aaff73696091e54f5bb460dcb796..0000000000000000000000000000000000000000 --- a/tests/examples/JDBC/springbootdemo/src/main/java/com/taosdata/jdbc/springbootdemo/domain/Weather 2.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.taosdata.jdbc.springbootdemo.domain; - -import java.sql.Timestamp; - -public class Weather { - - private Timestamp ts; - - private int temperature; - - private float humidity; - - public Timestamp getTs() { - return ts; - } - - public void setTs(Timestamp ts) { - this.ts = ts; - } - - public int getTemperature() { - return temperature; - } - - public void setTemperature(int temperature) { - this.temperature = temperature; - } - - public float getHumidity() { - return humidity; - } - - public void setHumidity(float humidity) { - this.humidity = humidity; - } -} diff --git a/tests/examples/JDBC/springbootdemo/src/main/java/com/taosdata/jdbc/springbootdemo/service/WeatherService 2.java b/tests/examples/JDBC/springbootdemo/src/main/java/com/taosdata/jdbc/springbootdemo/service/WeatherService 2.java deleted file mode 100644 index 396d70bf9246bfd7e293cccec5b00f2d4aac4963..0000000000000000000000000000000000000000 --- a/tests/examples/JDBC/springbootdemo/src/main/java/com/taosdata/jdbc/springbootdemo/service/WeatherService 2.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.taosdata.jdbc.springbootdemo.service; - -import com.taosdata.jdbc.springbootdemo.dao.WeatherMapper; -import com.taosdata.jdbc.springbootdemo.domain.Weather; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -@Service -public class WeatherService { - - @Autowired - private WeatherMapper weatherMapper; - - public boolean init() { - - weatherMapper.createDB(); - weatherMapper.createTable(); - - return true; - } - - public List query(Long limit, Long offset) { - return weatherMapper.select(limit, offset); - } - - public int save(int temperature, float humidity) { - Weather weather = new Weather(); - weather.setTemperature(temperature); - weather.setHumidity(humidity); - - return weatherMapper.insert(weather); - } - - public int save(List weatherList) { - return weatherMapper.batchInsert(weatherList); - } - -} diff --git a/tests/examples/JDBC/springbootdemo/src/main/resources/application 2.properties b/tests/examples/JDBC/springbootdemo/src/main/resources/application 2.properties deleted file mode 100644 index dc77e144f0ffbe131f7eda69b7bb66fd7870c05e..0000000000000000000000000000000000000000 --- a/tests/examples/JDBC/springbootdemo/src/main/resources/application 2.properties +++ /dev/null @@ -1,26 +0,0 @@ -# datasource config -spring.datasource.driver-class-name=com.taosdata.jdbc.TSDBDriver -spring.datasource.url=jdbc:TAOS://127.0.0.1:6030/log -spring.datasource.username=root -spring.datasource.password=taosdata - -spring.datasource.druid.initial-size=5 -spring.datasource.druid.min-idle=5 -spring.datasource.druid.max-active=5 -# max wait time for get connection, ms -spring.datasource.druid.max-wait=60000 - -spring.datasource.druid.validation-query=describe log.dn -spring.datasource.druid.validation-query-timeout=5000 -spring.datasource.druid.test-on-borrow=false -spring.datasource.druid.test-on-return=false -spring.datasource.druid.test-while-idle=true -spring.datasource.druid.time-between-eviction-runs-millis=60000 -spring.datasource.druid.min-evictable-idle-time-millis=600000 -spring.datasource.druid.max-evictable-idle-time-millis=900000 - - -#mybatis -mybatis.mapper-locations=classpath:mapper/*.xml - -logging.level.com.taosdata.jdbc.springbootdemo.dao=debug \ No newline at end of file diff --git a/tests/examples/JDBC/springbootdemo/src/main/resources/mapper/WeatherMapper 2.xml b/tests/examples/JDBC/springbootdemo/src/main/resources/mapper/WeatherMapper 2.xml deleted file mode 100644 index e894f9a6583d271d8ce526e9afe79528f0fd5490..0000000000000000000000000000000000000000 --- a/tests/examples/JDBC/springbootdemo/src/main/resources/mapper/WeatherMapper 2.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - create database if not exists test; - - - - create table if not exists test.weather(ts timestamp, temperature int, humidity float); - - - - ts, temperature, humidity - - - - - - insert into test.weather (ts, temperature, humidity) values (now, #{temperature,jdbcType=INTEGER}, #{humidity,jdbcType=FLOAT}) - - - - insert into test.weather (ts, temperature, humidity) values - - (now + #{index}a, #{weather.temperature}, #{weather.humidity}) - - - - - \ No newline at end of file diff --git a/tests/examples/JDBC/springbootdemo/src/test/java/com/taosdata/jdbc/springbootdemo/SpringbootdemoApplicationTests 2.java b/tests/examples/JDBC/springbootdemo/src/test/java/com/taosdata/jdbc/springbootdemo/SpringbootdemoApplicationTests 2.java deleted file mode 100644 index 23a7420dab24a15d9d24341839ba58caa9acb4b9..0000000000000000000000000000000000000000 --- a/tests/examples/JDBC/springbootdemo/src/test/java/com/taosdata/jdbc/springbootdemo/SpringbootdemoApplicationTests 2.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.taosdata.jdbc.springbootdemo; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class SpringbootdemoApplicationTests { - - @Test - void contextLoads() { - } - -}