@@ -573,7 +573,73 @@ public void testSwitchDatabase() throws Exception {
573573 }
574574 }
575575 }
576+
577+
578+ @ Test (groups = { "integration" })
579+ public void testNewLineSQLParsing () throws Exception {
580+ try (Connection conn = getJdbcConnection ()) {
581+ String sqlCreate = "CREATE TABLE balance ( `id` UUID, `currency` String, `amount` Decimal(64, 18), `create_time` DateTime64(6), `_version` UInt64, `_sign` UInt8 ) ENGINE = ReplacingMergeTree PRIMARY KEY id ORDER BY id;" ;
582+ try (Statement stmt = conn .createStatement ()) {
583+ int r = stmt .executeUpdate (sqlCreate );
584+ assertEquals (r , 0 );
585+ }
586+ try (Statement stmt = conn .createStatement ()) {
587+ String sqlInsert = "INSERT INTO balance VALUES (generateUUIDv4(), 'EUR', '42.42', now(), 144, 255);" ;
588+ int r = stmt .executeUpdate (sqlInsert );
589+ assertEquals (r , 1 );
590+ }
591+ try (Statement stmt = conn .createStatement ()) {
592+ String sqlSelect = new StringBuilder ("-- SELECT amount FROM balance FINAL;\n " )
593+ .append ("SELECT amount FROM balance FINAL;" ).toString ();
594+ ResultSet rs = stmt .executeQuery (sqlSelect );
595+ assertTrue (rs .next ());
596+ }
597+ try (Statement stmt = conn .createStatement ()) {
598+ String sqlSelect = new StringBuilder ("-- SELECT * FROM balance\n " )
599+ .append ("\n " )
600+ .append ("WITH balance_cte AS (\n " )
601+ .append ("SELECT\n " )
602+ .append ("id, currency, amount\n " )
603+ .append ("FROM balance\n " )
604+ .append ("LIMIT 10\n " )
605+ .append (")\n " )
606+ .append ("SELECT * FROM balance_cte;" ).toString ();
607+ ResultSet rs = stmt .executeQuery (sqlSelect );
608+ assertTrue (rs .next ());
609+ assertFalse (rs .next ());
610+ }
611+ try (Statement stmt = conn .createStatement ()) {
612+ String sqlSelect = new StringBuilder ("-- SELECT amount FROM balance FINAL;\n " )
613+ .append ("\n " )
614+ .append ("SELECT amount FROM balance FINAL;" ).toString ();
615+ ResultSet rs = stmt .executeQuery (sqlSelect );
616+ assertTrue (rs .next ());
617+ }
618+ try (Statement stmt = conn .createStatement ()) {
619+ String sqlSelect = new StringBuilder ("-- SELECT amount FROM balance FINAL;\n " )
620+ .append ("\n " )
621+ .append ("SELECT amount /* test */FROM balance FINAL;" ).toString ();
622+ ResultSet rs = stmt .executeQuery (sqlSelect );
623+ assertTrue (rs .next ());
624+ }
625+ try (Statement stmt = conn .createStatement ()) {
626+ String sqlSelect = new StringBuilder ("-- SELECT amount FROM balance FINAL;\n " )
627+ .append ("\n " )
628+ .append ("SELECT amount FROM balance FINAL; /* test */" ).toString ();
629+ ResultSet rs = stmt .executeQuery (sqlSelect );
630+ assertTrue (rs .next ());
631+ }
632+ try (Statement stmt = conn .createStatement ()) {
633+ String sqlSelect = new StringBuilder ("-- SELECT amount FROM balance FINAL;\n " )
634+ .append ("\n " )
635+ .append ("SELECT amount FROM balance FINAL; /* test */ -- SELECT 1" ).toString ();
636+ ResultSet rs = stmt .executeQuery (sqlSelect );
637+ assertTrue (rs .next ());
638+ }
639+ }
640+ }
576641
642+
577643 @ Test (groups = { "integration" })
578644 public void testNullableFixedStringType () throws Exception {
579645 try (Connection conn = getJdbcConnection ()) {
0 commit comments