This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

View | Details | Raw Unified | Return to bug 225079
Collapse All | Expand All

(-)db/src/org/netbeans/api/db/sql/support/SQLIdentifiers.java (-1 / +10 lines)
Lines 124-139 Link Here
124
        public String unquote(String identifier) {
124
        public String unquote(String identifier) {
125
            Parameters.notNull("identifier", identifier);
125
            Parameters.notNull("identifier", identifier);
126
126
127
            boolean startQuoted = false;
128
            
127
            String result = identifier;
129
            String result = identifier;
128
130
129
            if (result.startsWith(quoteString)) {
131
            if (result.startsWith(quoteString)) {
130
                result = result.substring(quoteString.length());
132
                result = result.substring(quoteString.length());
133
                startQuoted = true;
131
            }
134
            }
132
135
133
            if (result.endsWith(quoteString)) {
136
            if (result.endsWith(quoteString)) {
134
                result = result.substring(0, result.lastIndexOf(quoteString));
137
                result = result.substring(0, result.lastIndexOf(quoteString));
135
            }
138
            }
136
139
140
            if(startQuoted) {
141
                result = result.replace(quoteString + quoteString, quoteString);
142
            }
143
            
137
            return result;
144
            return result;
138
        }
145
        }
139
146
Lines 147-153 Link Here
147
        }
154
        }
148
155
149
        String doQuote(String identifier) {
156
        String doQuote(String identifier) {
150
            return quoteString + identifier + quoteString;
157
            return quoteString + 
158
                    identifier.replace(quoteString, quoteString+quoteString) + 
159
                    quoteString;
151
        }
160
        }
152
    }
161
    }
153
162
(-)db/test/unit/src/org/netbeans/api/db/sql/support/QuoterTest.java (+19 lines)
Lines 169-172 Link Here
169
        assertEquals("id", quoter.unquote("id" + quoteString));
169
        assertEquals("id", quoter.unquote("id" + quoteString));
170
        assertEquals("id", quoter.unquote(quoteString + "id" + quoteString));
170
        assertEquals("id", quoter.unquote(quoteString + "id" + quoteString));
171
    }
171
    }
172
    
173
    // Check SQL99-Quoting
174
    public void testQuoteIdentifierContainingQuotingChar() {
175
        String quoteString = quoter.getQuoteString();
176
177
        String unquoted = "test" + quoteString + "xx";
178
        String quoted = quoteString + "test" + quoteString + quoteString + "xx" 
179
                + quoteString;
180
        
181
        assertEquals(quoted, quoter.quoteAlways(unquoted));
182
        assertEquals(unquoted, quoter.unquote(quoted));
183
        
184
        String unquoted2 = "test" + quoteString + "xx" + quoteString + quoteString;
185
        String quoted2 = quoteString + "test" + quoteString + quoteString + "xx" 
186
                + quoteString + quoteString + quoteString + quoteString + quoteString;
187
        
188
        assertEquals(quoted2, quoter.quoteAlways(unquoted2));
189
        assertEquals(unquoted2, quoter.unquote(quoted2));
172
}
190
}
191
}

Return to bug 225079