aboutsummaryrefslogtreecommitdiffstats
path: root/Plugins/SqlEnterpriseFormatter/formatcopy.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Plugins/SqlEnterpriseFormatter/formatcopy.cpp')
-rw-r--r--Plugins/SqlEnterpriseFormatter/formatcopy.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/Plugins/SqlEnterpriseFormatter/formatcopy.cpp b/Plugins/SqlEnterpriseFormatter/formatcopy.cpp
new file mode 100644
index 0000000..fa07d48
--- /dev/null
+++ b/Plugins/SqlEnterpriseFormatter/formatcopy.cpp
@@ -0,0 +1,24 @@
+#include "formatcopy.h"
+#include "parser/ast/sqlitecopy.h"
+
+FormatCopy::FormatCopy(SqliteCopy* copy) :
+ copy(copy)
+{
+}
+
+void FormatCopy::formatInternal()
+{
+ withKeyword("COPY");
+ if (copy->onConflict != SqliteConflictAlgo::null)
+ withKeyword("OR").withKeyword(sqliteConflictAlgo(copy->onConflict));
+
+ if (!copy->database.isNull())
+ withId(copy->database);
+
+ withId(copy->table).withKeyword("FROM").withString(copy->file);
+
+ if (!copy->delimiter.isNull())
+ withKeyword("USING").withKeyword("DELIMITERS").withString(copy->delimiter);
+
+ withSemicolon();
+}