Compare commits

...

1 Commits

Author SHA1 Message Date
Gerda Shank
9abe9da563 test setting macro_stack starting from materialization macro 2022-09-16 14:40:14 -04:00
4 changed files with 14 additions and 2 deletions

View File

@@ -311,7 +311,7 @@ class MacroGenerator(BaseMacroGenerator):
unique_id = self.macro.unique_id
depth = self.stack.depth
# only mark depth=0 as a dependency
if depth == 0:
if depth == 1:
self.node.depends_on.add_macro(unique_id)
self.stack.push(unique_id)
try:

View File

@@ -4,6 +4,7 @@ from dbt.clients.jinja import MacroStack
from dbt.contracts.connection import AdapterRequiredConfig
from dbt.contracts.graph.manifest import Manifest
from dbt.context.macro_resolver import TestMacroNamespace
from .base import contextproperty
from .configured import ConfiguredContext
@@ -66,6 +67,10 @@ class ManifestContext(ConfiguredContext):
dct.update(self.namespace)
return dct
@contextproperty
def context_macro_stack(self):
return self.macro_stack
class QueryHeaderContext(ManifestContext):
def __init__(self, config: AdapterRequiredConfig, manifest: Manifest) -> None:

View File

@@ -1244,6 +1244,11 @@ class ProviderContext(ManifestContext):
"""
return selected_resources.SELECTED_RESOURCES
@contextmember
def submit_python_job(self):
# Check macro_stack and that the unique id is for a materialization macro
pass
class MacroContext(ProviderContext):
"""Internally, macros can be executed like nodes, with some restrictions:

View File

@@ -278,7 +278,9 @@ class ModelRunner(CompileRunner):
hook_ctx = self.adapter.pre_model_hook(context_config)
try:
result = MacroGenerator(materialization_macro, context)()
result = MacroGenerator(
materialization_macro, context, stack=context["context_macro_stack"]
)()
finally:
self.adapter.post_model_hook(context_config, hook_ctx)