Skip to content

Commit

Permalink
backport v1.7.2 and full_refresh bug fix
Browse files Browse the repository at this point in the history
  • Loading branch information
amogh.nandkumar.parab@oracle.com committed Feb 8, 2024
1 parent 5e2b4e4 commit bf804e9
Show file tree
Hide file tree
Showing 104 changed files with 5,143 additions and 3 deletions.
13 changes: 11 additions & 2 deletions dbt/include/oracle/macros/adapters.sql
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,11 @@
{%- if col['data_type'] is not defined -%}
{{ col_err.append(col['name']) }}
{%- endif -%}
cast(null as {{ col['data_type'] }}) as {{ col['name'] }}{{ ", " if not loop.last }}
{%- if col['data_type'] | lower == 'clob' -%}
empty_clob() as {{ col['name'] }}{{ ", " if not loop.last }}
{%- else -%}
cast(null as {{ col['data_type'] }}) as {{ col['name'] }}{{ ", " if not loop.last }}
{%- endif -%}
{%- endfor -%}
{# Override for Oracle #}
from dual
Expand Down Expand Up @@ -268,7 +272,7 @@
{% set comment = column_dict[column_name]['description'] %}
{% set escaped_comment = oracle_escape_comment(comment) %}
{% call statement('alter _column comment', fetch_result=False) -%}
comment on column {{ relation }}.{{ column_name }} is {{ escaped_comment }}
comment on column {{ relation }}.{{ adapter.check_and_quote_identifier(column_name, model.columns) }} is {{ escaped_comment }}
{%- endcall %}
{% endfor %}
{% endif %}
Expand Down Expand Up @@ -385,6 +389,11 @@
end table_type
from sys.all_tables
where upper(table_name) not in (select upper(mview_name) from sys.all_mviews)
where upper(table_name) not in (
select upper(mview_name)
from sys.all_mviews
where upper(owner) = upper('{{ schema_relation.schema }}')
)
union all
select SYS_CONTEXT('userenv', 'DB_NAME'),
owner,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
{% materialization incremental, adapter='oracle', supported_languages=['sql', 'python'] %}

{% set unique_key = config.get('unique_key') %}
{% set full_refresh_mode = flags.FULL_REFRESH %}
{% set full_refresh_mode = should_full_refresh() %}
{%- set language = model['language'] -%}
{% set target_relation = this.incorporate(type='table') %}
{% set existing_relation = load_relation(this) %}
Expand Down
3 changes: 3 additions & 0 deletions dbt_adbs_test_project/dbt_project.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ quoting:
seeds:
dbt_adbs_test_project:
quote_columns: false
kafka_message:
+column_types:
message: CLOB
seed_with_empty_col:
+column_types:
id: number
Expand Down
1 change: 1 addition & 0 deletions dbt_adbs_test_project/models/kafka.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
select * from {{ ref('kafka_message') }}
21 changes: 21 additions & 0 deletions dbt_adbs_test_project/models/schema.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,27 @@ sources:
- name: costs

models:
- name: kafka
description: kafka_description
config:
materialized: incremental
incremental_strategy: append
on_schema_change: fail
full_refresh: false
contract:
enforced: true
constraints:
- type: not_null
columns: [message]
columns:
- name: message
description: Kafka message
data_type: CLOB
constraints:
- type: not_null



- name: people
columns:
- name: id
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
config(
materialized='incremental',
unique_key='group_id',
full_refresh=false,
parallel=4,
table_compression_clause='COLUMN STORE COMPRESS FOR QUERY LOW')
}}
Expand Down
5 changes: 5 additions & 0 deletions dbt_adbs_test_project/seeds/kafka_message.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
message
Jack-Hunter
Jack-Hunter
Jack-HunterJackHunter
Jack-Hunter
76 changes: 76 additions & 0 deletions myenv_dbt/bin/activate
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# This file must be used with "source bin/activate" *from bash*
# you cannot run it directly

deactivate () {
# reset old environment variables
if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then
PATH="${_OLD_VIRTUAL_PATH:-}"
export PATH
unset _OLD_VIRTUAL_PATH
fi
if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then
PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}"
export PYTHONHOME
unset _OLD_VIRTUAL_PYTHONHOME
fi

