@Override
    public NativeQuerySpec<Record> select(String sql, Object... args) {
        return new NativeQuerySpecImpl<>(this, sql, args, DefaultRecord::new, false);
    }
@Test
    public void testCustomFirstPageIndex() {
        DefaultQueryHelper helper = new DefaultQueryHelper(database);
        QueryParamEntity e = new QueryParamEntity();
        e.and("id", "eq", "testCustomFirstPageIndex");
        e.setFirstPageIndex(1);
        e.setPageIndex(2);

        {
            helper.select(TestInfo.class)
                  .from(TestEntity.class)
                  .where(e)
                  .fetchPaged()
                  .doOnNext(info -> System.out.println(JSON.toJSONString(info, SerializerFeature.PrettyFormat)))
                  .as(StepVerifier::create)
                  .expectNextMatches(p -> p.getPageIndex() == 1)
                  .verifyComplete();
        }

        {
            helper.select("select * from s_test")
                  .where(e)
                  .fetchPaged()
                  .doOnNext(info -> System.out.println(JSON.toJSONString(info, SerializerFeature.PrettyFormat)))
                  .as(StepVerifier::create)
                  .expectNextMatches(p -> p.getPageIndex() == 1)
                  .verifyComplete();
        }
    }