summaryrefslogtreecommitdiffstats
path: root/db/postgresql/output.xsl
diff options
context:
space:
mode:
authorOndřej Žára <ondras@zarovi.cz>2017-03-29 21:25:21 +0200
committerGitHub <noreply@github.com>2017-03-29 21:25:21 +0200
commit378bb0cf2f773b1f9331d5a44d584f347876e368 (patch)
treed11e062ea9b7374365f7717a1cfe99262c4f284b /db/postgresql/output.xsl
parent10a01af0b002e499c428f02e8938954dcb979f74 (diff)
parentbafc8d08d0e1ebc2fff862283041ee50f3d7706a (diff)
downloadwwwsqldesigner-378bb0cf2f773b1f9331d5a44d584f347876e368.zip
wwwsqldesigner-378bb0cf2f773b1f9331d5a44d584f347876e368.tar.gz
wwwsqldesigner-378bb0cf2f773b1f9331d5a44d584f347876e368.tar.bz2
Merge pull request #251 from devshell/devshell-patch-1
Modify postgreSQL formatting & add web2py backend support
Diffstat (limited to 'db/postgresql/output.xsl')
-rw-r--r--db/postgresql/output.xsl81
1 files changed, 47 insertions, 34 deletions
diff --git a/db/postgresql/output.xsl b/db/postgresql/output.xsl
index 4ca7866..39cc978 100644
--- a/db/postgresql/output.xsl
+++ b/db/postgresql/output.xsl
@@ -26,14 +26,14 @@
<!-- tables -->
<xsl:for-each select="table">
- <xsl:text>CREATE TABLE "</xsl:text>
+ <xsl:text>CREATE TABLE </xsl:text>
<xsl:value-of select="@name" />
- <xsl:text>" (
+ <xsl:text> (
</xsl:text>
<xsl:for-each select="row">
- <xsl:text>"</xsl:text>
+ <xsl:text> </xsl:text>
<xsl:value-of select="@name" />
- <xsl:text>" </xsl:text>
+ <xsl:text> </xsl:text>
<xsl:choose>
<xsl:when test="@autoincrement = 1">
@@ -43,23 +43,23 @@
column with nextval(). see:
http://www.postgresql.org/docs/current/static/datatype-numeric.html#DATATYPE-SERIAL
-->
- <xsl:text> SERIAL</xsl:text>
+ <xsl:text>SERIAL</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="datatype" />
</xsl:otherwise>
</xsl:choose>
- <xsl:text> </xsl:text>
+ <xsl:text></xsl:text>
<xsl:if test="@null = 0">
- <xsl:text>NOT NULL </xsl:text>
+ <xsl:text> NOT NULL</xsl:text>
</xsl:if>
<xsl:if test="default">
<xsl:if test=" default != 'NULL' ">
- <xsl:text>DEFAULT </xsl:text>
+ <xsl:text> DEFAULT </xsl:text>
<xsl:value-of select="default" />
- <xsl:text> </xsl:text>
+ <xsl:text></xsl:text>
</xsl:if>
</xsl:if>
@@ -75,10 +75,21 @@
</xsl:if>
</xsl:for-each>
+<xsl:text>
+);
+</xsl:text>
+<xsl:text>
+
+</xsl:text>
<!-- keys -->
<xsl:for-each select="key">
- <xsl:text>,
-</xsl:text>
+ <xsl:text>ALTER TABLE </xsl:text>
+ <xsl:text></xsl:text>
+ <xsl:value-of select="../@name" />
+ <xsl:text> </xsl:text>
+ <xsl:text>ADD CONSTRAINT </xsl:text>
+ <xsl:value-of select="../@name" />
+ <xsl:text>_pkey </xsl:text>
<xsl:choose>
<xsl:when test="@type = 'PRIMARY'">PRIMARY KEY (</xsl:when>
<xsl:when test="@type = 'UNIQUE'">UNIQUE (</xsl:when>
@@ -86,18 +97,38 @@
</xsl:choose>
<xsl:for-each select="part">
- <xsl:text>"</xsl:text><xsl:value-of select="." /><xsl:text>"</xsl:text>
+ <xsl:text></xsl:text><xsl:value-of select="." /><xsl:text></xsl:text>
<xsl:if test="not (position() = last())">
<xsl:text>, </xsl:text>
</xsl:if>
</xsl:for-each>
- <xsl:text>)</xsl:text>
+ <xsl:text>);
+</xsl:text>
</xsl:for-each>
-
- <xsl:text>
-);
+
+
+<!-- fk -->
+ <xsl:for-each select="row">
+ <xsl:for-each select="relation">
+ <xsl:text>ALTER TABLE </xsl:text>
+ <xsl:value-of select="../../@name" />
+ <xsl:text> ADD CONSTRAINT </xsl:text>
+ <xsl:value-of select="../../@name" />
+ <xsl:text>_</xsl:text>
+ <xsl:value-of select="../@name" />
+ <xsl:text>_fkey</xsl:text>
+ <xsl:text> FOREIGN KEY (</xsl:text>
+ <xsl:value-of select="../@name" />
+ <xsl:text>) REFERENCES </xsl:text>
+ <xsl:value-of select="@table" />
+ <xsl:text>(</xsl:text>
+ <xsl:value-of select="@row" />
+ <xsl:text>);
</xsl:text>
+ </xsl:for-each>
+ </xsl:for-each>
+
<xsl:if test="comment">
<xsl:text>COMMENT ON TABLE "</xsl:text>
@@ -134,23 +165,5 @@
</xsl:text>
</xsl:for-each>
-<!-- fk -->
- <xsl:for-each select="table">
- <xsl:for-each select="row">
- <xsl:for-each select="relation">
- <xsl:text>ALTER TABLE "</xsl:text>
- <xsl:value-of select="../../@name" />
- <xsl:text>" ADD FOREIGN KEY ("</xsl:text>
- <xsl:value-of select="../@name" />
- <xsl:text>") REFERENCES "</xsl:text>
- <xsl:value-of select="@table" />
- <xsl:text>" ("</xsl:text>
- <xsl:value-of select="@row" />
- <xsl:text>");
-</xsl:text>
- </xsl:for-each>
- </xsl:for-each>
- </xsl:for-each>
-
</xsl:template>
</xsl:stylesheet>