<gh_stars>1-10
# Copyright © 2020 Hashmap, Inc
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import logging

from hdm.core.dao.snowflake import Snowflake


class SnowflakeDDLWriter:
    @classmethod
    def _get_logger(cls):
        return logging.getLogger(cls.__name__)

    def __init__(self, **kwargs):
        self._logger = self._get_logger()
        self.__dao = Snowflake(connection=kwargs['env'])
        self.__database_SQL = kwargs['database_sql']
        self.__schema_SQL = kwargs['schema_sql']
        self.__table_SQL = kwargs['table_sql']

    def __execute_sql(self, sql_list):
        with self.__dao.connection as conn:
            cursor = conn.cursor()
            for sql in sql_list:
                self._logger.info("executing SQL: %s", sql)
                cursor.execute(sql)

    def execute(self):
        # for now, don't create databases
        self.__execute_sql(self.__schema_SQL)
        self.__execute_sql(self.__table_SQL)

# Copyright © 2020 Hashmap, Inc
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import logging

from hdm.core.dao.snowflake import Snowflake


class SnowflakeDDLWriter:
    @classmethod
    def _get_logger(cls):
        return logging.getLogger(cls.__name__)

    def __init__(self, **kwargs):
        self._logger = self._get_logger()
        self.__dao = Snowflake(connection=kwargs['env'])
        self.__database_SQL = kwargs['database_sql']
        self.__schema_SQL = kwargs['schema_sql']
        self.__table_SQL = kwargs['table_sql']

    def __execute_sql(self, sql_list):
        with self.__dao.connection as conn:
            cursor = conn.cursor()
            for sql in sql_list:
                self._logger.info("executing SQL: %s", sql)
                cursor.execute(sql)

    def execute(self):
        # for now, don't create databases
        self.__execute_sql(self.__schema_SQL)
        self.__execute_sql(self.__table_SQL)
# Copyright © 2020 Hashmap, Inc # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # #     http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # for now, don't create databases