From 80bbd3281d9f598779c363bc792b2d2c9a8b48c3 Mon Sep 17 00:00:00 2001 From: Barry Lind <barry@xythos.com> Date: Mon, 21 Jul 2003 20:48:31 +0000 Subject: [PATCH] Applied patch from dmitry@openratings.com to fix parsing of array values Modified Files: jdbc/org/postgresql/Driver.java.in jdbc/org/postgresql/jdbc2/Array.java --- src/interfaces/jdbc/org/postgresql/Driver.java.in | 4 ++-- src/interfaces/jdbc/org/postgresql/jdbc2/Array.java | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/interfaces/jdbc/org/postgresql/Driver.java.in b/src/interfaces/jdbc/org/postgresql/Driver.java.in index 96754e5b846..de064bb8cfb 100644 --- a/src/interfaces/jdbc/org/postgresql/Driver.java.in +++ b/src/interfaces/jdbc/org/postgresql/Driver.java.in @@ -6,7 +6,7 @@ * Copyright (c) 2003, PostgreSQL Global Development Group * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/Attic/Driver.java.in,v 1.31 2003/06/30 16:38:30 barry Exp $ + * $Header: /cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/Attic/Driver.java.in,v 1.32 2003/07/21 20:48:31 barry Exp $ * *------------------------------------------------------------------------- */ @@ -503,6 +503,6 @@ public class Driver implements java.sql.Driver //The build number should be incremented for every new build - private static int m_buildNumber = 205; + private static int m_buildNumber = 206; } diff --git a/src/interfaces/jdbc/org/postgresql/jdbc2/Array.java b/src/interfaces/jdbc/org/postgresql/jdbc2/Array.java index 973da1d2b06..418a0942630 100644 --- a/src/interfaces/jdbc/org/postgresql/jdbc2/Array.java +++ b/src/interfaces/jdbc/org/postgresql/jdbc2/Array.java @@ -98,19 +98,20 @@ public class Array implements java.sql.Array if ( chars[i] == '\\' ) //escape character that we need to skip i++; - if ( chars[i] == '{' ) + else if (!insideString && chars[i] == '{' ) { if ( foundOpen ) // Only supports 1-D arrays for now throw org.postgresql.Driver.notImplemented(); foundOpen = true; continue; } - if ( chars[i] == '"' ) + else if (chars[i] == '"') { insideString = !insideString; continue; } - if ( (!insideString && chars[i] == ',') || chars[i] == '}' || i == chars.length - 1) + else if (!insideString && (chars[i] == ',' || chars[i] == '}') || + i == chars.length - 1) { if ( chars[i] != '"' && chars[i] != '}' && chars[i] != ',' ) sbuf.append(chars[i]); -- GitLab