The new lcb_cmdquery_positional_params() and lcb_cmdanalytics_positional_params() should be preferred to their singular alternatives (lcb_cmdquery_positional_param() and lcb_cmdanalytics_positional_param())
The singular functions behavior was inadvertently broken in LCB 3.2.0, and is being reverted in 3.2.1. In addition, LCB 3.2.1 has introduced new plural forms of the functions which accept all positional parameters as single JSON-encoded array.
The previous (singular) API does not allow arguments to be replaced by index or replaced entirely without resetting the entire command. The new (plural) API just overwrites the "args" property in the payload and therefore has a more predictable behavior and is easier to use.