@@ -935,10 +935,9 @@ public void useNoDatabase() throws SQLException {
935935
936936 @ Test
937937 public void windowsNamedPipe () throws SQLException {
938- Assumptions .assumeTrue (isMariaDBServer () || !minVersion (8 , 0 , 14 ));
939938 ResultSet rs = null ;
940939 try {
941- rs = sharedConn .createStatement ().executeQuery ("select @@named_pipe,@@socket" );
940+ rs = sharedConn .createStatement ().executeQuery ("select @@named_pipe,@@socket,@@named_pipe_full_access_group " );
942941 } catch (SQLException sqle ) {
943942 // on non Windows system, named_pipe doesn't exist.
944943 }
@@ -948,10 +947,24 @@ public void windowsNamedPipe() throws SQLException {
948947 Assumptions .assumeTrue (rs .getBoolean (1 ));
949948 String namedPipeName = rs .getString (2 );
950949 System .out .println ("namedPipeName:" + namedPipeName );
950+ if (!isMariaDBServer () && minVersion (8 , 0 , 14 )) {
951+ String namedPipeFullAccess = rs .getString (3 );
952+ System .out .println ("namedPipeFullAccess:" + namedPipeFullAccess );
953+ Assumptions .assumeTrue (namedPipeFullAccess != null && !namedPipeFullAccess .isEmpty ());
954+ }
951955
952956 // skip test if no namedPipeName was obtained because then we do not use a socket connection
953957 Assumptions .assumeTrue (namedPipeName != null );
954- try (Connection connection = createCon ("pipe=" + namedPipeName )) {
958+ String connUrl =
959+ password == null || password .isEmpty ()
960+ ? String .format (
961+ "jdbc:mariadb:///%s?user=%s%s" , database , user , defaultOther )
962+ : String .format (
963+ "jdbc:mariadb:///%s?user=%s&password=%s%s" ,
964+ database , user , password , defaultOther );
965+
966+
967+ try (Connection connection = DriverManager .getConnection (connUrl + "&pipe=" + namedPipeName )) {
955968 java .sql .Statement stmt = connection .createStatement ();
956969 try (ResultSet rs2 = stmt .executeQuery ("SELECT 1" )) {
957970 assertTrue (rs2 .next ());
0 commit comments