@@ -573,4 +573,68 @@ public void testSwitchDatabase() throws Exception {
573573 }
574574 }
575575 }
576+
577+ @ Test (groups = { "integration" })
578+ public void testNewLineSQLParsing () throws Exception {
579+ try (Connection conn = getJdbcConnection ()) {
580+ 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;" ;
581+ try (Statement stmt = conn .createStatement ()) {
582+ int r = stmt .executeUpdate (sqlCreate );
583+ assertEquals (r , 0 );
584+ }
585+ try (Statement stmt = conn .createStatement ()) {
586+ String sqlInsert = "INSERT INTO balance VALUES (generateUUIDv4(), 'EUR', '42.42', now(), 144, 255);" ;
587+ int r = stmt .executeUpdate (sqlInsert );
588+ assertEquals (r , 1 );
589+ }
590+ try (Statement stmt = conn .createStatement ()) {
591+ String sqlSelect = new StringBuilder ("-- SELECT amount FROM balance FINAL;\n " )
592+ .append ("SELECT amount FROM balance FINAL;" ).toString ();
593+ ResultSet rs = stmt .executeQuery (sqlSelect );
594+ assertTrue (rs .next ());
595+ }
596+ try (Statement stmt = conn .createStatement ()) {
597+ String sqlSelect = new StringBuilder ("-- SELECT * FROM balance\n " )
598+ .append ("\n " )
599+ .append ("WITH balance_cte AS (\n " )
600+ .append ("SELECT\n " )
601+ .append ("id, currency, amount\n " )
602+ .append ("FROM balance\n " )
603+ .append ("LIMIT 10\n " )
604+ .append (")\n " )
605+ .append ("SELECT * FROM balance_cte;" ).toString ();
606+ ResultSet rs = stmt .executeQuery (sqlSelect );
607+ assertTrue (rs .next ());
608+ assertFalse (rs .next ());
609+ }
610+ try (Statement stmt = conn .createStatement ()) {
611+ String sqlSelect = new StringBuilder ("-- SELECT amount FROM balance FINAL;\n " )
612+ .append ("\n " )
613+ .append ("SELECT amount FROM balance FINAL;" ).toString ();
614+ ResultSet rs = stmt .executeQuery (sqlSelect );
615+ assertTrue (rs .next ());
616+ }
617+ try (Statement stmt = conn .createStatement ()) {
618+ String sqlSelect = new StringBuilder ("-- SELECT amount FROM balance FINAL;\n " )
619+ .append ("\n " )
620+ .append ("SELECT amount /* test */FROM balance FINAL;" ).toString ();
621+ ResultSet rs = stmt .executeQuery (sqlSelect );
622+ assertTrue (rs .next ());
623+ }
624+ try (Statement stmt = conn .createStatement ()) {
625+ String sqlSelect = new StringBuilder ("-- SELECT amount FROM balance FINAL;\n " )
626+ .append ("\n " )
627+ .append ("SELECT amount FROM balance FINAL; /* test */" ).toString ();
628+ ResultSet rs = stmt .executeQuery (sqlSelect );
629+ assertTrue (rs .next ());
630+ }
631+ try (Statement stmt = conn .createStatement ()) {
632+ String sqlSelect = new StringBuilder ("-- SELECT amount FROM balance FINAL;\n " )
633+ .append ("\n " )
634+ .append ("SELECT amount FROM balance FINAL; /* test */ -- SELECT 1" ).toString ();
635+ ResultSet rs = stmt .executeQuery (sqlSelect );
636+ assertTrue (rs .next ());
637+ }
638+ }
639+ }
576640}
0 commit comments