new DatabaseQuery(tableFilter, sql, args); final Observable<Query> queryObservable = triggers .filter(tableFilter) // Only trigger on tables we care about. .map(query) // DatabaseQuery maps to itself to save an allocation. .onBackpressureLatest() // Guard against uncontrollable frequency of upstream emissions. .startWith(query) .observeOn(scheduler) .compose(queryTransformer) // Apply the user's query transformer. .onBackpressureLatest() // Guard against uncontrollable frequency of scheduler executions. .doOnSubscribe(ensureNotInTransaction); return new QueryObservable(new Observable.OnSubscribe<Query>() { @Override public void call(Subscriber<? super Query> subscriber) { queryObservable.unsafeSubscribe(subscriber); } });
new DatabaseQuery(tableFilter, sql, args); final Observable<Query> queryObservable = triggers .filter(tableFilter) // Only trigger on tables we care about. .map(query) // DatabaseQuery maps to itself to save an allocation. .onBackpressureLatest() // Guard against uncontrollable frequency of upstream emissions. .startWith(query) .observeOn(scheduler) .compose(queryTransformer) // Apply the user's query transformer. .onBackpressureLatest() // Guard against uncontrollable frequency of scheduler executions. .doOnSubscribe(ensureNotInTransaction); return new QueryObservable(new Observable.OnSubscribe<Query>() { @Override public void call(Subscriber<? super Query> subscriber) { queryObservable.unsafeSubscribe(subscriber); } });
new DatabaseQuery(tableFilter, sql, args); final Observable<Query> queryObservable = triggers .filter(tableFilter) // Only trigger on tables we care about. .map(query) // DatabaseQuery maps to itself to save an allocation. .onBackpressureLatest() // Guard against uncontrollable frequency of upstream emissions. .startWith(query) .observeOn(scheduler) .compose(queryTransformer) // Apply the user's query transformer. .onBackpressureLatest() // Guard against uncontrollable frequency of scheduler executions. .doOnSubscribe(ensureNotInTransaction); return new QueryObservable(new Observable.OnSubscribe<Query>() { @Override public void call(Subscriber<? super Query> subscriber) { queryObservable.unsafeSubscribe(subscriber); } });
new DatabaseQuery(tableFilter, sql, args); final Observable<Query> queryObservable = triggers .filter(tableFilter) // Only trigger on tables we care about. .map(query) // DatabaseQuery maps to itself to save an allocation. .onBackpressureLatest() // Guard against uncontrollable frequency of upstream emissions. .startWith(query) .observeOn(scheduler) .compose(queryTransformer) // Apply the user's query transformer. .onBackpressureLatest() // Guard against uncontrollable frequency of scheduler executions. .doOnSubscribe(ensureNotInTransaction); return new QueryObservable(new Observable.OnSubscribe<Query>() { @Override public void call(Subscriber<? super Query> subscriber) { queryObservable.unsafeSubscribe(subscriber); } });
new DatabaseQuery(tableFilter, sql, args); final Observable<Query> queryObservable = triggers .filter(tableFilter) // Only trigger on tables we care about. .map(query) // DatabaseQuery maps to itself to save an allocation. .onBackpressureLatest() // Guard against uncontrollable frequency of upstream emissions. .startWith(query) .observeOn(scheduler) .compose(queryTransformer) // Apply the user's query transformer. .onBackpressureLatest() // Guard against uncontrollable frequency of scheduler executions. .doOnSubscribe(ensureNotInTransaction); return new QueryObservable(new Observable.OnSubscribe<Query>() { @Override public void call(Subscriber<? super Query> subscriber) { queryObservable.unsafeSubscribe(subscriber); } });
new DatabaseQuery(tableFilter, sql, args); final Observable<Query> queryObservable = triggers .filter(tableFilter) // Only trigger on tables we care about. .map(query) // DatabaseQuery maps to itself to save an allocation. .onBackpressureLatest() // Guard against uncontrollable frequency of upstream emissions. .startWith(query) .observeOn(scheduler) .compose(queryTransformer) // Apply the user's query transformer. .onBackpressureLatest() // Guard against uncontrollable frequency of scheduler executions. .doOnSubscribe(ensureNotInTransaction); return new QueryObservable(new Observable.OnSubscribe<Query>() { @Override public void call(Subscriber<? super Query> subscriber) { queryObservable.unsafeSubscribe(subscriber); } });
new DatabaseQuery(tableFilter, sql, args); final Observable<Query> queryObservable = triggers .filter(tableFilter) // Only trigger on tables we care about. .map(query) // DatabaseQuery maps to itself to save an allocation. .onBackpressureLatest() // Guard against uncontrollable frequency of upstream emissions. .startWith(query) .observeOn(scheduler) .compose(queryTransformer) // Apply the user's query transformer. .onBackpressureLatest() // Guard against uncontrollable frequency of scheduler executions. .doOnSubscribe(ensureNotInTransaction); return new QueryObservable(new Observable.OnSubscribe<Query>() { @Override public void call(Subscriber<? super Query> subscriber) { queryObservable.unsafeSubscribe(subscriber); } });
... public static final RowMapper<Image> ALL_IMAGES_MAPPER = FACTORY.getAllImagesMapper(); public static final RowMapper<Image> IMG_BY_ID_MAPPER = FACTORY.getImagesByIdMapper(); }
getImagesById: SELECT * FROM images WHERE ad_id IN ? or WHERE ad_id IN :param_name ORDER BY _id ASC; SqlDelightStatement query = Image.FACTORY.getImagesById(new long[]{10, 20}); Cursor cursor = db.rawQuery(query.statement, query.args);
java.util.Calendar; CREATE TABLE ads ( _id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, ad_id INTEGER NOT NULL UNIQUE ON CONFLICT IGNORE, title TEXT, description TEXT, price TEXT, status TEXT AS Status NOT NULL, create_time INTEGER AS Calendar NOT NULL, is_favorite INTEGER AS Boolean NOT NULL DEFAULT 0 );
class Ad implements AdModel { public enum Status { ACTIVE, DEACTIVATED } static final DateAdapter DATE_ADAPTER = new DateAdapter(); static final EnumColumnAdapter<Status> STATUS_ADAPTER = EnumColumnAdapter.create(Status.class); public static final Factory<Ad> FACTORY = new Factory<>(new Creator<Ad>() { @Override public Ad create(long _id, long ad_id, @Nullable String title, @NonNull Status status, @NonNull Calendar create_time, boolean is_favorite) { return new AutoValue_Ad(_id, ad_id, title, status, create_time, is_favorite); } }, STATUS_ADAPTER, DATE_ADAPTER); }
class Ad implements AdModel { public enum Status { ACTIVE, DEACTIVATED } static final DateAdapter DATE_ADAPTER = new DateAdapter(); static final EnumColumnAdapter<Status> STATUS_ADAPTER = EnumColumnAdapter.create(Status.class); public static final Factory<Ad> FACTORY = new Factory<>(new Creator<Ad>() { @Override public Ad create(long _id, long ad_id, @Nullable String title, @NonNull Status status, @NonNull Calendar create_time, boolean is_favorite) { return new AutoValue_Ad(_id, ad_id, title, status, create_time, is_favorite); } }, STATUS_ADAPTER, DATE_ADAPTER); }
TABLE ads ( status TEXT AS Status NOT NULL ); getAdsByStatus: SELECT * FROM ads WHERE status = ?; SqlDelightStatement query = Ad.FACTORY.getAdsByStatus(Ad.Status.ACTIVE); Cursor cursor = db.rawQuery(query.statement, query.args);
TABLE ads ( status TEXT AS Status NOT NULL ); getAdsByStatus: SELECT * FROM ads WHERE status = ?; SqlDelightStatement query = Ad.FACTORY.getAdsByStatus(Ad.Status.ACTIVE); Cursor cursor = db.rawQuery(query.statement, query.args);