phoenix-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ns G <nsgns...@gmail.com>
Subject Re: REG: Issue when creating a Phoenix table through JDBC
Date Thu, 15 Oct 2015 06:34:36 GMT
Hi James,

I didn't try that. Now after that change it is working. Very trivial error
from my end.

Thanks,
Durga Prasad
On 15-Oct-2015 11:51 am, "James Taylor" <jamestaylor@apache.org> wrote:

> Have you tried double single quotes for the escaping?
>
> On Wed, Oct 14, 2015 at 11:19 PM, Ns G <nsgnsg84@gmail.com> wrote:
>
>> Hi James,
>>
>> It is actually not a single sql statement. For simplicity I have just
>> mentioned one. I guess the issue is orginating  because of the quotes we
>> need to surrond the word "SNAPPY". I have tried escaping them but no
>> success.
>>
>> Thanks
>> On 15-Oct-2015 11:46 am, "James Taylor" <jamestaylor@apache.org> wrote:
>>
>>> Kind of a guess, but if you're parsing a single SQL statement, it
>>> shouldn't have a semicolon at the end. If that's part of the string, can
>>> you try removing it?
>>>
>>> On Wed, Oct 14, 2015 at 11:11 PM, Ns G <nsgnsg84@gmail.com> wrote:
>>>
>>>> Hi All,
>>>>
>>>> I have a requirement where in i need to create tables to JDBC (actually
>>>> Spring).
>>>>
>>>> I have written the below code
>>>>
>>>> protected Boolean executeScript(final Reader reader, String action,
>>>> Long serviceId) throws IOException, SQLException {
>>>>         try {
>>>>             long start = System.currentTimeMillis();
>>>>             final BufferedReader bufferedReader = new
>>>> BufferedReader(reader);
>>>>             Class.forName("org.apache.phoenix.jdbc.PhoenixDriver");
>>>>             Connection connection = null;
>>>>             String url = "jdbc:phoenix:<regionserver>";
>>>>             connection = DriverManager.getConnection(url);
>>>>             for (String sql = bufferedReader.readLine(); sql != null;
>>>> sql = bufferedReader.readLine()) {
>>>>                 String trimmedSql = sql.trim();
>>>>                 final boolean ignore = (trimmedSql.length() == 0 ||
>>>> trimmedSql.startsWith("--") || trimmedSql.startsWith("//") ||
>>>> trimmedSql.startsWith("/*"));
>>>>                 if (!ignore) {
>>>>                     if (trimmedSql.endsWith(";")) {
>>>>                         trimmedSql = trimmedSql.substring(0,
>>>> trimmedSql.length() - 1);
>>>>                     }
>>>>                     Statement stmt = null;
>>>>                     /* tables */
>>>>                     stmt = connection.createStatement();
>>>>                     if (action.equalsIgnoreCase("CREATE") &&
>>>> (trimmedSql.toUpperCase().startsWith("CREATE") ||
>>>> trimmedSql.toUpperCase().startsWith("UPSERT"))){
>>>>                         stmt.execute( MessageFormat.format(trimmedSql,
>>>> getSchemNameFromServiceId(serviceId)));
>>>>                     } else if (action.equalsIgnoreCase("DROP") &&
>>>> trimmedSql.toUpperCase().startsWith("DROP")){
>>>>                         stmt.execute( MessageFormat.format(trimmedSql,
>>>> getSchemNameFromServiceId(serviceId)));
>>>>                     }
>>>>                     stmt.close();
>>>> /*  SPRING CODE */
>>>>
>>>>                     /*                    if
>>>> (action.equalsIgnoreCase("CREATE") &&
>>>> (trimmedSql.toUpperCase().startsWith("CREATE") ||
>>>> trimmedSql.toUpperCase().startsWith("UPSERT"))){
>>>>                         jdbcTemplate.execute(
>>>> MessageFormat.format(trimmedSql, getSchemNameFromServiceId(serviceId)));
>>>>                     } else if (action.equalsIgnoreCase("DROP") &&
>>>> trimmedSql.toUpperCase().startsWith("DROP")){
>>>>                         jdbcTemplate.execute(
>>>> MessageFormat.format(trimmedSql, getSchemNameFromServiceId(serviceId)));*/
>>>>                 }
>>>>             }
>>>>             return true;
>>>>         } catch (Exception e) {
>>>>             return false;
>>>>         }
>>>>
>>>>     }
>>>>
>>>> My .sql file is under src/main/resources/queries folder.
>>>>
>>>> My sql query is
>>>>
>>>> CREATE TABLE TEST (ID UNSIGNED_LONG NOT NULL PRIMARY KEY,  ID1
>>>> VARCHAR) SALT_BUCKETS=32, COMPRESSION='SNAPPY';
>>>>
>>>> I am getting below error
>>>>
>>>> org.apache.phoenix.exception.PhoenixParserException: ERROR 604 (42P00):
>>>> Syntax error. Mismatched input. Expecting "STRING_LITERAL", got "<EOF>"
at
>>>> line 1, column 113.
>>>>
>>>> I saw that a similiar case was raised previously for 4.2 version, where
>>>> in the user didnt give a comma, But here the query works when executing
>>>> through sqlline.
>>>>
>>>> Can anyone help me please?
>>>>
>>>> Thanks,
>>>> Durga Prasad
>>>>
>>>
>>>
>

Mime
View raw message