@@ -32,7 +32,7 @@ compileStatement DropColumn { tableName, columnName } = "ALTER TABLE " <> compil
32
32
compileStatement RenameColumn { tableName, from, to } = " ALTER TABLE " <> compileIdentifier tableName <> " RENAME COLUMN " <> compileIdentifier from <> " TO " <> compileIdentifier to <> " ;"
33
33
compileStatement DropTable { tableName } = " DROP TABLE " <> compileIdentifier tableName <> " ;"
34
34
compileStatement Comment { content } = " --" <> content
35
- compileStatement CreateIndex { indexName, unique, tableName, columns, whereClause, indexType } = " CREATE" <> (if unique then " UNIQUE " else " " ) <> " INDEX " <> indexName <> " ON " <> tableName <> (maybe " " (\ indexType -> " USING " <> compileIndexType indexType) indexType) <> " (" <> (intercalate " , " (map compileIndexColumn columns)) <> " )" <> (case whereClause of Just expression -> " WHERE " <> compileExpression expression; Nothing -> " " ) <> " ;"
35
+ compileStatement CreateIndex { indexName, unique, tableName, columns, whereClause, indexType } = " CREATE" <> (if unique then " UNIQUE " else " " ) <> " INDEX " <> compileIdentifier indexName <> " ON " <> compileIdentifier tableName <> (maybe " " (\ indexType -> " USING " <> compileIndexType indexType) indexType) <> " (" <> (intercalate " , " (map compileIndexColumn columns)) <> " )" <> (case whereClause of Just expression -> " WHERE " <> compileExpression expression; Nothing -> " " ) <> " ;"
36
36
compileStatement CreateFunction { functionName, functionArguments, functionBody, orReplace, returns, language } = " CREATE " <> (if orReplace then " OR REPLACE " else " " ) <> " FUNCTION " <> functionName <> " (" <> (functionArguments |> map (\ (argName, argType) -> argName ++ " " ++ compilePostgresType argType) |> intercalate " , " ) <> " )" <> " RETURNS " <> compilePostgresType returns <> " AS $$" <> functionBody <> " $$ language " <> language <> " ;"
37
37
compileStatement EnableRowLevelSecurity { tableName } = " ALTER TABLE " <> tableName <> " ENABLE ROW LEVEL SECURITY;"
38
38
compileStatement CreatePolicy { name, action, tableName, using, check } = " CREATE POLICY " <> compileIdentifier name <> " ON " <> compileIdentifier tableName <> maybe " " (\ action -> " FOR " <> compilePolicyAction action) action <> maybe " " (\ expr -> " USING (" <> compileExpression expr <> " )" ) using <> maybe " " (\ expr -> " WITH CHECK (" <> compileExpression expr <> " )" ) check <> " ;"
@@ -116,7 +116,12 @@ compileDefaultValue value = "DEFAULT " <> compileExpression value
116
116
117
117
compileExpression :: Expression -> Text
118
118
compileExpression (TextExpression value) = " '" <> value <> " '"
119
- compileExpression (VarExpression name) = name
119
+ compileExpression (VarExpression name) =
120
+ if nameContainsSpaces
121
+ then compileIdentifier name
122
+ else name
123
+ where
124
+ nameContainsSpaces = Text. any (== ' ' ) name
120
125
compileExpression (CallExpression func args) = func <> " (" <> intercalate " , " (map compileExpressionWithOptionalParenthese args) <> " )"
121
126
compileExpression (NotEqExpression a b) = compileExpression a <> " <> " <> compileExpression b
122
127
compileExpression (EqExpression a b) = compileExpressionWithOptionalParenthese a <> " = " <> compileExpressionWithOptionalParenthese b
0 commit comments