@@ -456,6 +456,45 @@ public void partialInsertSQLTest() throws IoTDBConnectionException, StatementExe
456456 }
457457 }
458458
459+ @ Test
460+ public void disableAutoCreateSchemaForTableSessionTest ()
461+ throws IoTDBConnectionException , StatementExecutionException {
462+ final DataNodeWrapper dataNode = EnvFactory .getEnv ().getDataNodeWrapper (0 );
463+ try (ITableSession session =
464+ new TableSessionBuilder ()
465+ .nodeUrls (Collections .singletonList (dataNode .getIpAndPortString ()))
466+ .database ("db1" )
467+ .enableAutoCreateSchema (false )
468+ .build ()) {
469+ final List <IMeasurementSchema > schemaList = new ArrayList <>();
470+ schemaList .add (new MeasurementSchema ("tag1" , TSDataType .STRING ));
471+ schemaList .add (new MeasurementSchema ("s1" , TSDataType .INT64 ));
472+ schemaList .add (new MeasurementSchema ("s2" , TSDataType .INT64 ));
473+ final Tablet tablet =
474+ new Tablet (
475+ "session_auto_create" ,
476+ IMeasurementSchema .getMeasurementNameList (schemaList ),
477+ IMeasurementSchema .getDataTypeList (schemaList ),
478+ Arrays .asList (ColumnCategory .TAG , ColumnCategory .FIELD , ColumnCategory .FIELD ),
479+ 1 );
480+ tablet .addTimestamp (0 , 1 );
481+ tablet .addValue ("tag1" , 0 , "d1" );
482+ tablet .addValue ("s1" , 0 , 1L );
483+ tablet .addValue ("s2" , 0 , 2L );
484+
485+ assertThrows (StatementExecutionException .class , () -> session .insert (tablet ));
486+
487+ session .executeNonQueryStatement (
488+ "CREATE TABLE session_auto_create (tag1 string tag, s1 int64 field)" );
489+ assertThrows (StatementExecutionException .class , () -> session .insert (tablet ));
490+
491+ try (SessionDataSet dataSet =
492+ session .executeQueryStatement ("SELECT * FROM session_auto_create" )) {
493+ assertEquals (Arrays .asList ("time" , "tag1" , "s1" ), dataSet .getColumnNames ());
494+ }
495+ }
496+ }
497+
459498 @ Test
460499 public void partialInsertRelationalTabletTest ()
461500 throws IoTDBConnectionException , StatementExecutionException {
0 commit comments