1 28 29 package com.caucho.db.sql; 30 31 import com.caucho.db.Database; 32 import com.caucho.db.store.Transaction; 33 import com.caucho.db.table.TableIterator; 34 import com.caucho.log.Log; 35 import com.caucho.sql.SQLExceptionWrapper; 36 37 import java.io.IOException ; 38 import java.sql.SQLException ; 39 import java.util.logging.Logger ; 40 41 public class ExistsQuery extends SelectQuery { 42 private static final Logger log = Log.open(ExistsQuery.class); 43 44 private static Expr []_nullExprs = new Expr[0]; 45 46 protected ExistsQuery(Database db, String sql) 47 throws SQLException 48 { 49 super(db, sql); 50 } 51 52 55 public boolean exists(QueryContext context, Transaction xa) 56 throws SQLException 57 { 58 SelectResult result = SelectResult.create(_nullExprs, null); 59 60 try { 61 TableIterator []rows = result.initRows(getFromItems()); 62 context.init(xa, rows, isReadOnly()); 63 64 return execute(result, rows, context, xa); 65 } catch (IOException e) { 66 throw new SQLExceptionWrapper(e); 67 } finally { 68 context.unlock(); 69 70 result.close(); 71 } 72 } 73 74 77 private boolean execute(SelectResult result, 78 TableIterator []rows, 79 QueryContext context, 80 Transaction transaction) 81 throws SQLException , IOException 82 { 83 FromItem []fromItems = getFromItems(); 84 int rowLength = fromItems.length; 85 86 return start(rows, rowLength, context, transaction); 87 } 88 89 92 public void execute(QueryContext queryCtx, Transaction xa) 93 throws SQLException 94 { 95 throw new UnsupportedOperationException (); 96 } 97 } 98 | Popular Tags |