@@ -6,20 +6,18 @@ import Control.Monad.Gen as Gen
66import Control.Monad.Gen.Common as GenC
77import Control.Monad.Rec.Class (class MonadRec )
88import Data.Argonaut as J
9- import Data.Either (Either (..), either )
9+ import Data.Either (Either (..))
1010import Data.Foldable as F
11- import Data.Int as Int
1211import Data.Maybe (Maybe )
1312import Data.Monoid (mempty )
1413import Data.NonEmpty ((:|))
15- import Data.Path.Pathy as Pt
1614import Data.String.Gen as GenS
1715import Data.Traversable as T
1816import Matryoshka (Algebra , CoalgebraM )
17+ import SqlSquared.Path as Pt
1918import SqlSquared.Signature.Ident as ID
2019import SqlSquared.Signature.JoinType as JT
2120import SqlSquared.Utils ((∘))
22-
2321type JoinRelR a =
2422 { left ∷ Relation a
2523 , right ∷ Relation a
@@ -38,7 +36,7 @@ type VariRelR =
3836 }
3937
4038type TableRelR =
41- { path ∷ Either ( Pt.AbsFile Pt.Unsandboxed ) ( Pt.RelFile Pt.Unsandboxed )
39+ { path ∷ Pt.AnyFilePath
4240 , alias ∷ Maybe String
4341 }
4442
@@ -91,7 +89,7 @@ printRelation = case _ of
9189 " :" <> ID .printIdent vari <> F .foldMap (\a → " AS " <> ID .printIdent a) alias
9290 TableRelation { path, alias } →
9391 " `"
94- <> either Pt .unsafePrintPath Pt .unsafePrintPath path
92+ <> Pt .printAnyFilePath path
9593 <> " `"
9694 <> F .foldMap (\x → " AS " <> ID .printIdent x) alias
9795 JoinRelation { left, right, joinType, clause } →
@@ -117,7 +115,7 @@ encodeJsonRelation = case _ of
117115 J .~> J .jsonEmptyObject
118116 TableRelation { path, alias } →
119117 " tag" J .:= " table relation"
120- J .~> " path" J .:= either Pt .unsafePrintPath Pt .unsafePrintPath path
118+ J .~> " path" J .:= Pt .printAnyFilePath path
121119 J .~> " alias" J .:= alias
122120 J .~> J .jsonEmptyObject
123121 JoinRelation { left, right, joinType, clause } →
@@ -150,13 +148,7 @@ decodeJsonRelation = J.decodeJson >=> \obj → do
150148
151149 decodeTableRelation obj = do
152150 pathStr ← obj J ..? " path"
153- path ←
154- Pt .parsePath
155- (const $ Left " incorrect path" )
156- (const $ Left " incorrect path" )
157- (Right ∘ Right )
158- (Right ∘ Left )
159- pathStr
151+ path ← Pt .parseAnyFilePath Left pathStr
160152 alias ← obj J ..? " alias"
161153 pure $ TableRelation { path, alias }
162154
@@ -186,13 +178,7 @@ genRelation n =
186178 alias ← GenC .genMaybe GenS .genUnicodeString
187179 pure $ VariRelation { vari, alias }
188180 genTable = do
189- let
190- pathPart =
191- map (Int .toStringAs Int .hexadecimal) (Gen .chooseInt 0 100000 )
192- dirs ← map Pt .dir <$> Gen .resize (const n) (Gen .unfoldable pathPart ∷ m (Array String ))
193- fileName ← map Pt .file pathPart
194- let
195- path = Left $ Pt .rootDir Pt .</> F .foldl (\a b → b Pt .</> a) fileName dirs
181+ path ← Pt .genAnyFilePath
196182 alias ← GenC .genMaybe GenS .genUnicodeString
197183 pure $ TableRelation { path, alias }
198184 genExpr = do
0 commit comments