Merge pull request #4778 from AlphaHinex/h2visitor

[FEAT] Extend H2OutputVisitor to make it could convert mysql scripts to h2, general available
This commit is contained in:
温绍锦
2022-09-10 19:18:14 +08:00
committed by GitHub
16 changed files with 1632 additions and 12 deletions
+1 -1
View File
@@ -2,7 +2,7 @@
/.settings
/.project
/.classpath
/.DS_Store
.DS_Store
/1
/derby.log
/src/test/resources/pool_config
@@ -17,16 +17,23 @@ package com.alibaba.druid.sql.dialect.h2.visitor;
import com.alibaba.druid.DbType;
import com.alibaba.druid.sql.ast.SQLExpr;
import com.alibaba.druid.sql.ast.SQLName;
import com.alibaba.druid.sql.ast.expr.SQLBinaryExpr;
import com.alibaba.druid.sql.ast.expr.SQLHexExpr;
import com.alibaba.druid.sql.ast.expr.SQLMethodInvokeExpr;
import com.alibaba.druid.sql.ast.expr.SQLQueryExpr;
import com.alibaba.druid.sql.ast.statement.SQLCreateDatabaseStatement;
import com.alibaba.druid.sql.ast.statement.SQLCreateIndexStatement;
import com.alibaba.druid.sql.ast.statement.SQLInsertStatement;
import com.alibaba.druid.sql.ast.statement.SQLReplaceStatement;
import com.alibaba.druid.sql.ast.statement.*;
import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlAlterTableModifyColumn;
import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlTableIndex;
import com.alibaba.druid.sql.visitor.SQLASTOutputVisitor;
import com.alibaba.druid.support.logging.Log;
import com.alibaba.druid.support.logging.LogFactory;
import java.util.List;
public class H2OutputVisitor extends SQLASTOutputVisitor implements H2ASTVisitor {
private static final Log LOG = LogFactory.getLog(H2OutputVisitor.class);
public H2OutputVisitor(Appendable appender) {
super(appender, DbType.h2);
}
@@ -103,6 +110,125 @@ public class H2OutputVisitor extends SQLASTOutputVisitor implements H2ASTVisitor
return false;
}
@Override
public boolean visit(SQLCreateTableStatement x) {
/*
https://h2database.com/html/commands.html#create_table
CREATE [ CACHED | MEMORY ] [ { TEMP } | [ GLOBAL | LOCAL ] TEMPORARY ]
TABLE [ IF NOT EXISTS ] [schemaName.]tableName
[ ( { columnName [columnDefinition] | tableConstraintDefinition } [,...] ) ]
[ ENGINE tableEngineName ]
[ WITH tableEngineParamName [,...] ]
[ NOT PERSISTENT ] [ TRANSACTIONAL ]
[ AS query [ WITH [ NO ] DATA ] ]
*/
printCreateTable(x, true);
return false;
}
protected void printTableElements(List<SQLTableElement> tableElementList) {
int size = tableElementList.size();
if (size == 0) {
return;
}
print0(" (");
this.indentCount++;
println();
for (int i = 0; i < size; ++i) {
SQLTableElement element = tableElementList.get(i);
if (element instanceof SQLPrimaryKey) {
SQLName name = ((SQLPrimaryKey) element).getName();
if (name != null) {
printUcase("CONSTRAINT ");
name.accept(this);
print(' ');
}
printUcase("PRIMARY KEY ");
acceptChildName(((SQLPrimaryKey) element).getColumns());
} else if (element instanceof SQLUnique) {
if ("UNIQUE".equalsIgnoreCase(((SQLUnique) element).getIndexDefinition().getType())) {
printUcase("UNIQUE ");
}
printUcase("KEY ");
print(addIndexNameSuffixForH2(((SQLUnique) element).getName()));
acceptChildName(((SQLUnique) element).getColumns());
} else if (element instanceof MySqlTableIndex) {
visit((MySqlTableIndex) element);
} else {
element.accept(this);
}
if (i != size - 1) {
print(',');
}
if (this.isPrettyFormat() && element.hasAfterComment()) {
print(' ');
printlnComment(element.getAfterCommentsDirect());
}
if (i != size - 1) {
println();
}
}
this.indentCount--;
println();
print(')');
}
private String addIndexNameSuffixForH2(SQLName name) {
String simpleName = name.getSimpleName();
if (simpleName.endsWith("`")) {
return simpleName.replaceFirst("`$", System.nanoTime() + "`");
} else {
return simpleName + System.nanoTime();
}
}
public boolean visit(MySqlTableIndex x) {
print0(ucase ? "INDEX" : "index");
if (x.getName() != null) {
print(' ');
x.getName().accept(this);
}
print('(');
for (int i = 0, size = x.getColumns().size(); i < size; ++i) {
if (i != 0) {
print0(", ");
}
x.getColumns().get(i).accept(this);
}
print(')');
return false;
}
private void acceptChildName(List<SQLSelectOrderByItem> children) {
if (children == null) {
return;
}
print('(');
for (int i = 0; i < children.size(); i++) {
SQLSelectOrderByItem child = children.get(i);
if (child == null) {
continue;
}
if (child.getExpr() instanceof SQLMethodInvokeExpr) {
print0(((SQLMethodInvokeExpr) child.getExpr()).getMethodName());
} else {
print0(child.getExpr().toString());
}
if (i != children.size() - 1) {
print(',');
}
}
print(')');
}
@Override
public boolean visit(SQLCreateIndexStatement x) {
/* h2 CREATE INDEX BNF: https://h2database.com/html/commands.html#create_index
@@ -136,4 +262,129 @@ public class H2OutputVisitor extends SQLASTOutputVisitor implements H2ASTVisitor
return false;
}
@Override
public boolean visit(SQLSetStatement x) {
return false;
}
@Override
public boolean visit(SQLHexExpr x) {
print0("X'");
print0(x.getHex());
print0("'");
return false;
}
@Override
public boolean visit(SQLBinaryExpr x) {
print0(x.getText());
return false;
}
@Override
protected void printChars(String text) {
if ("0000-00-00 00:00:00".equals(text)) {
// TODO: this is not correct because '0000-00-00 00:00:00' could be a real string value
LOG.warn("Replacing '0000-00-00 00:00:00' with valid H2 datetime (unsafe replacement)");
text = "0001-01-01 00:00:00";
}
super.printChars(text);
}
@Override
public boolean visit(SQLAlterTableStatement x) {
/*
https://h2database.com/html/commands.html#alter_table_alter_column
ALTER TABLE [ IF EXISTS ] [schemaName.]tableName
ALTER COLUMN [ IF EXISTS ] columnName
{ { columnDefinition }
| { RENAME TO name }
| SET GENERATED { ALWAYS | BY DEFAULT } [ alterIdentityColumnOption [...] ]
| alterIdentityColumnOption [...]
| DROP IDENTITY
| { SELECTIVITY int }
| { SET DEFAULT expression }
| { DROP DEFAULT }
| DROP EXPRESSION
| { SET ON UPDATE expression }
| { DROP ON UPDATE }
| { SET DEFAULT ON NULL }
| { DROP DEFAULT ON NULL }
| { SET NOT NULL }
| { DROP NOT NULL } | { SET NULL }
| { SET DATA TYPE dataTypeOrDomain [ USING newValueExpression ] }
| { SET { VISIBLE | INVISIBLE } } }
*/
printAlterTable(x);
this.indentCount++;
for (int i = 0; i < x.getItems().size(); ++i) {
SQLAlterTableItem item = x.getItems().get(i);
println();
accept(item);
if (i + 1 < x.getItems().size()) {
SQLAlterTableItem later = x.getItems().get(i + 1);
if (later instanceof MySqlAlterTableModifyColumn) {
print(";\n");
printAlterTable(x);
}
}
}
this.indentCount--;
return false;
}
private void printAlterTable(SQLAlterTableStatement x) {
printUcase("ALTER TABLE ");
if (x.isIfExists()) {
printUcase("IF EXISTS ");
}
printTableSourceExpr(x.getName());
}
private void accept(SQLAlterTableItem item) {
if (item instanceof MySqlAlterTableModifyColumn) {
MySqlAlterTableModifyColumn x = (MySqlAlterTableModifyColumn) item;
printUcase("ALTER COLUMN ");
x.getNewColumnDefinition().accept(this);
} else {
item.accept(this);
}
}
public boolean visit(SQLAlterTableAddConstraint x) {
if (x.isWithNoCheck()) {
this.print0(this.ucase ? "WITH NOCHECK " : "with nocheck ");
}
this.print0(this.ucase ? "ADD " : "add ");
if (x.getConstraint().getParent() instanceof SQLAlterTableAddConstraint && x.getConstraint() instanceof SQLForeignKeyImpl) {
this.visit((SQLForeignKeyImpl) x.getConstraint());
} else if (x.getConstraint().getParent() instanceof SQLAlterTableAddConstraint && x.getConstraint() instanceof SQLUnique) {
this.visit((SQLUnique) x.getConstraint());
} else {
x.getConstraint().accept(this);
}
return false;
}
@Override
public boolean visit(SQLUnique x) {
SQLName name = x.getName();
if (name != null) {
this.print0(this.ucase ? "CONSTRAINT " : "constraint ");
print(addIndexNameSuffixForH2(name));
this.print(' ');
}
this.print0(this.ucase ? "UNIQUE (" : "unique (");
this.printAndAccept(x.getColumns(), ", ");
this.print(')');
return false;
}
}
@@ -18,7 +18,9 @@ package com.alibaba.druid.sql.dialect.mysql.ast.statement;
import com.alibaba.druid.sql.SQLUtils;
import com.alibaba.druid.sql.ast.SQLCommentHint;
import com.alibaba.druid.sql.ast.SQLStatement;
import com.alibaba.druid.sql.dialect.h2.visitor.H2ASTVisitor;
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlASTVisitor;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
import java.util.List;
@@ -30,6 +32,14 @@ public class MySqlHintStatement extends MySqlStatementImpl {
public MySqlHintStatement() {
}
@Override
protected void accept0(SQLASTVisitor visitor) {
if (visitor instanceof H2ASTVisitor) {
return;
}
super.accept0(visitor);
}
public void accept0(MySqlASTVisitor visitor) {
if (visitor.visit(this)) {
acceptChild(visitor, this.hints);
@@ -18,8 +18,10 @@ package com.alibaba.druid.sql.dialect.mysql.ast.statement;
import com.alibaba.druid.sql.ast.SQLCommentHint;
import com.alibaba.druid.sql.ast.statement.SQLExprTableSource;
import com.alibaba.druid.sql.ast.statement.SQLLockTableStatement;
import com.alibaba.druid.sql.dialect.h2.visitor.H2ASTVisitor;
import com.alibaba.druid.sql.dialect.mysql.ast.MySqlObjectImpl;
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlASTVisitor;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
import java.util.ArrayList;
import java.util.List;
@@ -27,6 +29,14 @@ import java.util.List;
public class MySqlLockTableStatement extends MySqlStatementImpl implements SQLLockTableStatement {
private List<Item> items = new ArrayList<Item>();
@Override
protected void accept0(SQLASTVisitor visitor) {
if (visitor instanceof H2ASTVisitor) {
return;
}
super.accept0(visitor);
}
@Override
public void accept0(MySqlASTVisitor visitor) {
if (visitor.visit(this)) {
@@ -15,11 +15,21 @@
*/
package com.alibaba.druid.sql.dialect.mysql.ast.statement;
import com.alibaba.druid.sql.dialect.h2.visitor.H2ASTVisitor;
import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlASTVisitor;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public class MySqlUnlockTablesStatement extends MySqlStatementImpl {
public void accept0(MySqlASTVisitor visitor) {
visitor.visit(this);
visitor.endVisit(this);
}
@Override
protected void accept0(SQLASTVisitor visitor) {
if (visitor instanceof H2ASTVisitor) {
return;
}
super.accept0(visitor);
}
}
@@ -3,15 +3,24 @@ package com.alibaba.druid.sql.dialect.h2.visitor;
import com.alibaba.druid.DbType;
import com.alibaba.druid.sql.SQLUtils;
import com.alibaba.druid.sql.ast.SQLStatement;
import com.alibaba.druid.support.logging.Log;
import com.alibaba.druid.support.logging.LogFactory;
import org.junit.*;
import java.io.*;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;
import java.util.zip.GZIPInputStream;
public class H2OutputVisitorTest {
private final static Log LOG = LogFactory.getLog(H2OutputVisitorTest.class);
@BeforeClass
public static void loadDriver() {
org.h2.Driver.load();
@@ -34,6 +43,20 @@ public class H2OutputVisitorTest {
connection.close();
}
@Test
public void testConvertCreateIndex() throws SQLException {
String mysqlSql = "CREATE SCHEMA hinex;CREATE TABLE hinex.employees (jobTitle VARCHAR2(50));CREATE FULLTEXT INDEX hinex.jobTitle USING BTREE ON hinex.employees(jobTitle);";
convertAndExecute(mysqlSql);
}
private void convertAndExecute(String mysqlSql) throws SQLException {
List<SQLStatement> sqlStatements = SQLUtils.parseStatements(mysqlSql, DbType.mysql);
String h2Sql = SQLUtils.toSQLString(sqlStatements, DbType.h2);
executeUpdate(h2Sql);
}
private void executeUpdate(String sql) throws SQLException {
try (Statement sqlStat = connection.createStatement()) {
sqlStat.executeUpdate(sql);
@@ -41,15 +64,82 @@ public class H2OutputVisitorTest {
}
@Test
public void testConvertCreateIndex() throws SQLException {
String mysqlSql = "CREATE SCHEMA hinex;CREATE TABLE hinex.employees (jobTitle VARCHAR2(50));CREATE FULLTEXT INDEX hinex.jobTitle USING BTREE ON hinex.employees(jobTitle);";
public void testScript1() throws Exception {
loadScript("wordpress.sql");
}
List<SQLStatement> sqlStatements = SQLUtils.parseStatements(mysqlSql, DbType.mysql);
private void loadScript(String s) throws Exception {
long time0 = System.currentTimeMillis();
String h2Sql = SQLUtils.toSQLString(sqlStatements, DbType.h2);
LOG.info("Executing script " + s);
System.out.println(h2Sql);
executeUpdate(h2Sql);
InputStream input = new BufferedInputStream(getClass().getResourceAsStream("/com/alibaba/druid/sql/dialect/h2/visitor/" + s));
PushbackInputStream pb = new PushbackInputStream( input, 2 );
byte [] magicbytes = new byte[2];
pb.read(magicbytes);
pb.unread(magicbytes);
ByteBuffer bb = ByteBuffer.wrap(magicbytes);
bb.order(ByteOrder.LITTLE_ENDIAN);
short magic = bb.getShort();
if( magic == (short) GZIPInputStream.GZIP_MAGIC ) {
executeScript(new InputStreamReader(new GZIPInputStream(pb)));
} else {
executeScript(new InputStreamReader(pb));
}
LOG.info("Done in " + (System.currentTimeMillis() - time0) + "ms");
}
private void executeScript(Reader reader) throws IOException, SQLException {
char[] buffer = new char[1024];
int l = reader.read(buffer);
StringBuilder scripts = new StringBuilder();
while (l > 0) {
scripts.append(buffer, 0, l);
l = reader.read(buffer);
}
convertAndExecute(scripts.toString());
}
@Test
public void testScript2() throws Exception {
loadScript("drupal.sql.gz");
}
@Test
public void testScript3() throws Exception {
loadScript("xwiki.sql.gz");
}
@Test
public void testScript4() throws Exception {
loadScript("xwiki-no-foreign-key-checks.sql.gz");
}
@Test
public void testScript5() throws Exception {
loadScript("xwiki-sqlyog.sql");
}
@Test
public void testScriptCreateTableWithOnDeleteAction() throws Exception {
loadScript("create-table-with-constraint-on-delete.sql");
}
@Test
public void testScriptExportTriggerWithDelimiter() throws Exception {
loadScript("export-trigger-with-delimiter.sql");
}
@Test
public void testScriptCreateTableWithKey() throws Exception {
loadScript("create-table-with-key.sql");
}
@Test
public void testChampScripts() throws Exception {
loadScript("champ.sql");
}
}
+1 -1
View File
@@ -1,5 +1,5 @@
ALTER TABLE analysis_properties ALTER COLUMN snapshot_uuid RENAME TO analysis_uuid
---------------------------
ALTER TABLE analysis_properties
ALTER COLUMN snapshot_uuid,
ALTER COLUMN snapshot_uuid
RENAME TO analysis_uuid
@@ -0,0 +1,17 @@
CREATE TABLE `champ_app_mgr_d` (
`RID` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`LABEL_TYPE` varchar(8) NULL,
`LABEL_KEY` varchar(32) NULL,
`LABEL_VALUE` varchar(32) NULL,
`LABEL_SORT` varchar(32) NULL,
PRIMARY KEY (`RID`) USING BTREE,
INDEX `idx_wokb_tmpl_detl_d_1`(`LABEL_KEY`, `LABEL_VALUE`, `LABEL_SORT`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
ALTER TABLE `champ_app_mgr_d`
MODIFY COLUMN `LABEL_KEY` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL AFTER `LABEL_TYPE`,
MODIFY COLUMN `LABEL_VALUE` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL AFTER `LABEL_KEY`;
-- type could null
ALTER TABLE champ_app_mgr_d MODIFY LABEL_TYPE VARCHAR(255) NULL;
ALTER TABLE champ_app_mgr_d ADD UNIQUE INDEX UNIQUE_TYPE_KEY(LABEL_TYPE, LABEL_KEY);
@@ -0,0 +1,21 @@
CREATE DATABASE /*!32312 IF NOT EXISTS*/`empty` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `empty`;
CREATE TABLE `user` (
`ID` bigint(20) NOT NULL AUTO_INCREMENT,
`NAME` text
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='A sample user table.';
CREATE TABLE `sample` (
`ID` bigint(20) NOT NULL AUTO_INCREMENT,
`USER_FK` bigint(20) NOT NULL,
`VALUE` text,
`TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`version` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`ID`),
UNIQUE KEY `PK_SAMPLE` (`ID`),
KEY `FK_USER` (`USER_FK`),
CONSTRAINT `FK_USER` FOREIGN KEY (`USER_FK`) REFERENCES `user` (`ID`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='A sample table.';
@@ -0,0 +1,10 @@
CREATE TABLE `sample` (
`ID` bigint(20) NOT NULL AUTO_INCREMENT,
`VALUE` text,
`TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`version` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`ID`),
UNIQUE KEY `PK_SAMPLE` (`ID`),
KEY `TIME` (`TIME`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='A sample table.';
@@ -0,0 +1,110 @@
-- MySQL dump 10.13 Distrib 5.6.23, for osx10.10 (x86_64)
--
-- Host: localhost Database: test1
-- ------------------------------------------------------
-- Server version 5.6.23
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Current Database: `test1`
--
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test1` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */;
USE `test1`;
--
-- Table structure for table `sample`
--
DROP TABLE IF EXISTS `sample`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `sample` (
`ID` bigint(20) NOT NULL AUTO_INCREMENT,
`USER_FK` bigint(20) NOT NULL,
`VALUE` text,
`TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`version` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`ID`),
UNIQUE KEY `PK_SAMPLE` (`ID`),
KEY `FK_USER` (`USER_FK`),
CONSTRAINT `FK_USER` FOREIGN KEY (`USER_FK`) REFERENCES `user` (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1 COMMENT='A sample table.';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `sample`
--
LOCK TABLES `sample` WRITE;
/*!40000 ALTER TABLE `sample` DISABLE KEYS */;
INSERT INTO `sample` VALUES (3,1,'Hello World','2015-03-29 17:11:04',10001);
/*!40000 ALTER TABLE `sample` ENABLE KEYS */;
UNLOCK TABLES;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
/*!50003 SET character_set_client = utf8 */ ;
/*!50003 SET character_set_results = utf8 */ ;
/*!50003 SET collation_connection = utf8_general_ci */ ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION' */ ;
-- DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER sample BEFORE INSERT ON sample
FOR EACH ROW
BEGIN
IF NEW.version IS NOT NULL THEN
SET NEW.version = NEW.version + 10000;
END IF;
END */;;
-- DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
/*!50003 SET character_set_client = @saved_cs_client */ ;
/*!50003 SET character_set_results = @saved_cs_results */ ;
/*!50003 SET collation_connection = @saved_col_connection */ ;
--
-- Table structure for table `user`
--
DROP TABLE IF EXISTS `user`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `user` (
`ID` bigint(20) NOT NULL AUTO_INCREMENT,
`NAME` text,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 COMMENT='A sample user table.';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `user`
--
LOCK TABLES `user` WRITE;
/*!40000 ALTER TABLE `user` DISABLE KEYS */;
INSERT INTO `user` VALUES (1,'TEST');
/*!40000 ALTER TABLE `user` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2015-03-29 13:16:01
File diff suppressed because one or more lines are too long
@@ -0,0 +1,608 @@
/*
SQLyog Ultimate v9.20
MySQL - 5.1.41 : Database - xwiki
*********************************************************************
*/␍
/*!40101 SET NAMES utf8 */;
/*!40101 SET SQL_MODE=''*/;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`xwiki` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `xwiki`;
/*Table structure for table `activitystream_events` */
DROP TABLE IF EXISTS `activitystream_events`;
CREATE TABLE `activitystream_events` (
`ase_eventid` varchar(48) NOT NULL,
`ase_requestid` varchar(2000) DEFAULT NULL,
`ase_stream` varchar(255) DEFAULT NULL,
`ase_date` datetime DEFAULT NULL,
`ase_priority` int(11) DEFAULT NULL,
`ase_type` varchar(255) DEFAULT NULL,
`ase_application` varchar(255) DEFAULT NULL,
`ase_user` varchar(255) DEFAULT NULL,
`ase_wiki` varchar(255) DEFAULT NULL,
`ase_space` varchar(255) DEFAULT NULL,
`ase_page` varchar(255) DEFAULT NULL,
`ase_hidden` bit(1) DEFAULT NULL,
`ase_url` varchar(2000) DEFAULT NULL,
`ase_title` varchar(2000) DEFAULT NULL,
`ase_body` varchar(2000) DEFAULT NULL,
`ase_version` varchar(30) DEFAULT NULL,
`ase_param1` varchar(2000) DEFAULT NULL,
`ase_param2` varchar(2000) DEFAULT NULL,
`ase_param3` varchar(2000) DEFAULT NULL,
`ase_param4` varchar(2000) DEFAULT NULL,
`ase_param5` varchar(2000) DEFAULT NULL,
PRIMARY KEY (`ase_eventid`),
KEY `EVENT_TYPE` (`ase_type`),
KEY `EVENT_PRIORITY` (`ase_priority`),
KEY `EVENT_WIKI` (`ase_wiki`),
KEY `EVENT_DATE` (`ase_date`),
KEY `EVENT_PAGE` (`ase_page`),
KEY `EVENT_USER` (`ase_user`),
KEY `EVENT_SPACE` (`ase_space`),
KEY `EVENT_STREAM` (`ase_stream`),
KEY `EVENT_APP` (`ase_application`),
KEY `EVENT_HIDDEN` (`ase_hidden`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Table structure for table `feeds_aggregatorgroup` */
DROP TABLE IF EXISTS `feeds_aggregatorgroup`;
CREATE TABLE `feeds_aggregatorgroup` (
`agg_id` int(11) NOT NULL,
`agg_name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`agg_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Table structure for table `feeds_aggregatorurl` */
DROP TABLE IF EXISTS `feeds_aggregatorurl`;
CREATE TABLE `feeds_aggregatorurl` (
`agg_id` bigint(20) NOT NULL,
`agg_name` longtext,
`agg_url` longtext,
`agg_date` datetime DEFAULT NULL,
`agg_nb` int(11) DEFAULT NULL,
PRIMARY KEY (`agg_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Table structure for table `feeds_aggregatorurlgroups` */
DROP TABLE IF EXISTS `feeds_aggregatorurlgroups`;
CREATE TABLE `feeds_aggregatorurlgroups` (
`agl_id` bigint(20) NOT NULL,
`agl_value` varchar(255) DEFAULT NULL,
`agl_number` int(11) NOT NULL,
PRIMARY KEY (`agl_id`,`agl_number`),
KEY `FK7B845B068E772CC` (`agl_id`),
CONSTRAINT `FK7B845B068E772CC` FOREIGN KEY (`agl_id`) REFERENCES `feeds_aggregatorurl` (`agg_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Table structure for table `feeds_feedentry` */
DROP TABLE IF EXISTS `feeds_feedentry`;
CREATE TABLE `feeds_feedentry` (
`fee_id` bigint(20) NOT NULL,
`fee_title` longtext,
`fee_author` longtext,
`fee_feedurl` longtext,
`fee_feedname` longtext,
`fee_url` longtext,
`fee_category` longtext,
`fee_content` longtext,
`fee_fullcontent` longtext,
`fee_xml` longtext,
`fee_date` datetime DEFAULT NULL,
`fee_flag` int(11) DEFAULT '0',
`fee_read` int(11) DEFAULT '0',
PRIMARY KEY (`fee_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Table structure for table `feeds_feedentrytags` */
DROP TABLE IF EXISTS `feeds_feedentrytags`;
CREATE TABLE `feeds_feedentrytags` (
`fet_id` bigint(20) NOT NULL,
`fet_value` varchar(255) DEFAULT NULL,
`fet_number` int(11) NOT NULL,
PRIMARY KEY (`fet_id`,`fet_number`),
KEY `FKBE0037834855150F` (`fet_id`),
CONSTRAINT `FKBE0037834855150F` FOREIGN KEY (`fet_id`) REFERENCES `feeds_feedentry` (`fee_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Table structure for table `feeds_keyword` */
DROP TABLE IF EXISTS `feeds_keyword`;
CREATE TABLE `feeds_keyword` (
`key_id` int(11) NOT NULL,
`key_name` varchar(255) DEFAULT NULL,
`key_group` varchar(255) DEFAULT NULL,
PRIMARY KEY (`key_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Table structure for table `xwikiattachment` */
DROP TABLE IF EXISTS `xwikiattachment`;
CREATE TABLE `xwikiattachment` (
`XWA_ID` bigint(20) NOT NULL,
`XWA_DOC_ID` bigint(20) DEFAULT NULL,
`XWA_FILENAME` varchar(255) NOT NULL,
`XWA_SIZE` int(11) DEFAULT NULL,
`XWA_DATE` datetime NOT NULL,
`XWA_AUTHOR` varchar(255) DEFAULT NULL,
`XWA_VERSION` varchar(255) NOT NULL,
`XWA_COMMENT` varchar(255) DEFAULT NULL,
PRIMARY KEY (`XWA_ID`),
KEY `ATT_DATE` (`XWA_DATE`),
KEY `ATT_DOC_ID` (`XWA_DOC_ID`),
KEY `ATT_AUTHOR` (`XWA_AUTHOR`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Table structure for table `xwikiattachment_archive` */
DROP TABLE IF EXISTS `xwikiattachment_archive`;
CREATE TABLE `xwikiattachment_archive` (
`XWA_ID` bigint(20) NOT NULL,
`XWA_ARCHIVE` longblob,
PRIMARY KEY (`XWA_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Table structure for table `xwikiattachment_content` */
DROP TABLE IF EXISTS `xwikiattachment_content`;
CREATE TABLE `xwikiattachment_content` (
`XWA_ID` bigint(20) NOT NULL,
`XWA_CONTENT` longblob NOT NULL,
PRIMARY KEY (`XWA_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Table structure for table `xwikiattrecyclebin` */
DROP TABLE IF EXISTS `xwikiattrecyclebin`;
CREATE TABLE `xwikiattrecyclebin` (
`XDA_ID` bigint(20) NOT NULL AUTO_INCREMENT,
`XDA_DOCID` bigint(20) NOT NULL,
`XDA_FILENAME` varchar(255) NOT NULL,
`XDA_DATE` datetime NOT NULL,
`XDA_DOC_NAME` varchar(255) DEFAULT NULL,
`XDA_DELETER` varchar(255) DEFAULT NULL,
`XDA_XML` longtext NOT NULL,
PRIMARY KEY (`XDA_ID`),
UNIQUE KEY `XDA_DOCID` (`XDA_DOCID`,`XDA_FILENAME`,`XDA_DATE`),
KEY `XDA_DOC_NAME` (`XDA_DOC_NAME`),
KEY `XDA_FILENAME` (`XDA_FILENAME`),
KEY `XDA_DELETER` (`XDA_DELETER`),
KEY `XDA_DATE` (`XDA_DATE`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Table structure for table `xwikicomments` */
DROP TABLE IF EXISTS `xwikicomments`;
CREATE TABLE `xwikicomments` (
`XWC_ID` bigint(20) NOT NULL,
`XWC_AUTHOR` varchar(255) DEFAULT NULL,
`XWC_HIGHLIGHT` longtext,
`XWC_COMMENT` longtext,
`XWP_REPLYTO` int(11) DEFAULT NULL,
`XWP_DATE` datetime DEFAULT NULL,
PRIMARY KEY (`XWC_ID`),
KEY `COMMENT_DATE` (`XWP_DATE`),
KEY `COMMENT_AUTHOR` (`XWC_AUTHOR`),
KEY `COMMENT_REPLYTO` (`XWP_REPLYTO`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Table structure for table `xwikidates` */
DROP TABLE IF EXISTS `xwikidates`;
CREATE TABLE `xwikidates` (
`XWS_ID` bigint(20) NOT NULL,
`XWS_NAME` varchar(255) NOT NULL,
`XWS_VALUE` datetime DEFAULT NULL,
PRIMARY KEY (`XWS_ID`,`XWS_NAME`),
KEY `FKDEAEAB5D3433FD87` (`XWS_ID`,`XWS_NAME`),
KEY `XWDATE_NAME` (`XWS_NAME`),
KEY `XWDATE_VALUE` (`XWS_VALUE`),
CONSTRAINT `FKDEAEAB5D3433FD87` FOREIGN KEY (`XWS_ID`, `XWS_NAME`) REFERENCES `xwikiproperties` (`XWP_ID`, `XWP_NAME`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Table structure for table `xwikidbversion` */
DROP TABLE IF EXISTS `xwikidbversion`;
CREATE TABLE `xwikidbversion` (
`XWV_VERSION` int(11) NOT NULL,
PRIMARY KEY (`XWV_VERSION`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Table structure for table `xwikidoc` */
DROP TABLE IF EXISTS `xwikidoc`;
CREATE TABLE `xwikidoc` (
`XWD_ID` bigint(20) NOT NULL,
`XWD_FULLNAME` varchar(255) NOT NULL,
`XWD_NAME` varchar(255) NOT NULL,
`XWD_TITLE` varchar(255) NOT NULL,
`XWD_LANGUAGE` varchar(5) DEFAULT NULL,
`XWD_DEFAULT_LANGUAGE` varchar(5) DEFAULT NULL,
`XWD_TRANSLATION` int(11) NOT NULL,
`XWD_DATE` datetime NOT NULL,
`XWD_CONTENT_UPDATE_DATE` datetime NOT NULL,
`XWD_CREATION_DATE` datetime NOT NULL,
`XWD_AUTHOR` varchar(255) NOT NULL,
`XWD_CONTENT_AUTHOR` varchar(255) NOT NULL,
`XWD_CREATOR` varchar(255) NOT NULL,
`XWD_WEB` varchar(255) NOT NULL,
`XWD_CONTENT` longtext NOT NULL,
`XWD_VERSION` varchar(255) NOT NULL,
`XWD_CUSTOM_CLASS` varchar(255) NOT NULL,
`XWD_PARENT` varchar(511) NOT NULL,
`XWD_CLASS_XML` longtext,
`XWD_ELEMENTS` int(11) NOT NULL,
`XWD_DEFAULT_TEMPLATE` varchar(255) NOT NULL,
`XWD_VALIDATION_SCRIPT` varchar(255) NOT NULL,
`XWD_COMMENT` varchar(1023) NOT NULL,
`XWD_MINOREDIT` bit(1) NOT NULL,
`XWD_SYNTAX_ID` varchar(50) DEFAULT NULL,
`XWD_HIDDEN` bit(1) NOT NULL,
PRIMARY KEY (`XWD_ID`),
KEY `DOC_NAME` (`XWD_NAME`),
KEY `DOC_CREATION_DATE` (`XWD_CREATION_DATE`),
KEY `DOC_CONTENT_UPDATE_DATE` (`XWD_CONTENT_UPDATE_DATE`),
KEY `DOC_CREATOR` (`XWD_CREATOR`),
KEY `DOC_TITLE` (`XWD_TITLE`),
KEY `DOC_SPACE` (`XWD_WEB`),
KEY `DOC_MINOREDIT` (`XWD_MINOREDIT`),
KEY `DOC_DEFAULT_LANGUAGE` (`XWD_DEFAULT_LANGUAGE`),
KEY `DOC_AUTHOR` (`XWD_AUTHOR`),
KEY `DOC_CONTENT_AUTHOR` (`XWD_CONTENT_AUTHOR`),
KEY `DOC_FULLNAME` (`XWD_FULLNAME`),
KEY `DOC_LANGUAGE` (`XWD_LANGUAGE`),
KEY `DOC_DATE` (`XWD_DATE`),
KEY `DOC_HIDDEN` (`XWD_HIDDEN`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Table structure for table `xwikidoubles` */
DROP TABLE IF EXISTS `xwikidoubles`;
CREATE TABLE `xwikidoubles` (
`XWD_ID` bigint(20) NOT NULL,
`XWD_NAME` varchar(255) NOT NULL,
`XWD_VALUE` double DEFAULT NULL,
PRIMARY KEY (`XWD_ID`,`XWD_NAME`),
KEY `FK5A1CD9A1A947AA5` (`XWD_ID`,`XWD_NAME`),
KEY `XWDOUBLE_NAME` (`XWD_NAME`),
KEY `XWDOUBLE_VALUE` (`XWD_VALUE`),
CONSTRAINT `FK5A1CD9A1A947AA5` FOREIGN KEY (`XWD_ID`, `XWD_NAME`) REFERENCES `xwikiproperties` (`XWP_ID`, `XWP_NAME`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Table structure for table `xwikifloats` */
DROP TABLE IF EXISTS `xwikifloats`;
CREATE TABLE `xwikifloats` (
`XWF_ID` bigint(20) NOT NULL,
`XWF_NAME` varchar(255) NOT NULL,
`XWF_VALUE` float DEFAULT NULL,
PRIMARY KEY (`XWF_ID`,`XWF_NAME`),
KEY `FKFB291FBF1DFF14A1` (`XWF_ID`,`XWF_NAME`),
KEY `XWFLOAT_VALUE` (`XWF_VALUE`),
KEY `XWFLOAT_NAME` (`XWF_NAME`),
CONSTRAINT `FKFB291FBF1DFF14A1` FOREIGN KEY (`XWF_ID`, `XWF_NAME`) REFERENCES `xwikiproperties` (`XWP_ID`, `XWP_NAME`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Table structure for table `xwikiintegers` */
DROP TABLE IF EXISTS `xwikiintegers`;
CREATE TABLE `xwikiintegers` (
`XWI_ID` bigint(20) NOT NULL,
`XWI_NAME` varchar(255) NOT NULL,
`XWI_VALUE` int(11) DEFAULT NULL,
PRIMARY KEY (`XWI_ID`,`XWI_NAME`),
KEY `FK7F8AB31D231EFB9B` (`XWI_ID`,`XWI_NAME`),
KEY `XWINT_NAME` (`XWI_NAME`),
KEY `XWINT_VALUE` (`XWI_VALUE`),
CONSTRAINT `FK7F8AB31D231EFB9B` FOREIGN KEY (`XWI_ID`, `XWI_NAME`) REFERENCES `xwikiproperties` (`XWP_ID`, `XWP_NAME`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Table structure for table `xwikilargestrings` */
DROP TABLE IF EXISTS `xwikilargestrings`;
CREATE TABLE `xwikilargestrings` (
`XWL_ID` bigint(20) NOT NULL,
`XWL_NAME` varchar(255) NOT NULL,
`XWL_VALUE` longtext,
PRIMARY KEY (`XWL_ID`,`XWL_NAME`),
KEY `FK6661970F283EE295` (`XWL_ID`,`XWL_NAME`),
KEY `XWLS_NAME` (`XWL_NAME`),
CONSTRAINT `FK6661970F283EE295` FOREIGN KEY (`XWL_ID`, `XWL_NAME`) REFERENCES `xwikiproperties` (`XWP_ID`, `XWP_NAME`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Table structure for table `xwikilinks` */
DROP TABLE IF EXISTS `xwikilinks`;
CREATE TABLE `xwikilinks` (
`XWL_DOC_ID` bigint(20) NOT NULL,
`XWL_LINK` varchar(255) NOT NULL,
`XWL_FULLNAME` varchar(255) DEFAULT NULL,
PRIMARY KEY (`XWL_DOC_ID`,`XWL_LINK`),
KEY `XWLNK_LINK` (`XWL_LINK`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Table structure for table `xwikilistitems` */
DROP TABLE IF EXISTS `xwikilistitems`;
CREATE TABLE `xwikilistitems` (
`XWL_ID` bigint(20) NOT NULL,
`XWL_NAME` varchar(255) NOT NULL,
`XWL_VALUE` varchar(255) DEFAULT NULL,
`XWL_NUMBER` int(11) NOT NULL,
PRIMARY KEY (`XWL_ID`,`XWL_NAME`,`XWL_NUMBER`),
KEY `FKC0862BA3FB72A11` (`XWL_ID`,`XWL_NAME`),
KEY `XWLI_VALUE` (`XWL_VALUE`),
KEY `XWLI_NAME` (`XWL_NAME`),
CONSTRAINT `FKC0862BA3FB72A11` FOREIGN KEY (`XWL_ID`, `XWL_NAME`) REFERENCES `xwikilists` (`XWL_ID`, `XWL_NAME`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Table structure for table `xwikilists` */
DROP TABLE IF EXISTS `xwikilists`;
CREATE TABLE `xwikilists` (
`XWL_ID` bigint(20) NOT NULL,
`XWL_NAME` varchar(255) NOT NULL,
PRIMARY KEY (`XWL_ID`,`XWL_NAME`),
KEY `FKDF23086D283EE295` (`XWL_ID`,`XWL_NAME`),
KEY `XWLIST_NAME` (`XWL_NAME`),
CONSTRAINT `FKDF23086D283EE295` FOREIGN KEY (`XWL_ID`, `XWL_NAME`) REFERENCES `xwikiproperties` (`XWP_ID`, `XWP_NAME`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Table structure for table `xwikilock` */
DROP TABLE IF EXISTS `xwikilock`;
CREATE TABLE `xwikilock` (
`XWL_DOC_ID` bigint(20) NOT NULL,
`XWL_AUTHOR` varchar(255) DEFAULT NULL,
`XWL_DATE` datetime NOT NULL,
PRIMARY KEY (`XWL_DOC_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Table structure for table `xwikilongs` */
DROP TABLE IF EXISTS `xwikilongs`;
CREATE TABLE `xwikilongs` (
`XWL_ID` bigint(20) NOT NULL,
`XWL_NAME` varchar(255) NOT NULL,
`XWL_VALUE` bigint(20) DEFAULT NULL,
PRIMARY KEY (`XWL_ID`,`XWL_NAME`),
KEY `FKDF25AE4F283EE295` (`XWL_ID`,`XWL_NAME`),
KEY `XWLONG_NAME` (`XWL_NAME`),
KEY `XWLONG_VALUE` (`XWL_VALUE`),
CONSTRAINT `FKDF25AE4F283EE295` FOREIGN KEY (`XWL_ID`, `XWL_NAME`) REFERENCES `xwikiproperties` (`XWP_ID`, `XWP_NAME`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Table structure for table `xwikiobjects` */
DROP TABLE IF EXISTS `xwikiobjects`;
CREATE TABLE `xwikiobjects` (
`XWO_ID` bigint(20) NOT NULL,
`XWO_NUMBER` int(11) DEFAULT NULL,
`XWO_NAME` varchar(255) NOT NULL,
`XWO_CLASSNAME` varchar(255) NOT NULL,
`XWO_GUID` varchar(255) DEFAULT NULL,
PRIMARY KEY (`XWO_ID`),
KEY `OBJ_NAME` (`XWO_NAME`),
KEY `OBJ_CLASSNAME` (`XWO_CLASSNAME`),
KEY `OBJ_NUMBER` (`XWO_NUMBER`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Table structure for table `xwikipreferences` */
DROP TABLE IF EXISTS `xwikipreferences`;
CREATE TABLE `xwikipreferences` (
`XWP_ID` bigint(20) NOT NULL,
`XWP_LANGUAGE` varchar(255) DEFAULT NULL,
`XWP_DEFAULT_LANGUAGE` varchar(255) DEFAULT NULL,
`XWP_MULTI_LINGUAL` int(11) DEFAULT NULL,
`XWP_AUTHENTICATE_EDIT` int(11) DEFAULT NULL,
`XWP_AUTHENTICATE_VIEW` int(11) DEFAULT NULL,
`XWP_AUTH_ACTIVE_CHECK` int(11) DEFAULT NULL,
`XWP_BACKLINKS` int(11) DEFAULT NULL,
`XWP_SKIN` varchar(255) DEFAULT NULL,
`XWP_STYLESHEET` varchar(255) DEFAULT NULL,
`XWP_STYLESHEETS` varchar(255) DEFAULT NULL,
`XWP_EDITOR` varchar(255) DEFAULT NULL,
`XWP_WEBCOPYRIGHT` varchar(255) DEFAULT NULL,
`XWP_TITLE` varchar(255) DEFAULT NULL,
`XWP_VERSION` varchar(255) DEFAULT NULL,
`XWP_META` longtext,
`XWP_USE_EMAIL_VERIFICATION` int(11) DEFAULT NULL,
`XWP_SMTP_SERVER` varchar(255) DEFAULT NULL,
`XWP_ADMIN_EMAIL` varchar(255) DEFAULT NULL,
`XWP_VALIDATION_EMAIL_CONTENT` longtext,
`XWP_CONFIRMATION_EMAIL_CONTENT` longtext,
`XWP_INVITATION_EMAIL_CONTENT` longtext,
`XWP_LEFT_PANELS` varchar(2000) DEFAULT NULL,
`XWP_RIGHT_PANELS` varchar(2000) DEFAULT NULL,
`XWP_SHOW_LEFT_PANELS` int(11) DEFAULT NULL,
`XWP_SHOW_RIGHT_PANELS` int(11) DEFAULT NULL,
`XWP_LANGUAGES` varchar(255) DEFAULT NULL,
`XWP_REGISTRATION_ANONYMOUS` varchar(255) DEFAULT NULL,
`XWP_REGISTRATION_REGISTERED` varchar(255) DEFAULT NULL,
`XWP_EDIT_ANONYMOUS` varchar(255) DEFAULT NULL,
`XWP_EDIT_REGISTERED` varchar(255) DEFAULT NULL,
`XWP_COMMENT_ANONYMOUS` varchar(255) DEFAULT NULL,
`XWP_COMMENT_REGISTERED` varchar(255) DEFAULT NULL,
`XWP_DOCUMENT_BUNDLES` varchar(2000) DEFAULT NULL,
PRIMARY KEY (`XWP_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Table structure for table `xwikiproperties` */
DROP TABLE IF EXISTS `xwikiproperties`;
CREATE TABLE `xwikiproperties` (
`XWP_ID` bigint(20) NOT NULL,
`XWP_NAME` varchar(255) NOT NULL,
`XWP_CLASSTYPE` varchar(255) DEFAULT NULL,
PRIMARY KEY (`XWP_ID`,`XWP_NAME`),
KEY `PROP_NAME` (`XWP_NAME`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Table structure for table `xwikircs` */
DROP TABLE IF EXISTS `xwikircs`;
CREATE TABLE `xwikircs` (
`XWR_DOCID` bigint(20) NOT NULL,
`XWR_VERSION1` int(11) NOT NULL,
`XWR_VERSION2` int(11) NOT NULL,
`XWR_DATE` datetime NOT NULL,
`XWR_COMMENT` varchar(255) NOT NULL,
`XWR_AUTHOR` varchar(255) NOT NULL,
`XWR_ISDIFF` bit(1) DEFAULT NULL,
`XWR_PATCH` longtext,
PRIMARY KEY (`XWR_DOCID`,`XWR_VERSION1`,`XWR_VERSION2`),
KEY `REV_DATE` (`XWR_DATE`),
KEY `REV_AUTHOR` (`XWR_AUTHOR`),
KEY `REV_ISDIFF` (`XWR_ISDIFF`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Table structure for table `xwikirecyclebin` */
DROP TABLE IF EXISTS `xwikirecyclebin`;
CREATE TABLE `xwikirecyclebin` (
`XDD_ID` bigint(20) NOT NULL AUTO_INCREMENT,
`XDD_FULLNAME` varchar(255) NOT NULL,
`XDD_LANGUAGE` varchar(5) NOT NULL,
`XDD_DATE` datetime NOT NULL,
`XDD_DELETER` varchar(255) DEFAULT NULL,
`XDD_XML` longtext NOT NULL,
PRIMARY KEY (`XDD_ID`),
UNIQUE KEY `XDD_FULLNAME` (`XDD_FULLNAME`,`XDD_LANGUAGE`,`XDD_DATE`),
KEY `XDD_LANGUAGE` (`XDD_LANGUAGE`),
KEY `XDD_DELETER` (`XDD_DELETER`),
KEY `XDD_DATE` (`XDD_DATE`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Table structure for table `xwikistatsdoc` */
DROP TABLE IF EXISTS `xwikistatsdoc`;
CREATE TABLE `xwikistatsdoc` (
`XWS_ID` bigint(20) NOT NULL,
`XWS_NUMBER` int(11) DEFAULT NULL,
`XWS_NAME` varchar(255) NOT NULL,
`XWS_CLASSNAME` varchar(255) DEFAULT NULL,
`XWS_ACTION` varchar(255) NOT NULL,
`XWS_PAGE_VIEWS` int(11) DEFAULT NULL,
`XWS_UNIQUE_VISITORS` int(11) DEFAULT NULL,
`XWS_PERIOD` int(11) DEFAULT NULL,
`XWS_VISITS` int(11) DEFAULT NULL,
PRIMARY KEY (`XWS_ID`),
KEY `XWDS_VISITS` (`XWS_VISITS`),
KEY `XWDS_NAME` (`XWS_NAME`),
KEY `XWDS_ACTION` (`XWS_ACTION`),
KEY `XWDS_UNIQUE_VISITORS` (`XWS_UNIQUE_VISITORS`),
KEY `XWDS_PERIOD` (`XWS_PERIOD`),
KEY `XWDS_PAGE_VIEWS` (`XWS_PAGE_VIEWS`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Table structure for table `xwikistatsreferer` */
DROP TABLE IF EXISTS `xwikistatsreferer`;
CREATE TABLE `xwikistatsreferer` (
`XWR_ID` bigint(20) NOT NULL,
`XWR_NUMBER` int(11) DEFAULT NULL,
`XWR_NAME` varchar(255) NOT NULL,
`XWR_CLASSNAME` varchar(255) DEFAULT NULL,
`XWR_REFERER` varchar(8192) NOT NULL,
`XWR_PAGE_VIEWS` int(11) DEFAULT NULL,
`XWR_PERIOD` int(11) DEFAULT NULL,
PRIMARY KEY (`XWR_ID`),
KEY `XWRS_NAME` (`XWR_NAME`),
KEY `XWRS_PERIOD` (`XWR_PERIOD`),
KEY `XWRS_PAGE_VIEWS` (`XWR_PAGE_VIEWS`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Table structure for table `xwikistatsvisit` */
DROP TABLE IF EXISTS `xwikistatsvisit`;
CREATE TABLE `xwikistatsvisit` (
`XWV_ID` bigint(20) NOT NULL,
`XWV_NUMBER` int(11) DEFAULT NULL,
`XWV_NAME` varchar(255) NOT NULL,
`XWV_CLASSNAME` varchar(255) DEFAULT NULL,
`XWV_IP` varchar(255) NOT NULL,
`XWV_USER_AGENT` varchar(8192) NOT NULL,
`XWV_COOKIE` varchar(8192) NOT NULL,
`XWV_UNIQUE_ID` varchar(255) NOT NULL,
`XWV_PAGE_VIEWS` int(11) DEFAULT NULL,
`XWV_PAGE_SAVES` int(11) DEFAULT NULL,
`XWV_DOWNLOADS` int(11) DEFAULT NULL,
`XWV_START_DATE` datetime DEFAULT NULL,
`XWV_END_DATE` datetime DEFAULT NULL,
PRIMARY KEY (`XWV_ID`),
KEY `XWVS_END_DATE` (`XWV_END_DATE`),
KEY `XWVS_UNIQUE_ID` (`XWV_UNIQUE_ID`),
KEY `XWVS_PAGE_VIEWS` (`XWV_PAGE_VIEWS`),
KEY `XWVS_START_DATE` (`XWV_START_DATE`),
KEY `XWVS_NAME` (`XWV_NAME`),
KEY `XWVS_PAGE_SAVES` (`XWV_PAGE_SAVES`),
KEY `XWVS_DOWNLOADS` (`XWV_DOWNLOADS`),
KEY `XWVS_IP` (`XWV_IP`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Table structure for table `xwikistrings` */
DROP TABLE IF EXISTS `xwikistrings`;
CREATE TABLE `xwikistrings` (
`XWS_ID` bigint(20) NOT NULL,
`XWS_NAME` varchar(255) NOT NULL,
`XWS_VALUE` varchar(255) DEFAULT NULL,
PRIMARY KEY (`XWS_ID`,`XWS_NAME`),
KEY `FK2780715A3433FD87` (`XWS_ID`,`XWS_NAME`),
KEY `XWSTR_NAME` (`XWS_NAME`),
KEY `XWSTR_VALUE` (`XWS_VALUE`),
CONSTRAINT `FK2780715A3433FD87` FOREIGN KEY (`XWS_ID`, `XWS_NAME`) REFERENCES `xwikiproperties` (`XWP_ID`, `XWP_NAME`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;