From f7746ea2951e8cfa7419b26f69d0e3f9d117c80b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Kucha=C5=99?= <honza.kuchar@grifart.cz>
Date: Mon, 23 May 2016 01:19:02 +0200
Subject: [PATCH] PostgreCursorFactory: now knows how to create semantic
 cursors

---
 src/Driver/PostgresCursorFactory.php | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/src/Driver/PostgresCursorFactory.php b/src/Driver/PostgresCursorFactory.php
index e2f2468..9d5db52 100644
--- a/src/Driver/PostgresCursorFactory.php
+++ b/src/Driver/PostgresCursorFactory.php
@@ -8,6 +8,10 @@ namespace Grifart\Mappi\Cursor\Driver;
 use Dibi\Connection;
 use Grifart\Mappi\Cursor\Cursor;
 use Grifart\Mappi\Cursor\ICursor;
+use Grifart\Mappi\Cursor\Position;
+use Grifart\Mappi\Cursor\SemanticCursor;
+use Grifart\Mappi\Cursor\SemanticTrackedCursor;
+use Grifart\Mappi\Cursor\TrackedCursor;
 
 final class PostgresCursorFactory
 {
@@ -48,6 +52,20 @@ final class PostgresCursorFactory
 		);
 	}
 
+	public function createSemantic(string $sql, bool $scroll) : SemanticTrackedCursor
+	{
+		$cursor = $this->create($sql, $scroll);
+		return new SemanticCursor($cursor);
+	}
+
+	public function createTrackedSemantic(string $sql, bool $scroll) : SemanticTrackedCursor
+	{
+		$cursor = $this->create($sql, $scroll);
+		return new SemanticTrackedCursor(
+			new TrackedCursor($cursor, Position::fromLeft(0))
+		);
+	}
+
 	/**
 	 * Generate cursor unique name in current transaction
 	 * @return string
-- 
GitLab