deparse: fix CREATE OR REPLACE VIEW
authorPetr Jelinek <pjmodos@pjmodos.net>
Tue, 16 Sep 2014 13:29:59 +0000 (15:29 +0200)
committerPetr Jelinek <pjmodos@pjmodos.net>
Tue, 16 Sep 2014 13:30:40 +0000 (15:30 +0200)
src/backend/tcop/deparse_utility.c

index 36905b1bb7559f1b41534129df934be7167c0e8a..21f17e8b4743277363fd45f83be88fa1eada27ad 100644 (file)
@@ -1629,6 +1629,7 @@ deparse_AlterExtensionStmt(Oid objectId, Node *parsetree)
 static char *
 deparse_ViewStmt(Oid objectId, Node *parsetree)
 {
+   ViewStmt   *node = (ViewStmt *) parsetree;
    ObjTree    *viewStmt;
    ObjTree    *tmp;
    char       *command;
@@ -1636,8 +1637,11 @@ deparse_ViewStmt(Oid objectId, Node *parsetree)
 
    relation = relation_open(objectId, AccessShareLock);
 
-   viewStmt = new_objtree_VA("CREATE %{persistence}s VIEW %{identity}D AS %{query}s",
-                             1, "persistence", ObjTypeString,
+   viewStmt = new_objtree_VA("CREATE %{or_replace}s %{persistence}s VIEW %{identity}D AS %{query}s",
+                             2,
+                             "or_replace", ObjTypeString,
+                             node->replace ? "OR REPLACE" : "",
+                             "persistence", ObjTypeString,
                      get_persistence_str(relation->rd_rel->relpersistence));
 
    tmp = new_objtree_for_qualname(relation->rd_rel->relnamespace,