@@ -788,68 +788,176 @@ def execute(
788788 :returns self
789789 """
790790
791- # param_approach = self._determine_parameter_approach(parameters)
792- # if param_approach == ParameterApproach.NONE:
793- # prepared_params = NO_NATIVE_PARAMS
794- # prepared_operation = operation
791+ param_approach = self ._determine_parameter_approach (parameters )
792+ if param_approach == ParameterApproach .NONE :
793+ prepared_params = NO_NATIVE_PARAMS
794+ prepared_operation = operation
795+
796+ elif param_approach == ParameterApproach .INLINE :
797+ prepared_operation ,prepared_params = self ._prepare_inline_parameters (
798+ operation ,parameters
799+ )
800+ elif param_approach == ParameterApproach .NATIVE :
801+ normalized_parameters = self ._normalize_tparametercollection (parameters )
802+ param_structure = self ._determine_parameter_structure (normalized_parameters )
803+ transformed_operation = transform_paramstyle (
804+ operation ,normalized_parameters ,param_structure
805+ )
806+ prepared_operation ,prepared_params = self ._prepare_native_parameters (
807+ transformed_operation ,normalized_parameters ,param_structure
808+ )
809+
810+ # temp_prepared_operation="""INSERT INTO ___________________first.jprakash.complex_types (
811+ # user_id, name, emails, preferences, address, recent_orders
812+ # ) VALUES (
813+ # :user_id, :name, :emails, :preferences,:address, :recent_orders
814+ # )"""
795815#
796- # elif param_approach == ParameterApproach.INLINE:
797- # prepared_operation, prepared_params = self._prepare_inline_parameters(
798- # operation, parameters
799- # )
800- # elif param_approach == ParameterApproach.NATIVE:
801- # normalized_parameters = self._normalize_tparametercollection(parameters)
802- # param_structure = self._determine_parameter_structure(normalized_parameters)
803- # transformed_operation = transform_paramstyle(
804- # operation, normalized_parameters, param_structure
805- # )
806- # prepared_operation, prepared_params = self._prepare_native_parameters(
807- # transformed_operation, normalized_parameters, param_structure
816+ # temp_prepared_params=[
817+ # TSparkParameter(
818+ # name="user_id",
819+ # type="STRING",
820+ # value=TSparkParameterValue(stringValue="11")
821+ # ),
822+ # TSparkParameter(
823+ # name="name",
824+ # type="STRING",
825+ # value=TSparkParameterValue(stringValue="John Doe"),
826+ # ),
827+ # TSparkParameter(
828+ # name="emails",
829+ # # type="ARRAY",
830+ # arguments=[
831+ # TSparkParameterValueArg(
832+ # type="STRING",
833+ # value="john.doe@example.com"
834+ # ),
835+ # TSparkParameterValueArg(
836+ # type="STRING",
837+ # value="jd@example.org"
838+ # )
839+ # ]
840+ # ),
841+ # TSparkParameter(
842+ # name="preferences",
843+ # type="MAP",
844+ # arguments=[
845+ # TSparkParameterValueArg(
846+ # type="STRING",
847+ # value="theme"
848+ # ),
849+ # TSparkParameterValueArg(
850+ # type="STRING",
851+ # value="dark"
852+ # ),
853+ # TSparkParameterValueArg(
854+ # type="STRING",
855+ # value="language"
856+ # ),
857+ # TSparkParameterValueArg(
858+ # type="STRING",
859+ # value="en"
860+ # ),
861+ # ]
862+ #
863+ # ),
864+ # TSparkParameter(
865+ # name="address",
866+ # type="NAMED_STRUCT",
867+ # arguments=[
868+ # TSparkParameterValueArg(
869+ # type="STRING",
870+ # value="street"
871+ # ),
872+ # TSparkParameterValueArg(
873+ # type="STRING",
874+ # value="123 Main St"
875+ # ),
876+ # TSparkParameterValueArg(
877+ # type="STRING",
878+ # value="city"
879+ # ),
880+ # TSparkParameterValueArg(
881+ # type="STRING",
882+ # value="Metropolis"
883+ # ),
884+ # TSparkParameterValueArg(
885+ # type="STRING",
886+ # value="zip"
887+ # ),
888+ # TSparkParameterValueArg(
889+ # type="STRING",
890+ # value="12345"
891+ # ),
892+ # ]
893+ # ),
894+ # # TSparkParameter(
895+ # # name="address",
896+ # # type="STRUCT",
897+ # # arguments=[
898+ # # TSparkParameterValueArg(
899+ # # type="STRING",
900+ # # value="123 Main St"
901+ # # ),
902+ # # TSparkParameterValueArg(
903+ # # type="STRING",
904+ # # value="Metropolis"
905+ # # ),
906+ # # TSparkParameterValueArg(
907+ # # type="STRING",
908+ # # value="12345"
909+ # # ),
910+ # # ]
911+ # # ),
912+ # TSparkParameter(
913+ # name="recent_orders",
914+ # type="ARRAY",
915+ # arguments=[
916+ # TSparkParameterValueArg(
917+ # type="NAMED_STRUCT",
918+ # arguments=[
919+ # TSparkParameterValueArg(type="STRING", value="order_id"),
920+ # TSparkParameterValueArg(type="STRING", value="ord001"),
921+ # TSparkParameterValueArg(type="STRING", value="amount"),
922+ # TSparkParameterValueArg(type="DECIMAL(10,2)", value="199.99"),
923+ # TSparkParameterValueArg(type="STRING", value="items"),
924+ # TSparkParameterValueArg(type="ARRAY", arguments=[
925+ # TSparkParameterValueArg(type="STRING", value="item1"),
926+ # TSparkParameterValueArg(type="STRING", value="item2")
927+ # ])
928+ # ]
929+ # ),
930+ # TSparkParameterValueArg(
931+ # type="NAMED_STRUCT",
932+ # arguments=[
933+ # TSparkParameterValueArg(type="STRING", value="order_id"),
934+ # TSparkParameterValueArg(type="STRING", value="ord002"),
935+ # TSparkParameterValueArg(type="STRING", value="amount"),
936+ # TSparkParameterValueArg(type="DECIMAL(10,2)", value="49.95"),
937+ # TSparkParameterValueArg(type="STRING", value="items"),
938+ # TSparkParameterValueArg(type="ARRAY", arguments=[
939+ # TSparkParameterValueArg(type="STRING", value="item3"),
940+ # ])
941+ # ]
942+ # ),
943+ # ]
808944# )
945+ # ]
946+
947+ print ("LINE 947" )
948+ print (prepared_params )
809949
810- temp_prepared_operation = """INSERT INTO ___________________first.jprakash.complex_types (
811- user_id, name, emails
812- ) VALUES (
813- :user_id, :name, :emails
814- )"""
815-
816- temp_prepared_params = [
817- TSparkParameter (
818- name = "user_id" ,
819- type = "STRING" ,
820- value = TSparkParameterValue (stringValue = "u123" )
821- ),
822- TSparkParameter (
823- name = "name" ,
824- type = "STRING" ,
825- value = TSparkParameterValue (stringValue = "John Doe" )
826- ),
827- TSparkParameter (
828- name = "emails" ,
829- type = "ARRAY" ,
830- arguments = [
831- TSparkParameterValueArg (
832- type = "STRING" ,
833- value = "john.doe@example.com"
834- ),
835- TSparkParameterValueArg (
836- type = "STRING" ,
837- value = "jd@example.org"
838- )
839- ]
840- )
841- ]
842950self ._check_not_closed ()
843951self ._close_and_clear_active_result_set ()
844952execute_response = self .thrift_backend .execute_command (
845- operation = temp_prepared_operation ,
953+ operation = prepared_operation ,
846954session_handle = self .connection ._session_handle ,
847955max_rows = self .arraysize ,
848956max_bytes = self .buffer_size_bytes ,
849957lz4_compression = self .connection .lz4_compression ,
850958cursor = self ,
851959use_cloud_fetch = self .connection .use_cloud_fetch ,
852- parameters = temp_prepared_params ,
960+ parameters = prepared_params ,
853961async_op = False ,
854962enforce_embedded_schema_correctness = enforce_embedded_schema_correctness ,
855963 )