Example #1
0
 private function createStagingTable(array $columns)
 {
     $tempName = '__temp_' . $this->uniqueValue();
     $columnsSql = array_map(function ($column) {
         return sprintf('%s varchar', $this->quoteIdentifier($column));
     }, $columns);
     $this->connection->query(sprintf('CREATE TEMPORARY TABLE %s (%s)', $this->nameWithSchemaEscaped($tempName), implode(', ', $columnsSql)));
     return $tempName;
 }
Example #2
0
 private function initData()
 {
     $currentDate = new \DateTime('now', new \DateTimeZone('UTC'));
     $now = $currentDate->format('Y-m-d H:i:s');
     foreach ([$this->sourceSchemaName, $this->destSchemaName] as $schema) {
         $this->connection->query(sprintf('DROP SCHEMA IF EXISTS "%s"', $schema));
         $this->connection->query(sprintf('CREATE SCHEMA "%s"', $schema));
     }
     $this->connection->query(sprintf('CREATE TABLE "%s"."out.lemma" (
       "ts" VARCHAR NOT NULL DEFAULT \'\',
       "lemma" VARCHAR NOT NULL DEFAULT \'\',
       "lemmaIndex" VARCHAR NOT NULL DEFAULT \'\',
       "_timestamp" TIMESTAMP_NTZ
     );', $this->destSchemaName));
     $this->connection->query(sprintf('CREATE TABLE "%s"."out.csv_2Cols" (
       "col1" VARCHAR NOT NULL DEFAULT \'\',
       "col2" VARCHAR NOT NULL DEFAULT \'\',
       "_timestamp" TIMESTAMP_NTZ
     );', $this->destSchemaName));
     $this->connection->query(sprintf('INSERT INTO "%s"."out.csv_2Cols" VALUES
               (\'x\', \'y\', \'%s\');', $this->destSchemaName, $now));
     $this->connection->query(sprintf('CREATE TABLE "%s"."out.csv_2Cols" (
       "col1" VARCHAR NOT NULL DEFAULT \'\',
       "col2" VARCHAR NOT NULL DEFAULT \'\'
     );', $this->sourceSchemaName));
     $this->connection->query(sprintf('INSERT INTO "%s"."out.csv_2Cols" VALUES
             (\'a\', \'b\'), (\'c\', \'d\');
     ', $this->sourceSchemaName));
     $this->connection->query(sprintf('CREATE TABLE "%s"."accounts-3" (
             "id" varchar(65535) NOT NULL,
             "idTwitter" varchar(65535) NOT NULL,
             "name" varchar(65535) NOT NULL,
             "import" varchar(65535) NOT NULL,
             "isImported" varchar(65535) NOT NULL,
             "apiLimitExceededDatetime" varchar(65535) NOT NULL,
             "analyzeSentiment" varchar(65535) NOT NULL,
             "importKloutScore" varchar(65535) NOT NULL,
             "timestamp" varchar(65535) NOT NULL,
             "oauthToken" varchar(65535) NOT NULL,
             "oauthSecret" varchar(65535) NOT NULL,
             "idApp" varchar(65535) NOT NULL,
             "_timestamp" TIMESTAMP_NTZ,
             PRIMARY KEY("id")
         )', $this->destSchemaName));
     $this->connection->query(sprintf('CREATE TABLE "%s"."accounts-bez-ts" (
             "id" varchar(65535) NOT NULL,
             "idTwitter" varchar(65535) NOT NULL,
             "name" varchar(65535) NOT NULL,
             "import" varchar(65535) NOT NULL,
             "isImported" varchar(65535) NOT NULL,
             "apiLimitExceededDatetime" varchar(65535) NOT NULL,
             "analyzeSentiment" varchar(65535) NOT NULL,
             "importKloutScore" varchar(65535) NOT NULL,
             "timestamp" varchar(65535) NOT NULL,
             "oauthToken" varchar(65535) NOT NULL,
             "oauthSecret" varchar(65535) NOT NULL,
             "idApp" varchar(65535) NOT NULL,
             PRIMARY KEY("id")
         )', $this->destSchemaName));
     $this->connection->query(sprintf('CREATE TABLE "%s"."table" (
           "column"  varchar(65535) NOT NULL DEFAULT \'\',
           "table" varchar(65535) NOT NULL DEFAULT \'\',
           "_timestamp" TIMESTAMP_NTZ
         );', $this->destSchemaName));
     $this->connection->query(sprintf('CREATE TABLE "%s"."types" (
           "charCol"  varchar NOT NULL,
           "numCol" varchar NOT NULL,
           "floatCol" varchar NOT NULL,
           "boolCol" varchar NOT NULL,
           "_timestamp" TIMESTAMP_NTZ
         );', $this->destSchemaName));
     $this->connection->query(sprintf('CREATE TABLE "%s"."types" (
           "charCol"  varchar(65535) NOT NULL,
           "numCol" number(10,1) NOT NULL,
           "floatCol" float NOT NULL,
           "boolCol" boolean NOT NULL
         );', $this->sourceSchemaName));
     $this->connection->query(sprintf('INSERT INTO "%s"."types" VALUES 
           (\'a\', \'10.5\', \'0.3\', true)
        ;', $this->sourceSchemaName));
     $this->connection->query(sprintf('CREATE TABLE "%s"."out.no_timestamp_table" (
           "col1" VARCHAR NOT NULL DEFAULT \'\',
           "col2" VARCHAR NOT NULL DEFAULT \'\'
         );', $this->destSchemaName));
     $this->connection->query(sprintf('CREATE TABLE "%s"."column-name-row-number" (
           "id" varchar(65535) NOT NULL,
           "row_number" varchar(65535) NOT NULL,
           "_timestamp" TIMESTAMP_NTZ,
           PRIMARY KEY("id")
         );', $this->destSchemaName));
 }