# This should detect bash and zsh, which have a hash command that must
# be called to get it to forget past commands. Without forgetting
# past commands the $PATH changes we made may not be respected
if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then
hash -r
fi

if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then
PS1="${_OLD_VIRTUAL_PS1:-}"
export PS1
unset _OLD_VIRTUAL_PS1
fi

unset VIRTUAL_ENV
if [ ! "$1" = "nondestructive" ] ; then
# Self destruct!
unset -f deactivate
fi
}

# unset irrelevant variables
deactivate nondestructive

VIRTUAL_ENV="/scratch/dbt-oracle/myenv_dbt"
export VIRTUAL_ENV

_OLD_VIRTUAL_PATH="$PATH"
PATH="$VIRTUAL_ENV/bin:$PATH"
export PATH

# unset PYTHONHOME if set
# this will fail if PYTHONHOME is set to the empty string (which is bad anyway)
# could use `if (set -u; : $PYTHONHOME) ;` in bash
if [ -n "${PYTHONHOME:-}" ] ; then
_OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}"
unset PYTHONHOME
fi

if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then
_OLD_VIRTUAL_PS1="${PS1:-}"
if [ "x(myenv_dbt) " != x ] ; then
PS1="(myenv_dbt) ${PS1:-}"
else
if [ "`basename \"$VIRTUAL_ENV\"`" = "__" ] ; then
# special case for Aspen magic directories
# see http://www.zetadev.com/software/aspen/
PS1="[`basename \`dirname \"$VIRTUAL_ENV\"\``] $PS1"
else
PS1="(`basename \"$VIRTUAL_ENV\"`)$PS1"
fi
fi
export PS1
fi

# This should detect bash and zsh, which have a hash command that must
# be called to get it to forget past commands. Without forgetting
# past commands the $PATH changes we made may not be respected
if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then
hash -r
fi
37 changes: 37 additions & 0 deletions myenv_dbt/bin/activate.csh
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# This file must be used with "source bin/activate.csh" *from csh*.
# You cannot run it directly.
# Created by Davide Di Blasi <davidedb@gmail.com>.
# Ported to Python 3.3 venv by Andrew Svetlov <andrew.svetlov@gmail.com>

alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; test "\!:*" != "nondestructive" && unalias deactivate'

# Unset irrelevant variables.
deactivate nondestructive

setenv VIRTUAL_ENV "/scratch/dbt-oracle/myenv_dbt"

set _OLD_VIRTUAL_PATH="$PATH"
setenv PATH "$VIRTUAL_ENV/bin:$PATH"


set _OLD_VIRTUAL_PROMPT="$prompt"

if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then
if ("myenv_dbt" != "") then
set env_name = "myenv_dbt"
else
if (`basename "VIRTUAL_ENV"` == "__") then
# special case for Aspen magic directories
# see http://www.zetadev.com/software/aspen/
set env_name = `basename \`dirname "$VIRTUAL_ENV"\``
else
set env_name = `basename "$VIRTUAL_ENV"`
endif
endif
set prompt = "[$env_name] $prompt"
unset env_name
endif

alias pydoc python -m pydoc

rehash
75 changes: 75 additions & 0 deletions myenv_dbt/bin/activate.fish
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# This file must be used with ". bin/activate.fish" *from fish* (http://fishshell.org)
# you cannot run it directly

function deactivate -d "Exit virtualenv and return to normal shell environment"
# reset old environment variables
if test -n "$_OLD_VIRTUAL_PATH"
set -gx PATH $_OLD_VIRTUAL_PATH
set -e _OLD_VIRTUAL_PATH
end
if test -n "$_OLD_VIRTUAL_PYTHONHOME"
set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME
set -e _OLD_VIRTUAL_PYTHONHOME
end

if test -n "$_OLD_FISH_PROMPT_OVERRIDE"
functions -e fish_prompt
set -e _OLD_FISH_PROMPT_OVERRIDE
functions -c _old_fish_prompt fish_prompt
functions -e _old_fish_prompt
end

