示例#1
0
 /** Parses and validates a SQL query. For use within Optiq only. */
 public static OptiqPrepare.ParseResult parse(
     final OptiqConnection connection,
     final OptiqSchema schema,
     final List<String> schemaPath,
     final String sql) {
   final OptiqPrepare prepare = OptiqPrepare.DEFAULT_FACTORY.apply();
   final OptiqPrepare.Context context = makeContext(connection, schema, schemaPath);
   OptiqPrepare.Dummy.push(context);
   try {
     return prepare.parse(context, sql);
   } finally {
     OptiqPrepare.Dummy.pop(context);
   }
 }
示例#2
0
 private static OptiqPrepare.Context makeContext(
     final OptiqConnection connection, final OptiqSchema schema, final List<String> schemaPath) {
   if (connection == null) {
     final OptiqPrepare.Context context0 = OptiqPrepare.Dummy.peek();
     return makeContext(
         context0.config(),
         context0.getTypeFactory(),
         context0.getDataContext(),
         schema,
         schemaPath);
   } else {
     return makeContext(
         connection.config(),
         connection.getTypeFactory(),
         createDataContext(connection),
         schema,
         schemaPath);
   }
 }