set -e VIRTUAL_ENV
if test "$argv[1]" != "nondestructive"
# Self destruct!
functions -e deactivate
end
end

# unset irrelevant variables
deactivate nondestructive

set -gx VIRTUAL_ENV "/scratch/dbt-oracle/myenv_dbt"

set -gx _OLD_VIRTUAL_PATH $PATH
set -gx PATH "$VIRTUAL_ENV/bin" $PATH

# unset PYTHONHOME if set
if set -q PYTHONHOME
set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME
set -e PYTHONHOME
end

if test -z "$VIRTUAL_ENV_DISABLE_PROMPT"
# fish uses a function instead of an env var to generate the prompt.

# save the current fish_prompt function as the function _old_fish_prompt
functions -c fish_prompt _old_fish_prompt

# with the original prompt function renamed, we can override with our own.
function fish_prompt
# Save the return status of the last command
set -l old_status $status

# Prompt override?
if test -n "(myenv_dbt) "
printf "%s%s" "(myenv_dbt) " (set_color normal)
else
# ...Otherwise, prepend env
set -l _checkbase (basename "$VIRTUAL_ENV")
if test $_checkbase = "__"
# special case for Aspen magic directories
# see http://www.zetadev.com/software/aspen/
printf "%s[%s]%s " (set_color -b blue white) (basename (dirname "$VIRTUAL_ENV")) (set_color normal)
else
printf "%s(%s)%s" (set_color -b blue white) (basename "$VIRTUAL_ENV") (set_color normal)
end
end

# Restore the return status of the previous command.
echo "exit $old_status" | .
_old_fish_prompt
end

set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV"
end
11 changes: 11 additions & 0 deletions myenv_dbt/bin/dbt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/scratch/dbt-oracle/myenv_dbt/bin/python3

# -*- coding: utf-8 -*-
import re
import sys

from dbt.main import main

if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())
11 changes: 11 additions & 0 deletions myenv_dbt/bin/easy_install
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/scratch/dbt-oracle/myenv_dbt/bin/python3

# -*- coding: utf-8 -*-
import re
import sys

from setuptools.command.easy_install import main

if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())
11 changes: 11 additions & 0 deletions myenv_dbt/bin/easy_install-3.6
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/scratch/dbt-oracle/myenv_dbt/bin/python3

# -*- coding: utf-8 -*-
import re
import sys

from setuptools.command.easy_install import main

if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())
11 changes: 11 additions & 0 deletions myenv_dbt/bin/jsonschema
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/scratch/dbt-oracle/myenv_dbt/bin/python3

# -*- coding: utf-8 -*-
import re
import sys

from jsonschema.cli import main

if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())
11 changes: 11 additions & 0 deletions myenv_dbt/bin/normalizer
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/scratch/dbt-oracle/myenv_dbt/bin/python3

# -*- coding: utf-8 -*-
import re
import sys

from charset_normalizer.cli.normalizer import cli_detect

if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(cli_detect())
11 changes: 11 additions & 0 deletions myenv_dbt/bin/pip
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/scratch/dbt-oracle/myenv_dbt/bin/python3

# -*- coding: utf-8 -*-
import re
import sys

from pip import main

if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())
11 changes: 11 additions & 0 deletions myenv_dbt/bin/pip3
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/scratch/dbt-oracle/myenv_dbt/bin/python3

# -*- coding: utf-8 -*-
import re
import sys

from pip import main

if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())
11 changes: 11 additions & 0 deletions myenv_dbt/bin/pip3.6
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/scratch/dbt-oracle/myenv_dbt/bin/python3

# -*- coding: utf-8 -*-
import re
import sys

from pip import main

if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())
11 changes: 11 additions & 0 deletions myenv_dbt/bin/pybabel
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/scratch/dbt-oracle/myenv_dbt/bin/python3

# -*- coding: utf-8 -*-
import re
import sys

from babel.messages.frontend import main

if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())
1 change: 1 addition & 0 deletions myenv_dbt/bin/python
Loading

0 comments on commit bf804e9

Please sign in to comment.